浏览代码

确认订单修改

PLF 5 年之前
父节点
当前提交
6ebf6a3310

+ 12 - 2
src/main/java/com/caimei/controller/order/OrderController.java

@@ -25,8 +25,8 @@ public class OrderController {
      */
     @ResponseBody
     @RequestMapping("/confirm")
-    public WxJsonModel confirmOrder(Integer userId, String classifyIDS, Integer organizeID) {
-        Map<String, Object> map = orderService.confirmOrder(userId, classifyIDS, organizeID);
+    public WxJsonModel confirmOrder(Integer userId, String classifyIDS, Integer organizeID, String productIDs, Integer count) {
+        Map<String, Object> map = orderService.confirmOrder(userId, classifyIDS, organizeID, productIDs, count);
         return WxJsonModel.newInstance().success(map);
     }
 
@@ -41,4 +41,14 @@ public class OrderController {
         String shareCode = orderService.shareOrder(orderID);
         return WxJsonModel.newInstance().success(shareCode);
     }
+
+    /**
+     * 订单详情
+     */
+    @ResponseBody
+    @RequestMapping("/particulars")
+    public WxJsonModel particulars(Integer orderID) {
+        Map<String, Object> map = orderService.particulars(orderID);
+        return null;
+    }
 }

+ 132 - 0
src/main/java/com/caimei/entity/BpOrderUserInfo.java

@@ -0,0 +1,132 @@
+package com.caimei.entity;
+
+import java.io.Serializable;
+
+public class BpOrderUserInfo implements Serializable {
+    private Integer id;
+    private Integer orderId;//订单ID
+    private Integer clubId;//机构ID
+    private Integer userId;//用户ID
+    private String name;//买家买家
+    private String shouHuoRen;//收货人
+    private Integer townId;//县区ID
+    private String mobile;//手机
+    private String phone;//电话
+    private String postalCode;//邮编
+    private String province;//省、直辖市
+    private String city;//市
+    private String town;//县、区
+    private String address;//收货地址
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getClubId() {
+        return clubId;
+    }
+
+    public void setClubId(Integer clubId) {
+        this.clubId = clubId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getShouHuoRen() {
+        return shouHuoRen;
+    }
+
+    public void setShouHuoRen(String shouHuoRen) {
+        this.shouHuoRen = shouHuoRen;
+    }
+
+    public Integer getTownId() {
+        return townId;
+    }
+
+    public void setTownId(Integer townId) {
+        this.townId = townId;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getPostalCode() {
+        return postalCode;
+    }
+
+    public void setPostalCode(String postalCode) {
+        this.postalCode = postalCode;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getTown() {
+        return town;
+    }
+
+    public void setTown(String town) {
+        this.town = town;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+}

+ 447 - 0
src/main/java/com/caimei/entity/CmOrder.java

@@ -0,0 +1,447 @@
+package com.caimei.entity;
+
+import java.io.Serializable;
+
+public class CmOrder implements Serializable {
+    private Integer orderID;        // orderID
+    private String orderNo;        // 订单编号
+    private String newOrderNo;        // 订单编号+四位随机数----新的拼接交易号(transactionID+四位随机数)
+    private Integer organizeID;     //采美组织默认为null,具体对应cm_mall_organize表ID
+    private Integer userID;        // userID
+    private Integer buyUserID;        // 下单人
+    private String shopOrderIDs;        // 子订单ID
+    private Integer orderSubmitType;        // 订单提交类型  0:个人自己下单 1:企业自己下单 2:员工帮机构下单 3:协销帮机构下单  4:后台下单 5:采美豆订单
+    private Integer orderType;        // 订单类型 协销订单 0 普通订单 1
+    private Integer status;        // 订单状态
+    private String statusName;      //订单状态备注
+    private String payFlag;             //支付状态 0未支付 1 已支付
+    private String onlinePayFlag;       //能否线上支付 0能  1 只能线下
+    private Double productTotalFee;        // 商品总金额 = 子订单商品金额相加
+    private Double orderTotalFee;    // decimal(20,6) comment '订单总金额',
+    private Double payTotalFee;         // decimal(20,6) comment '支付金额',
+    private Double payableAmount;       // 应付金额
+    private Double balancePayFee;       // decimal(20,6) comment '余额支付',
+    private Double discountFee;         // decimal(20,6) comment '折扣金额',
+    private Integer spID;        // spID
+    private Integer mainSpID;        // mainSpID
+    private String note;        // 订单备注
+    private Integer clubID;        // clubID
+    private String clubScanTime;        // 机构扫描确认时间
+    private String payWay;        // 支付方式
+    private String orderSource;        // 订单来源
+    private String orderTime;        // 订单提交时间
+    private String payTime;        // 订单支付时间
+    private Integer productCount;        // 购买总数
+    private Integer presentCount;        // 赠送总数
+    private String cooFreeFlag;        // 库分期免息状态
+    private Integer cooFreeRate;        // 库分期分期费率
+    private Double cooFreeAmount;        // 库分期免息金额
+    private String confirmFlag;        // 订单确认标志  0 未确认 1 后台确认 2 机构确认
+    private String updateDate;          //更新时间
+    private Integer clauseID;        // 条款ID
+    private String clauseContent;        // 条款内容
+    private String clauseName;        // 条款名称
+    private String freePostFlag;        // 免邮标志  0 包邮 -1 到付 1有运费
+    private Double freight;        // 总运费
+    private Integer freePostageTicketID;        // 包邮券ID
+    private String delFlag;        // 订单失效状态
+    private String invoiceFlag;      //是否开发票 0 不开 1 开发票
+    private Double preferential;//总优惠金额
+    private String confirmTime; //订单确认时间
+    private String closeTime; //订单取消时间
+    private String closeReason;//订单取消原因
+    private String splitFlag;  //是否可以拆单
+    private String postageOrderFlag; //邮费订单标识 1是邮费订单 0不是邮费订单
+
+    public Integer getOrderID() {
+        return orderID;
+    }
+
+    public void setOrderID(Integer orderID) {
+        this.orderID = orderID;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public String getNewOrderNo() {
+        return newOrderNo;
+    }
+
+    public void setNewOrderNo(String newOrderNo) {
+        this.newOrderNo = newOrderNo;
+    }
+
+    public Integer getOrganizeID() {
+        return organizeID;
+    }
+
+    public void setOrganizeID(Integer organizeID) {
+        this.organizeID = organizeID;
+    }
+
+    public Integer getUserID() {
+        return userID;
+    }
+
+    public void setUserID(Integer userID) {
+        this.userID = userID;
+    }
+
+    public Integer getBuyUserID() {
+        return buyUserID;
+    }
+
+    public void setBuyUserID(Integer buyUserID) {
+        this.buyUserID = buyUserID;
+    }
+
+    public String getShopOrderIDs() {
+        return shopOrderIDs;
+    }
+
+    public void setShopOrderIDs(String shopOrderIDs) {
+        this.shopOrderIDs = shopOrderIDs;
+    }
+
+    public Integer getOrderSubmitType() {
+        return orderSubmitType;
+    }
+
+    public void setOrderSubmitType(Integer orderSubmitType) {
+        this.orderSubmitType = orderSubmitType;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getStatusName() {
+        return statusName;
+    }
+
+    public void setStatusName(String statusName) {
+        this.statusName = statusName;
+    }
+
+    public String getPayFlag() {
+        return payFlag;
+    }
+
+    public void setPayFlag(String payFlag) {
+        this.payFlag = payFlag;
+    }
+
+    public String getOnlinePayFlag() {
+        return onlinePayFlag;
+    }
+
+    public void setOnlinePayFlag(String onlinePayFlag) {
+        this.onlinePayFlag = onlinePayFlag;
+    }
+
+    public Double getProductTotalFee() {
+        return productTotalFee;
+    }
+
+    public void setProductTotalFee(Double productTotalFee) {
+        this.productTotalFee = productTotalFee;
+    }
+
+    public Double getOrderTotalFee() {
+        return orderTotalFee;
+    }
+
+    public void setOrderTotalFee(Double orderTotalFee) {
+        this.orderTotalFee = orderTotalFee;
+    }
+
+    public Double getPayTotalFee() {
+        return payTotalFee;
+    }
+
+    public void setPayTotalFee(Double payTotalFee) {
+        this.payTotalFee = payTotalFee;
+    }
+
+    public Double getPayableAmount() {
+        return payableAmount;
+    }
+
+    public void setPayableAmount(Double payableAmount) {
+        this.payableAmount = payableAmount;
+    }
+
+    public Double getBalancePayFee() {
+        return balancePayFee;
+    }
+
+    public void setBalancePayFee(Double balancePayFee) {
+        this.balancePayFee = balancePayFee;
+    }
+
+    public Double getDiscountFee() {
+        return discountFee;
+    }
+
+    public void setDiscountFee(Double discountFee) {
+        this.discountFee = discountFee;
+    }
+
+    public Integer getSpID() {
+        return spID;
+    }
+
+    public void setSpID(Integer spID) {
+        this.spID = spID;
+    }
+
+    public Integer getMainSpID() {
+        return mainSpID;
+    }
+
+    public void setMainSpID(Integer mainSpID) {
+        this.mainSpID = mainSpID;
+    }
+
+    public String getNote() {
+        return note;
+    }
+
+    public void setNote(String note) {
+        this.note = note;
+    }
+
+    public Integer getClubID() {
+        return clubID;
+    }
+
+    public void setClubID(Integer clubID) {
+        this.clubID = clubID;
+    }
+
+    public String getClubScanTime() {
+        return clubScanTime;
+    }
+
+    public void setClubScanTime(String clubScanTime) {
+        this.clubScanTime = clubScanTime;
+    }
+
+    public String getPayWay() {
+        return payWay;
+    }
+
+    public void setPayWay(String payWay) {
+        this.payWay = payWay;
+    }
+
+    public String getOrderSource() {
+        return orderSource;
+    }
+
+    public void setOrderSource(String orderSource) {
+        this.orderSource = orderSource;
+    }
+
+    public String getOrderTime() {
+        return orderTime;
+    }
+
+    public void setOrderTime(String orderTime) {
+        this.orderTime = orderTime;
+    }
+
+    public String getPayTime() {
+        return payTime;
+    }
+
+    public void setPayTime(String payTime) {
+        this.payTime = payTime;
+    }
+
+    public Integer getProductCount() {
+        return productCount;
+    }
+
+    public void setProductCount(Integer productCount) {
+        this.productCount = productCount;
+    }
+
+    public Integer getPresentCount() {
+        return presentCount;
+    }
+
+    public void setPresentCount(Integer presentCount) {
+        this.presentCount = presentCount;
+    }
+
+    public String getCooFreeFlag() {
+        return cooFreeFlag;
+    }
+
+    public void setCooFreeFlag(String cooFreeFlag) {
+        this.cooFreeFlag = cooFreeFlag;
+    }
+
+    public Integer getCooFreeRate() {
+        return cooFreeRate;
+    }
+
+    public void setCooFreeRate(Integer cooFreeRate) {
+        this.cooFreeRate = cooFreeRate;
+    }
+
+    public Double getCooFreeAmount() {
+        return cooFreeAmount;
+    }
+
+    public void setCooFreeAmount(Double cooFreeAmount) {
+        this.cooFreeAmount = cooFreeAmount;
+    }
+
+    public String getConfirmFlag() {
+        return confirmFlag;
+    }
+
+    public void setConfirmFlag(String confirmFlag) {
+        this.confirmFlag = confirmFlag;
+    }
+
+    public String getUpdateDate() {
+        return updateDate;
+    }
+
+    public void setUpdateDate(String updateDate) {
+        this.updateDate = updateDate;
+    }
+
+    public Integer getClauseID() {
+        return clauseID;
+    }
+
+    public void setClauseID(Integer clauseID) {
+        this.clauseID = clauseID;
+    }
+
+    public String getClauseContent() {
+        return clauseContent;
+    }
+
+    public void setClauseContent(String clauseContent) {
+        this.clauseContent = clauseContent;
+    }
+
+    public String getClauseName() {
+        return clauseName;
+    }
+
+    public void setClauseName(String clauseName) {
+        this.clauseName = clauseName;
+    }
+
+    public String getFreePostFlag() {
+        return freePostFlag;
+    }
+
+    public void setFreePostFlag(String freePostFlag) {
+        this.freePostFlag = freePostFlag;
+    }
+
+    public Double getFreight() {
+        return freight;
+    }
+
+    public void setFreight(Double freight) {
+        this.freight = freight;
+    }
+
+    public Integer getFreePostageTicketID() {
+        return freePostageTicketID;
+    }
+
+    public void setFreePostageTicketID(Integer freePostageTicketID) {
+        this.freePostageTicketID = freePostageTicketID;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public String getInvoiceFlag() {
+        return invoiceFlag;
+    }
+
+    public void setInvoiceFlag(String invoiceFlag) {
+        this.invoiceFlag = invoiceFlag;
+    }
+
+    public Double getPreferential() {
+        return preferential;
+    }
+
+    public void setPreferential(Double preferential) {
+        this.preferential = preferential;
+    }
+
+    public String getConfirmTime() {
+        return confirmTime;
+    }
+
+    public void setConfirmTime(String confirmTime) {
+        this.confirmTime = confirmTime;
+    }
+
+    public String getCloseTime() {
+        return closeTime;
+    }
+
+    public void setCloseTime(String closeTime) {
+        this.closeTime = closeTime;
+    }
+
+    public String getCloseReason() {
+        return closeReason;
+    }
+
+    public void setCloseReason(String closeReason) {
+        this.closeReason = closeReason;
+    }
+
+    public String getSplitFlag() {
+        return splitFlag;
+    }
+
+    public void setSplitFlag(String splitFlag) {
+        this.splitFlag = splitFlag;
+    }
+
+    public String getPostageOrderFlag() {
+        return postageOrderFlag;
+    }
+
+    public void setPostageOrderFlag(String postageOrderFlag) {
+        this.postageOrderFlag = postageOrderFlag;
+    }
+}

+ 13 - 2
src/main/java/com/caimei/mapper/order/OrderMapper.java

@@ -1,8 +1,11 @@
 package com.caimei.mapper.order;
 
-import com.caimei.entity.FreePostageCard;
-import com.caimei.entity.OrderShareCode;
+import com.caimei.entity.*;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 @Mapper
 public interface OrderMapper {
@@ -13,4 +16,12 @@ public interface OrderMapper {
     void updateCode(OrderShareCode orderShareCode);
 
     void insertCode(OrderShareCode code);
+
+    List<Shop> findShop(List<String> productIDs);
+
+    List<CmOrganizeProducts> findAllCommodity(Map<String, Object> params);
+
+    CmOrganizeProducts findCommodity(@Param("productIDs") String productIDs, @Param("shopID") Integer shopID);
+
+    BpOrderUserInfo findUserInfo(Integer orderID);
 }

+ 3 - 1
src/main/java/com/caimei/service/order/OrderService.java

@@ -3,7 +3,9 @@ package com.caimei.service.order;
 import java.util.Map;
 
 public interface OrderService {
-    Map<String, Object> confirmOrder(Integer userId, String classifyIDS, Integer organizeID);
+    Map<String, Object> confirmOrder(Integer userId, String classifyIDS, Integer organizeID, String productIDs, Integer count);
 
     String shareOrder(Integer orderID);
+
+    Map<String, Object> particulars(Integer orderID);
 }

+ 53 - 8
src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

@@ -1,19 +1,16 @@
 package com.caimei.service.order.impl;
 
-import com.caimei.entity.FreePostageCard;
-import com.caimei.entity.OrderShareCode;
-import com.caimei.entity.UserInvoiceInfo;
+import com.caimei.entity.*;
 import com.caimei.mapper.order.OrderMapper;
 import com.caimei.mapper.user.LoginMapper;
 import com.caimei.mapper.user.PersonalMapper;
 import com.caimei.service.order.OrderService;
+import com.caimei.utils.AppUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class OrderServiceImpl implements OrderService {
@@ -23,10 +20,46 @@ public class OrderServiceImpl implements OrderService {
     private PersonalMapper personalMapper;
     @Autowired
     private LoginMapper loginMapper;
+    @Value("${miniprogram.domain}")
+    private String domain;
 
     @Override
-    public Map<String, Object> confirmOrder(Integer userId, String classifyIDS, Integer organizeID) {
+    public Map<String, Object> confirmOrder(Integer userId, String classifyIDS, Integer organizeID, String productIDs, Integer count) {
         Map<String, Object> map = new HashMap();
+        //商品信息
+        List<String> list = new ArrayList();
+        if (productIDs.contains(",")) {
+            String[] split = productIDs.split(",");
+            list = Arrays.asList(split);
+        } else {
+            list.add(productIDs);
+        }
+        List<Shop> shopList = orderMapper.findShop(list);
+        for (Shop shop : shopList) {
+            List<CmOrganizeProducts> productsList = new ArrayList();
+            Double totalPrice = 0d;
+            if (count == null) {
+                //购物车购买
+                Map<String, Object> params = new HashMap();
+                params.put("productIDs", list);
+                params.put("shopID", shop.getShopID());
+                params.put("userId", userId);
+                productsList = orderMapper.findAllCommodity(params);
+                for (CmOrganizeProducts products : productsList) {
+                    products.setMainImage(AppUtils.getImageURL("product", products.getMainImage(), 0, domain));
+                    totalPrice += products.getRetailPrice() * products.getProductCount();
+                }
+            } else {
+                //立即购买
+                CmOrganizeProducts products = orderMapper.findCommodity(productIDs, shop.getShopID());
+                products.setMainImage(AppUtils.getImageURL("product", products.getMainImage(), 0, domain));
+                products.setProductCount(count);
+                totalPrice = products.getRetailPrice() * products.getProductCount();
+                productsList.add(products);
+            }
+            shop.setTotalPrice(totalPrice);
+            shop.setProductsList(productsList);
+        }
         //发票信息
         UserInvoiceInfo invoice = personalMapper.findInvoice(userId);
         //运费
@@ -44,6 +77,7 @@ public class OrderServiceImpl implements OrderService {
         //可用余额
         Double userMoney = personalMapper.ableUserMoney(userId);
         if (userMoney == null) userMoney = 0d;
+        map.put("shopList", shopList);
         map.put("invoice", invoice);
         map.put("freight", freight);
         map.put("cellPhone", cellPhone);
@@ -79,4 +113,15 @@ public class OrderServiceImpl implements OrderService {
             return String.valueOf(shareCode);
         }
     }
+
+    @Override
+    public Map<String, Object> particulars(Integer orderID) {
+        Map<String, Object> map = new HashMap();
+        //收货地址
+        BpOrderUserInfo userInfo = orderMapper.findUserInfo(orderID);
+        //订单信息
+
+        map.put("userInfo", userInfo);
+        return null;
+    }
 }

+ 66 - 0
src/main/resources/mapper/OrderMapper.xml

@@ -46,4 +46,70 @@
             #{delFlag}
           )
     </insert>
+
+    <select id="findShop" resultType="com.caimei.entity.Shop">
+        SELECT
+           s.*
+        FROM
+          cm_mall_organize_products cmop
+          LEFT JOIN product p ON cmop.productID = p.productID
+          LEFT JOIN shop s ON p.shopID = s.shopID
+          LEFT JOIN cm_mall_cart cmc ON cmop.id = cmc.productID
+        WHERE
+          cmop.id IN
+        <foreach item="productID" index="index" collection="list" open="(" separator="," close=")">
+            #{productID}
+        </foreach>
+          AND cmop.delFlag='0'
+        GROUP BY
+          s.shopID
+        ORDER BY
+          MAX(cmc.addTime) DESC
+    </select>
+
+    <select id="findAllCommodity" resultType="com.caimei.entity.CmOrganizeProducts">
+        SELECT
+          cmop.*,
+          p.mainImage,
+          p.name,
+          p.unit,
+          cmc.productCount
+        FROM
+          cm_mall_organize_products cmop
+          LEFT JOIN cm_mall_cart cmc ON cmop.id = cmc.productID
+          LEFT JOIN product p ON cmop.productID = p.productID
+        WHERE
+          p.shopID = #{shopID}
+          AND cmc.userID = #{userId}
+          AND cmop.id IN
+        <foreach item="productID" index="index" collection="productIDs" open="(" separator="," close=")">
+            #{productID}
+        </foreach>
+          AND cmc.delFlag = '0'
+        ORDER BY
+          cmc.addTime DESC
+    </select>
+
+    <select id="findCommodity" resultType="com.caimei.entity.CmOrganizeProducts">
+        SELECT
+          cmop.*,
+          p.mainImage,
+          p.name,
+          p.unit
+        FROM
+          cm_mall_organize_products cmop
+          LEFT JOIN product p ON cmop.productID = p.productID
+        WHERE
+          p.shopID = #{shopID}
+          AND cmop.id = #{productIDs}
+    </select>
+
+    <select id="findUserInfo" resultType="com.caimei.entity.BpOrderUserInfo" parameterType="int">
+        SELECT
+          *
+        FROM
+          bp_order_userinfo
+        WHERE
+          orderId = #{orderId}
+    </select>
 </mapper>