Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
d8329299
Commit
d8329299
authored
Jul 20, 2019
by
周健威
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/base-modify' into base-modify
parents
92029788
5340dbf4
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
122 additions
and
127 deletions
+122
-127
TokenAop.java
...m/github/wxiaoqi/security/admin/support/aop/TokenAop.java
+0
-1
BaseOrderController.java
...ava/com/xxfc/platform/order/rest/BaseOrderController.java
+4
-6
OrderPayBiz.java
...ain/java/com/xxfc/platform/universal/biz/OrderPayBiz.java
+65
-57
OrderPayController.java
...xfc/platform/universal/controller/OrderPayController.java
+3
-4
VehiclePlanDto.java
...va/com/xxfc/platform/vehicle/pojo/dto/VehiclePlanDto.java
+3
-0
VehicleController.java
...ava/com/xxfc/platform/vehicle/rest/VehicleController.java
+10
-9
VehicleMapper.xml
...ehicle-server/src/main/resources/mapper/VehicleMapper.xml
+33
-50
VehicleWarningMsgMapper.xml
...ver/src/main/resources/mapper/VehicleWarningMsgMapper.xml
+4
-0
No files found.
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/support/aop/TokenAop.java
View file @
d8329299
...
...
@@ -46,7 +46,6 @@ public class TokenAop {
/**
* userFeign.userDetailByToken(""); 获取app用户的信息
* userFeign.userinfoByToken(""); 获取后台用户的信息
* Todo 还有token 校验规则 ,是否过期 未加入检验 .......
* @param proceedingJoinPoint
* @return
*/
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/BaseOrderController.java
View file @
d8329299
...
...
@@ -161,16 +161,14 @@ public class BaseOrderController extends CommonBaseController implements UserRes
List
<
Integer
>
userIds
=
list
.
stream
().
map
(
OrderListVo:
:
getUserId
).
distinct
().
collect
(
Collectors
.
toList
());
if
(
userIds
!=
null
&&
userIds
.
size
()
>
0
)
{
ObjectRestResponse
<
List
<
AppUserVo
>>
objectRestResponse
=
userFeign
.
getByUserIds
(
userIds
);
log
.
info
(
"获取用户信息:objectRestResponse = {}"
,
objectRestResponse
.
getMessage
());
for
(
OrderListVo
orderPageVO
:
list
)
{
if
(
objectRestResponse
.
getData
()
!=
null
&&
objectRestResponse
.
getData
().
size
()
>
0
)
{
for
(
AppUserVo
appUserVo
:
objectRestResponse
.
getData
())
{
if
(
appUserVo
!=
null
&&
appUserVo
.
getUserid
()
==
orderPageVO
.
getUserId
())
{
if
(
appUserVo
!=
null
)
{
orderPageVO
.
setTelephone
(
appUserVo
.
getUsername
());
orderPageVO
.
setUsername
(
appUserVo
.
getNickname
());
// ObjectRestResponse<AppUser> restResponse = userFeign.get(appUserVo.getUserid());
// if(restResponse.isRel()) {
// orderPageVO.setTelephone( restResponse.getData().getUsername());
// }
}
}
}
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/biz/OrderPayBiz.java
View file @
d8329299
...
...
@@ -65,7 +65,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
String
weixinHost
;
String
notifyUrl
=
weixinHost
+
"/service/payment/notify/alipay"
;
String
alipayNotifyUrl
=
SystemConfig
.
weixinHost
+
"/service/payment/notify/alipay"
;
public
JSONObject
preparepay
(
OrderPayVo
orderPayVo
)
{
if
(
null
==
orderPayVo
)
{
log
.
error
(
"-----参数为空-----------"
);
...
...
@@ -202,15 +202,16 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
}
String
msg
=
JSONObject
.
toJSONString
(
params
);
log
.
info
(
"alipay notify message={}"
,
msg
);
//
//添加回调记录
//添加回调记录
// PaymentCallbackLog callbackLog = new PaymentCallbackLog();
// callbackLog.setPayCode(rstradeNo);
// callbackLog.setPayType(SystemConstant.PayType.ALIPAY);
// callbackLog.setOrderCode(rsOrderCode);
// callbackLog.setMessage(msg);
// paymentCallbackLogRepository.save(callbackLog);
//切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。
//boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type)
// 切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。
// boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type)
//支付宝回调验签
try
{
boolean
flag
=
AlipaySignature
.
rsaCheckV1
(
params
,
SystemConfig
.
ALIPAY_PUBLIC_KEY
,
AlipayConstants
.
CHARSET_UTF8
,
AlipayConstants
.
SIGN_TYPE_RSA2
);
if
(!
flag
)
{
...
...
@@ -231,6 +232,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
// log.info("alipay order notify fail, result={}", msg);
// return Response.FAILURE.getHeader().getMessage();
// }
// //重复回调
// if (paymentRecord.getStatus().intValue() != 1) {
// log.info("alipay order repeat notify, result={}", msg);
...
...
@@ -253,15 +255,11 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
/**
* 支付宝生成支付信息
* @param orderCode
* @param description
* @param payType
* @param amount
* @return
*/
@SuppressWarnings
(
"rawtypes"
)
private
ObjectRestResponse
generateAliPayment
(
String
orderCode
,
String
description
,
String
payType
,
Integer
amount
)
{
BigDecimal
realAmount
=
new
BigDecimal
(
amount
.
toString
()).
divide
(
new
BigDecimal
(
"100"
),
2
,
BigDecimal
.
ROUND_UP
);
private
ObjectRestResponse
generateAliPayment
(
OrderPayVo
orderPayVo
)
{
String
notifyUrl
=
weixinHost
+
"/service/payment/notify/alipay"
;
//实例化客户端
...
...
@@ -270,69 +268,76 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
AlipayConstants
.
CHARSET_UTF8
,
SystemConfig
.
ALIPAY_PUBLIC_KEY
,
AlipayConstants
.
SIGN_TYPE_RSA2
);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
// AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//// //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
// AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
// //model.setBody("我是测试数据");
// model.setSubject(description);
// model.setOutTradeNo(orderCode);
// model.setTimeoutExpress("30m");
// model.setTotalAmount(realAmount.toString());
// model.setProductCode("QUICK_MSECURITY_PAY");
// request.setBizModel(model);
// request.setNotifyUrl(notifyUrl);
//
try
{
return
fundAuthOrderAppFreeze
(
alipayClient
);
return
fundAuthOrderAppFreeze
(
alipayClient
,
orderPayVo
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
//
return
ObjectRestResponse
.
createDefaultFail
();
}
// try {
// //这里和普通的接口调用不同,使用的是sdkExecute
// AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
// System.out.println(response.getBody());//就是orderString 可以直接给客户端请求,无需再做处理。
// Map<String, Object> rt = new HashMap<>();
// rt.put("payType", payType);
// rt.put("payData", response.getBody());
// return ObjectRestResponse.succ(rt);
// } catch (AlipayApiException e) {
// e.printStackTrace();
// }
//支付宝APP支付方法
public
ObjectRestResponse
appOrderPay
(
OrderPayVo
orderPayVo
,
AlipayClient
alipayClient
)
{
BigDecimal
realAmount
=
new
BigDecimal
(
orderPayVo
.
getAmount
().
toString
()).
divide
(
new
BigDecimal
(
"100"
),
2
,
BigDecimal
.
ROUND_UP
);
AlipayTradeAppPayRequest
request
=
new
AlipayTradeAppPayRequest
();
// //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel
model
=
new
AlipayTradeAppPayModel
();
//model.setBody("我是测试数据");
model
.
setSubject
(
orderPayVo
.
getBody
());
model
.
setOutTradeNo
(
orderPayVo
.
getOrderNo
());
model
.
setTimeoutExpress
(
"30m"
);
model
.
setTotalAmount
(
realAmount
.
toString
());
model
.
setProductCode
(
"QUICK_MSECURITY_PAY"
);
request
.
setBizModel
(
model
);
request
.
setNotifyUrl
(
notifyUrl
);
try
{
//这里和普通的接口调用不同,使用的是sdkExecute
AlipayTradeAppPayResponse
response
=
alipayClient
.
sdkExecute
(
request
);
System
.
out
.
println
(
response
.
getBody
());
//就是orderString 可以直接给客户端请求,无需再做处理。
Map
<
String
,
Object
>
rt
=
new
HashMap
<>();
rt
.
put
(
"payType"
,
orderPayVo
.
getType
());
rt
.
put
(
"payData"
,
response
.
getBody
());
return
ObjectRestResponse
.
succ
(
rt
);
}
catch
(
AlipayApiException
e
)
{
e
.
printStackTrace
();
}
return
ObjectRestResponse
.
createDefaultFail
();
}
//预授权冻结
public
ObjectRestResponse
fundAuthOrderAppFreeze
(
AlipayClient
alipayClient
)
throws
AlipayApiException
{
public
ObjectRestResponse
fundAuthOrderAppFreeze
(
AlipayClient
alipayClient
,
OrderPayVo
orderPayVo
)
throws
AlipayApiException
{
AlipayFundAuthOrderAppFreezeRequest
request
=
new
AlipayFundAuthOrderAppFreezeRequest
();
AlipayFundAuthOrderAppFreezeModel
model
=
new
AlipayFundAuthOrderAppFreezeModel
();
model
.
setOrderTitle
(
"支付宝预授权"
);
model
.
setOutOrderNo
(
"2018077735255938023"
);
//替换为实际订单号
model
.
setOutRequestNo
(
"2018077735255938232"
);
//替换为实际请求单号,保证每次请求都是唯一的
BigDecimal
realAmount
=
new
BigDecimal
(
orderPayVo
.
getAmount
().
toString
()).
divide
(
new
BigDecimal
(
"100"
),
2
,
BigDecimal
.
ROUND_UP
);
model
.
setOrderTitle
(
orderPayVo
.
getSubject
());
model
.
setOutOrderNo
(
orderPayVo
.
getOrderNo
());
//替换为实际订单号
model
.
setOutRequestNo
(
orderPayVo
.
getOrderNo
());
//替换为实际请求单号,保证每次请求都是唯一的
model
.
setPayeeUserId
(
SystemConfig
.
APP_ID
);
//payee_user_id,Payee_logon_id不能同时为空
model
.
setPayeeLogonId
(
"Payee_logon_id"
);
model
.
setProductCode
(
"PRE_AUTH_ONLINE"
);
//PRE_AUTH_ONLINE为固定值,不要替换
model
.
setAmount
(
"0.02"
);
model
.
setAmount
(
realAmount
.
toString
()
);
//需要支持信用授权,该字段必传
//model.setExtraParam("{\"category\":\"xxx\",\"outStoreCode\":\"charge001\",\"outStoreAlias\":\"充电桩北京路点\"}"); //outStoreAlias将在用户端信用守护、支付信息、账单详情页展示
//选填字段,指定支付渠道
//model.setEnablePayChannels("[{\"payChannelType\":\"PCREDIT_PAY\"},{\"payChannelType\":\"MONEY_FUND\"},{\"payChannelType\":\"CREDITZHIMA
\"}]");
model
.
setEnablePayChannels
(
"[{\"payChannelType\":\"PCREDIT_PAY\"},{\"payChannelType\":\"MONEY_FUND
\"}]"
);
request
.
setBizModel
(
model
);
request
.
setNotifyUrl
(
notifyUrl
);
//异步通知地址,必填,该接口只通过该参数进行异步通知
AlipayFundAuthOrderAppFreezeResponse
response
=
alipayClient
.
sdkExecute
(
request
);
//注意这里是sdkExecute,可以获取签名参数
if
(
response
.
isSuccess
()){
System
.
out
.
println
(
"调用成功"
);
log
.
info
(
"response: {}"
+
response
.
getBody
());
//签名后的参数,直接入参到
log
.
info
(
"调用成功"
);
log
.
info
(
"response: {}"
+
response
.
getBody
());
//签名后的参数,直接入参到
return
ObjectRestResponse
.
succ
(
response
.
getBody
());
}
else
{
System
.
out
.
println
(
"调用失败"
);
log
.
info
(
"调用失败"
);
return
ObjectRestResponse
.
createDefaultFail
();
}
}
//解冻预授权
public
void
fundAuthOrderUnFreeze
(
AlipayClient
alipayClient
)
throws
AlipayApiException
{
String
notifyUrl
=
SystemConfig
.
weixinHost
+
"/service/payment/notify/alipay"
;
AlipayFundAuthOrderUnfreezeRequest
request
=
new
AlipayFundAuthOrderUnfreezeRequest
();
AlipayFundAuthOrderUnfreezeModel
model
=
new
AlipayFundAuthOrderUnfreezeModel
();
model
.
setAuthNo
(
"2017120410002001390208978986"
);
// 支付宝资金授权订单号,在授权冻结成功时返回需要入库保存
...
...
@@ -380,7 +385,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
model
.
setStoreId
(
"test_store_id"
);
// 填写实际交易发生的终端编号,与预授权的outStoreCode保持一致即可
model
.
setBody
(
"预授权解冻转支付测试"
);
// 可填写备注信息
//如果需要从一笔授权中完成多笔订单支付,保持auth_no不变,不同订单根据outTradeNo进行标识,此时auth_confirm_mode不传或者传入NOT_COMPLETE;进行到最后一笔转支付时,auth_confirm_mode传入COMPLETE由支付宝完成剩余金额自动解冻,或者商户自行调用解冻接口将剩余金额解冻。
model
.
setAuthConfirmMode
(
"
COMPLETE"
);
//必须使用COMPLETE,传入该值用户剩余金额
会自动解冻
model
.
setAuthConfirmMode
(
"
NOT_COMPLETE"
);
//传入该值用户剩余金额不
会自动解冻
request
.
setBizModel
(
model
);
request
.
setNotifyUrl
(
""
);
//异步通知地址,必填,该接口只通过该参数进行异步通知
...
...
@@ -405,18 +410,21 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper,OrderPay> {
AlipayTradeRefundResponse
response
=
alipayClient
.
execute
(
request
);
log
.
info
(
"response: {}"
+
response
.
getBody
());
}
public
ObjectRestResponse
generatePayment
(
String
orderCode
,
String
description
,
String
payType
,
Integer
amount
)
{
ObjectRestResponse
objectRestResponse
=
ObjectRestResponse
.
createDefaultFail
();
switch
(
payType
)
{
case
SystemConfig
.
ALIPAY
:
objectRestResponse
=
generateAliPayment
(
orderCode
,
description
,
payType
,
amount
);
break
;
public
Object
generatePayment
(
OrderPayVo
orderPayVo
)
{
switch
(
orderPayVo
.
getType
())
{
case
1
:
//支付宝
ObjectRestResponse
objectRestResponse
=
generateAliPayment
(
orderPayVo
);
return
objectRestResponse
;
case
2
:
//微信
JSONObject
jsonObject
=
preparepay
(
orderPayVo
);
return
jsonObject
;
case
3
:
//银联
return
null
;
default
:
log
.
info
(
"不支持的付款类型,payType={}"
,
payType
);
log
.
info
(
"不支持的付款类型,payType={}"
,
orderPayVo
.
getType
()
);
break
;
}
return
objectRestResponse
;
return
null
;
}
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/controller/OrderPayController.java
View file @
d8329299
...
...
@@ -82,16 +82,15 @@ public class OrderPayController extends BaseController<OrderPayBiz,OrderPay> {
}
@PostMapping
(
value
=
"/app/notify/alipay"
)
@PostMapping
(
value
=
"/app/
unauth/
notify/alipay"
)
@IgnoreUserToken
public
String
alipayNotify
(){
return
baseBiz
.
alipayNotify
();
}
@GetMapping
(
value
=
"/app/generate_payment"
)
public
Object
generatePayment
(
@RequestParam
(
"orderCode"
)
String
orderCode
,
@RequestParam
(
"description"
)
String
description
,
@RequestParam
(
"payType"
)
String
payType
,
@RequestParam
(
"amount"
)
Integer
amount
)
{
Object
resp
=
baseBiz
.
generatePayment
(
orderCode
,
description
,
payType
,
amount
);
public
Object
generatePayment
(
OrderPayVo
orderPayVo
)
{
Object
resp
=
baseBiz
.
generatePayment
(
orderPayVo
);
return
resp
;
}
...
...
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/dto/VehiclePlanDto.java
View file @
d8329299
...
...
@@ -27,4 +27,7 @@ public class VehiclePlanDto extends PageParam {
@ApiModelProperty
(
value
=
"停车分公司Id"
)
private
Integer
parkBranchCompanyId
;
@ApiModelProperty
(
value
=
"所属分公司大区"
)
private
Integer
zoneId
;
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleController.java
View file @
d8329299
package
com
.
xxfc
.
platform
.
vehicle
.
rest
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.ace.cache.annotation.Cache
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONException
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
...
...
@@ -24,11 +23,13 @@ import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import
com.xxfc.platform.vehicle.common.RestResponse
;
import
com.xxfc.platform.vehicle.constant.ResCode.ResCode
;
import
com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus
;
import
com.xxfc.platform.vehicle.entity.*
;
import
com.xxfc.platform.vehicle.entity.Vehicle
;
import
com.xxfc.platform.vehicle.entity.VehicleBookInfo
;
import
com.xxfc.platform.vehicle.entity.VehicleBookRecord
;
import
com.xxfc.platform.vehicle.entity.VehicleWarningMsg
;
import
com.xxfc.platform.vehicle.pojo.*
;
import
com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -39,12 +40,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
tk.mybatis.mapper.entity.Example
;
import
tk.mybatis.mapper.weekend.WeekendSqls
;
import
java.util.*
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
xxfc
.
platform
.
vehicle
.
constant
.
VehicleConstant
.
USER_APP
;
import
static
com
.
xxfc
.
platform
.
vehicle
.
constant
.
VehicleConstant
.
USER_APP_NAME
;
...
...
@@ -417,9 +417,10 @@ public class VehicleController extends BaseController<VehicleBiz> {
}
@RequestMapping
(
value
=
"/getVehiclePlanList"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/
app/unauth/
getVehiclePlanList"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取排车信息"
)
@IgnoreClientToken
@IgnoreUserToken
public
ObjectRestResponse
<
Map
<
String
,
Object
>>
getVehiclePlanList
(
VehiclePlanDto
vehiclePlanDto
)
{
//获取统计信息
List
<
VehicleCountVo
>
vehicleCountVos
=
baseBiz
.
countVehicleByParam
(
vehiclePlanDto
);
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleMapper.xml
View file @
d8329299
...
...
@@ -425,6 +425,8 @@
<select
id=
"getAllVehicle"
parameterType=
"java.util.Map"
resultMap=
"searchModel"
>
select *
from vehicle v1
-- 所属分公司
LEFT JOIN branch_company bc2 ON v1.subordinate_branch = bc2.id
<where>
<if
test=
"startTime != null"
>
and v1.create_time between #{startTime} and #{endTime}
...
...
@@ -441,36 +443,46 @@
<if
test=
"parkBranchCompanyId != null"
>
and v1.park_branch_company_id = #{parkBranchCompanyId}
</if>
<if
test=
"zoneId !=null"
>
and bc2.zone_id = #{zoneId}
</if>
</where>
</select>
<select
id=
"countVehicleByParam"
parameterType=
"com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto"
resultType=
"com.xxfc.platform.vehicle.pojo.VehicleCountVo"
>
SELECT count(*) total ,
CASE
WHEN
travel_
status = 1 THEN
WHEN
v1.
status = 1 THEN
'1'
WHEN
travel_
status = 2 THEN
WHEN
v1.
status = 2 THEN
'2'
WHEN
travel_
status = 3 THEN
WHEN
v1.
status = 3 THEN
'3'
WHEN
travel_
status = 4 THEN
WHEN
v1.
status = 4 THEN
'4'
WHEN v1.status = 5 THEN
'5'
ELSE
'
-1
'
'
6
'
END travel_status,
CASE
WHEN travel_status = 1 THEN
'出行中'
WHEN travel_status = 2 THEN
'预约中'
WHEN travel_status = 3 THEN
'空闲中'
WHEN travel_status = 4 THEN
'保养中'
WHEN v1.status = 1 THEN
'正常运行'
WHEN v1.status = 2 THEN
'维修'
WHEN v1.status = 3 THEN
'报废'
WHEN v1.status = 4 THEN
'出车'
WHEN v1.status = 5 THEN
'保养'
ELSE
'不可用'
END detail
from vehicle v1
-- 所属分公司
LEFT JOIN branch_company bc1 ON v1.subordinate_branch = bc1.id
<where>
<if
test=
"startTime != null"
>
and v1.create_time between #{startTime} and #{endTime}
...
...
@@ -487,10 +499,15 @@
<if
test=
"parkBranchCompanyId != null"
>
and v1.park_branch_company_id = #{parkBranchCompanyId}
</if>
<if
test=
"zoneId !=null"
>
and bc1.zone_id = #{zoneId}
</if>
</where>
GROUP BY
travel_
status
GROUP BY
v1.
status
union all
SELECT count(*) total, '0' travel_status, '总数' detail from vehicle v2
-- 所属分公司
LEFT JOIN branch_company bc2 ON v2.subordinate_branch = bc2.id
<where>
<if
test=
"startTime != null"
>
and v2.create_time between #{startTime} and #{endTime}
...
...
@@ -507,44 +524,10 @@
<if
test=
"parkBranchCompanyId != null"
>
and v2.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
union all
SELECT count(*) total,
CASE
WHEN status = 1 THEN
'5'
WHEN status = 2 THEN
'6'
ELSE
'7'
END travel_status,
CASE
WHEN status = 1 THEN
'正常运行'
WHEN status = 2 THEN
'维修'
ELSE
'报废'
END travel_status
FROM vehicle v3
<where>
<if
test=
"startTime != null"
>
and v3.create_time between #{startTime} and #{endTime}
</if>
<if
test=
"numberPlate != null"
>
and v3.number_plate = #{numberPlate}
</if>
<if
test=
"status != null"
>
and v3.status = #{status}
</if>
<if
test=
"subordinateBranch != null"
>
and v3.subordinate_branch = #{subordinateBranch}
</if>
<if
test=
"parkBranchCompanyId != null"
>
and v3.park_branch_company_id = #{parkBranchCompanyId}
<if
test=
"zoneId !=null"
>
and bc2.zone_id = #{zoneId}
</if>
</where>
GROUP BY status
</select>
<!-- 查询可用车辆/车型 的公用 from 和 where 部分条件 -->
...
...
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleWarningMsgMapper.xml
View file @
d8329299
...
...
@@ -29,6 +29,7 @@
select w.*
from vehicle_warning_msg w
left join vehicle v on w.vehicle_id = v.id
LEFT JOIN branch_company bc2 ON v.subordinate_branch = bc2.id
<where>
<if
test=
"vehicleId != null"
>
and w.vehicle_id = #{vehicleId}
...
...
@@ -48,6 +49,9 @@
<if
test=
"parkBranchCompanyId != null"
>
and v.park_branch_company_id = #{parkBranchCompanyId}
</if>
<if
test=
"zoneId !=null"
>
and bc2.zone_id = #{zoneId}
</if>
</where>
</select>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment