lijun 5 years ago
parent
commit
20fe64d828

+ 19 - 1
src/main/java/com/caimei/entity/CmOrganizeProducts.java

@@ -23,7 +23,7 @@ public class CmOrganizeProducts implements Serializable {
     private String updateTime;     //更新时间
     private String delFlag;     //是否有效状态 0 有效 其它无效
     private String mainImage;   //主图
-    private String name;        //名称
+    private String name;        //商品名称
     private String unit;        //包装规格
     private Integer productCount;  //商品数量
     private Integer cartCount;   //购物车总数量
@@ -31,6 +31,8 @@ public class CmOrganizeProducts implements Serializable {
     private List<ProductImage> ProductImage;  //商品图片
     private ProductDetailInfo productDetailInfo; //商品详情
     private Shop shop;      //供应商信息
+    private String shopName;        //商品名称
+    private String productClassifyName;//商品分类名字
     private Boolean productsChecked = false;  //商品勾选状态
 
     public Integer getId() {
@@ -256,4 +258,20 @@ public class CmOrganizeProducts implements Serializable {
     public void setProductsChecked(Boolean productsChecked) {
         this.productsChecked = productsChecked;
     }
+
+    public String getShopName() {
+        return shopName;
+    }
+
+    public void setShopName(String shopName) {
+        this.shopName = shopName;
+    }
+
+    public String getProductClassifyName() {
+        return productClassifyName;
+    }
+
+    public void setProductClassifyName(String productClassifyName) {
+        this.productClassifyName = productClassifyName;
+    }
 }

+ 10 - 0
src/main/java/com/caimei/mapper/products/OrganizeProductsMapper.java

@@ -0,0 +1,10 @@
+package com.caimei.mapper.products;
+
+import com.caimei.entity.CmOrganizeProducts;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface OrganizeProductsMapper {
+    CmOrganizeProducts selectProductById(@Param("id") Integer id);
+}

+ 21 - 9
src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

@@ -3,6 +3,7 @@ package com.caimei.service.order.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.caimei.entity.*;
 import com.caimei.mapper.order.OrderMapper;
+import com.caimei.mapper.products.OrganizeProductsMapper;
 import com.caimei.mapper.user.LoginMapper;
 import com.caimei.mapper.user.PersonalMapper;
 import com.caimei.mapper.user.UserMapper;
@@ -29,6 +30,8 @@ public class OrderServiceImpl implements OrderService {
     private LoginMapper loginMapper;
     @Autowired
     private UserMapper userMapper;
+    @Autowired
+    private OrganizeProductsMapper organizeProductsMapper;
 
     @Value("${miniprogram.domain}")
     private String domain;
@@ -187,28 +190,37 @@ public class OrderServiceImpl implements OrderService {
         if (null != orderInfoList) {
             Integer productCount = 0;//统计购买所有商品的数量
             double productTotalFee = 0d;//商品总金额 (商品单价乘以数量,再加上税费[默认0])
-            double orderTotalFee = 0d;//小计金额 (商品折后单价乘以数量,再加上税费[默认0])
+            //double orderTotalFee = 0d;//小计金额 (商品折后单价乘以数量,再加上税费[默认0])商城下单和商品总金额一样
             double payTotalFee = 0d;//订单总额(小计金额减去经理折扣后,再加上运费[默认0])
             double payableAmount = 0d;//真实支付金额(订单总额减去抵扣的账户余额)
-            for (Map<String, Object> shopOrderInfo : orderInfoList) {//遍历订单信息
+            for (Map<String, Object> shopOrderInfo : orderInfoList) {//遍历订单商品信息
                 String shopId = (String) shopOrderInfo.get("shopId");
                 String note = (String) shopOrderInfo.get("note");
                 Object productInfo = shopOrderInfo.get("productInfo");//一个子订单对应的商品信息
-                if (StringUtils.isEmpty(shopId)) {
-                    return wxJsonModel.error("1001", "供应商数据异常");
-                }
-                if (null == productInfo) {
-                    return wxJsonModel.error("1001", "订单商品数据异常");
-                }
+                if (StringUtils.isEmpty(shopId)) return wxJsonModel.error("1001", "供应商数据异常");
+                if (null == productInfo) return wxJsonModel.error("1001", "订单商品数据异常");
                 //获取子订单商品信息
                 List<Map<String, Object>> productInfoList = (List<Map<String, Object>>) productInfo;
                 if (!CollectionUtils.isEmpty(productInfoList)) {
                     for (Map<String, Object> product : productInfoList) {//遍历所有商品
                         Integer productId = (Integer) product.get("productId");
                         Integer productNum = (Integer) product.get("productNum");
+                        //统计商品总数量
+                        productCount += productCount;
+                        //获取商品信息
+                        CmOrganizeProducts cmOrganizeProducts = organizeProductsMapper.selectProductById(productId);
+                        if (null == cmOrganizeProducts) return wxJsonModel.error("1001", "订单商品数据异常");
+                        if (null == productNum || productNum == 0) return wxJsonModel.error("1001", "商品购买数量异常");
+                        Double retailPrice = cmOrganizeProducts.getRetailPrice();//售价
+                        double productFee = retailPrice * productNum;//单个商品的金额
+                        //统计商品总金额
+                        productTotalFee += productFee;
+
+
                     }
                 }
             }
+            payTotalFee = productTotalFee;
 
             //初始化主订单参数
             CmOrder cmOrder = new CmOrder();
@@ -221,7 +233,7 @@ public class OrderServiceImpl implements OrderService {
             cmOrder.setHasActProduct("0");
             cmOrder.setSendOutStatus("1");//待发货
             cmOrder.setProductTotalFee(productTotalFee);
-            cmOrder.setOrderTotalFee(orderTotalFee);
+            cmOrder.setOrderTotalFee(productTotalFee);
             cmOrder.setPayTotalFee(payTotalFee);
             cmOrder.setPreferential(0d);
             cmOrder.setDiscountFee(0d);//经理折扣

+ 44 - 0
src/main/resources/mapper/OrganizeProductsMapper.xml

@@ -0,0 +1,44 @@
+<?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.mapper.products.OrganizeProductsMapper">
+    
+	<sql id="cmMallOrganizeProductsColumns">
+		a.id AS "id",
+		a.classifyID AS "classifyID",
+		a.organizeID AS "organizeID",
+		a.productID AS "productID",
+		a.normalPrice AS "normalPrice",
+		a.costPrice AS "costPrice",
+		a.retailPrice AS "retailPrice",
+		a.minBuyNumber AS "minBuyNumber",
+		a.preferredProduct AS "preferredProduct",
+		a.commonlyProduct AS "commonlyProduct",
+		a.preferentialProduct AS "preferentialProduct",
+		a.validFlag AS "validFlag",
+		a.preferredProductSort AS "preferredProductSort",
+		a.commonlyProductSort AS "commonlyProductSort",
+		a.preferentialProductSort AS "preferentialProductSort",
+		a.addTime AS "addTime",
+		a.updateTime AS "updateTime",
+		a.delFlag AS "delFlag",
+		p.mainImage AS "mainImage",
+		p.name AS "name",
+		s.name AS "shopName",
+		cmpc.classifyName AS "productClassifyName"
+	</sql>
+	
+	<sql id="cmMallOrganizeProductsJoins">
+		LEFT JOIN product p on p.productID = a.productID
+		LEFT JOIN shop s on s.shopID = p.shopID
+		LEFT JOIN cm_mall_products_classify cmpc on cmpc.id = a.classifyID
+	</sql>
+    
+	<select id="selectProductById" resultType="com.caimei.entity.CmOrganizeProducts">
+		SELECT 
+			<include refid="cmMallOrganizeProductsColumns"/>
+		FROM cm_mall_organize_products a
+		<include refid="cmMallOrganizeProductsJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+</mapper>