zhijiezhao 2 år sedan
förälder
incheckning
4047a06827

+ 4 - 0
src/main/java/com/caimei/modules/order/dao/PayShopDao.java

@@ -86,4 +86,8 @@ public interface PayShopDao {
     void insertPayRecordForNow(OrderPayShopRecord shopRecord);
 
     List<OrderPayShopRecord> findPayShopRecordsByShopOrder(Integer shopOrderId);
+
+    void updateShopPost(Integer shopOrderId, Double shopPostFee);
+
+    List<NewShopOrder> findPayshOpOrderWaitPay(Integer payShopId);
 }

+ 2 - 0
src/main/java/com/caimei/modules/order/entity/OrderPayShopRecord.java

@@ -3,6 +3,7 @@ package com.caimei.modules.order.entity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
 import java.io.Serializable;
@@ -31,6 +32,7 @@ public class OrderPayShopRecord implements Serializable {
     @ApiModelProperty("付采美金额")
     private Double payCmAmount;
     @ApiModelProperty("付款时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date payTime;
     @ApiModelProperty("付款单表id")
     private Integer payShopId;

+ 0 - 2
src/main/java/com/caimei/modules/order/service/CmReturnedPurchaseService.java

@@ -8,8 +8,6 @@ import java.util.Map;
 
 public interface CmReturnedPurchaseService {
 
-    List<Integer> findOrderIdsInApplyReturnFlag(List<Integer> oId);
-
     List<CmReturnedPurchase> getReturnedPurchaseList(CmReturnedPurchase cmReturnedPurchase);
 
     List<CmReturnedPurchase> findList(CmReturnedPurchase cmReturnedPurchase);

+ 3 - 4
src/main/java/com/caimei/modules/order/service/impl/CmReturnedPurchaseServiceImpl.java

@@ -7,12 +7,14 @@ import com.caimei.modules.order.service.NewOrderService;
 import com.caimei.modules.order.service.NewShopOrderService;
 import com.caimei.modules.order.util.OrderUtils;
 import com.caimei.utils.AppUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.*;
 
+@Slf4j
 @Service
 public class CmReturnedPurchaseServiceImpl implements CmReturnedPurchaseService {
 
@@ -34,10 +36,6 @@ public class CmReturnedPurchaseServiceImpl implements CmReturnedPurchaseService
     @Resource
     private NewShopOrderDao shopOrderDao;
 
-    @Override
-    public List<Integer> findOrderIdsInApplyReturnFlag(List<Integer> oId) {
-        return cmReturnedPurchaseDao.findOrderIdsInApplyReturnFlag(oId);
-    }
 
     @Override
     public List<CmReturnedPurchase> getReturnedPurchaseList(CmReturnedPurchase cmReturnedPurchase) {
@@ -136,6 +134,7 @@ public class CmReturnedPurchaseServiceImpl implements CmReturnedPurchaseService
             List<NewOrderProduct> orderProducts = cmReturnedPurchaseProductDao.findProductByShopOrder(s.getShopOrderId(), cmReturnedPurchase.getId());
             s.setNewOrderProducts(orderProducts);
         });
+        newOrder.setNewShopOrders(shopOrders);
     }
 
     @Override

+ 16 - 6
src/main/java/com/caimei/modules/order/service/impl/PayShopServiceImpl.java

@@ -58,11 +58,21 @@ public class PayShopServiceImpl implements PayShopService {
     @Override
     public OrderPayShopDetail getPayShopDetail(Integer id) {
         OrderPayShopDetail detail = payShopDao.findPayShopDetail(id);
-        List<NewShopOrder> shopOrders = payShopDao.findPayShopOrders(detail.getPayShopId());
-        shopOrders.forEach(s -> {
-            orderUtils.getShouldPay(s);
-            s.setShopOrderNos(payShopDao.findShopOrderNosByPayShop(id));
-        });
+        List<NewShopOrder> shopOrders = new ArrayList<>();
+        if (1 == detail.getStatus()) {
+            // 已付款待付金额活动计算
+            shopOrders = payShopDao.findPayShopOrders(detail.getPayShopId());
+            shopOrders.forEach(s -> {
+                orderUtils.getShouldPay(s);
+            });
+        } else {
+            // 未付款待付显示为本次申请金额
+            shopOrders = payShopDao.findPayshOpOrderWaitPay(detail.getPayShopId());
+            shopOrders.forEach(s -> {
+                List<NewOrderProduct> products = payShopDao.findPayOrderProducts(s.getShopOrderId());
+                s.setNewOrderProducts(products);
+            });
+        }
         detail.setShopOrders(shopOrders);
         orderUtils.setPayShopPostInfo(detail);
         Double totalPayShop = shopOrders.stream().mapToDouble(NewShopOrder::getPayedShopAmount).sum();
@@ -189,7 +199,7 @@ public class PayShopServiceImpl implements PayShopService {
             payShopDao.updatePayShopDetail(payShop);
         }
         // 如果供应商运费不为0 , 修改子订单供应商运费
-
+        payShop.getShopOrders().forEach(s -> payShopDao.updateShopPost(s.getShopOrderId(), s.getShopPostFee()));
         return ResponseJson.success(payShop.getPayShopId());
     }
 

+ 1 - 0
src/main/resources/mapper/CmOrderRemarkMapper.xml

@@ -34,6 +34,7 @@
         select id, orderId, remarkId, name, ossName, md5Hex, uploadTime
         from cm_order_remark_file
         where md5Hex = #{md5Hex}
+        limit 1
     </select>
 
     <select id="findRemarkById" resultType="com.caimei.modules.order.entity.OssFile">

+ 4 - 4
src/main/resources/mapper/CmReturnedPurchaseMapper.xml

@@ -85,13 +85,13 @@
             <if test="returnedNo != null and returnedNo != ''">
                 AND a.returnedNo = #{returnedNo}
             </if>
-            <if test="orderId != null">
+            <if test="orderId != null and orderId !=''">
                 AND a.orderID = #{orderId}
             </if>
-            <if test="userId != null">
+            <if test="userId != null and userId !=''">
                 AND a.userID = #{userId}
             </if>
-            <if test="status != null">
+            <if test="status != null and status != ''">
                 AND a.status = #{status}
             </if>
             <if test="returnTime != null and returnTime != ''">
@@ -201,7 +201,7 @@
         left join shop s on cso.shopId =s.shopId
         left join cm_returned_purchase_product crpp on cso.shopOrderId = crpp.shopOrderId
         left join cm_returned_purchase crp on crp.id = crpp.returnedId
-        where crpp.id = #{id}
+        where crp.id = #{id}
         and crp.status = 2
         and crp.delFlag = 0
     </select>

+ 3 - 0
src/main/resources/mapper/CmReturnedPurchaseProductMapper.xml

@@ -84,9 +84,12 @@
             a.actualReturnedNum AS "actualReturnedNum",
             a.actualCancelNum AS "actualCancelNum",
             b.status as status,
+            cop.productImage,
+            cop.name,
             cop.productUnit as unit,
             cop.num,
             cop.totalAmount,
+            cop.
             cop.price,
             (select sum(ca.actualReturnedNum)
                 from cm_returned_purchase_product ca

+ 1 - 0
src/main/resources/mapper/NewShopOrderMapper.xml

@@ -388,6 +388,7 @@
                  LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
                  LEFT JOIN cm_split_account csa on csa.shopOrderId = a.shopOrderID
         where a.orderId = #{orderId}
+        and a.shopId != 998
     </select>
 
     <select id="findUnPaidShopOrder" resultType="java.lang.Integer">

+ 96 - 26
src/main/resources/mapper/PayShopDao.xml

@@ -225,11 +225,17 @@
         where id = #{id}
     </update>
 
+    <update id="updateShopPost">
+        update cm_shop_order
+        set shopPostFee = #{shopPostFee}
+        where shopOrderId = #{shopOrderId}
+    </update>
+
     <select id="findPayShops" resultType="com.caimei.modules.order.entity.OrderPayShop">
         SELECT
         a.id AS "payShopId",
         a.name AS "name",
-        a.totalAmount AS "totalAmount",
+        (a.totalAmount+a.payCmAmount) AS "totalAmount",
         a.applyTime AS "applyTime",
         a.reviewTime AS "reviewTime",
         a.payTime AS "payTime",
@@ -239,7 +245,8 @@
         u2.accountName AS reviewerName,
         s.name AS shopName,
         c.name as clubName,
-        cso.orderId as orderId
+        cso.orderId as orderId,
+        a.reason
         FROM cm_pay_shop a
         left join cm_mall_admin_user u1 on u1.id = a.applicant
         left join cm_mall_admin_user u2 on u2.id = a.reviewer
@@ -294,6 +301,7 @@
             and a.delFlag = 0
             and a.shopID != 998
         </where>
+        group by a.id
         ORDER BY a.id desc
     </select>
 
@@ -321,9 +329,9 @@
                (select bankAccountName from cm_shop_account where id = 1) as cmbankAccountName,
                (select bankName from cm_shop_account where id = 1)        as cmbankName
         FROM cm_pay_shop a
-                 left join cm_mall_admin_user u1 on u1.id = a.applicant
-                 left join cm_mall_admin_user u2 on u2.id = a.reviewer
-                 left join shop s on s.shopID = a.shopID
+        left join cm_mall_admin_user u1 on u1.id = a.applicant
+        left join cm_mall_admin_user u2 on u2.id = a.reviewer
+        left join shop s on s.shopID = a.shopID
         where a.id = #{id}
     </select>
 
@@ -358,11 +366,13 @@
                         s.shopId,
                         a.paying,
                         co.receiptStatus         AS orderReceiptStatus,
-                        bou.name                 as buyer
+                        bou.name                 as buyer,
+                        c.name as clubName
         FROM cm_shop_order a
-                 LEFT JOIN cm_order co ON co.orderID = a.orderID
-                 LEFT JOIN shop s ON s.shopID = a.shopID
-                 left join bp_order_userinfo bou on bou.orderId = a.orderID
+        LEFT JOIN cm_order co ON co.orderID = a.orderID
+        LEFT JOIN shop s ON s.shopID = a.shopID
+        left join bp_order_userinfo bou on bou.orderId = a.orderID
+        left join club c on a.userId = c.userId
         WHERE a.shopOrderID IN
               (SELECT shoporderId
                FROM cm_pay_shop_record
@@ -372,14 +382,14 @@
     </select>
 
     <select id="findPayOrderProducts" resultType="com.caimei.modules.order.entity.NewOrderProduct">
-        select cop.name                            AS name,
-               cop.orderProductID                  AS orderProductId,
-               cop.productID                       AS productId,
-               cop.productUnit                     AS unit,
-               cop.num                             AS num,
-               cop.totalFee                        AS totalFee,
-               cop.costPrice                       AS costPrice,
-               cop.productType                     AS productType,
+        select cop.name                                                                                        AS name,
+               cop.orderProductID                                                                              AS orderProductId,
+               cop.productID                                                                                   AS productId,
+               cop.productUnit                                                                                 AS unit,
+               cop.num                                                                                         AS num,
+               cop.totalFee                                                                                    AS totalFee,
+               cop.costPrice                                                                                   AS costPrice,
+               cop.productType                                                                                 AS productType,
                cop.price,
                cop.shopPercent,
                cop.organizePercent,
@@ -388,12 +398,21 @@
                cop.notOutStore,
                cop.presentNum,
                cop.productImage,
+               (SELECT ifnull(SUM(num), 0)
+                FROM cm_logistics_record
+                WHERE orderproductId = cop.orderproductId)                                                     as sendOutNum,
+               (SELECT IFNULL(sum(a.num), 0)
+                FROM cm_logistics_record a
+                         right join cm_logistics_batch b on a.logisticsBatchID = b.id
+                WHERE a.orderProductID = #{orderProductID}
+                  and b.status = 1)                                                                            as receivedNum,
                ifnull((SELECT SUM(crpp.actualReturnedNum) + SUM(crpp.actualCancelNum)
                        FROM cm_returned_purchase_product crpp
                                 LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
                        WHERE crpp.orderProductID = cop.orderProductId
                          AND rp.status = '2'
-                         AND rp.delFlag = '0'), 0) AS returnedNum
+                         AND rp.delFlag = '0'),
+                      0)                                                                                       AS returnedNum
         from cm_order_product cop
                  left join cm_sku cs on cop.skuId = cs.skuId
                  left join product p on p.productID = cop.productID
@@ -430,7 +449,7 @@
     <select id="findShopOrderNosByPayShop" resultType="java.lang.String">
         SELECT distinct CONCAT(cso.shopOrderNo, '(', cso.shopOrderID, ')') AS result
         FROM cm_shop_order cso
-        left join cm_pay_shop_record cpsr on cso.shopOrderID = cpsr.shopOrderID
+                 left join cm_pay_shop_record cpsr on cso.shopOrderID = cpsr.shopOrderID
         WHERE cpsr.payShopID = #{id}
           and cso.shopId != 998
     </select>
@@ -438,10 +457,11 @@
     <select id="findOrderNos" resultType="java.lang.String">
         SELECT distinct CONCAT(co.orderNo, '(', co.orderID, ')') AS result
         FROM cm_pay_shop_record cpsr
-        left join cm_shop_order cso on cpsr.shopOrderID = cso.shopOrderID
-        left join cm_order co on cso.orderID = co.orderID
+                 left join cm_shop_order cso on cpsr.shopOrderID = cso.shopOrderID
+                 left join cm_order co on cso.orderID = co.orderID
         WHERE cpsr.payShopID = #{id}
           and cso.shopId != 998
+        limit 1
     </select>
 
     <select id="findShouldPayShopAmount" resultType="java.lang.Double">
@@ -537,7 +557,8 @@
     </select>
 
     <select id="findPayShopRecordsByOrder" resultType="com.caimei.modules.order.entity.OrderPayShopRecord">
-        SELECT f.bankAccount AS "bankNameType",
+        SELECT DISTINCT
+               f.bankAccount AS "bankNameType",
                a.id          AS "id",
                a.shopID      AS "shopId",
                a.shopOrderID AS "shopOrderId",
@@ -550,8 +571,8 @@
                a.payShopID   AS "payShopID",
                a.status      AS "status"
         FROM cm_pay_shop_record a
-        LEFT JOIN cm_offline_collection f ON a.payType = f.type
-        left join cm_pay_shop cps on a.shopID = cps.shopID
+                 LEFT JOIN cm_offline_collection f ON a.payType = f.type
+                 left join cm_pay_shop cps on a.shopID = cps.shopID
         WHERE a.shopOrderID in (select shopOrderId from cm_shop_order where orderId = #{orderId})
           and a.delFlag = 0
           and cps.delFlag = 0
@@ -583,12 +604,61 @@
                a.payShopID   AS "payShopID",
                a.status      AS "status"
         FROM cm_pay_shop_record a
-        LEFT JOIN cm_offline_collection f ON a.payType = f.type
-        left join cm_pay_shop cps on a.shopID = cps.shopID
+                 LEFT JOIN cm_offline_collection f ON a.payType = f.type
+                 left join cm_pay_shop cps on a.shopID = cps.shopID
         WHERE a.shopOrderID in (select shopOrderId from cm_shop_order where orderId = #{shopOrderId})
           and a.delFlag = 0
           and cps.delFlag = 0
           and a.status = 1
           and cps.status = 1
     </select>
+
+    <select id="findPayshOpOrderWaitPay" resultType="com.caimei.modules.order.entity.NewShopOrder">
+        SELECT DISTINCT cso.shopOrderID            AS shopOrderId,
+                        cso.orderID                AS orderId,
+                        cso.organizeID             AS organizeId,
+                        cso.shopOrderNo            AS shopOrderNo,
+                        cso.orderNo                AS orderNo,
+                        cso.totalAmount,
+                        cso.payCmAmount            AS payCmAmount,
+                        cso.receiptStatus          AS receiptStatus,
+                        cso.orderTime              AS orderTime,
+                        cso.payStatus              AS payStatus,
+                        cso.shopProductAmount      AS shopProductAmount,
+                        ifnull(cso.shopPostFee, 0) AS shopPostFee,
+                        ifnull((select sum(payAmount)
+                                from cm_pay_shop_record
+                                where shopOrderId = cso.shopOrderId
+                                  and status = 1
+                                  and delFlag = 0),
+                               0)                as payedShopAmount,
+                        ifnull((select sum(payCmAmount)
+                                from cm_pay_shop_record
+                                where shopOrderId = cso.shopOrderId
+                                  and status = 1
+                                  and delFlag = 0),
+                               0)                as payCmAmount,
+                        cso.payedShopAmount        AS payedShopAmount,
+                        co.payTotalFee           AS payTotalFee,
+                        s.name                   AS shopName,
+                        s.shopId,
+                        cso.paying,
+                        co.receiptStatus         AS orderReceiptStatus,
+                        bou.name                 as buyer,
+                        c.name as clubName,
+                        cpsr.payAmount AS waitPayShop,
+                        cpsr.payCmAmount as waitPayCmAmount,
+                (SELECT ROUND(IFNULL(SUM(num*price*cmPercent/100),0),2) FROM cm_order_product WHERE shoporderid=cso.shopOrderId) AS shouldPayCmAmount,
+                (SELECT ROUND(IFNULL(SUM(num*price*shopPercent/100),0),2) FROM cm_order_product WHERE shoporderid=cso.shopOrderId) AS shouldPayShopAmount
+        FROM cm_pay_shop cps
+        left join cm_pay_shop_record cpsr on cps.id = cpsr.payShopID
+        left join cm_shop_order cso on cpsr.shopOrderID = cso.shopOrderID
+        LEFT JOIN cm_order co ON co.orderID = cso.orderID
+        LEFT JOIN shop s ON s.shopID = cso.shopID
+        left join bp_order_userinfo bou on bou.orderId = co.orderID
+        left join club c on co.userId = c.userId
+        WHERE cps.id = #{payShopId}
+            and cps.delFlag = 0
+            and cpsr.delFlag = 0
+    </select>
 </mapper>