From 0544913da2cca58f690f5f12966c214ff08eda7e Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 15 九月 2025 13:57:45 +0800
Subject: [PATCH] 111
---
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 236 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 153 insertions(+), 83 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
index a3b7d72..7408e89 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
@@ -37,6 +37,7 @@
import nonapi.io.github.classgraph.json.Id;
import org.apache.poi.sl.image.ImageHeaderEMF;
import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -135,11 +136,11 @@
if(Objects.isNull(category)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍙傛暟閰嶇疆閿欒,璇疯仈绯荤鐞嗗憳");
}
+ orders.setPayAccount(orders.getEstimatedAccount());
+ Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
+ orders.setReceiveAccount(orders.getPayAccount() - tcje);
//鐢ㄩ璁㈠崟
if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
- orders.setPayAccount(orders.getEstimatedAccount());
- Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
- orders.setReceiveAccount(orders.getPayAccount() - tcje);
orders.setStatus(Constants.ordersStatus.waitPay.getKey());
orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
//鍞よ捣鏀粯涓氬姟
@@ -150,7 +151,7 @@
}
orders.setOriginPriceNum1(orders.getPriceNum1());
orders.setOriginPriceNum2(orders.getPriceNum2());
- orders.setOriginEstimatedAccount(orders.getOriginEstimatedAccount());
+ orders.setOriginEstimatedAccount(orders.getEstimatedAccount());
orders.setConfirmOtherFee(0l);
ordersMapper.insert(orders);
@@ -175,7 +176,7 @@
//鍒涘缓鎿嶄綔鏃ュ織
Constants.OrdersLog ordersLog = Constants.OrdersLog.UPLOAD;
- String orderTypeInfo = "鐢ㄥ伐鍗�";
+ String orderTypeInfo = Constants.getOrderInfo(orders);/*"鐢ㄥ伐鍗�";
if(!Constants.equalsInteger(orders.getType(),Constants.ZERO)){
orderTypeInfo = Constants.equalsInteger(orders.getType(),Constants.ONE)?"鐢ㄨ溅鍗�":"閫侀鍗�";
}else{
@@ -184,7 +185,7 @@
}else{
orderTypeInfo = orderTypeInfo + (Constants.equalsInteger(orders.getWorkType(),Constants.ONE)?"-鍒嗘嫞宸�":"-鍖呰宸�");
}
- }
+ }*/
String logInfo = ordersLog.getInfo()
.replace("{param}",orderTypeInfo);
this.saveOrderLog(orders,ordersLog,
@@ -261,9 +262,13 @@
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- if( (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.TWO) &&
- ( Constants.equalsInteger(orders.getCarType(),Constants.ZERO) || Constants.equalsInteger(orders.getCarType(),Constants.ONE) ))
- || (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ONE))
+ Integer priceNum2 = orders.getPriceNum2();
+ if( (Constants.equalsInteger(orders.getType(),Constants.ZERO)
+ && Constants.equalsInteger(orders.getWorkType(),Constants.TWO) &&
+ ( Constants.equalsInteger(orders.getCarType(),Constants.ZERO)
+ || Constants.equalsInteger(orders.getCarType(),Constants.ONE) ))
+ || (Constants.equalsInteger(orders.getType(),Constants.ZERO)
+ && Constants.equalsInteger(orders.getWorkType(),Constants.ONE))
){
if(Objects.isNull(orders.getPriceNum2())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -274,7 +279,7 @@
orders.setTotalDays(DateUtil.daysBetweenDates(orders.getEndDate(),orders.getStartDate())+1);
if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
if(Constants.equalsInteger(orders.getWorkType(),Constants.TWO)
- && ( Objects.isNull(orders.getCarType()) ) ){
+ && ( Objects.isNull(orders.getCarType()) ) ){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
}else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
@@ -315,6 +320,7 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
Long sumPrice = 0L;
+// List<CateringDTO> cateringDTOList = new ArrayList<>();
for (CateringDTO cateringDTO:orders.getCateringDTOList()) {
if(Objects.isNull(cateringDTO)
|| StringUtils.isEmpty(cateringDTO.getName())
@@ -337,15 +343,19 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄩ鏍囧噯鏁版嵁閿欒锛岃鍒锋柊閲嶈瘯");
}
sumPrice = sumPrice + (cateringDTO.getPrice() * cateringDTO.getNum()) ;
+
}
if(new BigDecimal(sumPrice.toString()).compareTo(orders.getPrice())!=Constants.ZERO){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍗曚环璁$畻閿欒");
}
+
+
orders.setWayInfo(JSONObject.toJSONString(orders.getCateringDTOList()));
}
if(!orders.getEstimatedAccount().equals(this.getTotal(orders))){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閲戦璁$畻閿欒!");
}
+ orders.setPriceNum2(priceNum2);
}
@@ -398,9 +408,6 @@
}else{
throw new BusinessException(ResponseStatus.NOT_ALLOWED);
}
-
-
-
}
@@ -448,7 +455,7 @@
orders.setOriginPriceNum1(orders.getPriceNum1());
orders.setOriginPriceNum2(orders.getPriceNum2());
orders.setOriginEstimatedAccount(orders.getOriginEstimatedAccount());
- orders.setConfirmOtherFee(0l);
+ orders.setConfirmOtherFee(0L);
ordersMapper.updateById(orders);
}
@@ -641,9 +648,9 @@
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(cateringDTOList)){
for (CateringDTO cateringDTO:cateringDTOList) {
if(StringUtils.isEmpty(orders.getOrderContent())){
- orders.setOrderContent(cateringDTO.getName()+cateringDTO.getPrice()+" 闇�"+cateringDTO.getNum()+"浠�");
+ orders.setOrderContent(cateringDTO.getName()+(new BigDecimal(cateringDTO.getPrice().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP))+" 闇�"+cateringDTO.getNum()+"浠�");
}else{
- orders.setOrderContent(orders.getOrderContent()+" | "+cateringDTO.getName()+cateringDTO.getPrice()+" 闇�"+cateringDTO.getNum()+"浠�");
+ orders.setOrderContent(orders.getOrderContent()+" | "+cateringDTO.getName()+(new BigDecimal(cateringDTO.getPrice().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP))+" 闇�"+cateringDTO.getNum()+"浠�");
}
}
}
@@ -682,15 +689,15 @@
//鏌ヨ鐢ㄦ埛鏄惁鏈夊搴旇韩浠�
if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
if(!Constants.equalsInteger(member.getWorkerIdentity(),Constants.TWO)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ繕鏈敞鍐岃鏈嶅姟锛岃鍓嶅線涓汉淇℃伅涓彁浜ょ敵璇枫��");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ繕鏈敞鍐岃鏈嶅姟锛岃鍓嶅線\"鎴戠殑\"椤甸潰鎻愪氦鐢宠");
}
}else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
if(!Constants.equalsInteger(member.getDriverIdentity(),Constants.TWO)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ繕鏈敞鍐岃鏈嶅姟锛岃鍓嶅線涓汉淇℃伅涓彁浜ょ敵璇枫��");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ繕鏈敞鍐岃鏈嶅姟锛岃鍓嶅線\"鎴戠殑\"椤甸潰鎻愪氦鐢宠");
}
}else{
if(!Constants.equalsInteger(member.getChefIdentity(),Constants.TWO)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ繕鏈敞鍐岃鏈嶅姟锛岃鍓嶅線涓汉淇℃伅涓彁浜ょ敵璇枫��");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ繕鏈敞鍐岃鏈嶅姟锛岃鍓嶅線\"鎴戠殑\"椤甸潰鎻愪氦鐢宠");
}
}
@@ -756,6 +763,9 @@
if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟淇敼寰呯‘璁わ紝鏃犳硶杩涜璇ユ搷浣�");
}
+ if(orders.getStartDate().getTime()>System.currentTimeMillis()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鏈埌寮�濮嬫椂闂存棤娉曡繘琛岃鎿嶄綔");
+ }
orders.setUpdateTime(new Date());
orders.setStatus(Constants.ordersStatus.doing.getKey());
orders.setWorkStartTime(new Date());
@@ -796,6 +806,8 @@
model.setPriceNum1(orders.getTotalDays());
}
Long total = this.getTotal(orders);
+ Long tcje = Long.valueOf(new BigDecimal(total.toString()).multiply(model.getPlatformRata()).intValue());
+ Long reciveTotal = total - tcje;
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getStartDate,model.getStartDate())
.set(Orders::getEndDate,model.getEndDate())
@@ -805,6 +817,7 @@
.set(Orders::getUpdateTime,new Date())
.set(Orders::getEstimatedAccount,total)
.set(Orders::getOriginEstimatedAccount,total)
+ .set(Orders::getReceiveAccount,reciveTotal)
.eq(Orders::getId,orders.getId())
);
//鍒涘缓鎿嶄綔鏃ュ織
@@ -841,21 +854,28 @@
public Long getTotal(Orders orders){
if(Objects.isNull(orders)
||Objects.isNull(orders.getPrice())
- ||Objects.isNull(orders.getPriceNum1())){
+ ||Objects.isNull(orders.getPriceNum1())
+ ||Objects.isNull(orders.getType())
+ ){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
+ BigDecimal bigDecimalPrice = BigDecimal.ZERO;
if(
(Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ZERO ))
- || Constants.equalsInteger(orders.getType(),Constants.ONE)
+ || (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Objects.nonNull(orders.getCarType()) && Constants.equalsInteger(orders.getWorkType(),Constants.TWO ) && Constants.equalsInteger(orders.getCarType(),Constants.TWO))
+ || Constants.equalsInteger(orders.getType(),Constants.ONE)
|| Constants.equalsInteger(orders.getType(),Constants.TWO)
){
- orders.setPriceNum2(Constants.ONE);
+ bigDecimalPrice = orders.getPrice().multiply(new BigDecimal(orders.getPriceNum1().toString()));
}else{
if(Objects.isNull(orders.getPriceNum2())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
+ bigDecimalPrice = orders.getPrice().multiply(new BigDecimal(orders.getPriceNum1().toString())).multiply(new BigDecimal(orders.getPriceNum2().toString()));
}
- BigDecimal bigDecimalPrice = orders.getPrice().multiply(new BigDecimal(orders.getPriceNum1().toString())).multiply(new BigDecimal(orders.getPriceNum2().toString()));
+ if(Objects.nonNull(orders.getConfirmOtherFee())){
+ bigDecimalPrice = bigDecimalPrice.add(new BigDecimal(orders.getConfirmOtherFee().toString()));
+ }
return bigDecimalPrice.divide(new BigDecimal("1"),0,BigDecimal.ROUND_HALF_UP).longValue();//orders.getPrice() * orders.getPriceNum1() * orders.getPriceNum2();
}
@@ -905,24 +925,35 @@
}
orders.setPriceNum1(confirmUpdOrderDTO.getPriceNum1());
orders.setPriceNum2(confirmUpdOrderDTO.getPriceNum2());
+ orders.setConfirmOtherFee(confirmUpdOrderDTO.getConfirmOtherFee());
Long totalFee = this.getTotal(orders);//閲嶆柊璁$畻璐圭敤
- Long payFee = totalFee+Constants.formatLongNum(confirmUpdOrderDTO.getConfirmOtherFee());//閲嶆柊璁$畻璐圭敤
- BigDecimal recFee = new BigDecimal(payFee).multiply((new BigDecimal(1).subtract(Constants.formatBigDecimal(orders.getPlatformRata())))).setScale(0, RoundingMode.HALF_UP) ;
+ Long payFee = totalFee;//閲嶆柊璁$畻璐圭敤
+ Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
+ Long reciveTotal = payFee - tcje;
+ //BigDecimal recFee = new BigDecimal(payFee).multiply((new BigDecimal(1).subtract(Constants.formatBigDecimal(orders.getPlatformRata())))).setScale(0, RoundingMode.HALF_UP) ;
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getPriceNum1,confirmUpdOrderDTO.getPriceNum1())
.set(Orders::getPriceNum2,confirmUpdOrderDTO.getPriceNum2())
.set(Orders::getConfirmFeeRemark,confirmUpdOrderDTO.getConfirmFeeRemark())
.set(Orders::getConfirmOtherFee,confirmUpdOrderDTO.getConfirmOtherFee())
.set(Orders::getEstimatedAccount,totalFee)
+ .set(Orders::getStatus,Constants.ordersStatus.feeconfirm.getKey())
.set(Orders::getPayAccount,payFee)
- .set(Orders::getReceiveAccount,recFee.longValue())
+ .set(Orders::getReceiveAccount,reciveTotal)
.set(Orders::getUpdateTime,new Date())
+ .set(Orders::getConfirmFeeTime,new Date())
.eq(Orders::getId,orders.getId())
);
//璁板綍鍚屾剰淇敼鐨勬棩蹇�
- Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_AGREE;
+ Constants.OrdersLog ordersLog = Constants.OrdersLog.FEE_CONFIRM;
this.saveOrderLog(orders,ordersLog,
ordersLog.getInfo(),confirmUpdOrderDTO.getMember().getId(),null);
+
+ //寰俊閫氱煡
+ Member member = memberMapper.selectById(orders.getReleaseMemberId());
+ if(Objects.nonNull(member)&& org.apache.commons.lang3.StringUtils.isNotBlank(member.getOpenid())){
+ sendWxMessage.waitPayMessage(member.getOpenid(),orders);
+ }
}
@@ -1079,13 +1110,13 @@
.eq(Orders::getReleaseMemberId,orders.getReleaseMemberId()));
//鏌ヨ鍙栨秷娆℃暟
if(totalCancelTimes<=cancelTimes){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟,濡傞渶澶勭悊璇疯仈绯诲鏈�");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟");
}
Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode());
Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
if(hours < cancelTimeHour){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟锛屽闇�澶勭悊璇疯仈绯诲鏈�");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟");
}
if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
@@ -1125,6 +1156,7 @@
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(members)){
List<String> openIdList = members.stream().map(i->i.getOpenid()).collect(Collectors.toList());
//鍙戦�佸井淇¢�氱煡
+ orders.setCancelTime(new Date());
sendWxMessage.cancelMessage(openIdList,orders,Constants.ONE);
}
@@ -1162,16 +1194,17 @@
.eq(OrderLog::getMemberId,member.getId()));
//鏌ヨ鍙栨秷娆℃暟
if(totalCancelTimes<=cancelTimes){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟,濡傞渶澶勭悊璇疯仈绯诲鏈�");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟");
}
Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIME).getCode());
Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
if(hours < cancelTimeHour){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟锛屽闇�澶勭悊璇疯仈绯诲鏈�");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟");
}
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getUpdateTime,new Date())
+ .set(Orders::getCancelTime,new Date())
.set(Orders::getStatus,Constants.ordersStatus.wait.getKey())
.set(Orders::getAcceptMemberId,null)
.set(Orders::getAcceptType,null)
@@ -1192,6 +1225,7 @@
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(members)){
List<String> openIdList = members.stream().map(i->i.getOpenid()).collect(Collectors.toList());
//鍙戦�佸井淇¢�氱煡
+ orders.setCancelTime(new Date());
sendWxMessage.cancelMessage(openIdList,orders,Constants.TWO);
}
//鐭俊閫氱煡
@@ -1217,9 +1251,16 @@
if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.doing.getKey())){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
+ if(Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())){
+ if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.doing.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
+ }
+ }else{
+ if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.feeconfirm.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
+ }
}
+
if(!Constants.equalsInteger(orders.getReleaseMemberId(),doneOrderDTO.getMember().getId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
}
@@ -1235,7 +1276,8 @@
if(!Constants.equalsInteger(orders.getType(),Constants.TWO)){
orders.setPayAccount(doneOrderDTO.getAmount());
//鎻愭垚閲戦
- Long tcje = (new BigDecimal(orders.getPayAccount().toString()).multiply(Constants.formatBigDecimal(orders.getPlatformRata())).setScale(0,RoundingMode.HALF_UP).longValue());
+// Long tcje = (new BigDecimal(orders.getPayAccount().toString()).multiply(Constants.formatBigDecimal(orders.getPlatformRata())).setScale(0,RoundingMode.HALF_UP).longValue());
+ Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
orders.setReceiveAccount(orders.getPayAccount() - tcje);
orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
ordersMapper.updateById(orders);
@@ -1309,21 +1351,28 @@
}
if(!((( Constants.equalsInteger(orders.getType(),Constants.TWO) && Constants.equalsInteger(orders.getStatus(),Constants.ZERO) )
- || ( !Constants.equalsInteger(orders.getType(),Constants.TWO) && Constants.equalsInteger(orders.getStatus(),Constants.THREE) ))
+ || ( !Constants.equalsInteger(orders.getType(),Constants.TWO) && Constants.equalsInteger(orders.getStatus(),Constants.FIVE) ))
&& Constants.equalsInteger(orders.getPayStatus(),Constants.ZERO) )){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆");
}
+ Member payMember = memberMapper.selectById(reusePayDTO.getMember().getId());
+ if(Objects.isNull(payMember)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛淇℃伅寮傚父");
+ }
+
OrderReleaseVO orderReleaseVO = new OrderReleaseVO();
if(!Constants.equalsInteger(orders.getType(),Constants.TWO)){
orders.setPayAccount(reusePayDTO.getAmount());
//鎻愭垚閲戦
Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
orders.setReceiveAccount(orders.getPayAccount() - tcje);
+ orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
+ ordersMapper.updateById(orders);
}
orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
ordersMapper.updateById(orders);
//鍞よ捣鏀粯涓氬姟
- Object object = this.getWxPayResponse(orders,orders.getMember().getOpenid());
+ Object object = this.getWxPayResponse(orders,payMember.getOpenid());
orderReleaseVO.setObject(object);
orderReleaseVO.setId(orders.getId());
return orderReleaseVO;
@@ -1387,6 +1436,7 @@
List<String> openIdList = members.stream().map(i->i.getOpenid()).collect(Collectors.toList());
orders.setCancelTime(new Date());
//鍙戦�佸井淇¢�氱煡
+ orders.setCancelTime(new Date());
sendWxMessage.cancelMessage(openIdList,orders,Constants.ZERO);
}
//鐭俊閫氱煡鍙戝崟鏂�
@@ -1486,7 +1536,7 @@
}
}else{
//闈炵敤椁愮被璁㈠崟
- if(!Constants.equalsInteger(orders.getStatus(),Constants.THREE)){
+ if(!Constants.equalsInteger(orders.getStatus(),Constants.FIVE)){
return ("澶勭悊鎴愬姛!");
}else{
//澶勭悊鏀粯瀹屾垚閫昏緫
@@ -1566,9 +1616,7 @@
Utils.MP.blankToNull(pageWrap.getModel());
Orders model = pageWrap.getModel();
if(Objects.isNull(model)
- || Objects.isNull(model.getQueryLat())
- || Objects.isNull(model.getQueryLgt())
- || Objects.isNull(model.getQueryMyOrderType())
+ || Objects.isNull(model.getQueryMyOrderType())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
@@ -1613,24 +1661,29 @@
.select("c2.name",Orders::getTransportTypeName)
.leftJoin(" category c1 on t.category_id = c1.id ")
.leftJoin(" category c2 on t.TRANSPORT_TYPE_ID = c2.id ")
- .select(" case when T.LGT IS NULL OR T.LAT IS NULL THEN 0 " +
- " when t.TYPE = 0 then CONVERT( ST_Distance_Sphere ( POINT ( t.LGT, t.LAT ), POINT ( "+workerLgt+", "+workerLat+" )) /1000,DECIMAL(15,2)) " +
- " when t.TYPE = 1 then CONVERT( ST_Distance_Sphere ( POINT ( t.LGT, t.LAT ), POINT ( "+driverLgt+", "+driverLat+" )) /1000,DECIMAL(15,2)) " +
- " else CONVERT( ST_Distance_Sphere ( POINT ( t.LGT, t.LAT ), POINT ( "+chefLgt+", "+chefLat+" )) /1000,DECIMAL(15,2)) end " , Orders::getDistance)
- .eq(Objects.nonNull(model.getType()),Orders::getType,model.getType());
+ .eq(Objects.nonNull(model.getType()),Orders::getType,model.getType())
+ .eq(Objects.nonNull(model.getCommentStatus()),Orders::getCommentStatus,model.getCommentStatus());;
+ if(!(Objects.isNull(model.getQueryLat())||Objects.isNull(model.getQueryLgt()))){
+ queryWrapper.select(" case when T.LGT IS NULL OR T.LAT IS NULL THEN 0 " +
+ " when t.TYPE = 0 then CONVERT( ST_Distance_Sphere ( POINT ( t.LGT, t.LAT ), POINT ( "+workerLgt+", "+workerLat+" )) /1000,DECIMAL(15,2)) " +
+ " when t.TYPE = 1 then CONVERT( ST_Distance_Sphere ( POINT ( t.LGT, t.LAT ), POINT ( "+driverLgt+", "+driverLat+" )) /1000,DECIMAL(15,2)) " +
+ " else CONVERT( ST_Distance_Sphere ( POINT ( t.LGT, t.LAT ), POINT ( "+chefLgt+", "+chefLat+" )) /1000,DECIMAL(15,2)) end " , Orders::getDistance);
+ }
if(Objects.nonNull(model.getQueryMyOrderType())){
if(Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ZERO)){
//鍙戝崟鏂� 鎴戠殑璁㈠崟
queryWrapper.eq(Orders::getReleaseMemberId,model.getMember().getId());
- queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus,model.getStatus());
+ queryWrapper.eq(Objects.nonNull(model.getStatus())&&!Constants.equalsInteger(model.getStatus(),Constants.ordersStatus.waitPay.getKey()),Orders::getStatus,model.getStatus());
+ queryWrapper.in(Objects.nonNull(model.getStatus())&&Constants.equalsInteger(model.getStatus(),Constants.ordersStatus.waitPay.getKey()),Orders::getStatus,model.getStatus(),Constants.ordersStatus.feeconfirm.getKey());
queryWrapper.orderByDesc(Orders::getCreateTime);
}else if(Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ONE)){
//鎺ュ崟鏂� 鎴戠殑璁㈠崟
queryWrapper.eq(Orders::getAcceptMemberId,model.getMember().getId());
queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus,model.getStatus());
+// queryWrapper.in(Objects.nonNull(model.getStatus())&&Constants.equalsInteger(model.getStatus(),Constants.ordersStatus.waitPay.getKey()),Orders::getStatus,model.getStatus(),Constants.ordersStatus.feeconfirm.getKey());
queryWrapper.orderByDesc(Orders::getAcceptTime);
}else{
- //鏌ヨ鐢ㄦ埛鐨勬帴鍗曟潈閲�
+ //鏌ヨ鐢ㄦ埛鐨勬帴鍗曟潈閲� 鎺ュ崟澶у巺
ReceiveWeight receiveWeight = receiveWeightMapper.selectOne(new QueryWrapper<ReceiveWeight>().lambda().eq(ReceiveWeight::getDeleted,Constants.ZERO).apply(" RECEIVE_MIN < "+model.getMember().getReceiveNum()+" and RECEIVE_MAX > " + model.getMember().getReceiveNum()).last(" limit 1 "));
if(Objects.nonNull(receiveWeight)){
queryWrapper.apply(" DATE_ADD(t.CREATE_TIME, INTERVAL "+receiveWeight.getDelayTime()+" MINUTE) < now() ");
@@ -1651,38 +1704,13 @@
IPage<Orders> iPage = ordersMapper.selectJoinPage(page,Orders.class,queryWrapper);
for (Orders orders:iPage.getRecords()) {
this.getPriceUnit(orders);
+ if(Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ZERO)||Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ONE)){
+ orders.setStatusName(
+ Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ZERO)?Constants.ordersStatus.getName(orders.getStatus()):
+ Constants.ordersStatus.getInfo(orders.getStatus())
+ );
+ }
}
-// if(Objects.nonNull(model.getQueryMyOrderType())&&Constants.equalsInteger(model.getQueryMyOrderType(),Constants.TWO)){
-// if(Constants.equalsInteger(model.getMember().getUseIdentity(),Constants.ONE)){
-// model.getMember().setWorkerIdentityModel(
-// identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-// .eq(IdentityInfo::getMemberId,model.getMember().getId())
-// .eq(IdentityInfo::getType,Constants.ZERO)
-// .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-// .last("limit 1")
-// )
-// );
-// model.getMember().setDriverIdentityModel(
-// identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-// .eq(IdentityInfo::getMemberId,model.getMember().getId())
-// .eq(IdentityInfo::getType,Constants.ONE)
-// .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-// .last("limit 1")
-// )
-// );
-// model.getMember().setChefIdentityModel(
-// identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-// .eq(IdentityInfo::getMemberId,model.getMember().getId())
-// .eq(IdentityInfo::getType,Constants.TWO)
-// .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-// .last("limit 1")
-// )
-// );
-// }
-// for (Orders orders:iPage.getRecords()) {
-// this.getDistance(model.getMember(),orders);
-// }
-// }
return PageData.from(iPage);
}
@@ -1782,12 +1810,25 @@
orders.setStatusName(Constants.ordersStatus.getName(orders.getStatus()));
orders.setCancelStatus(Constants.ZERO);
if(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())&&Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
- orders.setConfirmCountdown(DateUtil.getXMinuteAfterDate(orders.getIsUpdateTime(),60).getTime() - System.currentTimeMillis());
+ String autoConfirmTime = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.AUTO_CONFIRM).getCode();
+ orders.setConfirmCountdown(DateUtil.getXMinuteAfterDate(orders.getIsUpdateTime(),Integer.valueOf(autoConfirmTime)).getTime() - System.currentTimeMillis());
+ if(orders.getConfirmCountdown()<=Constants.ZERO){
+ orders.setConfirmCountdown(0L);
+ }
}
-
+ if(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.waitPay.getKey())){
+ orders.setCancelCountdown(DateUtil.getXMinuteAfterDate(orders.getCreateTime(),15).getTime() - System.currentTimeMillis());
+ if(orders.getCancelCountdown()<=Constants.ZERO){
+ orders.setCancelCountdown(0L);
+ }
+ }
this.getPriceUnit(orders);
+ orders.setCanStart(Constants.ZERO);
if(orders.getStatus() <= Constants.ordersStatus.accept.getKey()){
if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
+ if(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())&&orders.getStartDate().getTime() <= System.currentTimeMillis()){
+ orders.setCanStart(Constants.ONE);
+ }
//鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗
Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode());
Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
@@ -1886,7 +1927,7 @@
BigDecimal lat = orders.getLat();
BigDecimal lgt = orders.getLgt();
//鏌ヨ鑼冨洿鍐呯殑浼氬憳
- List<Member> memberList = memberMapper.getList(lgt,lat,orders.getType());
+ List<Member> memberList = memberMapper.getList(lgt,lat,orders.getType(),orders.getReleaseMemberId());
// memberMapper.selectList(new MPJLambdaWrapper<Member>()
// .select(Member::getId,Member::getScore)
// .select(" ifnull((select r.level from receive_weight r where r.RECEIVE_MAX > RECEIVE_NUM and RECEIVE_NUM > r.RECEIVE_MIN limit 1 ),0) " ,Member::getLevel)
@@ -1908,7 +1949,7 @@
Member releaseMember = memberMapper.selectById(orders.getReleaseMemberId());
//鑷姩娲惧崟
Orders model = ordersMapper.selectById(orders.getId());
- if(!Constants.equalsInteger(model.getStatus(),Constants.ONE) || Constants.equalsInteger(model.getId(),model.getReleaseMemberId())){
+ if(!Constants.equalsInteger(model.getStatus(),Constants.ONE) || Constants.equalsInteger(releaseMember.getId(),model.getReleaseMemberId())){
//濡傛灉璁㈠崟宸插垹闄� 骞朵笖闈炲彂甯冩柟
continue;
}
@@ -1992,7 +2033,8 @@
public void autoConfirm(){
String autoConfirmTime = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.AUTO_CONFIRM).getCode();
List<Orders> ordersList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
- .eq(Orders::getStatus,Constants.ordersStatus.accept).eq(Orders::getIsUpdate,Constants.ONE)
+ .eq(Orders::getStatus,Constants.ordersStatus.accept.getKey())
+ .eq(Orders::getIsUpdate,Constants.ONE)
.apply(" DATE_ADD(IS_UPDATE_TIME, INTERVAL "+autoConfirmTime+" MINUTE) < now() ")
.last("limit 100")
);
@@ -2006,6 +2048,34 @@
//璁板綍鍚屾剰淇敼鐨勬棩蹇�
Constants.OrdersLog ordersLog = Constants.OrdersLog.AUTO_AGREE;
this.saveOrderLog(orders,ordersLog,
+ ordersLog.getInfo(),null,null);
+ }
+ }
+ }
+
+
+
+ //鑷姩鍙栨秷 璁㈠崟鏈敮浠�
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public void autoCancelWaitPay(){
+ List<Orders> ordersList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getStatus,Constants.ordersStatus.waitPay)
+ .apply(" DATE_ADD(CREATE_TIME, INTERVAL 15 MINUTE) < now() ")
+ .last("limit 100")
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ordersList)){
+ for (Orders orders:ordersList) {
+ ordersMapper.update(new UpdateWrapper<Orders>().lambda()
+ .set(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
+ .set(Orders::getUpdateTime,DateUtil.getCurrDateTime())
+ .set(Orders::getCancelTime,DateUtil.getCurrDateTime())
+ .set(Orders::getCancelType,Constants.TWO)
+ .eq(Orders::getId,orders.getId())
+ );
+ //璁板綍鍚屾剰淇敼鐨勬棩蹇�
+ Constants.OrdersLog ordersLog = Constants.OrdersLog.SYSTEM_CANCEL;
+ this.saveOrderLog(orders,ordersLog,
ordersLog.getInfo(),orders.getAcceptMemberId(),null);
}
}
--
Gitblit v1.9.3