Browse Source

小需求优化V1.3.13

kaick 1 year ago
parent
commit
8b474cd8a6
33 changed files with 328 additions and 276 deletions
  1. 7 0
      src/main/java/com/caimei/modules/autoType/controller/CmAutoTypeController.java
  2. 1 0
      src/main/java/com/caimei/modules/autoType/domain/CmAutoTypeRecord.java
  3. 18 8
      src/main/java/com/caimei/modules/autoType/service/CmAutoTypeRecordService.java
  4. 2 2
      src/main/java/com/caimei/modules/baike/service/CmBaikeProductService.java
  5. 11 0
      src/main/java/com/caimei/modules/cmpage/entity/CmImage.java
  6. 7 29
      src/main/java/com/caimei/modules/cmpage/service/CmImageService.java
  7. 4 0
      src/main/java/com/caimei/modules/cmpage/web/CmImageController.java
  8. 2 1
      src/main/java/com/caimei/modules/hehe/dao/CmHeheCollageProductDao.java
  9. 5 0
      src/main/java/com/caimei/modules/hehe/dao/CmHeheProductDao.java
  10. 10 5
      src/main/java/com/caimei/modules/hehe/service/CmHeheActivityProductService.java
  11. 15 6
      src/main/java/com/caimei/modules/hehe/service/CmHeheCollageProductService.java
  12. 18 15
      src/main/java/com/caimei/modules/hehe/service/HeheDiscountActivityProductService.java
  13. 9 25
      src/main/java/com/caimei/modules/info/service/InfoService.java
  14. 4 0
      src/main/java/com/caimei/modules/info/web/InfoTypeController.java
  15. 2 0
      src/main/java/com/caimei/modules/landing/domain/CmBrandLanding.java
  16. 2 0
      src/main/java/com/caimei/modules/newhome/entity/NewPageFirstNavigation.java
  17. 2 0
      src/main/java/com/caimei/modules/newhome/entity/NewPageHomeimage.java
  18. 4 0
      src/main/java/com/caimei/modules/newhome/web/NewPageFirstNavigationController.java
  19. 4 0
      src/main/java/com/caimei/modules/newhome/web/NewPageHomeimageController.java
  20. 1 1
      src/main/java/com/caimei/modules/user/dao/NewCmClubDao.java
  21. 8 9
      src/main/java/com/caimei/modules/user/web/newUser/SpController.java
  22. 37 7
      src/main/java/com/caimei/modules/utils/DateUtil.java
  23. 53 23
      src/main/java/com/caimei/modules/utils/MessageUtil.java
  24. 39 0
      src/main/java/com/caimei/modules/utils/message/WechatTemplateMessage.java
  25. 1 1
      src/main/java/com/thinkgem/jeesite/common/utils/DateUtils.java
  26. 3 3
      src/main/resources/mappings/modules/cmpage/CmImageMapper.xml
  27. 1 0
      src/main/resources/mappings/modules/hehe/CmHeheCollageProductMapper.xml
  28. 26 2
      src/main/resources/mappings/modules/hehe/CmHeheProductMapper.xml
  29. 1 125
      src/main/resources/mappings/modules/user/NewCmClubMapper.xml
  30. 6 1
      src/main/webapp/WEB-INF/views/modules/autoType/autoTypeList.jsp
  31. 21 11
      src/main/webapp/WEB-INF/views/modules/baikePage/cmBaikeProductForm.jsp
  32. 2 0
      src/main/webapp/WEB-INF/views/modules/cmpage/cmImageList.jsp
  33. 2 2
      src/main/webapp/WEB-INF/views/modules/info/infoTypeLandingList.jsp

+ 7 - 0
src/main/java/com/caimei/modules/autoType/controller/CmAutoTypeController.java

@@ -52,6 +52,10 @@ public class CmAutoTypeController extends BaseController {
     public String form(CmAutoTypeRecord cmAutoTypeRecord, HttpServletRequest request, HttpServletResponse response, Model model) {
     public String form(CmAutoTypeRecord cmAutoTypeRecord, HttpServletRequest request, HttpServletResponse response, Model model) {
         Page<CmAutoTypeRecord> page = cmAutoTypeRecordService.findPage(new Page<CmAutoTypeRecord>(request, response), cmAutoTypeRecord);
         Page<CmAutoTypeRecord> page = cmAutoTypeRecordService.findPage(new Page<CmAutoTypeRecord>(request, response), cmAutoTypeRecord);
         CmAutoType byCmAutoType = cmAutoTypeService.getByCmAutoType(new CmAutoType().type(cmAutoTypeRecord.type()));
         CmAutoType byCmAutoType = cmAutoTypeService.getByCmAutoType(new CmAutoType().type(cmAutoTypeRecord.type()));
+        if(null==byCmAutoType){
+            cmAutoTypeService.addCmAutoType(new CmAutoType().type(cmAutoTypeRecord.type()).autoStatus("0"));
+            byCmAutoType = cmAutoTypeService.getByCmAutoType(new CmAutoType().type(cmAutoTypeRecord.type()));
+        }
         model.addAttribute("cmAutoType", byCmAutoType);
         model.addAttribute("cmAutoType", byCmAutoType);
         model.addAttribute("page", page);
         model.addAttribute("page", page);
         return "modules/autoType/autoTypeList";
         return "modules/autoType/autoTypeList";
@@ -92,6 +96,9 @@ public class CmAutoTypeController extends BaseController {
     public Map<String, Object> updateLanDingStatus(CmAutoType cmAutoType, HttpServletRequest request, HttpServletResponse response) {
     public Map<String, Object> updateLanDingStatus(CmAutoType cmAutoType, HttpServletRequest request, HttpServletResponse response) {
         Map<String, Object> map = Maps.newLinkedHashMap();
         Map<String, Object> map = Maps.newLinkedHashMap();
         try {
         try {
+            if (cmAutoType == null) {
+                throw new NullPointerException();
+            }
             cmAutoTypeService.updateCmAutoType(new CmAutoType()
             cmAutoTypeService.updateCmAutoType(new CmAutoType()
                     .id(cmAutoType.id())
                     .id(cmAutoType.id())
                     .autoStatus(cmAutoType.autoStatus())
                     .autoStatus(cmAutoType.autoStatus())

+ 1 - 0
src/main/java/com/caimei/modules/autoType/domain/CmAutoTypeRecord.java

@@ -148,6 +148,7 @@ public class CmAutoTypeRecord extends DataEntity<CmAutoTypeRecord> implements Se
     }
     }
 
 
     public Date getEndPvCreateTime() {
     public Date getEndPvCreateTime() {
+
         return endPvCreateTime;
         return endPvCreateTime;
     }
     }
 
 

+ 18 - 8
src/main/java/com/caimei/modules/autoType/service/CmAutoTypeRecordService.java

@@ -15,6 +15,7 @@ import com.caimei.modules.utils.message.enums.MessageType;
 import com.thinkgem.jeesite.common.service.CrudService;
 import com.thinkgem.jeesite.common.service.CrudService;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -100,12 +101,22 @@ public class CmAutoTypeRecordService extends CrudService<CmAutoTypeRecordMapper,
      * @param cmAutoTypeRecord 文章-活动推送记录
      * @param cmAutoTypeRecord 文章-活动推送记录
      * @return 结果
      * @return 结果
      */
      */
+    @Async
     @Transactional(readOnly = false)
     @Transactional(readOnly = false)
-    public int addCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord) {
+    public void addCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord) {
+        if("0".equals(cmAutoTypeRecord.autoStatus())){
+            try {
+                Thread.sleep(3000);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
         for (String s : cmAutoTypeRecord.thisIds()) {
         for (String s : cmAutoTypeRecord.thisIds()) {
-            cmAutoTypeRecord.authorId(Integer.valueOf(s));
-            cmAutoTypeRecord.setCreateTime(new Date());
-            cmAutoTypeRecordMapper.addCmAutoTypeRecord(cmAutoTypeRecord);           //新增推送记录
+            synchronized (cmAutoTypeRecord){
+                cmAutoTypeRecord.authorId(Integer.valueOf(s));
+                cmAutoTypeRecord.setCreateTime(new Date());
+                cmAutoTypeRecordMapper.addCmAutoTypeRecord(cmAutoTypeRecord);           //新增推送记录
+            }
             String image;
             String image;
             String title;
             String title;
             int type;
             int type;
@@ -120,11 +131,11 @@ public class CmAutoTypeRecordService extends CrudService<CmAutoTypeRecordMapper,
                 title = cmImage.getTitle();
                 title = cmImage.getTitle();
                 type=6;
                 type=6;
             }
             }
-            //站内信
+            //站内信 【最新文章/活动推送】
             MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
             MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
             insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
             insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
-                    .mqInfo(new MqInfo().topic("MessageLine").delay(1).async(1));
-            List<String> clubIds = CollectionUtils.isEmpty(cmAutoTypeRecord.clubIds()) ? newCmClubDao.getClubIds(null) : cmAutoTypeRecord.clubIds();
+                    .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(1));
+            List<String> clubIds = CollectionUtils.isEmpty(cmAutoTypeRecord.clubIds()) ? newCmClubDao.getClubIds() : cmAutoTypeRecord.clubIds();
             for (String clubId : clubIds) {
             for (String clubId : clubIds) {
                 insideMessageMessageModel.info(new InsideMessage()
                 insideMessageMessageModel.info(new InsideMessage()
                         .userType(1)
                         .userType(1)
@@ -137,7 +148,6 @@ public class CmAutoTypeRecordService extends CrudService<CmAutoTypeRecordMapper,
                 MessageUtil.sendMessage(insideMessageMessageModel);
                 MessageUtil.sendMessage(insideMessageMessageModel);
             }
             }
         }
         }
-        return 1;
     }
     }
 
 
     /**
     /**

+ 2 - 2
src/main/java/com/caimei/modules/baike/service/CmBaikeProductService.java

@@ -146,10 +146,10 @@ public class CmBaikeProductService extends CrudService<CmBaikeProductDao, CmBaik
 
 
         // 管理员审核百科
         // 管理员审核百科
         if (null != cmBaikeProduct.getAuditFlag() && 1 == cmBaikeProduct.getAuditFlag()) {
         if (null != cmBaikeProduct.getAuditFlag() && 1 == cmBaikeProduct.getAuditFlag()) {
-            //站内信
+            //站内信 【审核采美百科推送】
             MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
             MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
             insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
             insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
-                    .mqInfo(new MqInfo().topic("MessageLine").delay(1).async(0));
+                    .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(1));
             if (null != cmBaikeProduct.getAuditStatus() && 2 == cmBaikeProduct.getAuditStatus()) {
             if (null != cmBaikeProduct.getAuditStatus() && 2 == cmBaikeProduct.getAuditStatus()) {
                 // 审核通过
                 // 审核通过
                 cmBaikeProduct.setOnlineStatus(2);
                 cmBaikeProduct.setOnlineStatus(2);

+ 11 - 0
src/main/java/com/caimei/modules/cmpage/entity/CmImage.java

@@ -1,5 +1,6 @@
 package com.caimei.modules.cmpage.entity;
 package com.caimei.modules.cmpage.entity;
 
 
+import cn.hutool.core.date.DateUtil;
 import com.caimei.modules.product.entity.ActType;
 import com.caimei.modules.product.entity.ActType;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 import com.thinkgem.jeesite.common.persistence.DataEntity;
@@ -62,7 +63,16 @@ public class CmImage extends DataEntity<CmImage> {
     private Date endPvCreateTime;
     private Date endPvCreateTime;
     /** 统计分类*/
     /** 统计分类*/
     private String statisticsType;
     private String statisticsType;
+    /** 点击量*/
+    private Integer pv;
 
 
+    public Integer getPv() {
+        return pv;
+    }
+
+    public void setPv(Integer pv) {
+        this.pv = pv;
+    }
 
 
     public Date getStartPvCreateTime() {
     public Date getStartPvCreateTime() {
         return startPvCreateTime;
         return startPvCreateTime;
@@ -73,6 +83,7 @@ public class CmImage extends DataEntity<CmImage> {
     }
     }
 
 
     public Date getEndPvCreateTime() {
     public Date getEndPvCreateTime() {
+
         return endPvCreateTime;
         return endPvCreateTime;
     }
     }
 
 

+ 7 - 29
src/main/java/com/caimei/modules/cmpage/service/CmImageService.java

@@ -4,18 +4,13 @@ import com.caimei.dfs.image.beens.ImageUploadInfo;
 import com.caimei.modules.autoType.domain.CmAutoType;
 import com.caimei.modules.autoType.domain.CmAutoType;
 import com.caimei.modules.autoType.domain.CmAutoTypeRecord;
 import com.caimei.modules.autoType.domain.CmAutoTypeRecord;
 import com.caimei.modules.autoType.mapper.CmAutoTypeMapper;
 import com.caimei.modules.autoType.mapper.CmAutoTypeMapper;
-import com.caimei.modules.autoType.mapper.CmAutoTypeRecordMapper;
+import com.caimei.modules.autoType.service.CmAutoTypeRecordService;
 import com.caimei.modules.brand.utils.ImagePathUtils;
 import com.caimei.modules.brand.utils.ImagePathUtils;
 import com.caimei.modules.cmpage.dao.CmImageDao;
 import com.caimei.modules.cmpage.dao.CmImageDao;
 import com.caimei.modules.cmpage.entity.CmImage;
 import com.caimei.modules.cmpage.entity.CmImage;
 import com.caimei.modules.common.utils.UploadUtils;
 import com.caimei.modules.common.utils.UploadUtils;
 import com.caimei.modules.sys.utils.UploadImageUtils;
 import com.caimei.modules.sys.utils.UploadImageUtils;
 import com.caimei.modules.user.dao.NewCmClubDao;
 import com.caimei.modules.user.dao.NewCmClubDao;
-import com.caimei.modules.utils.MessageUtil;
-import com.caimei.modules.utils.message.InsideMessage;
-import com.caimei.modules.utils.message.MessageModel;
-import com.caimei.modules.utils.message.MqInfo;
-import com.caimei.modules.utils.message.enums.MessageType;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.service.CrudService;
 import com.thinkgem.jeesite.common.service.CrudService;
@@ -26,7 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
-import java.util.Date;
+import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -43,7 +38,7 @@ public class CmImageService extends CrudService<CmImageDao, CmImage> {
 	@Resource
 	@Resource
 	private CmAutoTypeMapper cmAutoTypeMapper;
 	private CmAutoTypeMapper cmAutoTypeMapper;
 	@Resource
 	@Resource
-	private CmAutoTypeRecordMapper cmAutoTypeRecordMapper;
+	private CmAutoTypeRecordService cmAutoTypeRecordService;
 	@Resource
 	@Resource
 	private NewCmClubDao newCmClubDao;
 	private NewCmClubDao newCmClubDao;
 
 
@@ -132,30 +127,13 @@ public class CmImageService extends CrudService<CmImageDao, CmImage> {
 
 
 		super.save(cmImage);
 		super.save(cmImage);
 
 
-		CmAutoType byCmAutoType = cmAutoTypeMapper.getByCmAutoType(new CmAutoType().type("2"));			//获取推送配置
-		if(StringUtils.equals("4",cmImage.getType())&& null!=byCmAutoType&& StringUtils.equals("0",byCmAutoType.autoStatus())){
-			cmAutoTypeRecordMapper.addCmAutoTypeRecord(new CmAutoTypeRecord()							//新增推送记录
+		CmAutoType byCmAutoType = cmAutoTypeMapper.getByCmAutoType(new CmAutoType().type("2").autoStatus("0"));			//获取推送配置
+		if(StringUtils.equals("4",cmImage.getType())&& null!=byCmAutoType) {
+			cmAutoTypeRecordService.addCmAutoTypeRecord(new CmAutoTypeRecord()                            //新增推送记录
 					.type("2")
 					.type("2")
 					.autoStatus("0")
 					.autoStatus("0")
-					.authorId(Integer.valueOf(cmImage.getId()))
-					.createTime(new Date())
+					.thisIds(Arrays.asList(cmImage.getId()))
 			);
 			);
-			//站内信
-			MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
-			insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
-					.mqInfo(new MqInfo().topic("MessageLine").delay(1).async(1));
-			List<String> clubIds =  newCmClubDao.getClubIds(null);
-			for (String clubId : clubIds) {
-				insideMessageMessageModel.info(new InsideMessage()
-						.userType(1)
-						.messageType(6)
-						.mainImage(cmImage.getImage())
-						.content(cmImage.getTitle())
-						.thisId(Integer.valueOf(cmImage.getId()))
-						.clubId(Integer.valueOf(clubId))
-				);
-				MessageUtil.sendMessage(insideMessageMessageModel);
-			}
 		}
 		}
 	}
 	}
 
 

+ 4 - 0
src/main/java/com/caimei/modules/cmpage/web/CmImageController.java

@@ -4,6 +4,7 @@ import com.caimei.constants.common.RedisKeyUtil;
 import com.caimei.modules.cmpage.entity.CmImage;
 import com.caimei.modules.cmpage.entity.CmImage;
 import com.caimei.modules.cmpage.service.CmImageService;
 import com.caimei.modules.cmpage.service.CmImageService;
 import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.opensearch.GenerateUtils;
+import com.caimei.modules.utils.DateUtil;
 import com.caimei.redis.RedisService;
 import com.caimei.redis.RedisService;
 import com.caimei.utils.StringUtils;
 import com.caimei.utils.StringUtils;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Maps;
@@ -61,6 +62,9 @@ public class CmImageController extends BaseController {
 	@RequiresPermissions("cmpage:cmImage:view")
 	@RequiresPermissions("cmpage:cmImage:view")
 	@RequestMapping(value = {"list", ""})
 	@RequestMapping(value = {"list", ""})
 	public String list(CmImage cmImage, HttpServletRequest request, HttpServletResponse response, Model model) {
 	public String list(CmImage cmImage, HttpServletRequest request, HttpServletResponse response, Model model) {
+		if (null != cmImage.getEndPvCreateTime()) {
+			cmImage.setEndPvCreateTime(DateUtil.getEndTime(cmImage.getEndPvCreateTime()));
+		}
 		cmImage.setStatisticsType("3");
 		cmImage.setStatisticsType("3");
 		if(StringUtils.equals("5",cmImage.getFlag())){//首页广告图片(【顶层广告】【轮播图】【小专题】)
 		if(StringUtils.equals("5",cmImage.getFlag())){//首页广告图片(【顶层广告】【轮播图】【小专题】)
 			if(StringUtils.isEmpty(cmImage.getType())){
 			if(StringUtils.isEmpty(cmImage.getType())){

+ 2 - 1
src/main/java/com/caimei/modules/hehe/dao/CmHeheCollageProductDao.java

@@ -33,4 +33,5 @@ public interface CmHeheCollageProductDao extends CrudDao<CmHeheCollageProduct> {
     CmSku getSkuCollage(Integer skuId);
     CmSku getSkuCollage(Integer skuId);
     //展示最低拼团价格
     //展示最低拼团价格
     Double getCollagePrice(Integer productId);
     Double getCollagePrice(Integer productId);
-}
+
+}

+ 5 - 0
src/main/java/com/caimei/modules/hehe/dao/CmHeheProductDao.java

@@ -96,4 +96,9 @@ public interface CmHeheProductDao extends CrudDao<CmHeheProduct> {
     void updateHeHeSkuPrice(@Param("skuId") Integer skuId, @Param("price") Double price);
     void updateHeHeSkuPrice(@Param("skuId") Integer skuId, @Param("price") Double price);
 
 
     List<CmLadderPrice> findLadderList(Integer skuId);
     List<CmLadderPrice> findLadderList(Integer skuId);
+
+    List<String> findMobileByUserYear(Integer num);
+
+    int getMonthCount(@Param("num")Integer num,@Param("type")Integer type);
+
 }
 }

+ 10 - 5
src/main/java/com/caimei/modules/hehe/service/CmHeheActivityProductService.java

@@ -1,6 +1,5 @@
 package com.caimei.modules.hehe.service;
 package com.caimei.modules.hehe.service;
 
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.caimei.modules.hehe.dao.CmHeheActivityProductDao;
 import com.caimei.modules.hehe.dao.CmHeheActivityProductDao;
@@ -9,20 +8,18 @@ import com.caimei.modules.hehe.entity.CmHeHeActivityLadder;
 import com.caimei.modules.hehe.entity.CmHeheActivityProduct;
 import com.caimei.modules.hehe.entity.CmHeheActivityProduct;
 import com.caimei.modules.hehe.entity.CmHeheProduct;
 import com.caimei.modules.hehe.entity.CmHeheProduct;
 import com.caimei.modules.product.entity.CmSku;
 import com.caimei.modules.product.entity.CmSku;
+import com.caimei.modules.sys.utils.SMSUtils;
 import com.caimei.utils.AppUtils;
 import com.caimei.utils.AppUtils;
 import com.caimei.utils.StringUtil;
 import com.caimei.utils.StringUtil;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.service.CrudService;
 import com.thinkgem.jeesite.common.service.CrudService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 import org.springframework.util.Assert;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.Iterator;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -104,6 +101,14 @@ public class CmHeheActivityProductService extends CrudService<CmHeheActivityProd
 
 
     @Transactional(readOnly = false)
     @Transactional(readOnly = false)
     public void addProducts(Integer activityId, String productIds) {
     public void addProducts(Integer activityId, String productIds) {
+        int count = cmHeheProductDao.getMonthCount(1,2);
+        if (0 < count) {
+            List<String> mobileByUserYear = cmHeheProductDao.findMobileByUserYear(3);
+            for (String mobile : mobileByUserYear) {
+                //发送短信 【活动商品上架时派送】
+                SMSUtils.sendSms(3,mobile, "【颜选美学】优惠活动商品已上架啦!快去微信搜索“颜选美学”小程序登录下单您心仪的商品吧。关注公众号“颜选美学”获取更多优惠和精彩资讯。");
+            }
+        }
         CmHeheActivityProduct activityProduct = new CmHeheActivityProduct();
         CmHeheActivityProduct activityProduct = new CmHeheActivityProduct();
         activityProduct.setActivityId(activityId);
         activityProduct.setActivityId(activityId);
         if (StringUtil.isNotBlank(productIds)) {
         if (StringUtil.isNotBlank(productIds)) {
@@ -141,4 +146,4 @@ public class CmHeheActivityProductService extends CrudService<CmHeheActivityProd
             }
             }
         });
         });
     }
     }
-}
+}

+ 15 - 6
src/main/java/com/caimei/modules/hehe/service/CmHeheCollageProductService.java

@@ -1,19 +1,20 @@
 package com.caimei.modules.hehe.service;
 package com.caimei.modules.hehe.service;
 
 
-import java.util.List;
+import com.caimei.modules.hehe.dao.CmHeheCollageProductDao;
 import com.caimei.modules.hehe.dao.CmHeheFloorProductDao;
 import com.caimei.modules.hehe.dao.CmHeheFloorProductDao;
 import com.caimei.modules.hehe.dao.CmHeheProductDao;
 import com.caimei.modules.hehe.dao.CmHeheProductDao;
+import com.caimei.modules.hehe.entity.CmHeheCollageProduct;
 import com.caimei.modules.product.entity.CmSku;
 import com.caimei.modules.product.entity.CmSku;
 import com.caimei.modules.product.entity.Product;
 import com.caimei.modules.product.entity.Product;
+import com.caimei.modules.sys.utils.SMSUtils;
 import com.caimei.utils.AppUtils;
 import com.caimei.utils.AppUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.service.CrudService;
 import com.thinkgem.jeesite.common.service.CrudService;
-import com.caimei.modules.hehe.entity.CmHeheCollageProduct;
-import com.caimei.modules.hehe.dao.CmHeheCollageProductDao;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.util.List;
 
 
 /**
 /**
  * 呵呵商城拼团商品Service
  * 呵呵商城拼团商品Service
@@ -54,6 +55,14 @@ public class CmHeheCollageProductService extends CrudService<CmHeheCollageProduc
 
 
     @Transactional(readOnly = false)
     @Transactional(readOnly = false)
     public void save(CmHeheCollageProduct cmHeheCollageProduct) {
     public void save(CmHeheCollageProduct cmHeheCollageProduct) {
+        int count = cmHeheProductDao.getMonthCount(1,1);
+        if (0 < count) {
+            List<String> mobileByUserYear = cmHeheProductDao.findMobileByUserYear(3);
+            for (String mobile : mobileByUserYear) {
+                //发送短信 【拼团商品上架时派送】
+                SMSUtils.sendSms(3,mobile, "【颜选美学】拼团商品已上架啦!快去微信搜索“颜选美学”小程序登录下单您心仪的商品吧。关注公众号“颜选美学”获取更多优惠和精彩资讯。");
+            }
+        }
         if (!cmHeheCollageProduct.getIsNewRecord()) {
         if (!cmHeheCollageProduct.getIsNewRecord()) {
             CmHeheCollageProduct dbProduct = get(cmHeheCollageProduct.getId());
             CmHeheCollageProduct dbProduct = get(cmHeheCollageProduct.getId());
             if (!dbProduct.getProductId().equals(cmHeheCollageProduct.getProductId())) {
             if (!dbProduct.getProductId().equals(cmHeheCollageProduct.getProductId())) {
@@ -109,4 +118,4 @@ public class CmHeheCollageProductService extends CrudService<CmHeheCollageProduc
     public void updateStatus(Integer id, Integer status) {
     public void updateStatus(Integer id, Integer status) {
         cmHeheCollageProductDao.updateStatus(id, status);
         cmHeheCollageProductDao.updateStatus(id, status);
     }
     }
-}
+}

+ 18 - 15
src/main/java/com/caimei/modules/hehe/service/HeheDiscountActivityProductService.java

@@ -1,27 +1,22 @@
 package com.caimei.modules.hehe.service;
 package com.caimei.modules.hehe.service;
 
 
-import java.util.List;
-
 import com.caimei.modules.hehe.dao.CmHeheActivityProductDao;
 import com.caimei.modules.hehe.dao.CmHeheActivityProductDao;
 import com.caimei.modules.hehe.dao.CmHeheProductDao;
 import com.caimei.modules.hehe.dao.CmHeheProductDao;
+import com.caimei.modules.hehe.dao.HeheDiscountActivityProductDao;
 import com.caimei.modules.hehe.entity.CmHeheProduct;
 import com.caimei.modules.hehe.entity.CmHeheProduct;
-import com.caimei.modules.hehe.entity.HeheHomeTypeProduct;
+import com.caimei.modules.hehe.entity.HeheDiscountActivityProduct;
 import com.caimei.modules.product.entity.CmSku;
 import com.caimei.modules.product.entity.CmSku;
+import com.caimei.modules.sys.utils.SMSUtils;
 import com.caimei.utils.AppUtils;
 import com.caimei.utils.AppUtils;
 import com.caimei.utils.StringUtil;
 import com.caimei.utils.StringUtil;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.config.Global;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.service.CrudService;
 import com.thinkgem.jeesite.common.service.CrudService;
-import com.caimei.modules.hehe.entity.HeheDiscountActivityProduct;
-import com.caimei.modules.hehe.dao.HeheDiscountActivityProductDao;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
-
-import static org.apache.struts2.interceptor.DateTextFieldInterceptor.DateWord.s;
+import java.util.List;
 
 
 /**
 /**
  * 限时特价商品Service
  * 限时特价商品Service
@@ -46,11 +41,11 @@ public class HeheDiscountActivityProductService extends CrudService<HeheDiscount
 		heheDiscountActivityProduct.setSkus(activityProductDao.findDiscountSku(heheDiscountActivityProduct.getProductId()));
 		heheDiscountActivityProduct.setSkus(activityProductDao.findDiscountSku(heheDiscountActivityProduct.getProductId()));
 		return heheDiscountActivityProduct;
 		return heheDiscountActivityProduct;
 	}
 	}
-	
+
 	public List<HeheDiscountActivityProduct> findList(HeheDiscountActivityProduct heheDiscountActivityProduct) {
 	public List<HeheDiscountActivityProduct> findList(HeheDiscountActivityProduct heheDiscountActivityProduct) {
 		return super.findList(heheDiscountActivityProduct);
 		return super.findList(heheDiscountActivityProduct);
 	}
 	}
-	
+
 	public Page<HeheDiscountActivityProduct> findPage(Page<HeheDiscountActivityProduct> page, HeheDiscountActivityProduct heheDiscountActivityProduct) {
 	public Page<HeheDiscountActivityProduct> findPage(Page<HeheDiscountActivityProduct> page, HeheDiscountActivityProduct heheDiscountActivityProduct) {
 		Page<HeheDiscountActivityProduct> productPage = super.findPage(page, heheDiscountActivityProduct);
 		Page<HeheDiscountActivityProduct> productPage = super.findPage(page, heheDiscountActivityProduct);
 		List<HeheDiscountActivityProduct> list = productPage.getList();
 		List<HeheDiscountActivityProduct> list = productPage.getList();
@@ -61,9 +56,17 @@ public class HeheDiscountActivityProductService extends CrudService<HeheDiscount
 		});
 		});
 		return productPage;
 		return productPage;
 	}
 	}
-	
+
 	@Transactional(readOnly = false)
 	@Transactional(readOnly = false)
 	public void save(HeheDiscountActivityProduct heheDiscountActivityProduct) {
 	public void save(HeheDiscountActivityProduct heheDiscountActivityProduct) {
+		int count = cmHeheProductDao.getMonthCount(1,3);
+		if (0 < count) {
+			List<String> mobileByUserYear = cmHeheProductDao.findMobileByUserYear(3);
+			for (String mobile : mobileByUserYear) {
+				//发送短信 【限时特价商品上架时派送】
+				SMSUtils.sendSms(3,mobile, "【颜选美学】特价商品已上架啦!快去微信搜索“颜选美学”小程序登录下单您心仪的商品吧。关注公众号“颜选美学”获取更多优惠和精彩资讯。");
+			}
+		}
 		super.save(heheDiscountActivityProduct);
 		super.save(heheDiscountActivityProduct);
 		//修改/保存sku的限时特价
 		//修改/保存sku的限时特价
 		List<CmSku> skus = heheDiscountActivityProduct.getSkus();
 		List<CmSku> skus = heheDiscountActivityProduct.getSkus();
@@ -110,4 +113,4 @@ public class HeheDiscountActivityProductService extends CrudService<HeheDiscount
         productPage.setList(productList);
         productPage.setList(productList);
         return productPage;
         return productPage;
     }
     }
-}
+}

+ 9 - 25
src/main/java/com/caimei/modules/info/service/InfoService.java

@@ -4,7 +4,7 @@ import com.caimei.dfs.image.beens.ImageUploadInfo;
 import com.caimei.modules.autoType.domain.CmAutoType;
 import com.caimei.modules.autoType.domain.CmAutoType;
 import com.caimei.modules.autoType.domain.CmAutoTypeRecord;
 import com.caimei.modules.autoType.domain.CmAutoTypeRecord;
 import com.caimei.modules.autoType.mapper.CmAutoTypeMapper;
 import com.caimei.modules.autoType.mapper.CmAutoTypeMapper;
-import com.caimei.modules.autoType.mapper.CmAutoTypeRecordMapper;
+import com.caimei.modules.autoType.service.CmAutoTypeRecordService;
 import com.caimei.modules.basesetting.dao.KeywordDao;
 import com.caimei.modules.basesetting.dao.KeywordDao;
 import com.caimei.modules.brand.utils.ImagePathUtils;
 import com.caimei.modules.brand.utils.ImagePathUtils;
 import com.caimei.modules.info.dao.InfoDao;
 import com.caimei.modules.info.dao.InfoDao;
@@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
@@ -59,7 +60,7 @@ public class InfoService extends CrudService<InfoDao, Info> {
     @Resource
     @Resource
     private CmAutoTypeMapper cmAutoTypeMapper;
     private CmAutoTypeMapper cmAutoTypeMapper;
     @Resource
     @Resource
-    private CmAutoTypeRecordMapper cmAutoTypeRecordMapper;
+    private CmAutoTypeRecordService cmAutoTypeRecordService;
     @Resource
     @Resource
     private NewCmClubDao newCmClubDao;
     private NewCmClubDao newCmClubDao;
 
 
@@ -225,10 +226,10 @@ public class InfoService extends CrudService<InfoDao, Info> {
 
 
         // 管理员审核文章
         // 管理员审核文章
         if (null != info.getAuditFlag() && 1 == info.getAuditFlag()) {
         if (null != info.getAuditFlag() && 1 == info.getAuditFlag()) {
-            //站内信
+            //站内信 【审核文章推送】
             MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
             MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
             insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
             insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
-                    .mqInfo(new MqInfo().topic("MessageLine").delay(1).async(0));
+                    .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(1));
             if (null != info.getAuditStatus() && 2 == info.getAuditStatus()) {
             if (null != info.getAuditStatus() && 2 == info.getAuditStatus()) {
                 // 审核通过
                 // 审核通过
                 info.setPubdate(new Date());
                 info.setPubdate(new Date());
@@ -258,30 +259,13 @@ public class InfoService extends CrudService<InfoDao, Info> {
         }
         }
         super.save(info);
         super.save(info);
 
 
-        CmAutoType byCmAutoType = cmAutoTypeMapper.getByCmAutoType(new CmAutoType().type("2"));            //获取推送配置
-        if (null != byCmAutoType && StringUtils.equals("0", byCmAutoType.autoStatus())) {
-            cmAutoTypeRecordMapper.addCmAutoTypeRecord(new CmAutoTypeRecord()                            //新增推送记录
+        CmAutoType byCmAutoType = cmAutoTypeMapper.getByCmAutoType(new CmAutoType().type("1").autoStatus("0"));  //获取推送配置
+        if (null != byCmAutoType) {
+            cmAutoTypeRecordService.addCmAutoTypeRecord(new CmAutoTypeRecord()                                   //新增推送记录
                     .type("1")
                     .type("1")
                     .autoStatus("0")
                     .autoStatus("0")
-                    .authorId(Integer.valueOf(info.getId()))
-                    .createTime(new Date())
+                    .thisIds(Arrays.asList(info.getId()))
             );
             );
-            //站内信
-            MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
-            insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
-                    .mqInfo(new MqInfo().topic("MessageLine").delay(1).async(1));
-            List<String> clubIds = newCmClubDao.getClubIds(null);
-            for (String clubId : clubIds) {
-                insideMessageMessageModel.info(new InsideMessage()
-                        .userType(1)
-                        .messageType(5)
-                        .mainImage(info.getGuidanceImage())
-                        .content(info.getTitle())
-                        .thisId(Integer.valueOf(info.getId()))
-                        .clubId(Integer.valueOf(clubId))
-                );
-                MessageUtil.sendMessage(insideMessageMessageModel);
-            }
         }
         }
         if (flg) {
         if (flg) {
             infoDao.insertInfoPraise(info.getId());
             infoDao.insertInfoPraise(info.getId());

+ 4 - 0
src/main/java/com/caimei/modules/info/web/InfoTypeController.java

@@ -7,6 +7,7 @@ import com.caimei.modules.info.service.InfoTypeService;
 import com.caimei.modules.landing.domain.CmBrandLanding;
 import com.caimei.modules.landing.domain.CmBrandLanding;
 import com.caimei.modules.landing.service.CmBrandLandingService;
 import com.caimei.modules.landing.service.CmBrandLandingService;
 import com.caimei.modules.opensearch.CoreServiceUitls;
 import com.caimei.modules.opensearch.CoreServiceUitls;
+import com.caimei.modules.utils.DateUtil;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Maps;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.persistence.Page;
@@ -181,6 +182,9 @@ public class InfoTypeController extends BaseController {
 
 
 	@RequestMapping(value = {"infoTypeLandingList" })
 	@RequestMapping(value = {"infoTypeLandingList" })
 	public String list(CmBrandLanding cmBrandLanding, HttpServletRequest request, HttpServletResponse response, Model model) {
 	public String list(CmBrandLanding cmBrandLanding, HttpServletRequest request, HttpServletResponse response, Model model) {
+		if (null != cmBrandLanding.getEndPvCreateTime()) {
+			cmBrandLanding.setEndPvCreateTime(DateUtil.getEndTime(cmBrandLanding.getEndPvCreateTime()));
+		}
 		cmBrandLanding.setType(5);
 		cmBrandLanding.setType(5);
 		cmBrandLanding.setStatisticsType("2");
 		cmBrandLanding.setStatisticsType("2");
 		Page<CmBrandLanding> page = cmBrandLandingService.findPage(new Page<CmBrandLanding>(request, response), cmBrandLanding);
 		Page<CmBrandLanding> page = cmBrandLandingService.findPage(new Page<CmBrandLanding>(request, response), cmBrandLanding);

+ 2 - 0
src/main/java/com/caimei/modules/landing/domain/CmBrandLanding.java

@@ -1,5 +1,6 @@
 package com.caimei.modules.landing.domain;
 package com.caimei.modules.landing.domain;
 
 
+import cn.hutool.core.date.DateUtil;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 import lombok.Data;
 import lombok.Data;
@@ -119,6 +120,7 @@ public class CmBrandLanding extends DataEntity<CmBrandLanding> implements Serial
     }
     }
 
 
     public Date getEndPvCreateTime() {
     public Date getEndPvCreateTime() {
+        
         return endPvCreateTime;
         return endPvCreateTime;
     }
     }
 
 

+ 2 - 0
src/main/java/com/caimei/modules/newhome/entity/NewPageFirstNavigation.java

@@ -1,5 +1,6 @@
 package com.caimei.modules.newhome.entity;
 package com.caimei.modules.newhome.entity;
 
 
+import cn.hutool.core.date.DateUtil;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Length;
@@ -71,6 +72,7 @@ public class NewPageFirstNavigation extends DataEntity<NewPageFirstNavigation> {
     }
     }
 
 
     public Date getEndPvCreateTime() {
     public Date getEndPvCreateTime() {
+        
         return endPvCreateTime;
         return endPvCreateTime;
     }
     }
 
 

+ 2 - 0
src/main/java/com/caimei/modules/newhome/entity/NewPageHomeimage.java

@@ -1,5 +1,6 @@
 package com.caimei.modules.newhome.entity;
 package com.caimei.modules.newhome.entity;
 
 
+import cn.hutool.core.date.DateUtil;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Length;
 
 
@@ -44,6 +45,7 @@ public class NewPageHomeimage extends DataEntity<NewPageHomeimage> {
 	}
 	}
 
 
 	public Date getEndPvCreateTime() {
 	public Date getEndPvCreateTime() {
+		
 		return endPvCreateTime;
 		return endPvCreateTime;
 	}
 	}
 
 

+ 4 - 0
src/main/java/com/caimei/modules/newhome/web/NewPageFirstNavigationController.java

@@ -4,6 +4,7 @@ import com.caimei.modules.hehe.util.UploadPicUtils;
 import com.caimei.modules.newhome.entity.NewPageFirstNavigation;
 import com.caimei.modules.newhome.entity.NewPageFirstNavigation;
 import com.caimei.modules.newhome.service.NewPageFirstNavigationService;
 import com.caimei.modules.newhome.service.NewPageFirstNavigationService;
 import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.opensearch.GenerateUtils;
+import com.caimei.modules.utils.DateUtil;
 import com.caimei.redis.RedisService;
 import com.caimei.redis.RedisService;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Maps;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.config.Global;
@@ -64,6 +65,9 @@ public class NewPageFirstNavigationController extends BaseController {
     @RequiresPermissions("newhome:newPageFirstNavigation:view")
     @RequiresPermissions("newhome:newPageFirstNavigation:view")
     @RequestMapping(value = {"list", ""})
     @RequestMapping(value = {"list", ""})
     public String list(NewPageFirstNavigation newPageFirstNavigation, HttpServletRequest request, HttpServletResponse response, Model model) {
     public String list(NewPageFirstNavigation newPageFirstNavigation, HttpServletRequest request, HttpServletResponse response, Model model) {
+        if (null != newPageFirstNavigation.getEndPvCreateTime()) {
+            newPageFirstNavigation.setEndPvCreateTime(DateUtil.getEndTime(newPageFirstNavigation.getEndPvCreateTime()));
+        }
         newPageFirstNavigation.setStatisticsType("4");
         newPageFirstNavigation.setStatisticsType("4");
         Page<NewPageFirstNavigation> page = newPageFirstNavigationService.findPage(new Page<NewPageFirstNavigation>(request, response), newPageFirstNavigation);
         Page<NewPageFirstNavigation> page = newPageFirstNavigationService.findPage(new Page<NewPageFirstNavigation>(request, response), newPageFirstNavigation);
         model.addAttribute("page", page);
         model.addAttribute("page", page);

+ 4 - 0
src/main/java/com/caimei/modules/newhome/web/NewPageHomeimageController.java

@@ -6,6 +6,7 @@ import com.caimei.modules.newhome.entity.NewPageHomeimage;
 import com.caimei.modules.newhome.entity.cmStatisticsType;
 import com.caimei.modules.newhome.entity.cmStatisticsType;
 import com.caimei.modules.newhome.service.NewPageHomeimageService;
 import com.caimei.modules.newhome.service.NewPageHomeimageService;
 import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.opensearch.GenerateUtils;
+import com.caimei.modules.utils.DateUtil;
 import com.caimei.redis.RedisService;
 import com.caimei.redis.RedisService;
 import com.caimei.vo.JsonModel;
 import com.caimei.vo.JsonModel;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Maps;
@@ -65,6 +66,9 @@ public class NewPageHomeimageController extends BaseController {
 
 
     @RequestMapping(value = {"list", ""})
     @RequestMapping(value = {"list", ""})
     public String list(NewPageHomeimage newPageHomeimage, HttpServletRequest request, HttpServletResponse response, Model model) {
     public String list(NewPageHomeimage newPageHomeimage, HttpServletRequest request, HttpServletResponse response, Model model) {
+        if (null != newPageHomeimage.getEndPvCreateTime()) {
+            newPageHomeimage.setEndPvCreateTime(DateUtil.getEndTime(newPageHomeimage.getEndPvCreateTime()));
+        }
         Page<NewPageHomeimage> page = newPageHomeimageService.findPage(new Page<NewPageHomeimage>(request, response), newPageHomeimage);
         Page<NewPageHomeimage> page = newPageHomeimageService.findPage(new Page<NewPageHomeimage>(request, response), newPageHomeimage);
         // 点击次数
         // 点击次数
         List<cmStatisticsType> bannerStatistics = newPageHomeimageDao.getBannerStatistics(newPageHomeimage.getStartPvCreateTime(),newPageHomeimage.getEndPvCreateTime());
         List<cmStatisticsType> bannerStatistics = newPageHomeimageDao.getBannerStatistics(newPageHomeimage.getStartPvCreateTime(),newPageHomeimage.getEndPvCreateTime());

+ 1 - 1
src/main/java/com/caimei/modules/user/dao/NewCmClubDao.java

@@ -96,5 +96,5 @@ public interface NewCmClubDao extends CrudDao<NewCmClub> {
 
 
     List<easyExcel> findExcelList(ClubStatistics statistics);
     List<easyExcel> findExcelList(ClubStatistics statistics);
 
 
-    List<String> getClubIds(NewCmClub newCmClub);
+    List<String> getClubIds();
 }
 }

+ 8 - 9
src/main/java/com/caimei/modules/user/web/newUser/SpController.java

@@ -1,6 +1,5 @@
 package com.caimei.modules.user.web.newUser;
 package com.caimei.modules.user.web.newUser;
 
 
-import com.alibaba.fastjson.JSONObject;
 import com.caimei.constants.ServiceProviderStatus;
 import com.caimei.constants.ServiceProviderStatus;
 import com.caimei.constants.UserIdentity;
 import com.caimei.constants.UserIdentity;
 import com.caimei.constants.UserType;
 import com.caimei.constants.UserType;
@@ -8,21 +7,21 @@ import com.caimei.modules.bulkpurchase.entity.CmClub;
 import com.caimei.modules.bulkpurchase.service.CmClubService;
 import com.caimei.modules.bulkpurchase.service.CmClubService;
 import com.caimei.modules.project.dao.ClubDao;
 import com.caimei.modules.project.dao.ClubDao;
 import com.caimei.modules.project.dao.ServiceProviderDao;
 import com.caimei.modules.project.dao.ServiceProviderDao;
-import com.caimei.modules.project.model.ClubModel;
 import com.caimei.modules.project.model.ServiceProviderModel;
 import com.caimei.modules.project.model.ServiceProviderModel;
 import com.caimei.modules.sys.utils.SMSUtils;
 import com.caimei.modules.sys.utils.SMSUtils;
 import com.caimei.modules.sys.utils.ValidateUtils;
 import com.caimei.modules.sys.utils.ValidateUtils;
-import com.caimei.modules.user.aop.OperationLogAnnotation;
 import com.caimei.modules.user.dao.NewCmClubDao;
 import com.caimei.modules.user.dao.NewCmClubDao;
 import com.caimei.modules.user.entity.*;
 import com.caimei.modules.user.entity.*;
 import com.caimei.modules.user.service.*;
 import com.caimei.modules.user.service.*;
 import com.caimei.modules.utils.MessageUtil;
 import com.caimei.modules.utils.MessageUtil;
-import com.caimei.modules.utils.RequestUtil;
 import com.caimei.modules.utils.message.InsideMessage;
 import com.caimei.modules.utils.message.InsideMessage;
 import com.caimei.modules.utils.message.MessageModel;
 import com.caimei.modules.utils.message.MessageModel;
 import com.caimei.modules.utils.message.MqInfo;
 import com.caimei.modules.utils.message.MqInfo;
 import com.caimei.modules.utils.message.enums.MessageType;
 import com.caimei.modules.utils.message.enums.MessageType;
-import com.caimei.utils.*;
+import com.caimei.utils.AppKeys;
+import com.caimei.utils.DateUtils;
+import com.caimei.utils.MD5Utils;
+import com.caimei.utils.MathUtil;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Maps;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.persistence.Page;
@@ -188,10 +187,10 @@ public class SpController extends BaseController {
                             NewCmClub newCmClub = newCmClubService.get(clubId.toString());
                             NewCmClub newCmClub = newCmClubService.get(clubId.toString());
                             ServiceProviderModel oldServiceprovider = serviceProviderDao.getServiceproviderById(cssp.getOldSpID()).get(0);
                             ServiceProviderModel oldServiceprovider = serviceProviderDao.getServiceproviderById(cssp.getOldSpID()).get(0);
 
 
-                            //站内信
+                            //站内信 【协销更换回收】
                             MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
                             MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
                             insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
                             insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
-                                    .mqInfo(new MqInfo().topic("MessageLine").delay(1).async(1))
+                                    .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(1))
                                     .info(new InsideMessage()
                                     .info(new InsideMessage()
                                             .userType(3)
                                             .userType(3)
                                             .messageType(3)
                                             .messageType(3)
@@ -333,7 +332,7 @@ public class SpController extends BaseController {
             Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
             Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
             Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
             Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
             //        机构活跃与不活跃占比计算方法,例如:机构活跃数/机构活跃数+机构不活跃数(60/(60+30)=0.666...),保留小数点后2位,四舍五入,0.67;
             //        机构活跃与不活跃占比计算方法,例如:机构活跃数/机构活跃数+机构不活跃数(60/(60+30)=0.666...),保留小数点后2位,四舍五入,0.67;
-            BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ?(double) loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
+            BigDecimal livelyClubProportion = BigDecimal.valueOf((loginSum + not_loginSum) != 0 ?(double) loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
             s.setLivelyClub(loginSum);
             s.setLivelyClub(loginSum);
             s.setNolivelyClub(not_loginSum);
             s.setNolivelyClub(not_loginSum);
             s.setLivelyClubProportion(livelyClubProportion);
             s.setLivelyClubProportion(livelyClubProportion);
@@ -343,7 +342,7 @@ public class SpController extends BaseController {
         Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
         Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
         Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
         Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
         //        机构活跃与不活跃占比计算方法,例如:机构活跃数/机构活跃数+机构不活跃数(60/(60+30)=0.666...),保留小数点后2位,四舍五入,0.67;
         //        机构活跃与不活跃占比计算方法,例如:机构活跃数/机构活跃数+机构不活跃数(60/(60+30)=0.666...),保留小数点后2位,四舍五入,0.67;
-        BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ?(double) loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
+        BigDecimal livelyClubProportion =  BigDecimal.valueOf((loginSum + not_loginSum) != 0 ?(double) loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
         model.addAttribute("livelyClub", loginSum);
         model.addAttribute("livelyClub", loginSum);
         model.addAttribute("nolivelyClub", not_loginSum);
         model.addAttribute("nolivelyClub", not_loginSum);
         model.addAttribute("livelyClubProportion", livelyClubProportion);
         model.addAttribute("livelyClubProportion", livelyClubProportion);

+ 37 - 7
src/main/java/com/caimei/modules/utils/DateUtil.java

@@ -64,20 +64,50 @@ public class DateUtil {
         String format = new SimpleDateFormat("yyyy-MM").format(date);
         String format = new SimpleDateFormat("yyyy-MM").format(date);
         return format;
         return format;
     }
     }
+
     /**
     /**
-     *时间yyyy-mm格式
+     * 时间yyyy-mm格式
+     *
      * @return
      * @return
      */
      */
-    public static String format(Date date){
+    public static String format(Date date) {
         String format = new SimpleDateFormat("yyyy-MM").format(date);
         String format = new SimpleDateFormat("yyyy-MM").format(date);
         return format;
         return format;
     }
     }
 
 
-//    public static void main(String[] args) throws ParseException {
-//        String month = "2020-02";
-//        System.out.println(getMinDateMonth(month));
-//        System.out.println(getMaxDateMonth(month));
-//    }
+    /**
+     * 获取当天00:00:00的时间戳
+     *
+     * @return 时间戳
+     */
+    public static Date getStartTime(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        return calendar.getTime();
+    }
+
+    /**
+     * 获取当天23:59:59的时间戳
+     *
+     * @return 时间戳
+     */
+    public static Date getEndTime(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        return calendar.getTime();
+    }
+
+    //    public static void main(String[] args) throws ParseException {
+    //        String month = "2020-02";
+    //        System.out.println(getMinDateMonth(month));
+    //        System.out.println(getMaxDateMonth(month));
+    //    }
 
 
 
 
 }
 }

+ 53 - 23
src/main/java/com/caimei/modules/utils/MessageUtil.java

@@ -1,20 +1,18 @@
 package com.caimei.modules.utils;
 package com.caimei.modules.utils;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
-import com.caimei.modules.utils.message.InsideMessage;
 import com.caimei.modules.utils.message.MessageModel;
 import com.caimei.modules.utils.message.MessageModel;
 import com.caimei.modules.utils.message.MqInfo;
 import com.caimei.modules.utils.message.MqInfo;
 import com.caimei.modules.utils.message.WechatTemplateMessage;
 import com.caimei.modules.utils.message.WechatTemplateMessage;
 import com.caimei.modules.utils.message.enums.MessageType;
 import com.caimei.modules.utils.message.enums.MessageType;
-import com.caimei.utils.HttpRequest;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.config.Global;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
 
 
 public class MessageUtil {
 public class MessageUtil {
     protected static Logger logger = LoggerFactory.getLogger(MessageUtil.class);
     protected static Logger logger = LoggerFactory.getLogger(MessageUtil.class);
@@ -23,10 +21,8 @@ public class MessageUtil {
         try {
         try {
             String coreServer = Global.getConfig("caimei.core");
             String coreServer = Global.getConfig("caimei.core");
             String url = coreServer + "/tools/message/send";
             String url = coreServer + "/tools/message/send";
-            logger.info("url>>>>" + url);
             String result = RequestUtil.sendPost(url, new ObjectMapper().writeValueAsString(model),"application/json");
             String result = RequestUtil.sendPost(url, new ObjectMapper().writeValueAsString(model),"application/json");
             JSONObject parseObject = JSONObject.parseObject(result);
             JSONObject parseObject = JSONObject.parseObject(result);
-            System.out.println(parseObject);
             Integer code = parseObject.getInteger("code");
             Integer code = parseObject.getInteger("code");
             if (code != 0) {
             if (code != 0) {
                 logger.info("审批消息推送失败>>>>" + model.info());
                 logger.info("审批消息推送失败>>>>" + model.info());
@@ -40,27 +36,61 @@ public class MessageUtil {
     }
     }
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {
-
         //微信模板消息
         //微信模板消息
-        ArrayList<String> keyWords = new ArrayList<>();
-        keyWords.add("name"+"...等"+7+"家机构客户");
-        keyWords.add("pageLabel");
-        keyWords.add("2023-09-18");
+        // ArrayList<String> keyWords = new ArrayList<>();
+        // keyWords.add("2023-06-10");
+        // keyWords.add("2023-06-10");
+        // keyWords.add("2023-06-10");
+        // keyWords.add("2023-06-10");
+        Map<String,Object> keyWords = new HashMap<>();
+        keyWords.put("character_string3","2023-06-10");
+        keyWords.put("time10","2023-06-10");
+        keyWords.put("thing9","2023-06-10");
+        keyWords.put("character_string8","2023-06-10");
         MessageModel<WechatTemplateMessage> wechatTemplateMessageMessageModel = new MessageModel<WechatTemplateMessage>()
         MessageModel<WechatTemplateMessage> wechatTemplateMessageMessageModel = new MessageModel<WechatTemplateMessage>()
                 .code(MessageType.WECHAT_TEMPLATE_MESSAGE)
                 .code(MessageType.WECHAT_TEMPLATE_MESSAGE)
-                .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(0))
+                .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(1))
                 .info(new WechatTemplateMessage()
                 .info(new WechatTemplateMessage()
-                        .first("")
-//                        .openId("o9nzn5yD6IOcFuhG4b3OG1droVJw")
-//                        .openId("o9nzn51aTKY5u26FDoD5zf0wU6UM")
-                        .openId("o9nzn581OysHNNsDwJJlzKpWoQ4o")
-                        .appid("wxf3cd4ae0cdd11c36")
-                        .templateId("Zd7ewJw9-bN-gIgra9flKW96W3YehikRPPkDXPfhmQ0")
-                        .keyWords(keyWords)
-                        .remark("为了更好给您服务,请及时联系采美客服!")
-                        .pagePath("pages/seller/notice/service/Institutional_visits?spId="+1340+"&accDateTime="+"2023-09-18"));
-//                        .pagePath("pages/seller/notice/service/visits_details?spId="+1340+"&clubId="+"99930"+"&accessTime="+"2023-09-18"));
+                        .type("2")
+                        .templateType("2")
+                        .first("hgfhfgh")
+                        .openId("oIsyY5njDnjzjR8nghD0axsw34t8")
+                        .appid("wx2c3b0a7f343235b1")
+                        .templateId("0Ruf-Ypu0Eahk0vY9orVN0-QqE0auk2N89LqjtGq4p8")
+                        // .keyWords(keyWords)
+                        .mapKeyWords(keyWords)
+                        .remark("个地方刚发的")
+                        .pagePath("pages/views/order/order-detail?orderId="+18691)
+                );
+        String join = StringUtils.join(wechatTemplateMessageMessageModel.getInfo().getKeyWords(), ",");
+        if(join.contains("},{")){
+            join = join.replace("},{", ",");
+        }
+        JSONObject jsonObject = JSONObject.parseObject(join);
+                System.out.println(jsonObject);
         sendMessage(wechatTemplateMessageMessageModel);
         sendMessage(wechatTemplateMessageMessageModel);
+
+//         //微信模板消息
+//         ArrayList<String> keyWords = new ArrayList<>();
+//         keyWords.add("name"+"...等"+7+"家机构客户");
+//         keyWords.add("pageLabel");
+//         keyWords.add("2023-09-18");
+//         MessageModel<WechatTemplateMessage> wechatTemplateMessageMessageModel = new MessageModel<WechatTemplateMessage>()
+//                 .code(MessageType.WECHAT_TEMPLATE_MESSAGE)
+//                 .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(0))
+//                 .info(new WechatTemplateMessage()
+//                         // .type("2")
+//                         .first("")
+//                        .openId("o9nzn5yD6IOcFuhG4b3OG1droVJw")
+// //                        .openId("o9nzn51aTKY5u26FDoD5zf0wU6UM")
+// //                         .openId("o9nzn581OysHNNsDwJJlzKpWoQ4o")
+//                         .appid("wxf3cd4ae0cdd11c36")
+//                         .templateId("Zd7ewJw9-bN-gIgra9flKW96W3YehikRPPkDXPfhmQ0")
+//                         .keyWords(keyWords)
+//                         .remark("为了更好给您服务,请及时联系采美客服!")
+//                         .pagePath("pages/seller/notice/service/Institutional_visits?spId="+1340+"&accDateTime="+"2023-09-18"));
+// //                        .pagePath("pages/seller/notice/service/visits_details?spId="+1340+"&clubId="+"99930"+"&accessTime="+"2023-09-18"));
+//         sendMessage(wechatTemplateMessageMessageModel);
 //        //站内信
 //        //站内信
 //        MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
 //        MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
 //        insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
 //        insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)

+ 39 - 0
src/main/java/com/caimei/modules/utils/message/WechatTemplateMessage.java

@@ -9,6 +9,7 @@ import lombok.experimental.Accessors;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 @Data
 @Data
 @Accessors(fluent = true)
 @Accessors(fluent = true)
@@ -65,6 +66,10 @@ public class WechatTemplateMessage {
      */
      */
     @NotNull
     @NotNull
     private JSONObject remark;
     private JSONObject remark;
+    /**
+     * 模板消息的公众号
+     */
+    private String type;
     /**
     /**
      * 所需跳转到的小程序appid(该小程序 appid 必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏)
      * 所需跳转到的小程序appid(该小程序 appid 必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏)
      */
      */
@@ -80,6 +85,11 @@ public class WechatTemplateMessage {
      */
      */
     @NotNull
     @NotNull
     private String templateId;
     private String templateId;
+
+    /**
+     * 模板type:1模板消息,2类目模板消息
+     */
+    private String templateType;
     /**
     /**
      * 模板跳转链接
      * 模板跳转链接
      */
      */
@@ -100,6 +110,22 @@ public class WechatTemplateMessage {
     private JSONObject data;
     private JSONObject data;
     private JSONObject json;
     private JSONObject json;
 
 
+    public String getTemplateType() {
+        return templateType;
+    }
+
+    public void setTemplateType(String templateType) {
+        this.templateType = templateType;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
     public JSONObject getFirst() {
     public JSONObject getFirst() {
         return first;
         return first;
     }
     }
@@ -179,6 +205,19 @@ public class WechatTemplateMessage {
         return this;
         return this;
     }
     }
 
 
+    public WechatTemplateMessage mapKeyWords(Map<String,Object> words) {
+        List<JSONObject> collect = new ArrayList<>();
+        words.forEach((key, value) -> {
+            JSONObject jsonValue = new JSONObject();
+            jsonValue.put("value",value);
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put(key, jsonValue);
+            collect.add(jsonObject);
+        });
+        this.setKeyWords(collect);
+        return this;
+    }
+
     public void setKeyWords(List<JSONObject> keyWords) {
     public void setKeyWords(List<JSONObject> keyWords) {
         this.keyWords = keyWords;
         this.keyWords = keyWords;
     }
     }

+ 1 - 1
src/main/java/com/thinkgem/jeesite/common/utils/DateUtils.java

@@ -41,7 +41,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
      */
      */
     public static String setDate(Date date, String pattern) {
     public static String setDate(Date date, String pattern) {
         if (date == null) {
         if (date == null) {
-            return "";
+            return null;
         }
         }
         return DateFormatUtils.format(date, pattern);
         return DateFormatUtils.format(date, pattern);
     }
     }

+ 3 - 3
src/main/resources/mappings/modules/cmpage/CmImageMapper.xml

@@ -35,9 +35,9 @@
 	<select id="findList" resultType="CmImage">
 	<select id="findList" resultType="CmImage">
 		SELECT
 		SELECT
 			<include refid="cmImageColumns"/>
 			<include refid="cmImageColumns"/>
-		<if test="statisticsType != null  and statisticsType != ''">
-			,IFNULL((select sum(c.pv) from cm_praise_statistics c where  c.delFlag = 0 and c.type = #{statisticsType} and a.id = c.authorId  <if test="startPvCreateTime != null ">AND c.createTime >= #{startPvCreateTime} </if><if test="endPvCreateTime != null ">AND c.createTime <![CDATA[ <= ]]> #{endPvCreateTime} </if>), 0) as pv
-		</if>
+			<if test="statisticsType != null  and statisticsType != ''">
+				,IFNULL((select sum(c.pv) from cm_praise_statistics c where  c.delFlag = 0 and c.type = #{statisticsType} and a.id = c.authorId  <if test="startPvCreateTime != null ">AND c.createTime >= #{startPvCreateTime} </if><if test="endPvCreateTime != null ">AND c.createTime <![CDATA[ <= ]]> #{endPvCreateTime} </if>), 0) as pv
+			</if>
 		FROM cm_page_image a
 		FROM cm_page_image a
 		<where>
 		<where>
 
 

+ 1 - 0
src/main/resources/mappings/modules/hehe/CmHeheCollageProductMapper.xml

@@ -121,6 +121,7 @@
         limit 1
         limit 1
     </select>
     </select>
 
 
+
     <insert id="insert" parameterType="CmHeheCollageProduct" keyProperty="id" useGeneratedKeys="true">
     <insert id="insert" parameterType="CmHeheCollageProduct" keyProperty="id" useGeneratedKeys="true">
         INSERT INTO cm_hehe_collage_product(productId,
         INSERT INTO cm_hehe_collage_product(productId,
                                             limitedNum,
                                             limitedNum,

+ 26 - 2
src/main/resources/mappings/modules/hehe/CmHeheProductMapper.xml

@@ -336,8 +336,32 @@
         where skuId = #{skuId}
         where skuId = #{skuId}
     </update>
     </update>
     <select id="findLadderList" resultType="com.caimei.modules.product.entity.CmLadderPrice">
     <select id="findLadderList" resultType="com.caimei.modules.product.entity.CmLadderPrice">
-        select id,buyPrice,buyNum
+        select id, buyPrice, buyNum
         from cm_hehe_activity_ladder
         from cm_hehe_activity_ladder
-        where skuId=#{skuId}
+        where skuId = #{skuId}
+    </select>
+    <select id="findMobileByUserYear" resultType="String">
+        select chu.mobile
+        from cm_hehe_user chu
+                 left join user u on u.userID = chu.userID
+        where chu.userIdentity='1' and  u.validFlag='1' and  u.loginTime >= DATE_SUB(NOW(), INTERVAL #{num} YEAR)
+    </select>
+
+    <select id="getMonthCount" resultType="java.lang.Integer">
+        <if test="type != null and type == 1">
+            select count(1)
+            from cm_hehe_collage_product
+            where addTime >= DATE_SUB(NOW(), INTERVAL #{num} MONTH)
+        </if>
+        <if test="type != null and type == 2">
+            select count(1)
+            from cm_hehe_activity_product
+            where addTime >= DATE_SUB(NOW(), INTERVAL #{num} MONTH)
+        </if>
+        <if test="type != null and type == 3">
+            select count(1)
+            from hehe_discount_activity_product
+            where addTime >= DATE_SUB(NOW(), INTERVAL #{num} MONTH)
+        </if>
     </select>
     </select>
 </mapper>
 </mapper>

+ 1 - 125
src/main/resources/mappings/modules/user/NewCmClubMapper.xml

@@ -1396,132 +1396,8 @@
         a.clubID
         a.clubID
         FROM club a
         FROM club a
         <include refid="newCmClubJoins"/>
         <include refid="newCmClubJoins"/>
-        LEFT JOIN (SELECT userID, activeState, customerValue FROM cm_organ_value_system WHERE stage = 0 AND delType = 1)
-        covs ON a.userID = covs.userID
         <where>
         <where>
-            (u.userOrganizeID IN(0,1) or u.clubStatus != 92) and u.userOrganizeID != 4 AND u.userIdentity != 8
-            <if test="clubID != null and clubID != ''">
-                AND a.clubID = #{clubID}
-            </if>
-            <if test="clubID == 0">
-                AND a.clubID = #{clubID}
-            </if>
-            <if test="userID != null and userID != ''">
-                AND a.userID = #{userID}
-            </if>
-            <if test="account != null and account != ''">
-                AND u.account = #{account}
-            </if>
-            <if test="name != null and name != ''">
-                AND u.name LIKE concat('%',#{name},'%')
-            </if>
-            <if test="userName != null and userName != ''">
-                AND u.userName LIKE concat('%',#{userName},'%')
-            </if>
-            <if test="townID != null and townID != ''">
-                AND d.provinceID = #{provinceID}
-            </if>
-            <if test="cityID != null and cityID != ''">
-                AND c.cityID = #{cityID}
-            </if>
-            <if test="townID != null and townID != ''">
-                AND b.townID = #{townID}
-            </if>
-            <if test="status != null and status != ''">
-                AND a.status = #{status}
-            </if>
-            <if test="bindMobile != null and bindMobile != ''">
-                AND u.bindMobile LIKE concat('%',#{bindMobile},'%')
-            </if>
-            <if test="email != null and email != ''">
-                AND u.email LIKE concat('%',#{email},'%')
-            </if>
-            <if test="linkMan != null and linkMan != ''">
-                AND a.linkMan LIKE concat('%',#{linkMan},'%')
-            </if>
-            <if test="startTime != null and startTime != ''">
-                AND (u.registerTime &gt; #{startTime} OR u.registerTime = #{startTime})
-            </if>
-            <if test="endTime != null and endTime != ''">
-                AND (u.registerTime &lt; #{endTime} OR u.registerTime = #{endTime})
-            </if>
-            <if test="startLoginTime != null and startLoginTime != ''">
-                AND (u.loginTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) OR a.clubId in (select a.clubId
-                FROM ((
-                select
-                c.clubId,ccr.addTime AS time,c.spID
-                FROM club c
-                LEFT JOIN user u ON u.userID = c.userID
-                LEFT JOIN cm_club_remarks ccr ON ccr.clubId = c.clubId
-                LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
-                where c.status=90 and sp.status=90
-                and  ccr.addTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
-                GROUP BY c.clubId
-                )UNION(
-                select c.clubId,cr.orderTime AS time,c.spID
-                FROM club c
-                LEFT JOIN user u ON u.userID = c.userID
-                LEFT JOIN cm_order cr ON cr.clubId = c.clubId
-                LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
-                where c.status=90 and sp.status=90
-                and  cr.orderTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
-                GROUP BY c.clubId
-                )) a where a.time is not null
-                and  a.spID=#{spID}
-                GROUP BY a.clubId ))
-            </if>
-            <if test="endLoginTime != null and endLoginTime != ''">
-                AND (u.loginTime <![CDATA[ < ]]> DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) or u.loginTime is null) and a.clubId not in (select a.clubId
-                FROM ((
-                select
-                c.clubId,ccr.addTime AS time,c.spID
-                FROM club c
-                LEFT JOIN user u ON u.userID = c.userID
-                LEFT JOIN cm_club_remarks ccr ON ccr.clubId = c.clubId
-                LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
-                where c.status=90 and sp.status=90
-                and  ccr.addTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
-                GROUP BY c.clubId
-                )UNION(
-                select c.clubId,cr.orderTime AS time,c.spID
-                FROM club c
-                LEFT JOIN user u ON u.userID = c.userID
-                LEFT JOIN cm_order cr ON cr.clubId = c.clubId
-                LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
-                where c.status=90 and sp.status=90
-                and  cr.orderTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
-                GROUP BY c.clubId
-                )) a where a.time is not null
-                and  a.spID=#{spID}
-                GROUP BY a.clubId )
-            </if>
-            <if test="userIdentity != null and userIdentity != '' and userIdentity != '8'.toString()">
-                AND u.userIdentity = #{userIdentity}
-            </if>
-            <if test="userIdentity != null and userIdentity != '' and userIdentity == '8'.toString()">
-                AND csu.delFlag = '0' and now() <![CDATA[ < ]]> csu.endTime
-            </if>
-            <if test="newDeal != null">
-                AND a.newDeal =#{newDeal}
-            </if>
-            <if test="activeState != null and activeState != ''">
-                AND covs.activeState = #{activeState}
-            </if>
-            <if test="customerValue != null and customerValue != ''">
-                AND covs.customerValue = #{customerValue}
-            </if>
-            <if test="spID != null and spID != ''">
-                AND sp.serviceProviderID = #{spID}
-            </if>
-
+            AND a.status =90 and u.userOrganizeID IN(0,1)  AND u.userIdentity != 8
         </where>
         </where>
-        <choose>
-            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
-                ORDER BY ${page.orderBy}
-            </when>
-            <otherwise>
-                ORDER BY case when a.status = 91 then 0 else 1 end desc, a.addTime DESC
-            </otherwise>
-        </choose>
     </select>
     </select>
 </mapper>
 </mapper>

+ 6 - 1
src/main/webapp/WEB-INF/views/modules/autoType/autoTypeList.jsp

@@ -127,7 +127,12 @@
         })
         })
 
 
     })
     })
-
+    function page(n,s){
+        $("#pageNo").val(n);
+        $("#pageSize").val(s);
+        $("#searchForm").submit();
+        return false;
+    }
     var items = null;
     var items = null;
     var type = $('#type').val();
     var type = $('#type').val();
     var title = type == 1 ? "选择文章" : "选择活动";
     var title = type == 1 ? "选择文章" : "选择活动";

+ 21 - 11
src/main/webapp/WEB-INF/views/modules/baikePage/cmBaikeProductForm.jsp

@@ -701,13 +701,21 @@
 							touchWords = '';
 							touchWords = '';
 						}
 						}
 					});
 					});
+					if ($("#banner").val() == "") {
+						top.$.jBox.tip("请先选择Banner图片!");
+						return false
+					}
+					if ($("#image").val() == "") {
+						top.$.jBox.tip("请先选择头图!");
+						return false
+					}
 					if (1 == status && emptyNum > 0) {
 					if (1 == status && emptyNum > 0) {
 						var msg = "您还剩余" + emptyNum + "项未完善,将会导致用户对您产品/仪器的认识度不够,确认是否提交?";
 						var msg = "您还剩余" + emptyNum + "项未完善,将会导致用户对您产品/仪器的认识度不够,确认是否提交?";
 						top.$.jBox.confirm(msg, '系统提示', function (v, h, f) {
 						top.$.jBox.confirm(msg, '系统提示', function (v, h, f) {
 							if (v == 'ok') {
 							if (v == 'ok') {
 								if (touchNum > 0) {
 								if (touchNum > 0) {
-									var msg = 1 == status?"当前发布内容存在敏感词,已为您标记在输入框下方," +
-											"请修改后,再进行保存发布,强行保存发布将会导致审核不通过!":
+									var msg = 1 == status ? "当前发布内容存在敏感词,已为您标记在输入框下方," +
+											"请修改后,再进行保存发布,强行保存发布将会导致审核不通过!" :
 											"当前内容存在敏感词,已为您标记在输入框下方,建议修改后再进行保存!否则," +
 											"当前内容存在敏感词,已为您标记在输入框下方,建议修改后再进行保存!否则," +
 											"将会影响发布时审核不通过!";
 											"将会影响发布时审核不通过!";
 									top.$.jBox.confirm(msg, '系统提示', function (v, h, f) {
 									top.$.jBox.confirm(msg, '系统提示', function (v, h, f) {
@@ -1180,12 +1188,12 @@
 		</div>
 		</div>
 		<%--banner--%>
 		<%--banner--%>
 		<div class="control-group" style="width: 1000px">
 		<div class="control-group" style="width: 1000px">
-			<label class="control-label">banner:</label>
+			<label class="control-label"><font color="red">*</font>banner:</label>
 			<div class="main-image-list" style="display: flex;flex-wrap: wrap">
 			<div class="main-image-list" style="display: flex;flex-wrap: wrap">
-				<div class="controls upload-content iconBox mainIgeBox" >
+				<div class="controls upload-content iconBox mainIgeBox">
 					<div class="conList">
 					<div class="conList">
 						<form:hidden id="banner" path="banner" htmlEscape="false" maxlength="255"
 						<form:hidden id="banner" path="banner" htmlEscape="false" maxlength="255"
-									 class="input-xlarge "/>
+									 class="input-xlarge required"/>
 						<sys:ckfinder input="banner" type="images" uploadPath="/photo" selectMultiple="false"
 						<sys:ckfinder input="banner" type="images" uploadPath="/photo" selectMultiple="false"
 									  maxWidth="100"
 									  maxWidth="100"
 									  maxHeight="100"/>
 									  maxHeight="100"/>
@@ -1362,13 +1370,15 @@
 			</div>
 			</div>
 		</div>
 		</div>
 		<%--头图--%>
 		<%--头图--%>
-		<div class="control-group"style="margin-top: 100px" >
-			<label class="control-label">头图:</label>
+		<div class="control-group" style="margin-top: 100px">
+			<label class="control-label"><font color="red">*</font>头图:</label>
 			<div class="main-image-list">
 			<div class="main-image-list">
-				<div class="controls upload-content iconBox mainIgeBox" >
-					<div class="" >
-						<form:hidden id="image" path="image" htmlEscape="false" maxlength="255" class="input-xlarge "/>
-						<sys:ckfinder input="image" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100"
+				<div class="controls upload-content iconBox mainIgeBox">
+					<div class="">
+						<form:hidden id="image" path="image" htmlEscape="false" maxlength="255"
+									 class="input-xlarge required"/>
+						<sys:ckfinder input="image" type="images" uploadPath="/photo" selectMultiple="false"
+									  maxWidth="100"
 									  maxHeight="100"/>
 									  maxHeight="100"/>
 					</div>
 					</div>
 					<br>
 					<br>

+ 2 - 0
src/main/webapp/WEB-INF/views/modules/cmpage/cmImageList.jsp

@@ -231,6 +231,7 @@
 					<th>活动状态</th>
 					<th>活动状态</th>
 				</c:if>
 				</c:if>
 				<th>排序</th>
 				<th>排序</th>
+				<th>点击量</th>
 				<th>创建时间</th>
 				<th>创建时间</th>
 				<shiro:hasPermission name="cmpage:cmImage:edit"><th>操作</th></shiro:hasPermission>
 				<shiro:hasPermission name="cmpage:cmImage:edit"><th>操作</th></shiro:hasPermission>
 			</tr>
 			</tr>
@@ -316,6 +317,7 @@
 					</td>
 					</td>
 				</c:if>
 				</c:if>
 				<td>${items.sort}</td>
 				<td>${items.sort}</td>
+				<td>${items.pv}</td>
 				<td><fmt:formatDate value="${items.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
 				<td><fmt:formatDate value="${items.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
 				<td hidden>
 				<td hidden>
 					<label id="homePageImage${index.index}">${items.homePageImage}</label>
 					<label id="homePageImage${index.index}">${items.homePageImage}</label>

+ 2 - 2
src/main/webapp/WEB-INF/views/modules/info/infoTypeLandingList.jsp

@@ -82,10 +82,10 @@
 					<form:options items="${fns:getDictList('enabled_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 					<form:options items="${fns:getDictList('enabled_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 				</form:select>
 				</form:select>
 			<label>点击时间:</label>
 			<label>点击时间:</label>
-			<form:input path="startPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" value="${fns:setDate(cmBrandLanding.startPvCreateTime,'yyyy-MM-dd')}"
+			<form:input path="startPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" htmlEscape="false" value="${fns:setDate(cmBrandLanding.startPvCreateTime,'yyyy-MM-dd')}"
 						onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
 						onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
 			-
 			-
-			<form:input path="endPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" value="${fns:setDate(cmBrandLanding.endPvCreateTime,'yyyy-MM-dd')}"
+			<form:input path="endPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" htmlEscape="false" value="${fns:setDate(cmBrandLanding.endPvCreateTime,'yyyy-MM-dd')}"
 						onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
 						onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
 			&nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
 			&nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
 			&nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="一键排序"/>
 			&nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="一键排序"/>