Browse Source

sku调整

huangzhiguo 1 year ago
parent
commit
ba111a8186

+ 1 - 1
src/main/java/com/caimei365/order/mapper/SubmitMapper.java

@@ -118,7 +118,7 @@ public interface SubmitMapper {
      * @param skuId
      * @return
      */
-    CmOrganizeSkuPo getOrganizeSkuInfo(@Param("skuId") Integer skuId);
+    CmOrganizeSkuPo getOrganizeSkuInfo(@Param("skuId") Integer skuId, @Param("organizeId") Integer organizeId);
     /**
      * 查询订单增值税发票
      */

+ 8 - 0
src/main/java/com/caimei365/order/model/po/CmOrganizeSkuPo.java

@@ -51,6 +51,14 @@ public class CmOrganizeSkuPo {
      * 成本价
      */
     private Double costPrice;
+    /**
+     * 集团成本价
+     */
+    private Double organizeCostPrice;
+    /**
+     *
+     */
+    private Double cmCostPrice;
     /**
      * 比例成本百分比
      */

+ 8 - 0
src/main/java/com/caimei365/order/model/po/OrderProductPo.java

@@ -62,6 +62,14 @@ public class OrderProductPo implements Serializable {
      * 成本价
      */
     private Double costPrice;
+    /**
+     * 集团成本价
+     */
+    private Double organizeCostPrice;
+    /**
+     *
+     */
+    private Double cmCostPrice;
     /**
      * 市场价 = 商品表市场价
      */

+ 33 - 9
src/main/java/com/caimei365/order/service/impl/SubmitServiceImpl.java

@@ -529,7 +529,10 @@ public class SubmitServiceImpl implements SubmitService {
             shopOrder.setUserId(orderParamBo.getUserId());
             shopOrder.setClubId(orderParamBo.getClubId());
             if (3 == orderParamBo.getCartType()) {
-                // 协销订单
+                /**
+                 * todo 协销订单,在添加保存时子订单的协销Id应该保存下单协销的协销Id
+                 * todo 21年改为保存下单人userId,会对订单后续处理产生疑惑,后续应该继续保存协销id
+                 */
                 shopOrder.setSpId(orderParamBo.getBuyUserId());
             }
             // 商品总数量
@@ -935,11 +938,22 @@ public class SubmitServiceImpl implements SubmitService {
                 shopOrder.setShopProductAmount(MathUtil.add(shopProductAmount.get(), isColdChina.get()).doubleValue());
                 // 付供应商税费
                 shopTaxFee.set(MathUtil.add(shopTaxFee.get(), product.getShouldPayTotalTax()).doubleValue());
-                // 佣金比例  外部商城sku配置比例
-                CmOrganizeSkuPo organizeSkuInfo = submitMapper.getOrganizeSkuInfo(skuId);
-                product.setCmPercent(organizeSkuInfo.getCmPercent());
-                product.setOrganizePercent(organizeSkuInfo.getOrganizePercent());
-                product.setShopPercent(organizeSkuInfo.getShopPercent());
+                // 成本 | 佣金比例  商城sku 成本 | 配置比例
+                CmOrganizeSkuPo organizeSkuInfo = submitMapper.getOrganizeSkuInfo(skuId, organizeId);
+                if ( StringUtils.isNotEmpty(organizeSkuInfo.getCostCheckFlag()) && "1".equals(organizeSkuInfo.getCostCheckFlag())) {
+                    // 固定成本
+                    product.setOrganizeCostPrice(organizeSkuInfo.getOrganizeCostPrice());
+                    product.setCmCostPrice(organizeSkuInfo.getCmCostPrice());
+                }
+                if ( StringUtils.isNotEmpty(organizeSkuInfo.getCostCheckFlag()) && "2".equals(organizeSkuInfo.getCostCheckFlag())) {
+                    // 比例成本
+                    product.setOrganizeCostPrice(MathUtil.div(MathUtil.mul(product.getPrice(),organizeSkuInfo.getOrganizePercent()), 100).doubleValue());
+                    product.setCmCostPrice(MathUtil.div(MathUtil.mul(product.getPrice(), organizeSkuInfo.getCmPercent()), 100).doubleValue());
+
+                    product.setCmPercent(organizeSkuInfo.getCmPercent());
+                    product.setOrganizePercent(organizeSkuInfo.getOrganizePercent());
+                    product.setShopPercent(organizeSkuInfo.getShopPercent());
+                }
                 // 加入订单商品列表
                 // 商品价格设置为 折后价格
                 product.setPrice(product.getDiscountPrice());
@@ -2518,9 +2532,19 @@ public class SubmitServiceImpl implements SubmitService {
             shopProductAmount.set(MathUtil.add(shopProductAmount.get(), product.getShopProductAmount()).doubleValue());
             // 付供应商税费
             shopTaxFee.set(MathUtil.add(shopTaxFee.get(), product.getShouldPayTotalTax()).doubleValue());
-            if (0 != orderProduct.getOrganizeId()) {
-                // 佣金比例  外部商城sku配置比例
-                CmOrganizeSkuPo organizeSkuInfo = submitMapper.getOrganizeSkuInfo(skuId);
+
+            // 成本 | 佣金比例  商城sku配置 成本 | 佣金比例
+            CmOrganizeSkuPo organizeSkuInfo = submitMapper.getOrganizeSkuInfo(skuId, orderProduct.getOrganizeId());
+            if ( StringUtils.isNotEmpty(organizeSkuInfo.getCostCheckFlag()) && "1".equals(organizeSkuInfo.getCostCheckFlag())) {
+                // 固定成本
+                product.setOrganizeCostPrice(organizeSkuInfo.getOrganizeCostPrice());
+                product.setCmCostPrice(organizeSkuInfo.getCmCostPrice());
+            }
+            if ( StringUtils.isNotEmpty(organizeSkuInfo.getCostCheckFlag()) && "2".equals(organizeSkuInfo.getCostCheckFlag())) {
+                // 比例成本
+                product.setOrganizeCostPrice(MathUtil.div(MathUtil.mul(product.getPrice(),organizeSkuInfo.getOrganizePercent()), 100).doubleValue());
+                product.setCmCostPrice(MathUtil.div(MathUtil.mul(product.getPrice(), organizeSkuInfo.getCmPercent()), 100).doubleValue());
+
                 product.setCmPercent(organizeSkuInfo.getCmPercent());
                 product.setOrganizePercent(organizeSkuInfo.getOrganizePercent());
                 product.setShopPercent(organizeSkuInfo.getShopPercent());

+ 3 - 1
src/main/resources/mapper/BaseMapper.xml

@@ -123,9 +123,11 @@
         select r.currentPrice
         from repeat_purchase_price r
                  left join cm_sku cs on r.skuId = cs.skuId
+                 LEFT JOIN cm_organize_product_info copi ON copi.productId = cs.productId
         where r.skuId = #{skuId}
           and r.userId = #{userId}
-          and ((cs.costCheckFlag = 1 and r.currentPrice <![CDATA[ >= ]]> cs.costPrice) or cs.costCheckFlag = 2)
+          and copi.organizeId = 0
+          and ((copi.costCheckFlag = 1 and r.currentPrice <![CDATA[ >= ]]> cs.costPrice) or copi.costCheckFlag = 2)
           and cs.price <![CDATA[ >= ]]> r.currentPrice
           and cs.organizeId = 0
           and r.delFlag = 0

+ 1 - 1
src/main/resources/mapper/OrderClubMapper.xml

@@ -1052,7 +1052,7 @@
                normalPrice,
                costPrice,
                ifnull(ladderPriceFlag,0) as ladderPriceFlag,
-               costCheckFlag,
+               (SELECT costCheckFlag FROM cm_organize_product_info WHERE productId = cs.productId AND organizeId = cs.organizeId ) AS costCheckFlag,
                shopPercent as costProportional,
                stock,
                unit,

+ 2 - 1
src/main/resources/mapper/ReceiptMapper.xml

@@ -679,8 +679,9 @@
         LEFT JOIN USER u ON cso.userID = u.userID
         LEFT JOIN shop s ON cso.shopID = s.shopID
         LEFT JOIN cm_order_product cop ON cso.shopOrderId = cop.shopOrderId
+        LEFT JOIN cm_order co ON co.orderID = cso.orderId
         <where>
-            cso.orderType != 2 and cso.delFlag = '0' and ( s.AccountOwnership = 0 or s.bankAccount is null)
+            cso.orderType != 2 and cso.delFlag = '0' and ( s.AccountOwnership = 0 or s.bankAccount is null) AND co.receiptStatus != 3
             <if test="organizeId == 0">
                 AND cso.organizeID = 0
             </if>

+ 20 - 16
src/main/resources/mapper/SubmitMapper.xml

@@ -58,7 +58,7 @@
             parameterType="com.caimei365.order.model.po.OrderProductPo" useGeneratedKeys="true">
         INSERT INTO cm_order_product (orderID, orderNo, shopOrderID, shopOrderNo, organizeID, orderPromotionsId,
                                       productId, shopId,
-                                      name,
+                                      name, organizeCostPrice, cmCostPrice,
                                       productImage, price, shopName, costPrice, normalPrice, ladderPriceFlag,
                                       discountPrice, discount,
                                       totalAmount, totalFee, shouldPayFee, productUnit, num, presentNum, discountFee,
@@ -72,7 +72,7 @@
                                       svipDiscount, svipReduction, skuID, cmPercent, organizePercent, shopPercent)
         VALUES (#{orderId}, #{orderNo}, #{shopOrderId}, #{shopOrderNo}, #{organizeId}, #{orderPromotionsId},
                 #{productId}, #{shopId},
-                #{name},
+                #{name}, #{organizeCostPrice}, #{cmCostPrice},
                 #{image}, #{price}, #{shopName}, #{costPrice}, #{normalPrice}, #{ladderPriceFlag},
                 #{discountPrice}, #{discount},
                 #{totalAmount}, #{totalFee}, #{shouldPayFee}, #{productUnit}, #{num}, #{presentNum}, #{discountFee},
@@ -169,17 +169,21 @@
         WHERE orderID = #{orderId}
     </update>
     <select id="getOrganizeSkuInfo" resultType="com.caimei365.order.model.po.CmOrganizeSkuPo">
-        SELECT skuId,
-               productId,
-               minBuyNumber,
-               price,
-               unit,
-               stock,
-               ifnull(organizePercent, 0) as organizePercent,
-               ifnull(shopPercent, 0) as shopPercent,
-               ifnull(cmPercent, 0) as cmPercent
-        FROM cm_sku
-        where skuId = #{skuId}
+        SELECT distinct cs.skuId,
+               cs.productId,
+               cs.minBuyNumber,
+               cs.price,
+               cs.unit,
+               cs.stock,
+               ifnull(copi.costCheckFlag,1) as costCheckFlag,
+               IFNULL(cs.organizeCostPrice, 0) AS organizeCostPrice,
+               IFNULL(cs.cmCostPrice, 0) AS cmCostPrice,
+               ifnull(cs.organizePercent, 0) as organizePercent,
+               ifnull(cs.shopPercent, 0) as shopPercent,
+               ifnull(cs.cmPercent, 0) as cmPercent
+        FROM cm_sku cs
+        LEFT JOIN cm_organize_product_info copi ON cs.productId = copi.productId
+        WHERE cs.skuId = #{skuId} AND cs.organizeId = #{organizeId}
     </select>
     <select id="getOrderInvoice" resultType="com.caimei365.order.model.po.InvoicePo">
         SELECT id,
@@ -224,7 +228,7 @@
                p.mainImage                 AS image,
                cs.price,
                cs.costPrice,
-               IFNULL(cs.costCheckFlag, 1) AS costCheckFlag,
+               IFNULL((SELECT costCheckFlag FROM cm_organize_product_info WHERE productId = cs.productId AND organizeId = cs.organizeId ), 1) AS costCheckFlag,
                cs.shopPercent              as costProportional,
                p.productCategory,
                cs.ladderPriceFlag,
@@ -248,7 +252,7 @@
                p.mainImage        AS image,
                cs.price,
                cs.costPrice,
-               IFNULL(cs.costCheckFlag, 1) AS costCheckFlag,
+               IFNULL((SELECT costCheckFlag FROM cm_organize_product_info WHERE productId = cs.productId AND organizeId = cs.organizeId ), 1) AS costCheckFlag,
                cs.shopPercent as costProportional,
                p.productCategory,
                cs.ladderPriceFlag,
@@ -337,7 +341,7 @@
                p.mainImage                 AS image,
                cs.price,
                cs.costPrice,
-               IFNULL(cs.costCheckFlag, 1) AS costCheckFlag,
+               IFNULL((SELECT costCheckFlag FROM cm_organize_product_info WHERE productId = cs.productId AND organizeId = cs.organizeId ), 1) AS costCheckFlag,
                cs.shopPercent              as costProportional,
                p.productCategory,
                cs.ladderPriceFlag,