Browse Source

公众号消息

Duan_xu 3 years ago
parent
commit
d578214bd3

+ 22 - 1
src/main/java/com/caimei365/user/mapper/MessageCenterMapper.java

@@ -25,6 +25,8 @@ public interface MessageCenterMapper {
 
     Integer shopID(Integer userId);
 
+    List<Integer> receiptShopID();
+
     UserVo clubList(Integer userId);
 
     CouponVo CouponList(Integer couponType);
@@ -36,9 +38,22 @@ public interface MessageCenterMapper {
      */
     Integer Count(Integer userType,Integer commonId);
 
+    Integer receStatct(Integer shopID);
+
+    /**
+     * 上架费数量
+     */
+    Integer listingFee(Integer shopID);
+
+    /**
+     * 上架费过期数量
+     */
+    Integer listingfeeExpire(Integer shopID);
+
     List<MessageCenter> MessageList(Integer userType,Integer messageType,Integer commonId);
 
     String contractMobile(Integer clubID);
+
     String contractMobiles(Integer ShopID);
 
     String getOpenidListByPermission(String unionId);
@@ -47,7 +62,11 @@ public interface MessageCenterMapper {
 
     Integer getVipHistoryCount(Integer userID);
 
-    MessageCenter MainImage(Integer userType, Integer commonId);
+    MessageCenter MainImage(Integer userType, Integer commonId,Integer orderID);
+
+    MessageCenter productImage(Integer productID,Integer shopID);
+
+    Integer productCount(Integer orderID);
 
     String receiptDate(Integer shopID);
 
@@ -59,6 +78,8 @@ public interface MessageCenterMapper {
 
     Integer userId(String openid);
 
+    Integer userIds(Integer shopID);
+
     Integer deleteMessage(String id);
 
     Integer updateRead(Integer userType,String Id);

+ 5 - 0
src/main/java/com/caimei365/user/mapper/SuperVipMapper.java

@@ -42,6 +42,11 @@ public interface SuperVipMapper {
      */
     SuperVipPo findSuperVip(Integer userId);
 
+    /**
+     * vip过期推送
+     */
+    List<SuperVipPo> findVip();
+
     /**
      * 查用户名下采美豆余额
      *

+ 14 - 0
src/main/java/com/caimei365/user/model/vo/MessageCenter.java

@@ -93,4 +93,18 @@ public class MessageCenter implements Serializable {
      * 退货退款类型:1部分退、2全部退
      */
     private Integer refundType;
+
+    /**
+     *订单状态
+     */
+    private Integer status;
+    /**
+     * 商品ID
+     */
+    private Integer productId;
+
+    /**
+     * 供应商公司名称
+     */
+    private String shopName;
 }

+ 3 - 0
src/main/java/com/caimei365/user/model/vo/UserLoginVo.java

@@ -153,4 +153,7 @@ public class UserLoginVo implements Serializable {
 
     @ApiModelProperty("未读消息总数")
     private Integer savedCount;
+
+    @ApiModelProperty("上架费状态")
+    private Integer listingFee;
 }

+ 191 - 197
src/main/java/com/caimei365/user/service/impl/LoginServiceImpl.java

@@ -119,12 +119,6 @@ public class LoginServiceImpl implements LoginService {
 
             Integer clubId = messageCenterMapper.clubIdCule(baseUser.getUserId());
             Integer savedCount = null;
-            if (baseUser.getUserId() != null) {
-                Integer shopID = messageCenterMapper.shopID(baseUser.getUserId());
-                Integer newReceiptType = messageCenterMapper.newReceiptType(shopID);
-                Timerw(baseUser.getUserId());
-                Timesjf(baseUser.getUserId());
-            }
 
             // 比对密码
             String md5Password = Md5Util.md5(password);
@@ -209,8 +203,6 @@ public class LoginServiceImpl implements LoginService {
             log.info(">>>>>" + shopID);
             Integer newReceiptType = messageCenterMapper.newReceiptType(shopID);
             log.info(">>>>>" + newReceiptType);
-            Timerw(userID);
-            Timesjf(userID);
         }
         if (null != seller) {
             loginMapper.updateServiceProviderUnionId(seller.getUserId(), unionId);
@@ -318,7 +310,8 @@ public class LoginServiceImpl implements LoginService {
         List<MessageCenter> list = messageCenterMapper.MessageList(1, messageType, commonId);
         list.forEach(mess -> {
             if (null != mess.getClubId()) {
-                MessageCenter messageCenter = messageCenterMapper.MainImage(1, commonId);
+                MessageCenter messageCenter = messageCenterMapper.MainImage(1, commonId, mess.getOrderId());
+                Integer productCount=messageCenterMapper.productCount(mess.getOrderId());
                 if (null != messageCenter) {
                     mess.setMainImage(messageCenter.getMainImage());
                     mess.setOnlinePayFlag(messageCenter.getOnlinePayFlag());
@@ -327,8 +320,9 @@ public class LoginServiceImpl implements LoginService {
                     } else {
                         mess.setProductName(messageCenter.getProductName());
                     }
-                    mess.setProductCount(messageCenter.getProductCount());
+                    mess.setProductCount(productCount);
                     mess.setRefundType(messageCenter.getRefundType());
+                    mess.setStatus(messageCenter.getStatus());
                 }
             }
         });
@@ -345,7 +339,7 @@ public class LoginServiceImpl implements LoginService {
         List<MessageCenter> list = messageCenterMapper.MessageList(2, messageType, commonId);
         list.forEach(mess -> {
             if (mess.getShopId() != null) {
-                MessageCenter messageCenter = messageCenterMapper.MainImage(2, commonId);
+                MessageCenter messageCenter = messageCenterMapper.productImage(mess.getProductId(),commonId);
                 if (messageCenter != null) {
                     mess.setMainImage(messageCenter.getMainImage());
                     mess.setOnlinePayFlag(messageCenter.getOnlinePayFlag());
@@ -356,6 +350,7 @@ public class LoginServiceImpl implements LoginService {
                     }
                     mess.setProductCount(messageCenter.getProductCount());
                     mess.setRefundType(messageCenter.getRefundType());
+                    mess.setShopName(messageCenter.getShopName());
                 }
             }
         });
@@ -370,119 +365,112 @@ public class LoginServiceImpl implements LoginService {
     /**
      * 当天天下午3点推送
      */
-    private Void Timesjf(Integer userId) throws ParseException {
+//    @Scheduled(cron = "0 0 15 * * ?")
+    @Scheduled(cron = "0 0/2 * * * ?")
+    public Void Timesjf(){
         //1.获取下午3点的时间
-        SimpleDateFormat dnf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-        Calendar time = Calendar.getInstance();
-        time.set(Calendar.HOUR_OF_DAY, 15);
-        time.set(Calendar.MINUTE, 00);
-        time.set(Calendar.SECOND, 00);
-        String times = dnf.format(time.getTime());
-        System.out.println(times);
-        //2.某天的日期
-        Date date = dnf.parse(times);
-        //与当前时间的毫秒数相减得到相差的毫秒用于定时
-        Long h = (date.getTime() - date.getTime());
-        //这里如果当前时间大于下午三点会出现负数所以就不推送
-        if (h > 0) {
-            ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
-            executorService.schedule(new Runnable() {
-                @SneakyThrows
-                @Override
-                public void run() {
-                    Integer shopID = messageCenterMapper.shopID(userId);
-                    if (shopID != null) {
-                        String receiptDate = messageCenterMapper.receiptDate(shopID);
-                        Double receiptAmount = messageCenterMapper.receiptAmount(shopID);
-                        Calendar calendar = Calendar.getInstance();
-
-                        Integer clubId = messageCenterMapper.clubIdCule(userId);
-                        if (clubId != null) {
-                            Date d = new Date();
-                            //1.日期格式
-                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
-                            Date time = sdf.parse(receiptDate);
-                            calendar.setTime(time);
-                            calendar.add(Calendar.YEAR, 1);
-                            String dateStrings = sdf.format(calendar.getTime());
-                            //2.到期时间
-                            Date da1 = sdf.parse(dateStrings);
-                            //到期时间-当前时间=还剩多少天
-                            Long s = (da1.getTime() - d.getTime()) / 24 / 60 / 60 / 1000;
-                            //3.输出间隔天数         getTime获取的是毫秒
-                            log.info("输出间隔天数----------->", s);
-                            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                            String current = dateFormat.format(new Date());
-                            MessageCenter messageCenter = new MessageCenter();
-                            //推送信息中心-上架费服务通知
-                            if (s == 30) {
-                                messageCenter.setShopId(shopID);
-                                messageCenter.setClubId(null);
-                                messageCenter.setUserType(2);
-                                messageCenter.setMessageType(3);
-                                messageCenter.setShopTieredType(1);
-                                messageCenter.setContent(s + "日后");
-                                messageCenter.setTime(current);
-                                messageCenterMapper.addMessageCenter(messageCenter);
-                                String mobile = messageCenterMapper.contractMobile(clubId);
-                                String content = "【采美365】您的供应商账号上架费将于30日后到期,到期后将无法发布和编辑商品,同时也会影响到其他采美提供的支持服务。请联系采美工作人员进行续费,联系电话0755-22907771 或15338851365";
-                                remoteCallService.remoteSendSms(0, 1, mobile, content);
-                            }
-                            if (s == 7) {
-                                messageCenter.setShopId(shopID);
-                                messageCenter.setClubId(null);
-                                messageCenter.setUserType(2);
-                                messageCenter.setMessageType(3);
-                                messageCenter.setShopTieredType(1);
-                                messageCenter.setContent(s + "日后");
-                                messageCenter.setTime(current);
-                                messageCenterMapper.addMessageCenter(messageCenter);
-                                String mobile = messageCenterMapper.contractMobile(clubId);
-                                String content = "【采美365】您的供应商账号上架费将于7日后到期,到期后将无法发布和编辑商品,同时也会影响到其他采美提供的支持服务。请联系采美工作人员进行续费,联系电话0755-22907771 或15338851365";
-                                remoteCallService.remoteSendSms(0, 1, mobile, content);
-                            }
-                            if (s == 1) {
-                                messageCenter.setShopId(shopID);
-                                messageCenter.setClubId(null);
-                                messageCenter.setUserType(2);
-                                messageCenter.setMessageType(3);
-                                messageCenter.setShopTieredType(1);
-                                messageCenter.setContent("今日");
-                                messageCenter.setTime(current);
-                                messageCenterMapper.addMessageCenter(messageCenter);
-                                String mobile = messageCenterMapper.contractMobile(clubId);
-                                String content = "【采美365】您的供应商账号上架费将于今日后到期,到期后将无法发布和编辑商品,同时也会影响到其他采美提供的支持服务。请联系采美工作人员进行续费,联系电话0755-22907771 或15338851365";
-                                remoteCallService.remoteSendSms(0, 1, mobile, content);
-                            }
-                            if (s <= 0) {
-                                messageCenter.setShopId(shopID);
-                                messageCenter.setClubId(null);
-                                messageCenter.setUserType(2);
-                                messageCenter.setMessageType(3);
-                                messageCenter.setShopTieredType(1);
-                                messageCenter.setContent("已过期");
-                                messageCenter.setTime(current);
-                                messageCenterMapper.addMessageCenter(messageCenter);
-                            }
-                            try {
-                                log.info("***********上架费过期微信公众号推送************");
-                                String accessToken = weChatService.getAccessToken();
-                                String openid = messageCenterMapper.getOpenidListByPermission(messageCenterMapper.FromUnionId(userId));
-                                String date = s.toString();
-                                String remarkText = "如在使用中有任何疑问,请在小程序内联系在线客服";
-                                // 跳转到【小程序付款-选择支付方式页面】
-                                String pagePath = "https://www.caimei365.com/";
-                                // sendTemplateMsg(openid, 标题, 金额, 收款日期, 备注, 跳转链接
-                                log.error("获取openid>>>>>" + openid);
-                                weChatService.sendTemplate(accessToken, openid, date, receiptDate, dateStrings, receiptAmount, remarkText, pagePath);
-                            } catch (Exception e) {
-                                log.error("【上架费过期通知】获取微信公众号access_token异常!", e);
-                            }
-                        }
-                    }
+        log.info(">>>>>>上架费到期推送开始");
+        List<Integer> shopIDs = messageCenterMapper.receiptShopID();
+        shopIDs.forEach(shopID -> {
+            if (shopID != null) {
+                String receiptDate = messageCenterMapper.receiptDate(shopID);
+                Double receiptAmount = messageCenterMapper.receiptAmount(shopID);
+                Calendar calendar = Calendar.getInstance();
+
+                Date d = new Date();
+                //1.日期格式
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+                Date time = null;
+                try {
+                    time = sdf.parse(receiptDate);
+                } catch (ParseException e) {
+                    e.printStackTrace();
                 }
-            }, h, TimeUnit.MILLISECONDS);
-        }
+                calendar.setTime(time);
+                calendar.add(Calendar.YEAR, 1);
+                String dateStrings = sdf.format(calendar.getTime());
+                //2.到期时间
+                Date da1 = null;
+                try {
+                    da1 = sdf.parse(dateStrings);
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+                //到期时间-当前时间=还剩多少天
+                Long s = (da1.getTime() - d.getTime()) / 24 / 60 / 60 / 1000;
+                //3.输出间隔天数         getTime获取的是毫秒
+                log.info("输出间隔天数----------->", s);
+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String current = dateFormat.format(new Date());
+                MessageCenter messageCenter = new MessageCenter();
+                //推送信息中心-上架费服务通知
+                if (s == 30) {
+                    messageCenter.setShopId(shopID);
+                    messageCenter.setClubId(null);
+                    messageCenter.setUserType(2);
+                    messageCenter.setMessageType(3);
+                    messageCenter.setShopTieredType(1);
+                    messageCenter.setContent(s + "日后");
+                    messageCenter.setTime(current);
+                    messageCenterMapper.addMessageCenter(messageCenter);
+                    String mobile = messageCenterMapper.contractMobiles(shopID);
+                    String content = "【采美365】您的供应商账号上架费将于30日后到期,到期后将无法发布和编辑商品,同时也会影响到其他采美提供的支持服务。请联系采美工作人员进行续费,联系电话0755-22907771 或15338851365";
+                    remoteCallService.remoteSendSms(0, 1, mobile, content);
+                }
+                if (s == 7) {
+                    messageCenter.setShopId(shopID);
+                    messageCenter.setClubId(null);
+                    messageCenter.setUserType(2);
+                    messageCenter.setMessageType(3);
+                    messageCenter.setShopTieredType(1);
+                    messageCenter.setContent(s + "日后");
+                    messageCenter.setTime(current);
+                    messageCenterMapper.addMessageCenter(messageCenter);
+                    String mobile = messageCenterMapper.contractMobiles(shopID);
+                    String content = "【采美365】您的供应商账号上架费将于7日后到期,到期后将无法发布和编辑商品,同时也会影响到其他采美提供的支持服务。请联系采美工作人员进行续费,联系电话0755-22907771 或15338851365";
+                    remoteCallService.remoteSendSms(0, 1, mobile, content);
+                }
+                if (s == 1) {
+                    messageCenter.setShopId(shopID);
+                    messageCenter.setClubId(null);
+                    messageCenter.setUserType(2);
+                    messageCenter.setMessageType(3);
+                    messageCenter.setShopTieredType(1);
+                    messageCenter.setContent("今日");
+                    messageCenter.setTime(current);
+                    messageCenterMapper.addMessageCenter(messageCenter);
+                    String mobile = messageCenterMapper.contractMobiles(shopID);
+                    String content = "【采美365】您的供应商账号上架费将于今日后到期,到期后将无法发布和编辑商品,同时也会影响到其他采美提供的支持服务。请联系采美工作人员进行续费,联系电话0755-22907771 或15338851365";
+                    remoteCallService.remoteSendSms(0, 1, mobile, content);
+                }
+                if (s <= 0) {
+                    messageCenter.setShopId(shopID);
+                    messageCenter.setClubId(null);
+                    messageCenter.setUserType(2);
+                    messageCenter.setMessageType(3);
+                    messageCenter.setShopTieredType(1);
+                    messageCenter.setContent("已过期");
+                    messageCenter.setTime(current);
+                    messageCenterMapper.addMessageCenter(messageCenter);
+                }
+                try {
+                    log.info("***********上架费过期微信公众号推送************");
+                    Integer userId=messageCenterMapper.userIds(shopID);
+                    String accessToken = weChatService.getAccessToken();
+                    String openid = messageCenterMapper.getOpenidListByPermission(messageCenterMapper.FromUnionId(userId));
+                    String date = s.toString();
+                    String remarkText = "如在使用中有任何疑问,请在小程序内联系在线客服";
+                    // 跳转到【小程序付款-选择支付方式页面】
+                    String pagePath = "https://www.caimei365.com/";
+                    // sendTemplateMsg(openid, 标题, 金额, 收款日期, 备注, 跳转链接
+                    log.error("获取openid>>>>>" + openid);
+                    weChatService.sendTemplate(accessToken, openid, date, receiptDate, dateStrings, receiptAmount, remarkText, pagePath);
+                } catch (Exception e) {
+                    log.error("【上架费过期通知】获取微信公众号access_token异常!", e);
+                }
+            }
+        });
+        log.info(">>>>>>上架费到期推送结束");
         return null;
     }
 
@@ -490,79 +478,59 @@ public class LoginServiceImpl implements LoginService {
     /**
      * 当天天下午3点推送超级会员过期条件
      */
-    private Void Timerw(Integer userId) throws ParseException {
-        //1.获取下午3点的时间
-        SimpleDateFormat dnf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-        Calendar time = Calendar.getInstance();
-        time.set(Calendar.HOUR_OF_DAY, 15);
-        time.set(Calendar.MINUTE, 00);
-        time.set(Calendar.SECOND, 00);
-
-        String times = dnf.format(time.getTime());
-        System.out.println(times);
-        //2.某天的日期
-        Date date = dnf.parse(times);
-        //与当前时间的毫秒数相减得到相差的毫秒用于定时
-        Long h = (date.getTime() - date.getTime());
-        //这里如果当前时间大于下午三点会出现负数所以就不推送
-        if (h > 0) {
-            /**
-             * 禁止使用Executors
-             */
-            ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
-            executorService.schedule(new Runnable() {
-                @SneakyThrows
-                @Override
-                public void run() {
-                    SuperVipPo superVip = vipMapper.findSuperVip(userId);
-                    Integer clubId = messageCenterMapper.clubIdCule(userId);
-                    if (clubId != null) {
-                        if (superVip != null) {
-                            Date d = new Date();
-                            //1.日期格式
-                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
-                            String endTime = sdf.format(superVip.getEndTime());
-                            //2.某天的日期
-                            Date da1 = sdf.parse(endTime);
-                            Long s = (d.getTime() - da1.getTime()) / 24 / 60 / 60 / 1000;
-                            //3.输出间隔天数         getTime获取的是毫秒
-                            log.info("输出间隔天数----------->", s);
-                            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                            String current = dateFormat.format(new Date());
-                            MessageCenter messageCenter = new MessageCenter();
-                            //推送信息中心-账户通知
-                            if (s == 7) {
-                                messageCenter.setShopId(null);
-                                messageCenter.setClubId(clubId);
-                                messageCenter.setUserType(1);
-                                messageCenter.setMessageType(2);
-                                messageCenter.setAccountType(3);
-                                messageCenter.setContent(s + "日后");
-                                messageCenter.setTime(current);
-                                messageCenterMapper.addMessageCenter(messageCenter);
-                                String mobile = messageCenterMapper.contractMobile(clubId);
-                                String content = "【采美365】您的超级会员将于7日后到期,到期后将无法享受专属会员权益,快戳采美网站链接www.caimei365.com 或微信搜索“采美采购商城”小程序登录采美平台续费吧。关注公众号“采美网”可获取更多优惠和精彩资讯。";
-                                remoteCallService.remoteSendSms(0, 1, mobile, content);
-
-                            }
-                            if (s == 1) {
-                                messageCenter.setShopId(null);
-                                messageCenter.setClubId(clubId);
-                                messageCenter.setUserType(1);
-                                messageCenter.setMessageType(2);
-                                messageCenter.setAccountType(3);
-                                messageCenter.setContent("今日后");
-                                messageCenter.setTime(current);
-                                messageCenterMapper.addMessageCenter(messageCenter);
-                                String mobile = messageCenterMapper.contractMobile(clubId);
-                                String content = "【采美365】您的超级会员将于今日到期,到期后将无法享受专属会员权益,快戳采美网站链接www.caimei365.com 或微信搜索“采美采购商城”小程序登录采美平台续费吧。关注公众号“采美网”可获取更多优惠和精彩资讯。";
-                                remoteCallService.remoteSendSms(0, 1, mobile, content);
-                            }
-                        }
+//    @Scheduled(cron = "0 0 15 * * ?")
+    @Scheduled(cron = "0 0/2 * * * ?")
+    private Void Timerw() throws ParseException {
+
+        List<SuperVipPo> superV = vipMapper.findVip();
+        superV.forEach(superVip -> {
+            Integer clubId = messageCenterMapper.clubIdCule(superVip.getUserId());
+            if (clubId != null) {
+                if (superVip != null) {
+                    Date d = new Date();
+                    //1.日期格式
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+                    String endTime = sdf.format(superVip.getEndTime());
+                    //2.某天的日期
+                    Date da1 = null;
+                    try {
+                        da1 = sdf.parse(endTime);
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+                    Long s = (d.getTime() - da1.getTime()) / 24 / 60 / 60 / 1000;
+                    //3.输出间隔天数         getTime获取的是毫秒
+                    log.info("输出间隔天数----------->", s);
+                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    String current = dateFormat.format(new Date());
+                    MessageCenter messageCenter = new MessageCenter();
+                    //推送信息中心-账户通知
+                    if (s == 7) {
+                        messageCenter.setShopId(null);
+                        messageCenter.setClubId(clubId);
+                        messageCenter.setUserType(1);
+                        messageCenter.setMessageType(2);
+                        messageCenter.setAccountType(3);
+                        messageCenter.setContent(s + "日后");
+                        messageCenter.setTime(current);
+                        messageCenterMapper.addMessageCenter(messageCenter);
+
+
+                    }
+                    if (s == 1) {
+                        messageCenter.setShopId(null);
+                        messageCenter.setClubId(clubId);
+                        messageCenter.setUserType(1);
+                        messageCenter.setMessageType(2);
+                        messageCenter.setAccountType(3);
+                        messageCenter.setContent("今日后");
+                        messageCenter.setTime(current);
+                        messageCenterMapper.addMessageCenter(messageCenter);
+
                     }
                 }
-            }, h, TimeUnit.MILLISECONDS);
-        }
+            }
+        });
         return null;
     }
 
@@ -708,6 +676,22 @@ public class LoginServiceImpl implements LoginService {
 //            loginUser.setUserIdentity(2);
 //            loginUser.setUserPermission(2);
 //        }
+
+        if (loginUser.getUserId() != null) {
+            Integer shopID = messageCenterMapper.shopID(loginUser.getUserId());
+            Integer newReceiptType = messageCenterMapper.newReceiptType(shopID);
+            Integer listingFeeCount= messageCenterMapper.listingFee(shopID);
+            Integer listingfeeExpireCount= messageCenterMapper.listingfeeExpire(shopID);
+            Integer receStatctCount=messageCenterMapper.receStatct(shopID);
+            Integer listingFee=0;
+            if(listingFeeCount>0 || listingfeeExpireCount>0){
+                if(receStatctCount<=0){
+                    listingFee=1;
+                }
+            }
+            loginUser.setListingFee(listingFee);
+        }
+
         // 登录异步赠送10采美豆
         asyncService.loginUpdateBeans(loginUser.getUserId(), loginUser.getUserIdentity());
         loginUser.setManager(sellerMapper.findManagerByUser(loginUser.getUserId()));
@@ -803,10 +787,19 @@ public class LoginServiceImpl implements LoginService {
                 System.out.println(savedCount);
             } else {
                 savedCount = messageCenterMapper.Count(2, shopID);
+                Integer listingFeeCount= messageCenterMapper.listingFee(shopID);
+                Integer listingfeeExpireCount= messageCenterMapper.listingfeeExpire(shopID);
+                Integer receStatctCount=messageCenterMapper.receStatct(shopID);
+                Integer listingFee=0;
+                if(listingFeeCount>0 || listingfeeExpireCount>0){
+                    if(receStatctCount<=0){
+                        listingFee=1;
+                    }
+                }
+
             }
         }
-        Timerw(userId);
-        Timesjf(userId);
+
 
         // 用户数据存入Redis,key前缀:wxInfo:website:
         String infoDataStr = JSON.toJSONString(infoData);
@@ -1029,7 +1022,7 @@ public class LoginServiceImpl implements LoginService {
             messageCenterMapper.addMessageCenter(messageCenter);
 
             //发短信
-            String message = "【采美365】恭喜您成功成为“引号内填写完整的供应商名称”的运营人员,您可通过微信直接登录采美商城管理您的账号。";
+            String message = "【采美365】恭喜您成功成为运营人员,您可通过微信直接登录采美商城进行采购。";
             String mobile = messageCenterMapper.contractMobiles(operation.getShopId());
             if (mobile != null && mobile != "") {
                 remoteCallService.remoteSendSms(2, 3, mobile, message);
@@ -1039,7 +1032,7 @@ public class LoginServiceImpl implements LoginService {
                 String accessToken = weChatService.getAccessToken();
                 String openid = messageCenterMapper.getOpenidListByPermission(unionId);
                 String time = current;
-                String remarkText = "绑定成功后,您可通过微信登录采美商城管理您的账号";
+                String remarkText = "绑定成功后,您可通过微信直接访问采美商城进行采购。";
                 // 跳转到【小程序付款-选择支付方式页面】
                 String pagePath = "https://www.caimei365.com/";
                 // sendTemplateMsg(openid, 标题, 金额, 收款日期, 备注, 跳转链接
@@ -1139,6 +1132,7 @@ public class LoginServiceImpl implements LoginService {
             messageCenter.setMessageType(2);
             messageCenter.setShopMessType(2);
             messageCenter.setContent(nickName);
+            messageCenter.setShopMessType(null);
             messageCenter.setTime(current);
             messageCenterMapper.addMessageCenter(messageCenter);
 

+ 21 - 21
src/main/java/com/caimei365/user/service/impl/OperationServiceImpl.java

@@ -68,21 +68,21 @@ public class OperationServiceImpl implements OperationService {
         operation.setUserId(operationDto.getUserId());
         operation.setClubId(operationDto.getClubId());
         operation.setShopId(operationDto.getShopId());
-
-        //推送信息中心-账户通知
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        String current = dateFormat.format(new Date());
-        MessageCenter messageCenter=new MessageCenter();
-        if(operation.getClubId()!=null){
-            messageCenter.setShopId(null);
-            messageCenter.setClubId(operation.getClubId());
-            messageCenter.setUserType(1);
-            messageCenter.setMessageType(2);
-            messageCenter.setAccountType(7);
-            messageCenter.setContent(operation.getNickName());
-            messageCenter.setTime(current);
-            messageCenterMapper.addMessageCenter(messageCenter);
-        }
+//
+//        //推送信息中心-账户通知
+//        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        String current = dateFormat.format(new Date());
+//        MessageCenter messageCenter=new MessageCenter();
+//        if(operation.getClubId()!=null){
+//            messageCenter.setShopId(null);
+//            messageCenter.setClubId(operation.getClubId());
+//            messageCenter.setUserType(1);
+//            messageCenter.setMessageType(2);
+//            messageCenter.setAccountType(7);
+//            messageCenter.setContent(operation.getNickName());
+//            messageCenter.setTime(current);
+//            messageCenterMapper.addMessageCenter(messageCenter);
+//        }
 
 
 
@@ -102,12 +102,12 @@ public class OperationServiceImpl implements OperationService {
                 name = operationMapper.findShopNameById(operationDto.getShopId());
             }
             String mobile = operationDto.getMobile();
-            if (StringUtils.isNotEmpty(mobile)) {
-                // 欢迎成为${name}的运营人员,您的邀请码为${code}。
-                String content = "欢迎成为"+name+"的运营人员,您的邀请码为"+invitationCode+"。您可使用以下两种方式激活您的身份:1. 您可在微信搜索“采美采购商城”小程序,使用邀请码登录并绑定微信;2. 进入“采美采购商城”小程序后,使用邀请码登录并绑定微信。绑定微信后,您可通过微信授权直接登录“采美采购商城”小程序或微信扫码直接登录采美365网站。";
-                remoteCallService.remoteSendSms(0, 1, mobile, content);
-                log.info("欢迎成为"+ name +"的运营人员,您的邀请码为:" + invitationCode);
-            }
+//            if (StringUtils.isNotEmpty(mobile)) {
+//                // 欢迎成为${name}的运营人员,您的邀请码为${code}。
+//                String content = "欢迎成为"+name+"的运营人员,您的邀请码为"+invitationCode+"。您可使用以下两种方式激活您的身份:1. 您可在微信搜索“采美采购商城”小程序,使用邀请码登录并绑定微信;2. 进入“采美采购商城”小程序后,使用邀请码登录并绑定微信。绑定微信后,您可通过微信授权直接登录“采美采购商城”小程序或微信扫码直接登录采美365网站。";
+//                remoteCallService.remoteSendSms(0, 1, mobile, content);
+//                log.info("欢迎成为"+ name +"的运营人员,您的邀请码为:" + invitationCode);
+//            }
         }
         if (operationDto.getShopId() == null) {
             operation.setUserType(1);

+ 91 - 85
src/main/java/com/caimei365/user/service/impl/RegisterServiceImpl.java

@@ -898,17 +898,6 @@ public class RegisterServiceImpl implements RegisterService {
         registerMapper.updateUserShopId(user.getUserId(), shop.getShopId());
         log.info("注册供应商---------userID:" + user.getUserId());
 
-        //推送信息中心-账户通知
-//        MessageCenter messageCenter=new MessageCenter();
-//        messageCenter.setShopID(shop.getShopId());
-//        messageCenter.setClubID(null);
-//        messageCenter.setUserType(2);
-//        messageCenter.setMessageType(2);
-//        messageCenter.setContent(null);
-//        messageCenter.setTime(current);
-//        messageCenterMapper.addMessageCenter(messageCenter);
-
-
 
         return ResponseJson.success();
     }
@@ -1019,10 +1008,12 @@ public class RegisterServiceImpl implements RegisterService {
     @Transactional(rollbackFor = Exception.class)
     @Override
     public ResponseJson superVipUpByBeans(Integer userId, Integer packageId, HttpHeaders headers){
+        Integer clubId = messageCenterMapper.clubIdCule(userId);
         SuperVipDto endFlag = findEnd(userId);
         Integer userBeans = vipMapper.findUserBeans(userId);
         VipPackage pac = vipMapper.findUserPackage(packageId);
 
+
         //过期和没买过都是生效时间重置,到期时间=现在+套餐时间
         if (endFlag.getVipFlag() == 0 || endFlag.getVipFlag() == -1) {
             //1.查用户采美豆,够就用采美豆下单,不够就返回信息
@@ -1030,6 +1021,23 @@ public class RegisterServiceImpl implements RegisterService {
                 //用户采美豆>=套餐需要的采美豆,调用采美豆支付方法
                 //传空表示新客户
                 beanPay(userId, packageId, null, endFlag.getVipFlag());
+                //推送站内消息
+                if (clubId != null) {
+                    //推送信息中心-账户通知
+                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    String current = dateFormat.format(new Date());
+                    //1.日期格式
+                    log.info("输出间隔月份----------->", pac.getDuration());
+                    MessageCenter messageCenter = new MessageCenter();
+                    messageCenter.setShopId(null);
+                    messageCenter.setClubId(clubId);
+                    messageCenter.setUserType(1);
+                    messageCenter.setMessageType(2);
+                    messageCenter.setAccountType(2);
+                    messageCenter.setContent(pac.getDuration() + "个月");
+                    messageCenter.setTime(current);
+                    messageCenterMapper.addMessageCenter(messageCenter);
+                }
                 return ResponseJson.success("支付采美豆购买成功");
             }
             return ResponseJson.error("用户采美豆不足", null);
@@ -1037,6 +1045,24 @@ public class RegisterServiceImpl implements RegisterService {
             if (Double.valueOf(userBeans) >= (pac.getPrice() * pac.getProportion())) {
                 //续费生效时间不变,原到期时间+套餐时间
                 beanPay(userId, packageId, endFlag.getEndTime(), endFlag.getVipFlag());
+                     //推送站内消息
+                if (clubId != null) {
+                    //推送信息中心-账户通知
+                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    String current = dateFormat.format(new Date());
+                    //1.日期格式
+                    log.info("输出间隔月份----------->", pac.getDuration());
+                    MessageCenter messageCenter = new MessageCenter();
+                    messageCenter.setShopId(null);
+                    messageCenter.setClubId(clubId);
+                    messageCenter.setUserType(1);
+                    messageCenter.setMessageType(2);
+                    messageCenter.setAccountType(2);
+                    messageCenter.setContent(pac.getDuration() + "个月");
+                    messageCenter.setTime(current);
+                    messageCenterMapper.addMessageCenter(messageCenter);
+                }
+
                 return ResponseJson.success("支付采美豆购买成功");
             }
             return ResponseJson.error("用户采美豆不足", null);
@@ -1090,52 +1116,11 @@ public class RegisterServiceImpl implements RegisterService {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
         String endTime = sdf.format(payHistory.getEndTime());
         //2.会员有效期(月)
-        Long s = (payHistory.getBeginTime().getTime() - payHistory.getEndTime().getTime()) / 24 / 60 / 60 / 30 / 1000;
+        Long s = (payHistory.getEndTime().getTime() - payHistory.getBeginTime().getTime()) / 24 / 60 / 60 / 30 / 1000;
         //2.会员有效期(日)
-        Long t = (payHistory.getBeginTime().getTime() - payHistory.getEndTime().getTime()) / 24 / 60 / 60 / 1000;
+        Long t = (payHistory.getEndTime().getTime() - payHistory.getBeginTime().getTime()) / 24 / 60 / 60 / 1000;
         Integer count =messageCenterMapper.getVipHistoryCount(userId);
-        if(count==0){
-            String name = "0";
-            try {
-                log.info("***********会员办理微信公众号推送************");
-                String accessToken = weChatService.getAccessToken();
-                String openid = messageCenterMapper.getOpenidListByPermission(messageCenterMapper.FromUnionId(userId));
-                name = "恭喜成为采美商城超级会员";
-                String time="超级会员("+s+"个月)";
-                String associateTitle = "会员办理成功通知";
-                String date=s+"天";
-                Double money =  payHistory.getPrice();
-                String remarkText = "如在使用中有任何疑问,请在小程序内联系在线客服";
-                // 跳转到【小程序付款-选择支付方式页面】
-                String pagePath = "/pages/user/member/member";
-                // sendTemplateMsg(openid, 标题, 金额, 收款日期, 备注, 跳转链接
-                log.error("获取openid>>>>>" + openid);
-                weChatService.sendTemplateMsgs(accessToken, openid, associateTitle, name, time, money,date ,remarkText, pagePath);
-            } catch (Exception e) {
-                log.error("【订单下单通知】获取微信公众号access_token异常!", e);
-            }
-        }else {
-            String name = "0";
-            SimpleDateFormat dnf=new SimpleDateFormat("yyyy年MM月dd日");
 
-            try {
-                log.info("***********会员续费微信公众号推送************");
-                String accessToken = weChatService.getAccessToken();
-                String openid = messageCenterMapper.getOpenidListByPermission(messageCenterMapper.FromUnionId(userId));
-                name = "恭喜您成功续费采美超级会员";
-                String type="超级会员";
-                String associateTitle = "续费成功提醒";
-                String date=dnf.format(payHistory.getEndTime());
-                String remarkText = "如在使用中有任何疑问,请在小程序内联系在线客服";
-                // 跳转到【小程序付款-选择支付方式页面】
-                String pagePath = "/pages/user/member/member";
-                // sendTemplateMsg(openid, 标题, 金额, 收款日期, 备注, 跳转链接
-                log.error("获取openid>>>>>" + openid);
-                weChatService.sendTemplateMsg(accessToken,openid, associateTitle,name,type,date,remarkText, pagePath);
-            } catch (Exception e) {
-                log.error("【订单下单通知】获取微信公众号access_token异常!", e);
-            }
-        }
 
         if (null != dbHistoryId && dbHistoryId > 0) {
             payHistory.setId(dbHistoryId);
@@ -1144,14 +1129,11 @@ public class RegisterServiceImpl implements RegisterService {
         } else {
             // 新增超级会员购买记录
             vipMapper.addPayHistory(payHistory);
-        }
-        //推送信息中心-账户通知
-        if (payHistory.getId() > 0) {
+//推送信息中心-账户通知
             Integer clubId = messageCenterMapper.clubIdCule(userId);
             if (clubId != null) {
-
                 //3.输出间隔天数         getTime获取的是毫秒
-                log.info("输出间隔月份----------->", s);
+                log.info("输出间隔月份----------->"+ s);
                 MessageCenter messageCenter = new MessageCenter();
                 messageCenter.setShopId(null);
                 messageCenter.setClubId(clubId);
@@ -1161,8 +1143,55 @@ public class RegisterServiceImpl implements RegisterService {
                 messageCenter.setContent(s + "个月");
                 messageCenter.setTime(current);
                 messageCenterMapper.addMessageCenter(messageCenter);
-                return ResponseJson.success(payHistory.getId());
             }
+            if(count==0){
+                String name = "0";
+                try {
+                    log.info("***********会员办理微信公众号推送************");
+                    String accessToken = weChatService.getAccessToken();
+                    String openid = messageCenterMapper.getOpenidListByPermission(messageCenterMapper.FromUnionId(userId));
+                    name = "恭喜成为采美商城超级会员";
+                    String time="超级会员("+s+"个月)";
+                    String associateTitle = "会员办理成功通知";
+                    String date=s+"天";
+                    Double money =  payHistory.getPrice();
+                    String remarkText = "如在使用中有任何疑问,请在小程序内联系在线客服";
+                    // 跳转到【小程序付款-选择支付方式页面】
+                    String pagePath = "/pages/user/member/member";
+                    // sendTemplateMsg(openid, 标题, 金额, 收款日期, 备注, 跳转链接
+                    log.error("获取openid>>>>>" + openid);
+                    weChatService.sendTemplateMsgs(accessToken, openid, associateTitle, name, time, money,date ,remarkText, pagePath);
+                } catch (Exception e) {
+                    log.error("【订单下单通知】获取微信公众号access_token异常!", e);
+                }
+            }else {
+                String name = "0";
+                SimpleDateFormat dnf=new SimpleDateFormat("yyyy年MM月dd日");
+
+                try {
+                    log.info("***********会员续费微信公众号推送************");
+                    String accessToken = weChatService.getAccessToken();
+                    String openid = messageCenterMapper.getOpenidListByPermission(messageCenterMapper.FromUnionId(userId));
+                    name = "恭喜您成功续费采美超级会员";
+                    String type="超级会员";
+                    String associateTitle = "续费成功提醒";
+                    String date=dnf.format(payHistory.getEndTime());
+                    String remarkText = "如在使用中有任何疑问,请在小程序内联系在线客服";
+                    // 跳转到【小程序付款-选择支付方式页面】
+                    String pagePath = "/pages/user/member/member";
+                    // sendTemplateMsg(openid, 标题, 金额, 收款日期, 备注, 跳转链接
+                    log.error("获取openid>>>>>" + openid);
+                    weChatService.sendTemplateMsg(accessToken,openid, associateTitle,name,type,date,remarkText, pagePath);
+                } catch (Exception e) {
+                    log.error("【订单下单通知】获取微信公众号access_token异常!", e);
+                }
+            }
+
+        }
+
+        if (payHistory.getId() > 0) {
+
+            return ResponseJson.success(payHistory.getId());
         }
         return ResponseJson.error("支付开通超级会员异常!", null);
     }
@@ -1176,6 +1205,7 @@ public class RegisterServiceImpl implements RegisterService {
     private SuperVipDto findEnd(Integer userId){
         SuperVipPo superVip = vipMapper.findSuperVip(userId);
         SuperVipDto superVipDto = new SuperVipDto();
+        Integer clubId = messageCenterMapper.clubIdCule(userId);
         if (superVip == null) {
             superVipDto.setVipFlag(0);
         } else {
@@ -1186,34 +1216,10 @@ public class RegisterServiceImpl implements RegisterService {
             } else {
                 superVipDto.setVipFlag(1);
                 superVipDto.setEndTime(endTime.getEndTime());
-            }
-
-            Integer clubId = messageCenterMapper.clubIdCule(userId);
-            if (clubId != null) {
-                //推送信息中心-账户通知
-                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                String current = dateFormat.format(new Date());
-                //1.日期格式
-                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
-                String endTimes = sdf.format(endTime.getEndTime());
-                //2.某天的日期
-                Long s = (endTime.getEndTime().getTime() - endTime.getBeginTime().getTime()) / 24 / 60 / 60 / 30 / 1000;
-                ;
-                //3.输出间隔天数         getTime获取的是毫秒
-                log.info("输出间隔月份----------->", s);
-                MessageCenter messageCenter = new MessageCenter();
-                messageCenter.setShopId(null);
-                messageCenter.setClubId(clubId);
-                messageCenter.setUserType(1);
-                messageCenter.setMessageType(2);
-                messageCenter.setAccountType(2);
-                messageCenter.setContent(s + "个月");
-                messageCenter.setTime(current);
-                messageCenterMapper.addMessageCenter(messageCenter);
 
+            }
 
 
-            }
         }
 
         return superVipDto;

+ 53 - 5
src/main/resources/mapper/MessageCenter.xml

@@ -2,8 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.user.mapper.MessageCenterMapper">
     <insert id="addMessageCenter">
-        INSERT INTO message_center (shopID, clubID, userType, messageType, content,time,accountType,couponType,couponFee,couponMessageType)
-        VALUES (#{shopId}, #{clubId}, #{userType}, #{messageType}, #{content},#{time},#{accountType},#{couponType},#{couponFee},#{couponMessageType})
+        INSERT INTO message_center (shopID, clubID, userType, messageType, content,time,accountType,couponType,couponFee,couponMessageType,ShopMessType)
+        VALUES (#{shopId}, #{clubId}, #{userType}, #{messageType}, #{content},#{time},#{accountType},#{couponType},#{couponFee},#{couponMessageType},#{shopMessType})
     </insert>
 
     <select id="clubIdCule" resultType="java.lang.Integer">
@@ -58,8 +58,19 @@
             and userType=#{userType}
             AND saved=0
         </where>
+    </select>
+
+
+    <select id="receStatct" resultType="java.lang.Integer">
+        SELECT COUNT(*) FROM `cm_discern_receipt` WHERE newReceiptType=1 AND shopID=#{shopID} AND receStatct=2
+    </select>
 
+    <select id="listingFee" resultType="java.lang.Integer">
+        SELECT COUNT(*) FROM `cm_discern_receipt` WHERE newReceiptType=1 AND shopID=#{shopID}
+    </select>
 
+    <select id="listingfeeExpire" resultType="java.lang.Integer">
+        SELECT COUNT(*) FROM `cm_discern_receipt` WHERE newReceiptType=1 AND shopID=#{shopID} AND NOW()> DATE_ADD(receiptDate, INTERVAL 1 YEAR)
     </select>
 
     <select id="MessageList" resultType="com.caimei365.user.model.vo.MessageCenter">
@@ -92,7 +103,7 @@
     </select>
 
     <select id="FromUnionId" resultType="java.lang.String">
-        SELECT unionID FROM `cm_order` WHERE userID=#{userID}
+        SELECT unionID FROM `cm_order` WHERE userID=#{userID} AND unionID IS NOT NULL  ORDER BY orderID DESC LIMIT 1
     </select>
 
     <select id="getVipHistoryCount" resultType="java.lang.Integer">
@@ -102,7 +113,7 @@
     </select>
 
     <select id="MainImage" resultType="com.caimei365.user.model.vo.MessageCenter">
-        SELECT co.refundType,COUNT(p.productID)AS productCount ,p.mainImage,co.onlinePayFlag,ifnull(p.name,'') as productName,co.orderID as orderID
+        SELECT co.refundType,COUNT(p.productID)AS productCount ,p.mainImage,co.onlinePayFlag,ifnull(p.name,'') as productName,co.orderID as orderID,co.status as status
         FROM cm_order co
                  LEFT JOIN bp_order_userinfo bou ON bou.orderId = co.orderID
                  LEFT JOIN USER u ON u.userID = co.userID
@@ -111,18 +122,39 @@
                  LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
                  LEFT JOIN product p ON cop.productID = p.productID
                  LEFT JOIN cm_shop_order cso ON co.orderid=cso.orderID
-
         <where>
+
             <if test="userType == 1">
               and  c.clubID=#{commonId}
             </if>
             <if test="userType == 2">
               and  p.shopID=#{commonId}
             </if>
+        and co.orderID=#{orderID}
         </where>
         LIMIT 1
     </select>
 
+    <select id="productImage" resultType="com.caimei365.user.model.vo.MessageCenter">
+        SELECT s.name as shopName,p.`shopID`,p.`productID`,p.`name` as productName,p.mainImage
+        FROM product p
+        LEFT JOIN cm_order_product cop ON p.productID = cop.productID
+        LEFT JOIN shop s ON s.shopID = p.shopID
+        <where>
+            <if test="productID != null">
+                and p.productID=#{productID}
+            </if>
+                and p.shopID=#{shopID}
+        </where>
+        LIMIT 1
+    </select>
+
+    <select id="productCount" resultType="java.lang.Integer">
+        SELECT COUNT(productID) FROM cm_order_product
+        WHERE orderID=#{orderID}
+    </select>
+
+
     <select id="receiptDate" resultType="java.lang.String">
         SELECT
        a.receiptDate
@@ -181,5 +213,21 @@
         where userType=#{userType} and id=#{Id}
     </update>
 
+    <select id="receiptShopID" resultType="java.lang.Integer">
+        SELECT DISTINCT
+            a.shopID
+        FROM cm_discern_receipt a
+                 LEFT JOIN shop s ON s.shopID = a.shopID
+        WHERE
+            a.newReceiptType=1
+    </select>
+
+    <select id="userIds" resultType="java.lang.Integer">
+        SELECT DISTINCT
+            a.userID
+        FROM shop a
+        WHERE
+            a.shopOD=#{shopID}
+    </select>
 
 </mapper>

+ 9 - 1
src/main/resources/mapper/SuperVipMapper.xml

@@ -202,4 +202,12 @@
                 NOW()
             )
     </insert>
-</mapper>
+
+    <select id="findVip" resultType="com.caimei365.user.model.po.SuperVipPo">
+        select userId, beginTime, endTime, updateTime
+        from cm_svip_user
+        where  delFlag = 0
+    </select>
+
+
+</mapper>