Browse Source

常采购商品

PLF 5 years ago
parent
commit
366c2f09a3

+ 16 - 7
src/main/java/com/caimei/controller/order/OrderController.java

@@ -2,10 +2,7 @@ package com.caimei.controller.order;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.caimei.entity.CmOperationUser;
-import com.caimei.entity.CmOrder;
-import com.caimei.entity.Page;
-import com.caimei.entity.WxJsonModel;
+import com.caimei.entity.*;
 import com.caimei.service.order.OrderService;
 import com.caimei.utils.HttpRequest;
 import com.caimei.utils.JsonMapper;
@@ -220,13 +217,25 @@ public class OrderController {
      */
     @ResponseBody
     @RequestMapping("/myOrder")
-    public WxJsonModel myOrder(Integer orderState, Integer userID, Integer index, Integer pageSize) {
+    public WxJsonModel myOrder(Integer orderState, Integer userID, Integer index, Integer pageSize, Integer organizeID) {
         WxJsonModel model = WxJsonModel.newInstance();
-        if (userID == null) return model.error("参数异常");
+        if (userID == null || orderState == null || organizeID == null) return model.error("参数异常");
+        if (index == null) index = 1;
+        if (pageSize == null) pageSize = 10;
         PageHelper.startPage(index, pageSize);
-        List<CmOrder> orderList = orderService.myOrder(userID, orderState);
+        List<CmOrder> orderList = orderService.myOrder(userID, orderState, organizeID);
         Page<CmOrder> page = new Page<>(orderList);
         return model.success(page);
     }
+
+    /**
+     * 常采购商品
+     */
+    @ResponseBody
+    @RequestMapping("/purchase")
+    public WxJsonModel oftenPurchase(Integer userID, Integer organizeID) {
+        List<CmOrganizeProducts> organizeProductsList = orderService.oftenPurchase(userID, organizeID);
+        return null;
+    }
 }
 

+ 36 - 0
src/main/java/com/caimei/entity/Club.java

@@ -13,6 +13,10 @@ public class Club implements Serializable {
     private String contactNumber;   //联系我们
     private String introduction;    //关于我们
     private Integer cartCount;      //购物车数量
+    private Integer paymentCount;   //待付款数量
+    private Integer waitShipmentsCount;     //待发货数量
+    private Integer shipmentsCount;     //已发货数量
+    private Integer salesReturnCount;   //退货款数量
 
     public Integer getClubID() {
         return clubID;
@@ -93,4 +97,36 @@ public class Club implements Serializable {
     public void setCartCount(Integer cartCount) {
         this.cartCount = cartCount;
     }
+
+    public Integer getPaymentCount() {
+        return paymentCount;
+    }
+
+    public void setPaymentCount(Integer paymentCount) {
+        this.paymentCount = paymentCount;
+    }
+
+    public Integer getWaitShipmentsCount() {
+        return waitShipmentsCount;
+    }
+
+    public void setWaitShipmentsCount(Integer waitShipmentsCount) {
+        this.waitShipmentsCount = waitShipmentsCount;
+    }
+
+    public Integer getShipmentsCount() {
+        return shipmentsCount;
+    }
+
+    public void setShipmentsCount(Integer shipmentsCount) {
+        this.shipmentsCount = shipmentsCount;
+    }
+
+    public Integer getSalesReturnCount() {
+        return salesReturnCount;
+    }
+
+    public void setSalesReturnCount(Integer salesReturnCount) {
+        this.salesReturnCount = salesReturnCount;
+    }
 }

+ 10 - 5
src/main/java/com/caimei/entity/LogisticsInfo.java

@@ -1,6 +1,9 @@
 package com.caimei.entity;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
@@ -12,7 +15,7 @@ import java.util.List;
  * @author 李俊
  * @version 2019-12-17
  */
-public class LogisticsInfo implements Serializable{
+public class LogisticsInfo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private Long id;
@@ -29,9 +32,11 @@ public class LogisticsInfo implements Serializable{
     private Long shopID;//供应商ID
     private Date updateDate;//最后更新时间
     private String remarks;//备注
-    private String deliveryTime; //发货时间
+    @DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date deliveryTime; //发货时间
 
-    private List<Router> routers= new ArrayList<>();//此对象使用在转换info格式提供前端使用。JSONArray.parseArray(info, Router.class)
+    private List<Router> routers = new ArrayList<>();//此对象使用在转换info格式提供前端使用。JSONArray.parseArray(info, Router.class)
 
 
     public LogisticsInfo() {
@@ -161,11 +166,11 @@ public class LogisticsInfo implements Serializable{
         this.routers = routers;
     }
 
-    public String getDeliveryTime() {
+    public Date getDeliveryTime() {
         return deliveryTime;
     }
 
-    public void setDeliveryTime(String deliveryTime) {
+    public void setDeliveryTime(Date deliveryTime) {
         this.deliveryTime = deliveryTime;
     }
 }

+ 5 - 1
src/main/java/com/caimei/mapper/order/OrderMapper.java

@@ -48,5 +48,9 @@ public interface OrderMapper {
 
     void saveShareCodeRecord(CmMallShareCodeRecord codeRecord);
 
-    List<CmOrder> findAllOrder(@Param("userID") Integer userID, @Param("orderState") Integer orderState);
+    List<CmOrder> findAllOrder(@Param("userID") Integer userID, @Param("orderState") Integer orderState, @Param("organizeID") Integer organizeID);
+
+    String findShareCode(Integer orderID);
+
+    List<CmOrganizeProducts> oftenPurchase(@Param("userID") Integer userID, @Param("organizeID") Integer organizeID);
 }

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

@@ -2,6 +2,7 @@ package com.caimei.mapper.user;
 
 import com.caimei.entity.*;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -37,4 +38,6 @@ public interface PersonalMapper {
     void invoice(UserInvoiceInfo userInvoiceInfo);
 
     void updateInvoice(UserInvoiceInfo userInvoiceInfo);
+
+    Integer findOrderCount(@Param("userID") Integer userID, @Param("orderState") Integer orderState, @Param("organizeID") Integer organizeID);
 }

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

@@ -1,6 +1,7 @@
 package com.caimei.service.order;
 
 import com.caimei.entity.CmOrder;
+import com.caimei.entity.CmOrganizeProducts;
 import com.caimei.entity.WxJsonModel;
 
 import java.util.List;
@@ -19,5 +20,7 @@ public interface OrderService {
 
     WxJsonModel verifyShareCode(String shareCode, String openid, Integer orderID, Integer userID, Integer organizeID);
 
-    List<CmOrder> myOrder(Integer userID, Integer orderState);
+    List<CmOrder> myOrder(Integer userID, Integer orderState, Integer organizeID);
+
+    List<CmOrganizeProducts> oftenPurchase(Integer userID, Integer organizeID);
 }

+ 37 - 17
src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

@@ -1,7 +1,6 @@
 package com.caimei.service.order.impl;
 
 import com.alibaba.fastjson.JSONArray;
-import com.caimei.controller.order.OrderController;
 import com.caimei.entity.*;
 import com.caimei.mapper.order.CmShopOrderMapper;
 import com.caimei.mapper.order.OrderMapper;
@@ -92,12 +91,21 @@ public class OrderServiceImpl implements OrderService {
         //运费
         FreePostageCard freePostageCard = orderMapper.queryFree(userId);
         String freight = "";
-        if (freePostageCard != null && classifyIDS.contains("3")) {
+        //-1到付,0包邮,-2仪器到付其它包邮
+        boolean classify = true;//判断是否全部是仪器
+        for (String classifyID : classifyIDS.split(",")) {
+            if (classifyID != null && classifyID.equals("3") && classify) {
+                classify = true;
+            } else {
+                classify = false;
+            }
+        }
+        if (freePostageCard == null || classify) {
+            freight = "-1";
+        } else if (classifyIDS.contains("3")) {
             freight = "-2";
-        } else if (freePostageCard != null) {
-            freight = "0";
         } else {
-            freight = "-1";
+            freight = "0";
         }
         //客服热线号码
         String cellPhone = loginMapper.cellPhone(organizeID);
@@ -202,6 +210,8 @@ public class OrderServiceImpl implements OrderService {
         List<CmReturnedPurchase> returnedPurchaseList = orderMapper.findReturnedPurchase(order.getOrderID());
         //客服热线号码
         String cellPhone = loginMapper.cellPhone(orderID);
+        //分享码
+        String shareCode = orderMapper.findShareCode(orderID);
         map.put("order", order);
         map.put("userInfo", userInfo);
         map.put("shopOrderList", shopOrderList);
@@ -209,6 +219,7 @@ public class OrderServiceImpl implements OrderService {
         map.put("discernReceiptList", discernReceiptList);
         map.put("returnedPurchaseList", returnedPurchaseList);
         map.put("cellPhone", cellPhone);
+        map.put("shareCode", shareCode);
         return map;
     }
 
@@ -268,10 +279,10 @@ public class OrderServiceImpl implements OrderService {
                         double productFee = retailPrice * productNum;//单个商品的金额
                         //统计商品总金额
                         productTotalFee += productFee;
-                        if(classifyID == 3 && !isIncludedInstruments){//判断是否存在仪器
+                        if (classifyID == 3 && !isIncludedInstruments) {//判断是否存在仪器
                             isIncludedInstruments = true;
                         }
-                        if(classifyID != 3 && !isIncludedProduct){//判断是否存在商品
+                        if (classifyID != 3 && !isIncludedProduct) {//判断是否存在商品
                             isIncludedProduct = true;
                         }
 
@@ -329,16 +340,16 @@ public class OrderServiceImpl implements OrderService {
             }
 
             /**判断免邮标志*/
-            if(isIncludedInstruments){//包括仪器
-                if(isIncludedProduct && null != freePostageCard){//包含商品且有包邮卡
+            if (isIncludedInstruments) {//包括仪器
+                if (isIncludedProduct && null != freePostageCard) {//包含商品且有包邮卡
                     cmOrder.setFreePostFlag("-2");//免邮标志:-1到付,0包邮,1需要运费,-2仪器到付其它包邮【小程序只存在-1,0,-2】
-                }else{//(1包含商品无包邮卡,2不包含商品)
+                } else {//(1包含商品无包邮卡,2不包含商品)
                     cmOrder.setFreePostFlag("-1");
                 }
-            }else{//不包括仪器
-                if(isIncludedProduct && null != freePostageCard){//无仪器包含商品且有包邮卡
+            } else {//不包括仪器
+                if (isIncludedProduct && null != freePostageCard) {//无仪器包含商品且有包邮卡
                     cmOrder.setFreePostFlag("0");//免邮标志:-1到付,0包邮,1需要运费,-2仪器到付其它包邮【小程序只存在-1,0,-2】
-                }else{//(1无仪器包含商品无包邮卡)
+                } else {//(1无仪器包含商品无包邮卡)
                     cmOrder.setFreePostFlag("-1");
                 }
             }
@@ -394,9 +405,9 @@ public class OrderServiceImpl implements OrderService {
 
             /**判断发票使用*/
             UserInvoiceInfo info = personalMapper.findInvoice(userId);
-            if(null != info){
+            if (null != info) {
                 cmOrder.setInvoiceFlag("2");//是否开发票 没开发票0 /开个人发票1 /开企业发票2【小程序目前只存在0,2】
-            }else{
+            } else {
                 cmOrder.setInvoiceFlag("0");
             }
 
@@ -618,8 +629,8 @@ public class OrderServiceImpl implements OrderService {
     }
 
     @Override
-    public List<CmOrder> myOrder(Integer userID, Integer orderState) {
-        List<CmOrder> orderList = orderMapper.findAllOrder(userID, orderState);
+    public List<CmOrder> myOrder(Integer userID, Integer orderState, Integer organizeID) {
+        List<CmOrder> orderList = orderMapper.findAllOrder(userID, orderState, organizeID);
         for (CmOrder order : orderList) {
             String[] ShopOrderIDs = {};
             if (order.getShopOrderIDs().contains(",")) {
@@ -640,4 +651,13 @@ public class OrderServiceImpl implements OrderService {
         }
         return orderList;
     }
+
+    @Override
+    public List<CmOrganizeProducts> oftenPurchase(Integer userID, Integer organizeID) {
+        List<CmOrganizeProducts> organizeProductsList = orderMapper.oftenPurchase(userID, organizeID);
+        for (CmOrganizeProducts organizeProducts : organizeProductsList) {
+            organizeProducts.setMainImage(AppUtils.getImageURL("product", organizeProducts.getMainImage(), 0, domain));
+        }
+        return organizeProductsList;
+    }
 }

+ 16 - 0
src/main/java/com/caimei/service/user/impl/PersonalServiceImpl.java

@@ -37,6 +37,22 @@ public class PersonalServiceImpl implements PersonalService {
             if (count == null) count = 0;
             logger.info("------------PersonalServiceImpl.myCentre.count:" + count);
             club.setCartCount(count);
+            //待付款数量
+            Integer paymentCount = personalMapper.findOrderCount(club.getUserID(), 1, operationUser.getUserOrganizeID());
+            if (paymentCount == null) paymentCount = 0;
+            club.setPaymentCount(paymentCount);
+            //待发货数量
+            Integer waitShipmentsCount = personalMapper.findOrderCount(club.getUserID(), 2, operationUser.getUserOrganizeID());
+            if (waitShipmentsCount == null) waitShipmentsCount = 0;
+            club.setWaitShipmentsCount(waitShipmentsCount);
+            //已发货数量
+            Integer shipmentsCount = personalMapper.findOrderCount(club.getUserID(), 3, operationUser.getUserOrganizeID());
+            if (shipmentsCount == null) shipmentsCount = 0;
+            club.setShipmentsCount(shipmentsCount);
+            //退货款数量
+            Integer salesReturnCount = personalMapper.findOrderCount(club.getUserID(), 4, operationUser.getUserOrganizeID());
+            if (salesReturnCount == null) salesReturnCount = 0;
+            club.setSalesReturnCount(salesReturnCount);
         }
         return club;
     }

+ 35 - 1
src/main/resources/mapper/OrderMapper.xml

@@ -172,7 +172,7 @@
           userID = #{userID}
           AND delFlag = '0'
           AND freePostFlag = '1'
-          and expiredTime > now()
+          AND expiredTime > now()
     </select>
 
     <update id="updateCode" parameterType="com.caimei.entity.OrderShareCode">
@@ -384,6 +384,7 @@
         WHERE
           userID = #{userID}
           AND delFlag = '0'
+          AND organizeID= #{organizeID}
         <if test="orderState == 1 ">
             AND status IN(11,12,13,21,22,23)
         </if>
@@ -399,4 +400,37 @@
         ORDER BY
           orderTime DESC
     </select>
+
+    <select id="findShareCode" resultType="string" parameterType="int">
+        SELECT
+          shareCode
+        FROM
+          cm_mall_order_share_code
+        WHERE
+          orderID = #{orderID}
+          AND delFlag = '0'
+          AND expiredTime > NOW()
+    </select>
+
+    <select id="oftenPurchase" resultType="com.caimei.entity.CmOrganizeProducts">
+        SELECT
+          cmop.*,
+          p.mainImage,
+          p.name,
+          p.unit
+        FROM
+          cm_order co
+          LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
+          LEFT JOIN cm_mall_organize_products cmop ON cmop.id = cop.organizeProductID
+          LEFT JOIN product p ON cmop.productID = p.productID
+        WHERE
+          co.delFlag = '0'
+          AND co.status NOT IN(6, 7)
+          AND co.userID = #{userID}
+          AND co.organizeID = #{organizeID}
+        GROUP BY
+          cop.organizeProductID
+        ORDER BY
+          COUNT(*) DESC
+    </select>
 </mapper>

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

@@ -175,4 +175,27 @@
         WHERE
           userId = #{userId}
     </update>
+    
+    <select id="findOrderCount" resultType="int">
+        SELECT
+          COUNT(*)
+        FROM
+          cm_order
+        WHERE
+          userID = #{userID}
+          AND delFlag = '0'
+          AND organizeID= #{organizeID}
+        <if test="orderState == 1">
+            AND status IN(11,12,13,21,22,23)
+        </if>
+        <if test="orderState == 2">
+            AND status IN(11,12,21,22,31,32)
+        </if>
+        <if test="orderState == 3">
+            AND status IN(12,13,22,23,32,33)
+        </if>
+        <if test="orderState == 4">
+            AND refundType IN(1,2)
+        </if>
+    </select>
 </mapper>