Bladeren bron

确认订单

PLF 5 jaren geleden
bovenliggende
commit
20dbd0d49a

+ 44 - 0
src/main/java/com/caimei/controller/order/OrderController.java

@@ -0,0 +1,44 @@
+package com.caimei.controller.order;
+
+import com.caimei.entity.WxJsonModel;
+import com.caimei.service.order.OrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.Map;
+
+/**
+ * 订单
+ */
+@Controller
+@RequestMapping("/order")
+public class OrderController {
+    @Autowired
+    private OrderService orderService;
+
+    /**
+     * 确认订单信息
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/confirm")
+    public WxJsonModel confirmOrder(Integer userId, String classifyIDS, Integer organizeID) {
+        Map<String, Object> map = orderService.confirmOrder(userId, classifyIDS, organizeID);
+        return WxJsonModel.newInstance().success(map);
+    }
+
+    /**
+     * 分享订单
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/share")
+    public WxJsonModel shareOrder(Integer orderID) {
+        String shareCode = orderService.shareOrder(orderID);
+        return WxJsonModel.newInstance().success(shareCode);
+    }
+}

+ 10 - 0
src/main/java/com/caimei/controller/user/PersonalController.java

@@ -150,4 +150,14 @@ public class PersonalController {
         return res.success("删除成功", "");
     }
 
+    /**
+     * 发票信息
+     */
+    @ResponseBody
+    @RequestMapping("/invoice")
+    public WxJsonModel invoice(@RequestBody UserInvoiceInfo userInvoiceInfo) {
+        if (userInvoiceInfo == null) return WxJsonModel.newInstance().error("参数异常");
+        WxJsonModel jsonModel = personalService.invoice(userInvoiceInfo);
+        return jsonModel;
+    }
 }

+ 69 - 0
src/main/java/com/caimei/entity/FreePostageCard.java

@@ -0,0 +1,69 @@
+package com.caimei.entity;
+
+import java.io.Serializable;
+
+public class FreePostageCard implements Serializable {
+    private Integer id;
+    private Integer userID;     //用户ID,关联user表的userID
+    private String freePostFlag;    //免邮标志:0不包邮、1包邮
+    private String freePostFee;     //免邮价位
+    private String addTime;         //添加时间
+    private String expiredTime;     //到期时间,默认一年内有效
+    private String delFlag;         //0 有效 其它无效
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserID() {
+        return userID;
+    }
+
+    public void setUserID(Integer userID) {
+        this.userID = userID;
+    }
+
+    public String getFreePostFlag() {
+        return freePostFlag;
+    }
+
+    public void setFreePostFlag(String freePostFlag) {
+        this.freePostFlag = freePostFlag;
+    }
+
+    public String getFreePostFee() {
+        return freePostFee;
+    }
+
+    public void setFreePostFee(String freePostFee) {
+        this.freePostFee = freePostFee;
+    }
+
+    public String getAddTime() {
+        return addTime;
+    }
+
+    public void setAddTime(String addTime) {
+        this.addTime = addTime;
+    }
+
+    public String getExpiredTime() {
+        return expiredTime;
+    }
+
+    public void setExpiredTime(String expiredTime) {
+        this.expiredTime = expiredTime;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+}

+ 61 - 0
src/main/java/com/caimei/entity/OrderShareCode.java

@@ -0,0 +1,61 @@
+package com.caimei.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class OrderShareCode implements Serializable {
+    private Integer id;
+    private Integer orderID;    //主订单ID,关联cm_order的ID
+    private String shareCode;   //订单分享码,默认24小时有效
+    private Date addTime;     //添加时间
+    private Date expiredTime; //过期时间
+    private String delFlag;     //0 有效 其它无效
+
+    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 String getShareCode() {
+        return shareCode;
+    }
+
+    public void setShareCode(String shareCode) {
+        this.shareCode = shareCode;
+    }
+
+    public Date getAddTime() {
+        return addTime;
+    }
+
+    public void setAddTime(Date addTime) {
+        this.addTime = addTime;
+    }
+
+    public Date getExpiredTime() {
+        return expiredTime;
+    }
+
+    public void setExpiredTime(Date expiredTime) {
+        this.expiredTime = expiredTime;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+}

+ 78 - 0
src/main/java/com/caimei/entity/UserInvoiceInfo.java

@@ -0,0 +1,78 @@
+package com.caimei.entity;
+
+import java.io.Serializable;
+
+public class UserInvoiceInfo implements Serializable {
+    private Integer id;//ID
+    private Integer userId;
+    private String invoiceTitle;        // 发票抬头 个人名称或企业名称
+    private String corporationTaxNum;        // 企业税号
+    private String registeredAddress;//注册地址
+    private String registeredPhone;//注册电话
+    private String bankAccountNo;//开户银行账户
+    private String openBank;//开户银行
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getInvoiceTitle() {
+        return invoiceTitle;
+    }
+
+    public void setInvoiceTitle(String invoiceTitle) {
+        this.invoiceTitle = invoiceTitle;
+    }
+
+    public String getCorporationTaxNum() {
+        return corporationTaxNum;
+    }
+
+    public void setCorporationTaxNum(String corporationTaxNum) {
+        this.corporationTaxNum = corporationTaxNum;
+    }
+
+    public String getRegisteredAddress() {
+        return registeredAddress;
+    }
+
+    public void setRegisteredAddress(String registeredAddress) {
+        this.registeredAddress = registeredAddress;
+    }
+
+    public String getRegisteredPhone() {
+        return registeredPhone;
+    }
+
+    public void setRegisteredPhone(String registeredPhone) {
+        this.registeredPhone = registeredPhone;
+    }
+
+    public String getBankAccountNo() {
+        return bankAccountNo;
+    }
+
+    public void setBankAccountNo(String bankAccountNo) {
+        this.bankAccountNo = bankAccountNo;
+    }
+
+    public String getOpenBank() {
+        return openBank;
+    }
+
+    public void setOpenBank(String openBank) {
+        this.openBank = openBank;
+    }
+}

+ 16 - 0
src/main/java/com/caimei/mapper/order/OrderMapper.java

@@ -0,0 +1,16 @@
+package com.caimei.mapper.order;
+
+import com.caimei.entity.FreePostageCard;
+import com.caimei.entity.OrderShareCode;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface OrderMapper {
+    OrderShareCode queryCode(Integer orderID);
+
+    FreePostageCard queryFree(Integer userId);
+
+    void updateCode(OrderShareCode orderShareCode);
+
+    void insertCode(OrderShareCode code);
+}

+ 6 - 0
src/main/java/com/caimei/mapper/user/PersonalMapper.java

@@ -31,4 +31,10 @@ public interface PersonalMapper {
     Address findDefaultAddress(Integer userID);
 
     Double ableUserMoney(Integer userId);
+
+    UserInvoiceInfo findInvoice(Integer userId);
+
+    void invoice(UserInvoiceInfo userInvoiceInfo);
+
+    void updateInvoice(UserInvoiceInfo userInvoiceInfo);
 }

+ 9 - 0
src/main/java/com/caimei/service/order/OrderService.java

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

+ 82 - 0
src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

@@ -0,0 +1,82 @@
+package com.caimei.service.order.impl;
+
+import com.caimei.entity.FreePostageCard;
+import com.caimei.entity.OrderShareCode;
+import com.caimei.entity.UserInvoiceInfo;
+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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+public class OrderServiceImpl implements OrderService {
+    @Autowired
+    private OrderMapper orderMapper;
+    @Autowired
+    private PersonalMapper personalMapper;
+    @Autowired
+    private LoginMapper loginMapper;
+
+    @Override
+    public Map<String, Object> confirmOrder(Integer userId, String classifyIDS, Integer organizeID) {
+        Map<String, Object> map = new HashMap();
+        //发票信息
+        UserInvoiceInfo invoice = personalMapper.findInvoice(userId);
+        //运费
+        FreePostageCard freePostageCard = orderMapper.queryFree(userId);
+        String freight = "";
+        if (freePostageCard != null && classifyIDS.contains("3")) {
+            freight = "仪器到付,产品包邮";
+        } else if (freePostageCard != null) {
+            freight = "包邮";
+        } else {
+            freight = "到付";
+        }
+        //客服热线号码
+        String cellPhone = loginMapper.cellPhone(organizeID);
+        //可用余额
+        Double userMoney = personalMapper.ableUserMoney(userId);
+        if (userMoney == null) userMoney = 0d;
+        map.put("invoice", invoice);
+        map.put("freight", freight);
+        map.put("cellPhone", cellPhone);
+        map.put("userMoney", userMoney);
+        return map;
+    }
+
+    @Override
+    public String shareOrder(Integer orderID) {
+        OrderShareCode orderShareCode = orderMapper.queryCode(orderID);
+        //生成分享码
+        Integer shareCode = (int) ((Math.random() * 9 + 1) * 1000);
+        //过期时间
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.add(Calendar.DATE, 1);
+        if (orderShareCode != null && orderShareCode.getExpiredTime().compareTo(new Date()) == 1) {
+            return orderShareCode.getShareCode();
+        } else if (orderShareCode != null) {
+            orderShareCode.setShareCode(String.valueOf(shareCode));
+            orderShareCode.setExpiredTime(calendar.getTime());
+            orderShareCode.setDelFlag("0");
+            orderMapper.updateCode(orderShareCode);
+            return String.valueOf(shareCode);
+        } else {
+            OrderShareCode code = new OrderShareCode();
+            code.setOrderID(orderID);
+            code.setShareCode(String.valueOf(shareCode));
+            code.setExpiredTime(calendar.getTime());
+            code.setAddTime(new Date());
+            code.setDelFlag("0");
+            orderMapper.insertCode(code);
+            return String.valueOf(shareCode);
+        }
+    }
+}

+ 2 - 0
src/main/java/com/caimei/service/user/PersonalService.java

@@ -23,4 +23,6 @@ public interface PersonalService {
     void saveAddress(Address address);
 
     void deleteAddress(Integer addressID);
+
+    WxJsonModel invoice(UserInvoiceInfo userInvoiceInfo);
 }

+ 12 - 1
src/main/java/com/caimei/service/user/impl/PersonalServiceImpl.java

@@ -134,5 +134,16 @@ public class PersonalServiceImpl implements PersonalService {
         personalMapper.deleteAddress(addressID);
     }
 
-
+    @Override
+    public WxJsonModel invoice(UserInvoiceInfo userInvoiceInfo) {
+        WxJsonModel res = WxJsonModel.newInstance();
+        UserInvoiceInfo invoiceInfo = personalMapper.findInvoice(userInvoiceInfo.getUserId());
+        if (invoiceInfo == null && userInvoiceInfo.getInvoiceTitle() != null) {
+            personalMapper.invoice(userInvoiceInfo);
+        } else if (invoiceInfo != null) {
+            personalMapper.updateInvoice(userInvoiceInfo);
+        }
+        UserInvoiceInfo info = personalMapper.findInvoice(userInvoiceInfo.getUserId());
+        return res.success(info);
+    }
 }

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

@@ -0,0 +1,49 @@
+<?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.order.OrderMapper">
+    <select id="queryCode" parameterType="int" resultType="com.caimei.entity.OrderShareCode">
+        SELECT
+          *
+        FROM
+          cm_mall_order_share_code
+        WHERE
+          orderID = #{orderID}
+          AND delFlag = '0'
+    </select>
+
+    <select id="queryFree" resultType="com.caimei.entity.FreePostageCard" parameterType="int">
+        SELECT
+          *
+        FROM
+          cm_mall_free_postage_card
+        WHERE
+          userID = #{userID}
+          AND delFlag = '0'
+          AND freePostFlag = '0'
+    </select>
+
+    <update id="updateCode" parameterType="com.caimei.entity.OrderShareCode">
+        UPDATE
+          cm_mall_order_share_code
+        SET
+          shareCode = #{shareCode},
+          expiredTime = #{expiredTime},
+          delFlag = #{delFlag}
+        WHERE
+          orderID = #{orderID}
+    </update>
+
+    <insert id="insertCode" parameterType="com.caimei.entity.OrderShareCode">
+        INSERT INTO cm_mall_order_share_code (
+          orderID, shareCode, ADDTIME, expiredTime,
+          delFlag
+        )
+        VALUES
+          (
+            #{orderID}, #{shareCode}, #{addTime}, #{expiredTime},
+            #{delFlag}
+          )
+    </insert>
+</mapper>

+ 37 - 0
src/main/resources/mapper/PersonalMapper.xml

@@ -138,4 +138,41 @@
           userID = #{userID}
           AND defaultFlag = '1'
     </select>
+
+    <select id="findInvoice" parameterType="int" resultType="com.caimei.entity.UserInvoiceInfo">
+        SELECT
+          *
+        FROM
+          cm_user_invoiceinfo
+        WHERE
+          userId = #{userId}
+    </select>
+
+    <insert id="invoice" parameterType="com.caimei.entity.UserInvoiceInfo">
+        INSERT INTO cm_user_invoiceinfo (
+          userId, invoiceTitle, corporationTaxNum,
+          registeredAddress, registeredPhone,
+          bankAccountNo, openBank
+        )
+        VALUES
+          (
+            #{userId}, #{invoiceTitle}, #{corporationTaxNum},
+            #{registeredAddress}, #{registeredPhone},
+            #{bankAccountNo}, #{openBank}
+          )
+    </insert>
+
+    <update id="updateInvoice" parameterType="com.caimei.entity.UserInvoiceInfo">
+        UPDATE
+          cm_user_invoiceinfo
+        SET
+          invoiceTitle = #{invoiceTitle},
+          corporationTaxNum = #{corporationTaxNum},
+          registeredAddress = #{registeredAddress},
+          registeredPhone = #{registeredPhone},
+          bankAccountNo = #{bankAccountNo},
+          openBank = #{openBank}
+        WHERE
+          userId = #{userId}
+    </update>
 </mapper>