From 5ae8418d22dd7ba374ff7277181aceec1d509324 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 16 七月 2025 18:26:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java |  142 ++++++++++++++++++++++++++---------------------
 1 files changed, 78 insertions(+), 64 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..8bd112f 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
@@ -95,7 +95,16 @@
         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()
@@ -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;
@@ -215,7 +224,6 @@
                 || 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)){
@@ -527,11 +536,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{
@@ -598,7 +607,7 @@
         orders.setStatus(Constants.ordersStatus.accept.getKey());
         ordersMapper.updateById(orders);
         //鏇存柊鎺ュ崟閲�
-        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 +636,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 +664,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 +674,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)){
@@ -709,9 +717,7 @@
 
     public Long getTotal(Orders orders){
         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);
@@ -745,7 +751,7 @@
         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)){
@@ -798,7 +804,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(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
         }
         //寰呮敮浠樼敤椁愯鍗�/寰呮帴鍗曡鍗曡繘琛屽彇娑�
@@ -891,7 +897,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(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
         }
         //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗
@@ -950,9 +956,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 +1019,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)
@@ -1175,15 +1182,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 +1244,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 +1335,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;
@@ -1389,9 +1403,9 @@
             );
 
             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())
             );
 
             //鏃ュ織瀛樺偍

--
Gitblit v1.9.3