Browse Source

佣金为0置为已收已付/佣金计算dao层工具类

zhijiezhao 3 years ago
parent
commit
4e579aa3e2

+ 27 - 0
src/main/java/com/caimei/modules/order/dao/CmUtilsDao.java

@@ -0,0 +1,27 @@
+package com.caimei.modules.order.dao;
+
+import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
+
+
+/**
+ * @author zzj
+ * 工具类dao
+ */
+@MyBatisDao
+public interface CmUtilsDao {
+
+    /**
+     * 普通订单根据订单id查总佣金
+     * @param orderID
+     * @return
+     */
+    Double selectPayTotalFee(Integer orderID);
+
+
+    /**
+     * 返佣订单根据订单id查佣金
+      * @param orderID
+     * @return
+     */
+    Double selectPayTotalFees(Integer orderID);
+}

+ 9 - 5
src/main/java/com/caimei/modules/order/service/NewOrderService.java

@@ -64,6 +64,8 @@ import java.util.stream.IntStream;
 @Transactional(readOnly = true)
 public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
 
+    @Resource
+    private CmUtilsDao cmUtilsDao;
     @Resource
     private NewOrderDao newOrderDao;
     @Resource
@@ -1823,7 +1825,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
                 order.setShopName(shopOrders.get(0).getShopName());
             }
             int count = 0;
-//            Double brokerage = 0d;
+            Double brokerage = 0d;
             for (NewShopOrder shopOrder : order.getNewShopOrders()) {
                 shopOrder.setOrderID(order.getOrderID());
                 shopOrder.setOrderNo(order.getOrderNo());
@@ -1848,9 +1850,9 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
                         if (6060 == p.getProductID()) {
                             order.setRechargeGoods(1);
                         }
-                        Integer returnNum = newOrderProductDao.CountReturnedPurchaseProduct(newShopOrder.getShopOrderID(), p.getOrderProductID());
-                        returnNum = returnNum == null ? 0 : returnNum;
-                        p.setReturnedNum(returnNum);
+//                        Integer returnNum = newOrderProductDao.CountReturnedPurchaseProduct(newShopOrder.getShopOrderID(), p.getOrderProductID());
+//                        returnNum = returnNum == null ? 0 : returnNum;
+//                        p.setReturnedNum(returnNum);
 //                        Double price = p.getDiscountPrice();
 //                        if (null != p.getTouchPrice() && p.getTouchPrice() > 0d){
 //                            price = p.getTouchPrice();
@@ -1867,12 +1869,14 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
 //                    double shopBrokerage = productBrokerage.get() - newShopOrder.getShopOtherFee() - newShopOrder.getShopPostFee();
 //                    newShopOrder.setBrokerage(shopBrokerage);
 //                    brokerage += newShopOrder.getBrokerage();
+                    Integer orderID=  shopOrder.getOrderID();
                 } else {
                     shopOrder.setFee(0d);
                     shopOrder.setShouldPayProduct(0d);
                 }
             }
-//            order.setBrokerage(brokerage);
+
+            order.setBrokerage(cmUtilsDao.selectPayTotalFees(order.getOrderID()));
             //一个子订单只有一个商品时,不可拆分
             if (order.getProductCount() == null) {
                 order.setProductCount(1);

+ 61 - 0
src/main/resources/mappings/modules/order/CmUtilsMapper.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei.modules.order.dao.CmUtilsDao">
+
+
+    <select id="selectPayTotalFee" resultType="java.lang.Double">
+        select ROUND(IFNULL((
+                                        co.payTotalFee - (IFNULL((
+                                                                     select ROUND(SUM((IFNULL(op.costPrice, 0) *
+                                                                                       (IFNULL(op.num, 0) + IFNULL(op.presentNum, 0))) +
+                                                                                      IFNULL(op.shouldPayTotalTax, 0)),
+                                                                                  2)
+                                                                     from cm_order_product op
+                                                                              left join cm_shop_order cso on cso.shopOrderID = op.shopOrderID
+                                                                     where cso.orderID = co.orderID
+                                                                       AND op.productID != 999
+                                                                     group by cso.orderID
+                                                                 ), 0)) - (select IFNULL(SUM(cso.shopOtherFee), 0)
+                                                                           from cm_shop_order cso
+                                                                           where cso.orderID = co.orderID)
+                                        - IFNULL((SELECT SUM(shopPostFee + IF(differenceType = 1, differencePrice, 0) -
+                                                             IF(differenceType = 2, differencePrice, 0))
+                                                  FROM cm_shop_order
+                                                  WHERE orderID = co.orderID), 0)
+                                    + IFNULL((SELECT SUM(cpsr.wipePayment)
+                                              FROM cm_pay_shop_record cpsr
+                                              WHERE cpsr.shopOrderID IN (SELECT cso.shopOrderID
+                                                                         FROM cm_shop_order cso
+                                                                         WHERE cso.orderID = co.orderID)
+                                                AND cpsr.delFlag = 0
+                                                AND (cpsr.`status` = 1 OR cpsr.`status` = 0)), 0)
+                                ), 0), 2) as "采美总佣金"
+        from cm_order co
+        where co.orderID = #{orderID}
+    </select>
+
+    <select id="selectPayTotalFees" resultType="java.lang.Double">
+        select ROUND(IFNULL((
+                                    co.payTotalFee - (IFNULL((
+                                                                 SELECT ROUND(SUM((IFNULL(op.costPrice, 0) *
+                                                                                   (IFNULL(op.num, 0) + IFNULL(op.presentNum, 0))) +
+                                                                                  IFNULL(op.shouldPayTotalTax, 0)), 2)
+                                                                 FROM cm_order_product op
+                                                                          LEFT JOIN cm_shop_order cso ON cso.shopOrderID = op.shopOrderID
+                                                                 WHERE cso.orderID = co.orderID
+                                                                   AND op.productID != 999
+                                                                 GROUP BY cso.orderID
+                                                             ), 0)) - (SELECT IFNULL(SUM(cso.shopOtherFee +
+                                                                                         IF(differenceType = 1, differencePrice, 0) -
+                                                                                         IF(differenceType = 2, differencePrice, 0)),
+                                                                                     0)
+                                                                       FROM cm_shop_order cso
+                                                                       WHERE cso.orderID = co.orderID)
+                                    - IFNULL((SELECT SUM(shopPostFee) FROM cm_shop_order WHERE orderID = co.orderID), 0)
+                                ), 0), 2) as "采美总佣金"
+        from cm_order co
+        where orderID = #{orderID}
+    </select>
+
+
+</mapper>

+ 4 - 5
src/main/webapp/WEB-INF/views/modules/order/newOrderList.jsp

@@ -1112,12 +1112,11 @@
 
 
                     <shiro:hasPermission name="order:order:edit">
-
                         <%--brokerage佣金等于0判断,这里佣金是虚拟字段--%>
-<%--                        <c:if test="${(order.rebateOrder == 1 ) && order.brokerage <= 0}">--%>
-<%--                                <a href="${ctx}/order/toChangePay?id=${order.orderID}"--%>
-<%--                                   onclick="return confirmx('确定将该返佣订单直接置为已收款和已付款状态吗?', this.href)">置为已收款已付款</a>--%>
-<%--                        </c:if>--%>
+                        <c:if test="${(order.rebateOrder == 1 ) && (order.brokerage == 0)}">
+                                <a href="${ctx}/order/toChangePay?id=${order.orderID}"
+                                   onclick="return confirmx('确定将该返佣订单直接置为已收款和已付款状态吗?', this.href)">置为已收款已付款</a>
+                        </c:if>
 
 
                         <c:if test="${order.organizeID == 0}">