From 24e49ffa60cc9b138bd0c6ed912a61ecc9f1aa6e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期六, 19 七月 2025 10:32:14 +0800
Subject: [PATCH] 前端
---
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 294 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 186 insertions(+), 108 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 891cdd5..a640402 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
@@ -17,6 +17,7 @@
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.dto.*;
+import com.doumee.dao.vo.OrderReleaseVO;
import com.doumee.service.business.OrdersService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -42,10 +43,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.UUID;
+import java.util.*;
import java.util.concurrent.TimeUnit;
/**
@@ -91,11 +89,21 @@
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
- public Object create(Orders orders) {
+ public OrderReleaseVO create(Orders orders) {
+ OrderReleaseVO orderReleaseVO = new OrderReleaseVO();
Object objects = null;
this.initVerification(orders);
orders.setCreateTime(new Date());
+ orders.setUpdateTime(orders.getUpdateTime());
orders.setPayStatus(Constants.ZERO);
+ orders.setDeleted(Constants.ZERO);
+ orders.setReleaseMemberId(orders.getMember().getId());
+ //鏌ヨ鎵嬬画璐�
+ Category platformCategory = categoryMapper.selectOne(new QueryWrapper<Category>().lambda().eq(Category::getType,Constants.THREE).eq(Category::getName,orders.getType()).eq(Category::getDeleted,Constants.ZERO).last("limit 1 "));
+ if(Objects.isNull(platformCategory)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈缃钩鍙伴厤缃俊鎭�");
+ }
+ orders.setPlatformRata(new BigDecimal(platformCategory.getDetail()).divide(new BigDecimal("100")));
//璁㈠崟缂栧彿
orders.setCode(this.getNextCode(orders.getType()));
Category category = categoryMapper.selectOne(new QueryWrapper<Category>().lambda()
@@ -111,15 +119,16 @@
orders.setStatus(Constants.ordersStatus.waitPay.getKey());
//鍞よ捣鏀粯涓氬姟
objects = this.getWxPayResponse(orders,orders.getMember().getOpenid());
+ orderReleaseVO.setObject(objects);
}else{
orders.setStatus(Constants.ordersStatus.wait.getKey());
}
ordersMapper.insert(orders);
+ orderReleaseVO.setId(orders.getId());
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(orders.getMultifileList())){
List<Multifile> multifileList = orders.getMultifileList();
for (Multifile multifile:multifileList) {
if(Objects.isNull(multifile)
- || Objects.isNull(multifile.getObjType())
|| StringUtils.isEmpty(multifile.getFileurl())
|| StringUtils.isEmpty(multifile.getName())){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢淇℃伅閿欒");
@@ -132,7 +141,7 @@
multifileMapper.insert(multifileList);
}
//鏇存柊鐢ㄦ埛鍙戝崟閲�
- memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum," (receive_num + 1 )").eq(Member::getId,orders.getMember().getId()));
+ memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" receive_num = ( receive_num + 1 )").eq(Member::getId,orders.getMember().getId()));
//鍒涘缓鎿嶄綔鏃ュ織
Constants.OrdersLog ordersLog = Constants.OrdersLog.UPLOAD;
@@ -150,7 +159,7 @@
.replace("{param}",orderTypeInfo);
this.saveOrderLog(orders,ordersLog,
logInfo,orders.getReleaseMemberId(),null);
- return objects;
+ return orderReleaseVO;
}
private Object getWxPayResponse(Orders orders,String openid){
@@ -210,12 +219,11 @@
|| Objects.isNull(orders.getStartDate())
|| Objects.isNull(orders.getEndDate())
|| StringUtil.isBlank(orders.getLocation())
- || StringUtil.isBlank(orders.getLocationRemark())
+ || (!Constants.equalsInteger(Constants.ONE,orders.getType())&&StringUtil.isBlank(orders.getLocationRemark()))
|| StringUtil.isBlank(orders.getLinkPhone())
|| Objects.isNull(orders.getLat())
|| Objects.isNull(orders.getLgt())
|| Objects.isNull(orders.getCategoryId())
- || Objects.isNull(orders.getTotalDays())
|| (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Objects.isNull(orders.getWorkType()))
|| Objects.isNull(orders.getPriceNum1())
|| Objects.isNull(orders.getEstimatedAccount())
@@ -223,19 +231,20 @@
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- if((Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ZERO ))
- || (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.TWO)
- &&Constants.equalsInteger(orders.getCarType(),Constants.TWO))
- || Constants.equalsInteger(orders.getType(),Constants.ONE)
+ 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);
+ }
+ }else{
orders.setPriceNum2(Constants.ONE);
}
- if(Objects.isNull(orders.getPriceNum2())){
- throw new BusinessException(ResponseStatus.BAD_REQUEST);
- }
+ 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)){
@@ -254,9 +263,9 @@
for (WayInfoDTO wayInfoDTO:orders.getWayInfoDTOList()) {
if(Objects.isNull(wayInfoDTO)
||StringUtils.isEmpty(wayInfoDTO.getLocation())
- ||StringUtils.isEmpty(wayInfoDTO.getProvince())
- ||StringUtils.isEmpty(wayInfoDTO.getCity())
- ||StringUtils.isEmpty(wayInfoDTO.getArea())
+// ||StringUtils.isEmpty(wayInfoDTO.getProvince())
+// ||StringUtils.isEmpty(wayInfoDTO.getCity())
+// ||StringUtils.isEmpty(wayInfoDTO.getArea())
||Objects.isNull(wayInfoDTO.getLat())
||Objects.isNull(wayInfoDTO.getLgt())
){
@@ -289,6 +298,9 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閲戦璁$畻閿欒!");
}
}
+
+
+
@@ -527,11 +539,11 @@
if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)){
if(Objects.nonNull(orders.getPriceNum2())) {
- orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum2() + "澶�");
+ orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum1() + "澶�");
}
}else{
if(Objects.nonNull(orders.getPriceNum2())) {
- orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum2() + "娆�");
+ orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum1() + "娆�");
}
}
}else{
@@ -591,14 +603,19 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"韬唤淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�");
}
}
- orders.setUpdateTime(new Date());
- orders.setAcceptType(Constants.ZERO);
- orders.setAcceptTime(new Date());
- orders.setAcceptMemberId(member.getId());
- orders.setStatus(Constants.ordersStatus.accept.getKey());
- ordersMapper.updateById(orders);
+
+ ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,orders.getId())
+ .set(Orders::getUpdateTime,new Date())
+ .set(Orders::getAcceptType,Constants.ZERO)
+ .set(Orders::getAcceptTime,new Date())
+ .set(Orders::getAcceptMemberId,member.getId())
+ .set(Orders::getStatus,Constants.ordersStatus.accept.getKey())
+ );
+
+
+
//鏇存柊鎺ュ崟閲�
- memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getPublishNum," (publish_num + 1 )").eq(Member::getId,member.getId()));
+ memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" publish_num = (publish_num + 1 )").eq(Member::getId,member.getId()));
//鍒涘缓鎿嶄綔鏃ュ織
Constants.OrdersLog ordersLog = Constants.OrdersLog.RECEIVE;
@@ -627,7 +644,7 @@
if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
}
- if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
+ if(!Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
}
if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
@@ -655,8 +672,7 @@
if(Objects.isNull(updOrderDataDTO)
|| Objects.isNull(updOrderDataDTO.getOrderId())
|| Objects.isNull(updOrderDataDTO.getStartDate())
- || Objects.isNull(updOrderDataDTO.getEndDate())
- || Objects.isNull(updOrderDataDTO.getTotalDays())){
+ || Objects.isNull(updOrderDataDTO.getEndDate())){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
Orders orders = ordersMapper.selectById(updOrderDataDTO.getOrderId());
@@ -666,7 +682,7 @@
if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
}
- if(Constants.equalsInteger(orders.getReleaseMemberId(),updOrderDataDTO.getMember().getId())){
+ if(!Constants.equalsInteger(orders.getReleaseMemberId(),updOrderDataDTO.getMember().getId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
}
if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
@@ -693,8 +709,8 @@
.set(Orders::getEndDate,updOrderDataDTO.getEndDate())
.set(Orders::getTotalDays,updOrderDataDTO.getTotalDays())
.set(Orders::getIsUpdate,Constants.ONE)
- .set(Orders::getIsUpdateTime,"now()")
- .set(Orders::getUpdateTime,"now()")
+ .set(Orders::getIsUpdateTime,new Date())
+ .set(Orders::getUpdateTime,new Date())
.set(Orders::getEstimatedAccount,total)
.eq(Orders::getId,orders.getId())
);
@@ -707,14 +723,22 @@
}
+ @Override
public Long getTotal(Orders orders){
+ if(Objects.isNull(orders)
+ ||Objects.isNull(orders.getPrice())
+ ||Objects.isNull(orders.getPriceNum1())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
if(
- (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ZERO )) ||
- (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.TWO)
- &&Constants.equalsInteger(orders.getCarType(),Constants.TWO))
+ (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ZERO ))
|| Constants.equalsInteger(orders.getType(),Constants.ONE)
){
orders.setPriceNum2(Constants.ONE);
+ }else{
+ if(Objects.isNull(orders.getPriceNum2())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
}
return orders.getPrice() * orders.getPriceNum1() * orders.getPriceNum2();
}
@@ -745,13 +769,13 @@
if(!Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟淇敼鐘舵�佸凡娴佽浆锛屾棤娉曡繘琛岃鎿嶄綔");
}
- if(Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){
+ if(!Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
}
if( Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)){
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getIsUpdate,Constants.TWO)
- .set(Orders::getUpdateTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
.eq(Orders::getId,orders.getId())
);
//璁板綍鍚屾剰淇敼鐨勬棩蹇�
@@ -761,7 +785,7 @@
}else{
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getIsUpdate,Constants.TWO)
- .set(Orders::getUpdateTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
.set(Orders::getStatus,Constants.ordersStatus.wait.getKey())
.set(Orders::getAcceptMemberId,null)
.set(Orders::getAcceptType,null)
@@ -798,7 +822,7 @@
|| Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey()))){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
}
- if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
+ if(!Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
}
//寰呮敮浠樼敤椁愯鍗�/寰呮帴鍗曡鍗曡繘琛屽彇娑�
@@ -818,8 +842,8 @@
}
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
- .set(Orders::getUpdateTime,"now()")
- .set(Orders::getCancelTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
+ .set(Orders::getCancelTime,new Date())
.set(Orders::getCancelType,Constants.ZERO)
.eq(Orders::getId,orders.getId())
);
@@ -856,8 +880,8 @@
}
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
- .set(Orders::getUpdateTime,"now()")
- .set(Orders::getCancelTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
+ .set(Orders::getCancelTime,new Date())
.set(Orders::getCancelType,Constants.ONE)
.eq(Orders::getId,orders.getId())
);
@@ -891,7 +915,7 @@
if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
}
- if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){
+ if(!Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
}
//鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗
@@ -911,7 +935,7 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟锛屽闇�澶勭悊璇疯仈绯诲鏈�");
}
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
- .set(Orders::getUpdateTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
.set(Orders::getStatus,Constants.ordersStatus.wait.getKey())
.set(Orders::getAcceptMemberId,null)
.set(Orders::getAcceptType,null)
@@ -950,9 +974,10 @@
if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.doing.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
}
- if(Constants.equalsInteger(orders.getReleaseMemberId(),doneOrderDTO.getMember().getId())){
+ if(!Constants.equalsInteger(orders.getReleaseMemberId(),doneOrderDTO.getMember().getId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
}
+ orders.setPayAccount(doneOrderDTO.getAmount());
Object object = null;
//鐢ㄩ璁㈠崟
if(!Constants.equalsInteger(orders.getType(),Constants.TWO)){
@@ -1012,7 +1037,7 @@
.setSql("receive_num = ifnull(receive_num,0) - 1")
.eq(Member::getId,orders.getAcceptMemberId()));
}
-Date date = new Date();
+ Date date = new Date();
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
.set(Orders::getUpdateTime,date)
@@ -1052,8 +1077,8 @@
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getCommentStatus,Constants.ONE)
- .set(Orders::getUpdateTime,"now()")
- .set(Orders::getCommentTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
+ .set(Orders::getCommentTime,new Date())
.set(Orders::getCommentLevel,commentDTO.getLevel())
.set(Orders::getCommentType,Constants.ZERO)
.eq(Orders::getId,orders.getId())
@@ -1091,10 +1116,10 @@
}else{
//澶勭悊鏀粯瀹屾垚閫昏緫
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
- .set(Orders::getUpdateTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
.set(Orders::getStatus,Constants.ordersStatus.wait)
.set(Orders::getPayStatus,Constants.ONE)
- .set(Orders::getPayTime,"now()")
+ .set(Orders::getPayTime,new Date())
.set(Orders::getPayMethod,Constants.ZERO)
.set(Orders::getWxExternalNo,paymentNo)
.eq(Orders::getId,orders.getId())
@@ -1112,13 +1137,13 @@
}else{
//澶勭悊鏀粯瀹屾垚閫昏緫
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
- .set(Orders::getUpdateTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
.set(Orders::getStatus,Constants.FOUR)
.set(Orders::getPayStatus,Constants.ONE)
- .set(Orders::getPayTime,"now()")
+ .set(Orders::getPayTime,new Date())
.set(Orders::getPayMethod,Constants.ZERO)
.set(Orders::getWxExternalNo,paymentNo)
- .set(Orders::getFinishTime,"now()")
+ .set(Orders::getFinishTime,new Date())
.eq(Orders::getId,orders.getId())
);
@@ -1175,15 +1200,19 @@
//鎺ュ崟鏂� 鎴戠殑璁㈠崟
queryWrapper.eq(Orders::getAcceptMemberId,model.getMember().getId());
}else{
+ queryWrapper.eq(Orders::getStatus,Constants.ordersStatus.wait.getKey());
//鎺ュ崟澶у巺
- queryWrapper.and(i->
+ queryWrapper.and(Constants.equalsInteger(model.getMember().getWorkerIdentity(),Constants.TWO)||Constants.equalsInteger(model.getMember().getDriverIdentity(),Constants.TWO)||Constants.equalsInteger(model.getMember().getChefIdentity(),Constants.TWO),i->
i.eq(Constants.equalsInteger(model.getMember().getWorkerIdentity(),Constants.TWO),Orders::getType,Constants.ZERO)
.or()
.eq(Constants.equalsInteger(model.getMember().getDriverIdentity(),Constants.TWO),Orders::getType,Constants.ONE)
.or()
.eq(Constants.equalsInteger(model.getMember().getChefIdentity(),Constants.TWO),Orders::getType,Constants.TWO)
);
- queryWrapper.eq(Orders::getStatus,Constants.ONE);
+
+ queryWrapper.apply(!(Constants.equalsInteger(model.getMember().getWorkerIdentity(),Constants.TWO)||Constants.equalsInteger(model.getMember().getDriverIdentity(),Constants.TWO)||Constants.equalsInteger(model.getMember().getChefIdentity(),Constants.TWO))," 1 = 2 "
+ );
+
}
}
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
@@ -1233,41 +1262,44 @@
//瀹氫綅璺濈
public void getDistance(Member member,Orders orders){
+ try{
+ if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
+ if(Objects.nonNull(member.getWorkerIdentityModel())&&Objects.nonNull(member.getWorkerIdentityModel().getLgt())
+ &&Objects.nonNull(member.getWorkerIdentityModel().getLat())){
+ orders.setDistance(
+ GeoUtils.haversineDistance(
+ orders.getLgt().doubleValue(),orders.getLat().doubleValue(),
+ member.getWorkerIdentityModel().getLgt().doubleValue(),
+ member.getWorkerIdentityModel().getLat().doubleValue()
+ )
+ );
+ }
- if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
- if(Objects.nonNull(member.getWorkerIdentityModel())&&Objects.nonNull(member.getWorkerIdentityModel().getLgt())
- &&Objects.nonNull(member.getWorkerIdentityModel().getLat())){
- orders.setDistance(
- GeoUtils.haversineDistance(
- orders.getLgt().doubleValue(),orders.getLat().doubleValue(),
- member.getWorkerIdentityModel().getLgt().doubleValue(),
- member.getWorkerIdentityModel().getLat().doubleValue()
- )
- );
+ }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
+ if(Objects.nonNull(member.getDriverIdentityModel())&&Objects.nonNull(member.getDriverIdentityModel().getLgt())
+ &&Objects.nonNull(member.getDriverIdentityModel().getLat())) {
+ orders.setDistance(
+ GeoUtils.haversineDistance(
+ orders.getLgt().doubleValue(), orders.getLat().doubleValue(),
+ member.getDriverIdentityModel().getLgt().doubleValue(),
+ member.getDriverIdentityModel().getLat().doubleValue()
+ )
+ );
+ }
+ }else{
+ if(Objects.nonNull(member.getChefIdentityModel())&&Objects.nonNull(member.getChefIdentityModel().getLgt())
+ &&Objects.nonNull(member.getChefIdentityModel().getLat())) {
+ orders.setDistance(
+ GeoUtils.haversineDistance(
+ orders.getLgt().doubleValue(),orders.getLat().doubleValue(),
+ member.getChefIdentityModel().getLgt().doubleValue(),
+ member.getChefIdentityModel().getLat().doubleValue()
+ )
+ );
+ }
}
-
- }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
- if(Objects.nonNull(member.getDriverIdentityModel())&&Objects.nonNull(member.getDriverIdentityModel().getLgt())
- &&Objects.nonNull(member.getDriverIdentityModel().getLat())) {
- orders.setDistance(
- GeoUtils.haversineDistance(
- orders.getLgt().doubleValue(), orders.getLat().doubleValue(),
- member.getDriverIdentityModel().getLgt().doubleValue(),
- member.getDriverIdentityModel().getLat().doubleValue()
- )
- );
- }
- }else{
- if(Objects.nonNull(member.getChefIdentityModel())&&Objects.nonNull(member.getChefIdentityModel().getLgt())
- &&Objects.nonNull(member.getChefIdentityModel().getLat())) {
- orders.setDistance(
- GeoUtils.haversineDistance(
- orders.getLgt().doubleValue(),orders.getLat().doubleValue(),
- member.getChefIdentityModel().getLgt().doubleValue(),
- member.getChefIdentityModel().getLat().doubleValue()
- )
- );
- }
+ }catch (Exception e){
+ orders.setDistance(0L);
}
}
@@ -1321,7 +1353,7 @@
if(!Constants.equalsInteger(type,Constants.ZERO)){
prefix = (Constants.equalsInteger(type,Constants.ONE)?"YH-":"DC-");
}
- prefix = DateUtil.getDate(new Date(),"yyyyMMddHHmmss") +"-";
+ prefix = prefix + DateUtil.getCurrDateTimeShort() +"-";
Integer countNum = (Integer) redisTemplate.opsForValue().get(Constants.RedisKeys.ORDER_CODE);//RedisUtil.getObject(redisTemplate, Constants.RedisKeys.ORDER_CODE, Integer.class);
countNum = Constants.formatIntegerNum(countNum)+1;
@@ -1353,19 +1385,60 @@
}
-
- //todo 鑷姩娲惧崟
+ /**
+ * 鑷姩娲惧崟
+ */
+ @Override
public void autoGrabOrders(){
-// String autoConfirmTime = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.AUTO_DISPATCH_DISTANCE).getCode();
-// List<Orders> ordersList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
-// .eq(Orders::getStatus,Constants.FOUR).eq(Orders::getCommentStatus,Constants.ZERO)
-// .apply(" DATE_ADD(finish_time, INTERVAL 7 DAY) < now() ")
-// .last("limit 100")
-// );
+ String autoConfirmTime = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.AUTO_DISPATCH).getCode();
+ List<Orders> ordersList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getStatus,Constants.ONE).eq(Orders::getCommentStatus,Constants.ZERO)
+ .apply(" DATE_ADD(create_time, INTERVAL "+autoConfirmTime+" MINUTE) < now() ")
+ .last("limit 100")
+ );
+ for (Orders orders:ordersList) {
+ BigDecimal lat = orders.getLat();
+ BigDecimal lgt = orders.getLgt();
+ //鏌ヨ鑼冨洿鍐呯殑浼氬憳
+ List<Member> memberList = memberMapper.selectList(new MPJLambdaWrapper<Member>().selectAll(Member.class)
+ .select(" ifnull((select r.level from receive_weight r where r.RECEIVE_MAX > t.RECEIVE_NUM and t.RECEIVE_NUM > r.RECEIVE_MIN limit 1 ),0) " ,Member::getLevel)
+ .select( " ifnull( (select CONVERT( ST_Distance_Sphere ( POINT ( ii.lgt, ii.lat ), POINT ( "+lgt+", "+lat+" )) /1000,DECIMAL(15,2)) from identity_info ii where ii.AUDIT_STATUS = 2 and type = 0 and ii.member_id = t.ID limit 1 ),0) ",Member::getDistance )
+ .apply(" id in (" +
+ " select ii.member_id from identity_info ii where ii.AUDIT_STATUS = 2 and type = '"+orders.getType()+"' " +
+ " and ( CONVERT( ST_Distance_Sphere ( POINT ( ii.lgt, ii.lat ), POINT ( "+lgt+", "+lat+" )) /1000,DECIMAL(15,2))) < 100 " +
+ ") ")
+ .orderByDesc(Member::getLevel)
+ .orderByDesc(Member::getScore)
+ .orderByAsc(Member::getDistance)
+ .last(" limit 1 ")
+ );
+ if(CollectionUtils.isEmpty(memberList)){
+ continue;
+ }
+ Member member = memberList.get(Constants.ZERO);
+ //鑷姩娲惧崟
+ Orders model = ordersMapper.selectById(orders.getStatus());
+ if(!Constants.equalsInteger(model.getStatus(),Constants.ONE)){
+ continue;
+ }
+ ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,model.getId())
+ .set(Orders::getUpdateTime,new Date())
+ .set(Orders::getAcceptType,Constants.ONE)
+ .set(Orders::getAcceptTime,new Date())
+ .set(Orders::getAcceptMemberId,member.getId())
+ .set(Orders::getStatus,Constants.ordersStatus.accept.getKey())
+ );
+ //鏇存柊鎺ュ崟閲�
+ memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" publish_num = (publish_num + 1 )").eq(Member::getId,member.getId()));
+ //鍒涘缓鎿嶄綔鏃ュ織
+ Constants.OrdersLog ordersLog = Constants.OrdersLog.AUTO;
+ this.saveOrderLog(orders,ordersLog,
+ ordersLog.getInfo(),member.getId(),null);
+ }
}
//鑷姩璇勪环 璁㈠崟瀹屾垚7澶╁悗鑷姩璇勪环4鏄�
@@ -1381,17 +1454,17 @@
for (Orders orders:ordersList) {
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getCommentStatus,Constants.ONE)
- .set(Orders::getUpdateTime,"now()")
- .set(Orders::getCommentTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
+ .set(Orders::getCommentTime,new Date())
.set(Orders::getCommentLevel,Constants.FOUR)
.set(Orders::getCommentType,Constants.ZERO)
.eq(Orders::getId,orders.getId())
);
memberMapper.update(new UpdateWrapper<Member>().lambda()
- .set(Member::getScore," ( total_score +" + Constants.FOUR + " ) / (score_order_num + 1 )")
- .set(Member::getTotalScore," total_score +" + Constants.FOUR)
- .set(Member::getScoreOrderNum," score_order_num + 1 " ).eq(Member::getId,orders.getAcceptMemberId())
+ .setSql(" score = ( ( total_score +" + Constants.FOUR + " ) / (score_order_num + 1 ) ) ")
+ .setSql(" total_score = ( total_score +" + Constants.FOUR + ")")
+ .setSql(" score_order_num = ( score_order_num + 1 ) " ).eq(Member::getId,orders.getAcceptMemberId())
);
//鏃ュ織瀛樺偍
@@ -1416,7 +1489,7 @@
for (Orders orders:ordersList) {
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getIsUpdate,Constants.TWO)
- .set(Orders::getUpdateTime,"now()")
+ .set(Orders::getUpdateTime,new Date())
.eq(Orders::getId,orders.getId())
);
//璁板綍鍚屾剰淇敼鐨勬棩蹇�
@@ -1428,6 +1501,11 @@
}
+ @Override
+ public void initializeCode(){
+ //鏇存柊缂撳瓨
+ redisTemplate.opsForValue().set(Constants.RedisKeys.ORDER_CODE,0);
+ }
--
Gitblit v1.9.3