From d98b610bd0793dd5d29f623400a1d0a81bb55334 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 21 八月 2025 17:46:27 +0800
Subject: [PATCH] 优化

---
 server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java |  249 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 176 insertions(+), 73 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 8b094d9..1b5f608 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
@@ -101,6 +101,7 @@
         orders.setPayStatus(Constants.ZERO);
         orders.setDeleted(Constants.ZERO);
         orders.setReleaseMemberId(orders.getMember().getId());
+        orders.setCommentStatus(Constants.ZERO);
         //鏌ヨ鎵嬬画璐�
         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)){
@@ -121,6 +122,7 @@
         if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
             orders.setStatus(Constants.ordersStatus.waitPay.getKey());
             orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
+            orders.setPayAccount(orders.getEstimatedAccount());
             //鍞よ捣鏀粯涓氬姟
             objects = this.getWxPayResponse(orders,orders.getMember().getOpenid());
             orderReleaseVO.setObject(objects);
@@ -182,7 +184,7 @@
         request.setOutTradeNo(orders.getOutTradeNo());
         request.setNotifyUrl(WxMiniConfig.wxProperties.getNotifyUrl());//杩欎釜鍥炶皟url蹇呴』鏄痟ttps寮�澶寸殑
         Amount amount = new Amount();
-        amount.setTotal(1);//orders.getEstimatedAccount().intValue());
+        amount.setTotal(1);//orders.getPayAccount().intValue());
         request.setAmount(amount);
 //        PrepayResponse res = WxMiniConfig.wxPayService.prepay(request);
         // 璺熶箣鍓嶄笅鍗曠ず渚嬩竴鏍凤紝濉厖棰勪笅鍗曞弬鏁�
@@ -328,12 +330,40 @@
     }
 
     @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void updateById(Orders orders) {
+    public void update(Orders orders){
         if(Objects.isNull(orders)
-        || Objects.isNull(orders.getId())){
+                || Objects.isNull(orders.getId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
+        Orders model = ordersMapper.selectById(orders.getId());
+        if(!Constants.equalsInteger(model.getReleaseMemberId(),orders.getMember().getId())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
+        }
+        if(Constants.equalsInteger(model.getIsUpdate(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟宸蹭慨鏀癸紝寰呮帴鍗曟柟纭锛屾棤娉曡繘琛岃鎿嶄綔");
+        }
+        if(!Constants.equalsInteger(model.getType(),Constants.TWO)){
+            if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)||Constants.equalsInteger(model.getStatus(),Constants.ONE)){
+                this.updateById(orders);
+            }else if(Constants.equalsInteger(model.getStatus(),Constants.TWO)){
+                this.updOrderData(orders,model);
+            }else{
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED);
+            }
+        }else{
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
+        }
+
+
+
+    }
+
+
+
+//    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void updateById(Orders orders) {
+
         Orders model = ordersMapper.selectById(orders.getId());
         if(Constants.equalsInteger(model.getType(),Constants.TWO)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"姝ょ被璁㈠崟鏃犳硶杩涜淇敼");
@@ -362,6 +392,7 @@
                         || StringUtils.isEmpty(multifile.getName())){
                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢淇℃伅閿欒");
                 }
+                multifile.setId(null);
                 multifile.setIsdeleted(Constants.ZERO);
                 multifile.setCreateDate(new Date());
                 multifile.setObjId(orders.getId());
@@ -378,7 +409,7 @@
             return;
         }
         for (Orders orders: orderss) {
-            this.updateById(orders);
+            //this.updateById(orders);
         }
     }
 
@@ -501,8 +532,11 @@
         queryWrapper.like(org.apache.commons.lang3.StringUtils.isNotBlank(model.getCode()),Orders::getCode, model.getCode());
         queryWrapper.eq(Objects.nonNull(model.getType()),Orders::getType, model.getType());
         queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus, model.getStatus());
+        queryWrapper.eq(Objects.nonNull(model.getCommentStatus()),Orders::getCommentStatus, model.getCommentStatus());
+        queryWrapper.eq(Objects.nonNull(model.getReleaseMemberId()),Orders::getReleaseMemberId, model.getReleaseMemberId());
+        queryWrapper.eq(Objects.nonNull(model.getAcceptMemberId()),Orders::getAcceptMemberId, model.getAcceptMemberId());
         queryWrapper.eq(Objects.nonNull(model.getAcceptType()),Orders::getAcceptType, model.getAcceptType());
-        queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getReleaseName()),"m1.name", model.getReleaseName());
+        queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getReleaseName()),"m1.name like '%"+model.getReleaseName()+"%' or m1.TELEPHONE like '%"+model.getReleaseName()+"%' ");
         queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getAcceptName()),"( i.LINK_NAME like '%"+model.getAcceptName()+"%' or i.company_name like '%"+model.getAcceptName()+"%' or i.TELEPHONE like '%"+model.getAcceptName()+"%' ) ");
         IPage<Orders> iPage = ordersMapper.selectJoinPage(page,Orders.class,queryWrapper);
         for (Orders orders:iPage.getRecords()) {
@@ -595,22 +629,23 @@
         if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ嚜宸辩殑璁㈠崟鏃犳硶杩涜璇ユ搷浣�");
         }
+         member = memberMapper.selectById(member.getId());
         //鏌ヨ鐢ㄦ埛鏄惁鏈夊搴旇韩浠�
         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(),"韬唤淇℃伅寮傚父锛岃鍓嶅線涓汉涓績杩涜韬唤璁よ瘉!");
             }
         }
 
-        ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,orders.getId())
+         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())
@@ -670,50 +705,36 @@
 
     /**
      * 鍙戝崟鏂逛慨鏀硅鍗� - 宸叉帴鍗曠姸鎬�
-     * @param updOrderDataDTO
      */
-    @Override
+//    @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void updOrderData(UpdOrderDataDTO updOrderDataDTO){
-        if(Objects.isNull(updOrderDataDTO)
-            || Objects.isNull(updOrderDataDTO.getOrderId())
-            || Objects.isNull(updOrderDataDTO.getStartDate())
-            || Objects.isNull(updOrderDataDTO.getEndDate())){
+    public void updOrderData(Orders orders,Orders model){
+        if(Objects.isNull(orders)
+            || Objects.isNull(orders.getStartDate())
+            || Objects.isNull(orders.getEndDate())){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        Orders orders = ordersMapper.selectById(updOrderDataDTO.getOrderId());
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
-        }
-        if(!Constants.equalsInteger(orders.getReleaseMemberId(),updOrderDataDTO.getMember().getId())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
-        }
-        if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟宸蹭慨鏀癸紝寰呮帴鍗曟柟纭锛屾棤娉曡繘琛岃鎿嶄綔");
-        }
-        orders.setStartDate(updOrderDataDTO.getStartDate());
-        orders.setEndDate(updOrderDataDTO.getEndDate());
-        orders.setTotalDays(updOrderDataDTO.getTotalDays());
+        model.setTotalDays(DateUtil.daysBetweenDates(orders.getEndDate(),orders.getStartDate())+1);
+        model.setStartDate(orders.getStartDate());
+        model.setEndDate(orders.getEndDate());
         //鐢ㄨ溅绫诲瀷
-        if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
-            if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)) {
-                orders.setPriceNum1(updOrderDataDTO.getTotalDays());
+        if(Constants.equalsInteger(model.getType(),Constants.ONE)){
+            if(Constants.equalsInteger(model.getCarType(),Constants.ZERO)) {
+                model.setPriceNum1(orders.getTotalDays());
             }
-        }else if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-            if(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)||(Constants.equalsInteger(orders.getWorkType(),Constants.TWO)&&Constants.equalsInteger(orders.getCarType(),Constants.ZERO))){
-                orders.setPriceNum1(updOrderDataDTO.getTotalDays());
+        }else if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
+            if(Constants.equalsInteger(model.getWorkType(),Constants.ONE)||
+                    (Constants.equalsInteger(model.getWorkType(),Constants.TWO)&&Constants.equalsInteger(model.getCarType(),Constants.ZERO))){
+                model.setPriceNum1(orders.getTotalDays());
             }
         }else{
-            orders.setPriceNum1(updOrderDataDTO.getTotalDays());
+            model.setPriceNum1(orders.getTotalDays());
         }
         Long total = this.getTotal(orders);
         ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                .set(Orders::getStartDate,updOrderDataDTO.getStartDate())
-                .set(Orders::getEndDate,updOrderDataDTO.getEndDate())
-                .set(Orders::getTotalDays,updOrderDataDTO.getTotalDays())
+                .set(Orders::getStartDate,model.getStartDate())
+                .set(Orders::getEndDate,model.getEndDate())
+                .set(Orders::getTotalDays,model.getTotalDays())
                 .set(Orders::getIsUpdate,Constants.ONE)
                 .set(Orders::getIsUpdateTime,new Date())
                 .set(Orders::getUpdateTime,new Date())
@@ -722,8 +743,8 @@
         );
         //鍒涘缓鎿嶄綔鏃ュ織
         Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_ORDER;
-        this.saveOrderLog(orders,ordersLog,
-                ordersLog.getInfo(),updOrderDataDTO.getMember().getId(),null);
+        this.saveOrderLog(model,ordersLog,
+                ordersLog.getInfo(),orders.getMember().getId(),null);
 
         //TODO 閫氱煡鎺ュ崟浜� 璁㈠崟鍙戠敓鍙樻洿
     }
@@ -779,7 +800,7 @@
         if(!Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
         }
-        if( Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)){
+        if(!Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)){
             ordersMapper.update(new UpdateWrapper<Orders>().lambda()
                     .set(Orders::getIsUpdate,Constants.TWO)
                     .set(Orders::getUpdateTime,new Date())
@@ -799,7 +820,7 @@
                     .eq(Orders::getId,orders.getId())
             );
 
-            memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,confirmUpdOrderDTO.getMember().getId()));
+            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("receive_num = receive_num - 1").eq(Member::getId,confirmUpdOrderDTO.getMember().getId()));
 
             //璁板綍涓嶅悓鎰忎慨鏀圭殑鏃ュ織
             Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_DISAGREE;
@@ -810,18 +831,55 @@
     }
 
 
-    /**
-     * 鍙戝崟鏂瑰彇娑堣鍗�
-     * @param orderId
-     * @param member
-     */
     @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void releaseCancelOrder(Integer orderId,Member member){
+    public void cancelOrder(Integer orderId,Member member){
         Orders orders = ordersMapper.selectById(orderId);
         if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
+        if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
+            this.releaseCancelOrder(orders,member);
+        }else if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){
+            this.receiveCancelOrder(orders,member);
+        }else{
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
+        }
+
+    }
+
+
+    @Override
+    public String cancelTips(Integer orderId,Member member){
+        Orders orders = ordersMapper.selectById(orderId);
+        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+
+        Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode());
+        Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+                .apply(" DATE(cancel_time) = DATE(NOW()) ")
+                .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
+                .eq(Orders::getReleaseMemberId,member.getId()));
+        //鏌ヨ鍙栨秷娆℃暟
+        if(totalCancelTimes<=cancelTimes){
+            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+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟锛屽闇�澶勭悊璇疯仈绯诲鏈�");
+        }
+        return  "浠婃棩杩樺彲涓诲姩鍙栨秷"+(totalCancelTimes-cancelTimes)+"娆★紝鏄惁纭鍙栨秷";
+
+    }
+
+    /**
+     * 鍙戝崟鏂瑰彇娑堣鍗�
+     * @param member
+     */
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void releaseCancelOrder(Orders orders,Member member){
         if(!(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.wait.getKey())
                 ||Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.waitPay.getKey())
         || Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey()))){
@@ -893,30 +951,27 @@
             //TODO 鍙戝崟鏂瑰彇娑堣鍗曢�氱煡鎺ュ崟鏂�
 
             //鍑忓皯鎺ュ崟閲�
-            memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,orders.getAcceptMemberId()));
+            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("receive_num = (receive_num - 1) ").eq(Member::getId,orders.getAcceptMemberId()));
         }
         //鍑忓皯鍙戝崟閲�
-        memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getPublishNum,"publish_num - 1").eq(Member::getId,orders.getReleaseMemberId()));
+        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("publish_num = (publish_num - 1)").eq(Member::getId,orders.getReleaseMemberId()));
 
         //鏃ュ織瀛樺偍
         Constants.OrdersLog ordersLog = Constants.OrdersLog.RELEASE_CANCEL;
         this.saveOrderLog(orders,ordersLog,
                 ordersLog.getInfo(),member.getId(),null);
+
+
+
     }
 
 
     /**
      * 鎺ュ崟鏂瑰彇娑堟帴鍗�
-     * @param orderId
      * @param member
      */
-    @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void receiveCancelOrder(Integer orderId,Member member){
-        Orders orders = ordersMapper.selectById(orderId);
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
+    public void receiveCancelOrder(Orders orders,Member member){
         if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
         }
@@ -948,7 +1003,7 @@
         );
 
         //鍑忓皯鎺ュ崟閲�
-        memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,orders.getAcceptMemberId()));
+        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" receive_num = receive_num - 1 ").eq(Member::getId,orders.getAcceptMemberId()));
         //鏃ュ織瀛樺偍
         Constants.OrdersLog ordersLog = Constants.OrdersLog.CANCEL;
         this.saveOrderLog(orders,ordersLog,
@@ -994,7 +1049,7 @@
             orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
             ordersMapper.updateById(orders);
             //鍞よ捣鏀粯涓氬姟
-            object = this.getWxPayResponse(orders,orders.getMember().getOpenid());
+            object = this.getWxPayResponse(orders,doneOrderDTO.getMember().getOpenid());
             orderReleaseVO.setObject(object);
         }else{
             orders.setStatus(Constants.ordersStatus.done.getKey());
@@ -1147,13 +1202,14 @@
                 .set(Orders::getUpdateTime,new Date())
                 .set(Orders::getCommentTime,new Date())
                 .set(Orders::getCommentLevel,commentDTO.getLevel())
+                .set(org.apache.commons.lang3.StringUtils.isNotBlank(commentDTO.getInfo()),Orders::getCommentInfo,commentDTO.getInfo())
                 .set(Orders::getCommentType,Constants.ZERO)
                 .eq(Orders::getId,orders.getId())
         );
         memberMapper.update(new UpdateWrapper<Member>().lambda()
-                .set(Member::getScore," ( total_score +" + commentDTO.getLevel() + " ) / (score_order_num + 1 )")
-                .set(Member::getTotalScore," total_score +" + commentDTO.getLevel())
-                .set(Member::getScoreOrderNum," score_order_num + 1 " ).eq(Member::getId,orders.getAcceptMemberId())
+                .setSql(" score =  ( total_score +" + commentDTO.getLevel() + " ) / (score_order_num + 1 )")
+                .setSql(" total_score =  total_score +" + commentDTO.getLevel())
+                .setSql(" score_order_num = score_order_num + 1 " ).eq(Member::getId,orders.getAcceptMemberId())
         );
         //鏃ュ織瀛樺偍
         Constants.OrdersLog ordersLog = Constants.OrdersLog.COMMENT;
@@ -1171,7 +1227,7 @@
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public String payNotify(String preOrderId,String paymentNo){
-        Orders orders = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda().eq(Orders::getCode,preOrderId).last("limit 1"));
+        Orders orders = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda().eq(Orders::getOutTradeNo,preOrderId).last("limit 1"));
         if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
             //鐢ㄩ璁㈠崟  濡傛灉宸茬粡娴佽浆鍒板凡鏀粯  鍒欑洿鎺ヨ繑鍥�
             if(!Constants.equalsInteger(orders.getStatus(),Constants.ZERO)){
@@ -1214,6 +1270,8 @@
                 //瀛樺偍娴佹按璁板綍
                 MemberRevenue memberRevenue = new MemberRevenue();
                 memberRevenue.setCreateTime(new Date());
+                memberRevenue.setDeleted(Constants.ZERO);
+                memberRevenue.setTransactionNo(orders.getCode());
                 memberRevenue.setMemberId(orders.getAcceptMemberId());
                 memberRevenue.setType(orders.getType());
                 memberRevenue.setOptType(Constants.ONE);
@@ -1233,8 +1291,8 @@
 
                 //鏇存柊鎺ュ崟鐢ㄦ埛鐨勪綑棰濅笌鍘嗗彶鎬婚噾棰�
                 memberMapper.update(new UpdateWrapper<Member>().lambda()
-                        .set(Member::getAmount,"amount + " + orders.getReceiveAccount() )
-                        .set(Member::getTotalAmount,"amount + " + orders.getReceiveAccount() )
+                        .setSql(" amount = ( amount + " + orders.getReceiveAccount() +")" )
+                        .setSql(" total_amount = ( amount + " + orders.getReceiveAccount() + ")" )
                         .eq(Member::getId,member.getId())
                 );
 
@@ -1320,7 +1378,7 @@
                 //鎺ュ崟鏂� 鎴戠殑璁㈠崟
                 queryWrapper.eq(Orders::getAcceptMemberId,model.getMember().getId());
                 queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus,model.getStatus());
-                queryWrapper.orderByDesc(Orders::getCreateTime);
+                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 "));
@@ -1427,7 +1485,7 @@
 
 
     @Override
-    public Orders getDetail(Integer id,Integer userType) {
+    public Orders getDetail(Integer id,Member member) {
         Orders orders = ordersMapper.selectJoinOne(Orders.class,new MPJLambdaWrapper<Orders>()
                         .selectAll(Orders.class)
                         .select(" m1.name " , Orders::getReleaseName)
@@ -1472,11 +1530,56 @@
             orders.setMultifileList(multifileList);
         }
         orders.setStatusName(Constants.ordersStatus.getName(orders.getStatus()));
+        orders.setCancelStatus(Constants.ZERO);
+        this.getPriceUnit(orders);
+        if(orders.getStatus() <= Constants.ordersStatus.accept.getKey()){
+            if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
+                //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗
+                Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode());
+                Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+                        .apply(" DATE(cancel_time) = DATE(NOW()) ")
+                        .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
+                        .eq(Orders::getReleaseMemberId,orders.getReleaseMemberId()));
+                //鏌ヨ鍙栨秷娆℃暟
+                if(totalCancelTimes<=cancelTimes){
+                    orders.setCancelStatus(Constants.ONE);
+                    return orders;
+                }
+                Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode());
+                Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
+                if(hours < cancelTimeHour){
+                    orders.setCancelStatus(Constants.ONE);
+                    return orders;
+                }
+            }else if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){
+                //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗
+                Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIMES).getCode());
+                Long cancelTimes = orderLogMapper.selectCount(new QueryWrapper<OrderLog>().lambda()
+                        .apply(" DATE(create_time) = DATE(NOW()) ")
+                        .eq(OrderLog::getObjType,Constants.OrdersLog.CANCEL.getKey())
+                        .eq(OrderLog::getMemberId,member.getId()));
+                //鏌ヨ鍙栨秷娆℃暟
+                if(totalCancelTimes<=cancelTimes){
+                    orders.setCancelStatus(Constants.ONE);
+                    return orders;
+                }
 
+                Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIME).getCode());
+                Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
+                if(hours < cancelTimeHour){
+                    orders.setCancelStatus(Constants.ONE);
+                    return orders;
+                }
+            }
+        } else{
+            orders.setCancelStatus(Constants.ONE);
+        }
         return orders;
     }
 
 
+
+
     public synchronized String  getNextCode(Integer type){
         String prefix = "YG";
         if(!Constants.equalsInteger(type,Constants.ZERO)){

--
Gitblit v1.9.3