Explorar o código

用户行为优化1.0.5

huangzhiguo hai 1 ano
pai
achega
10c4ce1953

+ 1 - 1
src/main/java/com/caimei/modules/order/dao/NewShopOrderDao.java

@@ -21,7 +21,7 @@ import java.util.List;
 @MyBatisDao
 public interface NewShopOrderDao extends CrudDao<NewShopOrder> {
 
-    List<String> getProductOrder(Integer orderid);
+    List<String> getProductOrder(Integer shopOrderId);
 
     List<String> getOpenidListByPermission(@Param("unionid") String unionid);
 

+ 80 - 4
src/main/java/com/caimei/modules/order/service/NewOrderService.java

@@ -1886,9 +1886,85 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
             }
             shopOrder.setOutStoreNum(outStoreNum + num);//更新子订单总的出库数量
             if (shopOrder.getOutStoreNum() < shopOrder.getItemCount()) {
+                //推送次数多次发货不推送(只推送一次)
+                Date date = new Date();
+                logger.info("**************************发货微信消息推送************************************");
+                if ("0".equals(shopOrder.getSecondHandOrderFlag()) && "0".equals(shopOrder.getRebateFlag()) && !newShopOrderDao.getProductOrder(shopOrder.getShopOrderID()).contains(6060) && !"0".equals(shopOrder.getOrderType())) {
+                    try {
+
+                        Integer orderId = shopOrder.getOrderID();
+                        String unionid = newShopOrderDao.FromUnionId(orderId);
+                        List<String> openidList = newShopOrderDao.getOpenidListByPermission(unionid);
+                        System.out.println("userid>>>>>>>>>>>>>>>" + orderId + "unionid》》》》》》》》》》" + newShopOrderDao.getOpenidListByPermission(unionid) + "openid》》》》》》》》》" + openidList);
+                        String accessToken = weChatService.getAccessToken();
+                        String shopOrderNo = shopOrder.getShopOrderNo();
+                        String time = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
+                        String company = StringUtils.strip(logisticsInfo.keySet().toString(), "[]");
+                        String companyno = StringUtils.strip(logisticsInfo.values().toString(), "[]");
+                        String pagePath = "pages/user/order/order-details?shopOrderId=" + shopOrder.getShopOrderID();
+                        for (String openid : openidList) {
+                            weChatService.sendTemplateMsgy(accessToken, openid, shopOrderNo, time, company, companyno, pagePath);
+                        }
+                    } catch (Exception e) {
+                        logger.error("【订单发货通知】获取微信公众号access_token异常!", e);
+                    }
+
+                    String curDateStr = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
+                    //推送信息中心-交易物流
+                    MessageCenter messageCenter = new MessageCenter();
+                    messageCenter.setShopId(null);
+                    messageCenter.setClubId(shopOrder.getClubID());
+                    messageCenter.setUserType(1);
+                    messageCenter.setMessageType(1);
+                    messageCenter.setOrderMessageType(5);
+                    messageCenter.setOrderId(shopOrder.getOrderID());
+                    messageCenter.setShopOrderId(shopOrder.getShopOrderID());
+                    messageCenter.setContent(null);
+                    messageCenter.setTime(curDateStr);
+                    messageCenterDao.addMessageCenter(messageCenter);
+
+                }
                 //部分发货
                 shopOrder.setSendOutStatus("2");
             } else {
+                //推送次数多次发货不推送(只推送一次)
+                Date date = new Date();
+                logger.info("****************************发货微信消息推送************************************");
+                if ("1".equals(shopOrder.getSendOutStatus())) {
+                    if ("0".equals(shopOrder.getSecondHandOrderFlag()) && "0".equals(shopOrder.getRebateFlag()) && !"6060".equals(newShopOrderDao.getProductOrder(shopOrder.getShopOrderID())) && !"0".equals(shopOrder.getOrderType())) {
+                        try {
+
+                            Integer orderId = shopOrder.getOrderID();
+                            String unionid = newShopOrderDao.FromUnionId(orderId);
+                            List<String> openidList = newShopOrderDao.getOpenidListByPermission(unionid);
+                            logger.info("userid>>>>>>>>>>>>>>>" + orderId + "unionid》》》》》》》》》》" + unionid + "openid》》》》》》》》》" + openidList);
+                            String accessToken = weChatService.getAccessToken();
+                            String shopOrderNo = shopOrder.getShopOrderNo();
+                            String time = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
+                            String company = StringUtils.strip(logisticsInfo.keySet().toString(), "[]");
+                            String companyno = StringUtils.strip(logisticsInfo.values().toString(), "[]");
+                            String pagePath = "pages/user/order/order-details?type=share&shopOrderId=" + shopOrder.getShopOrderID();
+                            for (String openid : openidList) {
+                                weChatService.sendTemplateMsgy(accessToken, openid, shopOrderNo, time, company, companyno, pagePath);
+                            }
+                        } catch (Exception e) {
+                            logger.error("【订单发货通知】获取微信公众号access_token异常!", e);
+                        }
+                        String curDateStr = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
+                        //推送信息中心-交易物流
+                        MessageCenter messageCenter = new MessageCenter();
+                        messageCenter.setShopId(null);
+                        messageCenter.setClubId(shopOrder.getClubID());
+                        messageCenter.setUserType(1);
+                        messageCenter.setMessageType(1);
+                        messageCenter.setOrderMessageType(5);
+                        messageCenter.setOrderId(shopOrder.getOrderID());
+                        messageCenter.setShopOrderId(shopOrder.getShopOrderID());
+                        messageCenter.setContent(null);
+                        messageCenter.setTime(curDateStr);
+                        messageCenterDao.addMessageCenter(messageCenter);
+                    }
+                }
                 //发货完成 状态为待收货
                 shopOrder.setSendOutStatus("3");
                 // 子订单发货完成以后  计算系统自动收货时间
@@ -1938,7 +2014,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
         String statusSuffix = "";
         if (shopOrders.stream().allMatch(s -> "3".equals(s.getSendOutStatus()))) {
             //推送次数多次发货不推送(只推送一次)
-            Date date = new Date();
+            /*Date date = new Date();
             logger.info("****************************发货微信消息推送************************************");
             if ("1".equals(order.getSendOutStatus())) {
                 if ("0".equals(order.getSecondHandOrderFlag()) && "0".equals(order.getRebateFlag()) && !"6060".equals(newShopOrderDao.getProductOrder(order.getOrderID())) && !"0".equals(order.getOrderType())) {
@@ -1973,14 +2049,14 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
                     messageCenter.setTime(curDateStr);
                     messageCenterDao.addMessageCenter(messageCenter);
                 }
-            }
+            }*/
             //所有的子订单都已经完成发货了
             statusSuffix = "3";
             order.setSendOutStatus("3");
             count++;
         } else {
             //推送次数多次发货不推送(只推送一次)
-            Date date = new Date();
+            /*Date date = new Date();
             logger.info("**************************发货微信消息推送************************************");
             if ("0".equals(order.getSecondHandOrderFlag()) && "0".equals(order.getRebateFlag()) && !newShopOrderDao.getProductOrder(order.getOrderID()).contains(6060) && !"0".equals(order.getOrderType())) {
                 try {
@@ -2015,7 +2091,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
                 messageCenter.setTime(curDateStr);
                 messageCenterDao.addMessageCenter(messageCenter);
 
-            }
+            }*/
 
             //代码走到这里订单肯定是有发货了  整个订单里面的商品没有全部发完  那就是部分发货了
             statusSuffix = "2";

+ 3 - 3
src/main/java/com/caimei/modules/order/service/WeChatService.java

@@ -45,17 +45,17 @@ public class WeChatService {
      * 发货消息推送
      * @param accessToken
      * @param openid
-     * @param orderno 订单编号
+     * @param shopOrderNo 子订单编号
      * @param time 发货时间
      * @param company 快递名称
      * @param companyno 快递编号
      * @param pagePath 跳转链接
      */
-    public void sendTemplateMsgy(String accessToken, String openid, String orderno,String time, String company, String companyno, String pagePath) {
+    public void sendTemplateMsgy(String accessToken, String openid, String shopOrderNo,String time, String company, String companyno, String pagePath) {
         JSONObject first = new JSONObject();
         first.put("value", "尊敬的采美客户,您购买的订单已经发货啦~");
         JSONObject keyword1 = new JSONObject();
-        keyword1.put("value", orderno);
+        keyword1.put("value", shopOrderNo);
         JSONObject keyword2 = new JSONObject();
         keyword2.put("value", time);
         JSONObject keyword3 = new JSONObject();

+ 12 - 0
src/main/java/com/caimei/modules/user/entity/MessageCenter.java

@@ -25,6 +25,10 @@ public class MessageCenter extends DataEntity<MessageCenter> {
      * 订单ID
      */
     private Integer orderId;
+    /**
+     * 子订单Id
+     */
+    private Integer shopOrderId;
     /**
      用户类型1.机构2.供应商
      */
@@ -134,6 +138,14 @@ public class MessageCenter extends DataEntity<MessageCenter> {
         this.orderId = orderId;
     }
 
+    public Integer getShopOrderId() {
+        return shopOrderId;
+    }
+
+    public void setShopOrderId(Integer shopOrderId) {
+        this.shopOrderId = shopOrderId;
+    }
+
     public Integer getCouponType() {
         return couponType;
     }

+ 1 - 1
src/main/java/com/caimei/modules/user/web/newUser/AgencyController.java

@@ -1226,7 +1226,7 @@ public class AgencyController extends BaseController {
                     String accessToken = weChatService.getAccessToken();
                     String auditTime = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
 
-                    String pagePath = "/pages/login/apply?userBehaviorType=model";
+                    String pagePath = "/pages/tabBar/home/index?userBehaviorType=model";
                     for (String openid : openidList) {
                         weChatService.sendTemplateMsg(accessToken, openid, auditTime, pagePath);
                     }

+ 2 - 2
src/main/resources/mappings/modules/order/ShopOrderMapper.xml

@@ -1497,10 +1497,10 @@
         LIMIT 1
     </select>
 
-    <select id="getProductOrder" resultType="java.lang.String">
+    <select id="getProductOrder" resultType="java.lang.String">g
         SELECT productID
         FROM `cm_order_product`
-        WHERE orderID = #{orderid}
+        WHERE shopOrderId = #{shopOrderId}
     </select>
 
     <select id="payWay" resultType="java.lang.Integer">

+ 2 - 2
src/main/resources/mappings/modules/user/MessageCenter.xml

@@ -4,9 +4,9 @@
 
     <insert id="addMessageCenter">
         INSERT INTO message_center (shopID, clubID, userType, messageType, content, time, accountType, couponType,
-                                    couponFee, couponMessageType, orderID, orderMessageType, shopMessType, productID)
+                                    couponFee, couponMessageType, orderID, shopOrderId, orderMessageType, shopMessType, productID)
         VALUES (#{shopId}, #{clubId}, #{userType}, #{messageType}, #{content}, #{time}, #{accountType}, #{couponType},
-                #{couponFee}, #{couponMessageType}, #{orderId}, #{orderMessageType}, #{shopMessType}, #{productId})
+                #{couponFee}, #{couponMessageType}, #{orderId}, #{shopOrderId}, #{orderMessageType}, #{shopMessType}, #{productId})
     </insert>
 
     <select id="clubIdCule" resultType="java.lang.Integer">