Browse Source

信息中心优化bugfix

kaick 1 year ago
parent
commit
cb534893f5
35 changed files with 2220 additions and 98 deletions
  1. 114 0
      src/main/java/com/caimei/modules/autoType/controller/CmAutoTypeController.java
  2. 100 0
      src/main/java/com/caimei/modules/autoType/domain/CmAutoType.java
  3. 198 0
      src/main/java/com/caimei/modules/autoType/domain/CmAutoTypeRecord.java
  4. 91 0
      src/main/java/com/caimei/modules/autoType/mapper/CmAutoTypeMapper.java
  5. 91 0
      src/main/java/com/caimei/modules/autoType/mapper/CmAutoTypeRecordMapper.java
  6. 154 0
      src/main/java/com/caimei/modules/autoType/service/CmAutoTypeRecordService.java
  7. 128 0
      src/main/java/com/caimei/modules/autoType/service/CmAutoTypeService.java
  8. 36 1
      src/main/java/com/caimei/modules/cmpage/entity/CmImage.java
  9. 2 4
      src/main/java/com/caimei/modules/cmpage/web/CmImageController.java
  10. 14 16
      src/main/java/com/caimei/modules/info/web/InfoTypeController.java
  11. 38 5
      src/main/java/com/caimei/modules/landing/domain/CmBrandLanding.java
  12. 2 1
      src/main/java/com/caimei/modules/newhome/dao/NewPageHomeimageDao.java
  13. 48 0
      src/main/java/com/caimei/modules/newhome/entity/NewPageFirstNavigation.java
  14. 30 0
      src/main/java/com/caimei/modules/newhome/entity/NewPageHomeimage.java
  15. 1 2
      src/main/java/com/caimei/modules/newhome/web/NewPageFirstNavigationController.java
  16. 1 2
      src/main/java/com/caimei/modules/newhome/web/NewPageHomeimageController.java
  17. 2 1
      src/main/java/com/caimei/modules/user/dao/NewCmClubDao.java
  18. 8 0
      src/main/java/com/caimei/modules/utils/DateUtil.java
  19. 12 0
      src/main/java/com/thinkgem/jeesite/common/utils/DateUtils.java
  20. 167 0
      src/main/resources/mappings/modules/autoType/CmAutoTypeMapper.xml
  21. 188 0
      src/main/resources/mappings/modules/autoType/CmAutoTypeRecordMapper.xml
  22. 16 13
      src/main/resources/mappings/modules/cmpage/CmImageMapper.xml
  23. 16 5
      src/main/resources/mappings/modules/landing/CmBrandLandingMapper.xml
  24. 3 0
      src/main/resources/mappings/modules/newhome/NewPageFirstNavigationMapper.xml
  25. 4 1
      src/main/resources/mappings/modules/newhome/NewPageHomeimageMapper.xml
  26. 135 0
      src/main/resources/mappings/modules/user/NewCmClubMapper.xml
  27. 52 43
      src/main/webapp/WEB-INF/tlds/fns.tld
  28. 202 0
      src/main/webapp/WEB-INF/views/modules/autoType/autoTypeList.jsp
  29. 193 0
      src/main/webapp/WEB-INF/views/modules/autoType/autoTypeRecordAdd.jsp
  30. 135 0
      src/main/webapp/WEB-INF/views/modules/autoType/autoTypeRecordClubAdd.jsp
  31. 8 2
      src/main/webapp/WEB-INF/views/modules/cmpage/cmImageList.jsp
  32. 1 1
      src/main/webapp/WEB-INF/views/modules/info/infoRelatedForm.jsp
  33. 6 0
      src/main/webapp/WEB-INF/views/modules/info/infoTypeLandingList.jsp
  34. 18 1
      src/main/webapp/WEB-INF/views/modules/newhome/newPageFirstNavigationList.jsp
  35. 6 0
      src/main/webapp/WEB-INF/views/modules/newhome/newPageHomeimageList.jsp

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

@@ -0,0 +1,114 @@
+package com.caimei.modules.autoType.controller;
+
+import com.caimei.modules.autoType.domain.CmAutoType;
+import com.caimei.modules.autoType.domain.CmAutoTypeRecord;
+import com.caimei.modules.autoType.service.CmAutoTypeRecordService;
+import com.caimei.modules.autoType.service.CmAutoTypeService;
+import com.caimei.modules.info.entity.Info;
+import com.caimei.modules.info.entity.InfoType;
+import com.caimei.modules.info.service.InfoService;
+import com.caimei.modules.info.service.InfoTypeService;
+import com.caimei.modules.user.entity.NewCmClub;
+import com.caimei.modules.user.service.NewCmClubService;
+import com.google.common.collect.Maps;
+import com.thinkgem.jeesite.common.persistence.Page;
+import com.thinkgem.jeesite.common.web.BaseController;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 推荐方式配置Controller
+ *
+ * @author Kaick
+ * @date 2023-11-20
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/autoType")
+public class CmAutoTypeController extends BaseController {
+    @Resource
+    private CmAutoTypeService cmAutoTypeService;
+    @Resource
+    private CmAutoTypeRecordService cmAutoTypeRecordService;
+    @Resource
+    private InfoService infoService;
+    @Resource
+    private InfoTypeService infoTypeService;
+    @Resource
+    private NewCmClubService newCmClubService;
+
+    @RequestMapping(value = {"list", ""})
+    public String form(CmAutoTypeRecord cmAutoTypeRecord, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<CmAutoTypeRecord> page = cmAutoTypeRecordService.findPage(new Page<CmAutoTypeRecord>(request, response), cmAutoTypeRecord);
+        CmAutoType byCmAutoType = cmAutoTypeService.getByCmAutoType(new CmAutoType().type(cmAutoTypeRecord.type()));
+        model.addAttribute("cmAutoType", byCmAutoType);
+        model.addAttribute("page", page);
+        return "modules/autoType/autoTypeList";
+    }
+
+    @RequestMapping(value = "findAddPage")
+    public String findAddPage(Info info, Model model, HttpServletRequest request, HttpServletResponse response) {
+        info.setPublishSource(1);
+        Page<Info> page = infoService.findPage(new Page<Info>(request, response), info);
+        InfoType infoType = new InfoType();
+        infoType.setType("1");
+        infoType.setEnabledStatus("1");
+        List<InfoType> typeList = infoTypeService.findList(infoType);
+        model.addAttribute("typeList", typeList);
+        model.addAttribute("page", page);
+        return "modules/autoType/autoTypeRecordAdd";
+    }
+
+    @RequestMapping(value = "findClubAddPage")
+    public String findClubAddPage(NewCmClub newCmClub, Model model, HttpServletRequest request, HttpServletResponse response) {
+        Page<NewCmClub> page = newCmClubService.findPage(new Page<NewCmClub>(request, response, 20), newCmClub);
+        model.addAttribute("page", page);
+        return "modules/autoType/autoTypeRecordClubAdd";
+    }
+
+    @ResponseBody
+    @RequestMapping(value = "updateAutoStatus")
+    public Map<String, Object> updateLanDingStatus(CmAutoType cmAutoType, HttpServletRequest request, HttpServletResponse response) {
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            cmAutoTypeService.updateCmAutoType(new CmAutoType()
+                    .id(cmAutoType.id())
+                    .autoStatus(cmAutoType.autoStatus())
+            );
+            map.put("success", true);
+            map.put("msg", "修改成功");
+        } catch (Exception e) {
+            logger.debug(e.toString(), e);
+            map.put("success", false);
+            map.put("msg", "修改失败");
+        }
+        return map;
+    }
+
+
+    @ResponseBody
+    @RequestMapping(value = "addCmAutoTypeRecord")
+    public Map<String, Object> addCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord, HttpServletRequest request, HttpServletResponse response) {
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            if (cmAutoTypeRecord == null) {
+                throw new NullPointerException();
+            }
+            cmAutoTypeRecordService.addCmAutoTypeRecord(cmAutoTypeRecord);
+            map.put("success", true);
+            map.put("msg", "修改成功");
+        } catch (Exception e) {
+            logger.debug(e.toString(), e);
+            map.put("success", false);
+            map.put("msg", "修改失败");
+        }
+        return map;
+    }
+}

+ 100 - 0
src/main/java/com/caimei/modules/autoType/domain/CmAutoType.java

@@ -0,0 +1,100 @@
+package com.caimei.modules.autoType.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 推荐方式配置对象 cm_auto_type
+ *
+ * @author Kaick
+ * @date 2023-11-20
+ */
+@Accessors(fluent  = true )
+@Data
+@Alias("CmAutoType")
+public class CmAutoType extends DataEntity<CmAutoType> implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private String id;
+
+    /** 分类:1文章推送, 2活动推送 */
+    private String type;
+
+    /** 推荐方式 0自动推荐 1手动推荐 */
+    private String autoStatus;
+
+    /** 删除状态 0正常,其他删除 */
+    private String delFlag;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /** 添加时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @Override
+    public String getId() {
+        return id;
+    }
+
+    @Override
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    @Override
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    @Override
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getAutoStatus() {
+        return autoStatus;
+    }
+
+    public void setAutoStatus(String autoStatus) {
+        this.autoStatus = autoStatus;
+    }
+
+
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}
+
+

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

@@ -0,0 +1,198 @@
+package com.caimei.modules.autoType.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 文章-活动推送记录对象 cm_auto_type_record
+ *
+ * @author Kaick
+ * @date 2023-11-20
+ */
+@Accessors(fluent = true)
+@Data
+@Alias("CmAutoTypeRecord")
+public class CmAutoTypeRecord extends DataEntity<CmAutoTypeRecord> implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 分类:1文章推送(cm_auto_type), 2活动推送(cm_auto_type)
+     */
+    private String type;
+
+    /**
+     * 归属者Id(type字段表Id)
+     */
+    private Integer authorId;
+
+    /**
+     * 推荐方式 0自动推荐 1手动推荐
+     */
+    private String autoStatus;
+
+    /**
+     * 删除状态 0正常,其他删除
+     */
+    private String[] infoIds;
+    /**
+     * 删除状态 0正常,其他删除
+     */
+    private String[] clubIds;
+    /**
+     * 删除状态 0正常,其他删除
+     */
+    private String delFlag;
+
+    /**
+     * 修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 添加时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 开始点击量时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startPvCreateTime;
+    /**
+     * 结束点击量时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endPvCreateTime;
+
+    //文章
+    /**
+     * 引导图
+     */
+    private String guidanceImage;
+    /**
+     * 标题
+     */
+    private String title;
+
+    @Override
+    public String getId() {
+        return id;
+    }
+
+    public String[] getInfoIds() {
+        return infoIds;
+    }
+
+    public void setInfoIds(String[] infoIds) {
+        this.infoIds = infoIds;
+    }
+
+    public String[] getClubIds() {
+        return clubIds;
+    }
+
+    public void setClubIds(String[] clubIds) {
+        this.clubIds = clubIds;
+    }
+
+    @Override
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    @Override
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public String getGuidanceImage() {
+        return guidanceImage;
+    }
+
+    public void setGuidanceImage(String guidanceImage) {
+        this.guidanceImage = guidanceImage;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public Date getStartPvCreateTime() {
+        return startPvCreateTime;
+    }
+
+    public void setStartPvCreateTime(Date startPvCreateTime) {
+        this.startPvCreateTime = startPvCreateTime;
+    }
+
+    public Date getEndPvCreateTime() {
+        return endPvCreateTime;
+    }
+
+    public void setEndPvCreateTime(Date endPvCreateTime) {
+        this.endPvCreateTime = endPvCreateTime;
+    }
+
+    @Override
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public Integer getAuthorId() {
+        return authorId;
+    }
+
+    public void setAuthorId(Integer authorId) {
+        this.authorId = authorId;
+    }
+
+    public String getAutoStatus() {
+        return autoStatus;
+    }
+
+    public void setAutoStatus(String autoStatus) {
+        this.autoStatus = autoStatus;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}
+

+ 91 - 0
src/main/java/com/caimei/modules/autoType/mapper/CmAutoTypeMapper.java

@@ -0,0 +1,91 @@
+package com.caimei.modules.autoType.mapper;
+
+import com.caimei.modules.autoType.domain.CmAutoType;
+import com.thinkgem.jeesite.common.persistence.CrudDao;
+import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
+
+import java.util.List;
+
+/**
+ * 推荐方式配置Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-11-20
+ */
+@MyBatisDao
+public interface CmAutoTypeMapper extends CrudDao<CmAutoType>
+{
+    /**
+     * 通过对象查询推荐方式配置列表
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return 推荐方式配置集合
+     */
+    List<CmAutoType> getCmAutoTypeList(CmAutoType cmAutoType);
+
+    /**
+     * 通过Id查询推荐方式配置对象
+     *
+     * @param id 推荐方式配置主键
+     * @return 推荐方式配置
+     */
+    CmAutoType getCmAutoTypeById(String id);
+
+    /**
+     * 通过对象查询推荐方式配置对象
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return 推荐方式配置
+     */
+    CmAutoType getByCmAutoType(CmAutoType cmAutoType);
+
+    /**
+     * 通过对象查询推荐方式配置Id
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return String
+     */
+    String getById(CmAutoType cmAutoType);
+
+
+    /**
+     * 通过对象查询推荐方式配置记录总数
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return 推荐方式配置Integer
+     */
+    int getCount(CmAutoType cmAutoType);
+
+    /**
+     * 新增推荐方式配置
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return 结果
+     */
+    int addCmAutoType(CmAutoType cmAutoType);
+
+    /**
+     * 修改推荐方式配置
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return 结果
+     */
+    int updateCmAutoType(CmAutoType cmAutoType);
+
+    /**
+     * 删除推荐方式配置
+     *
+     * @param id 推荐方式配置主键
+     * @return 结果
+     */
+    int delCmAutoTypeById(String id);
+
+    /**
+     * 批量删除推荐方式配置
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int delCmAutoType(CmAutoType cmAutoType);
+
+}

+ 91 - 0
src/main/java/com/caimei/modules/autoType/mapper/CmAutoTypeRecordMapper.java

@@ -0,0 +1,91 @@
+package com.caimei.modules.autoType.mapper;
+
+import com.caimei.modules.autoType.domain.CmAutoTypeRecord;
+import com.thinkgem.jeesite.common.persistence.CrudDao;
+import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
+
+import java.util.List;
+
+/**
+ * 文章-活动推送记录Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-11-20
+ */
+@MyBatisDao
+public interface CmAutoTypeRecordMapper extends CrudDao<CmAutoTypeRecord>
+{
+    /**
+     * 通过对象查询文章-活动推送记录列表
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return 文章-活动推送记录集合
+     */
+    List<CmAutoTypeRecord> getCmAutoTypeRecordList(CmAutoTypeRecord cmAutoTypeRecord);
+
+    /**
+     * 通过Id查询文章-活动推送记录对象
+     *
+     * @param id 文章-活动推送记录主键
+     * @return 文章-活动推送记录
+     */
+    CmAutoTypeRecord getCmAutoTypeRecordById(String id);
+
+    /**
+     * 通过对象查询文章-活动推送记录对象
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return 文章-活动推送记录
+     */
+    CmAutoTypeRecord getByCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord);
+
+    /**
+     * 通过对象查询文章-活动推送记录Id
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return String
+     */
+    String getById(CmAutoTypeRecord cmAutoTypeRecord);
+
+
+    /**
+     * 通过对象查询文章-活动推送记录记录总数
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return 文章-活动推送记录Integer
+     */
+    int getCount(CmAutoTypeRecord cmAutoTypeRecord);
+
+    /**
+     * 新增文章-活动推送记录
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return 结果
+     */
+    int addCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord);
+
+    /**
+     * 修改文章-活动推送记录
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return 结果
+     */
+    int updateCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord);
+
+    /**
+     * 删除文章-活动推送记录
+     *
+     * @param id 文章-活动推送记录主键
+     * @return 结果
+     */
+    int delCmAutoTypeRecordById(String id);
+
+    /**
+     * 批量删除文章-活动推送记录
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int delCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord);
+
+}

+ 154 - 0
src/main/java/com/caimei/modules/autoType/service/CmAutoTypeRecordService.java

@@ -0,0 +1,154 @@
+package com.caimei.modules.autoType.service;
+
+import com.caimei.modules.autoType.domain.CmAutoTypeRecord;
+import com.caimei.modules.autoType.mapper.CmAutoTypeRecordMapper;
+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.service.CrudService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 文章-活动推送记录Service业务层处理
+ *
+ * @author Kaick
+ * @date 2023-11-20
+ */
+@Service
+public class CmAutoTypeRecordService extends CrudService<CmAutoTypeRecordMapper, CmAutoTypeRecord> {
+    @Resource
+    private CmAutoTypeRecordMapper cmAutoTypeRecordMapper;
+    @Resource
+    private NewCmClubDao newCmClubDao;
+
+    /**
+     * 通过对象查询文章-活动推送记录列表
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return 文章-活动推送记录
+     */
+
+    public List<CmAutoTypeRecord> getCmAutoTypeRecordList(CmAutoTypeRecord cmAutoTypeRecord) {
+        return cmAutoTypeRecordMapper.getCmAutoTypeRecordList(cmAutoTypeRecord);
+    }
+
+    /**
+     * 通过Id查询文章-活动推送记录
+     *
+     * @param id 文章-活动推送记录主键
+     * @return 文章-活动推送记录
+     */
+
+    public CmAutoTypeRecord getCmAutoTypeRecordById(String id) {
+        return cmAutoTypeRecordMapper.getCmAutoTypeRecordById(id);
+    }
+
+    /**
+     * 通过对象查询文章-活动推送记录
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return 文章-活动推送记录
+     */
+
+    public CmAutoTypeRecord getByCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord) {
+        return cmAutoTypeRecordMapper.getByCmAutoTypeRecord(cmAutoTypeRecord);
+    }
+
+    /**
+     * 通过对象查询文章-活动推送记录Id
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return String
+     */
+
+    public String getById(CmAutoTypeRecord cmAutoTypeRecord) {
+        return cmAutoTypeRecordMapper.getById(cmAutoTypeRecord);
+    }
+
+
+    /**
+     * 通过对象查询文章-活动推送记录记录总数
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return int
+     */
+
+    public int getCount(CmAutoTypeRecord cmAutoTypeRecord) {
+        return cmAutoTypeRecordMapper.getCount(cmAutoTypeRecord);
+    }
+
+    /**
+     * 新增文章-活动推送记录
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return 结果
+     */
+    @Transactional(readOnly = false)
+    public int addCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord) {
+        for (String s : cmAutoTypeRecord.infoIds()) {
+            cmAutoTypeRecord.authorId(Integer.valueOf(s));
+            cmAutoTypeRecord.setCreateTime(new Date());
+            cmAutoTypeRecordMapper.addCmAutoTypeRecord(cmAutoTypeRecord);
+            String[] ids = cmAutoTypeRecord.clubIds();
+            //站内信
+            MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
+            insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
+                    .mqInfo(new MqInfo().topic("MessageLine").delay(1).async(1));
+            if (ids.length > 0) {
+                for (String clubId : ids) {
+                    insideMessageMessageModel
+                            .info(new InsideMessage()
+                                    .userType(2)
+                                    .messageType(2)
+                                    .shopMessType(6));
+                    MessageUtil.sendMessage(insideMessageMessageModel);
+                }
+            } else {
+                List<String> clubIds = newCmClubDao.getClubIds(null);
+                for (String clubId : clubIds) {
+                    insideMessageMessageModel
+                            .info(new InsideMessage()
+                                    .userType(2)
+                                    .messageType(2)
+                                    .shopMessType(6));
+                    MessageUtil.sendMessage(insideMessageMessageModel);
+                }
+            }
+        }
+        return 1;
+    }
+
+    /**
+     * 修改文章-活动推送记录
+     *
+     * @param cmAutoTypeRecord 文章-活动推送记录
+     * @return 结果
+     */
+    @Transactional(readOnly = false)
+    public int updateCmAutoTypeRecord(CmAutoTypeRecord cmAutoTypeRecord) {
+        cmAutoTypeRecord.setUpdateTime(new Date());
+        return cmAutoTypeRecordMapper.updateCmAutoTypeRecord(cmAutoTypeRecord);
+    }
+
+
+    /**
+     * 删除文章-活动推送记录信息
+     *
+     * @param id 文章-活动推送记录主键
+     * @return 结果
+     */
+    @Transactional(readOnly = false)
+    public int delCmAutoTypeRecordById(String id) {
+        return cmAutoTypeRecordMapper.updateCmAutoTypeRecord(new CmAutoTypeRecord().id(id).delFlag("1"));
+        //return cmAutoTypeRecordMapper.delCmAutoTypeRecordById(id);
+    }
+
+}

+ 128 - 0
src/main/java/com/caimei/modules/autoType/service/CmAutoTypeService.java

@@ -0,0 +1,128 @@
+package com.caimei.modules.autoType.service;
+
+import com.caimei.modules.autoType.domain.CmAutoType;
+import com.caimei.modules.autoType.mapper.CmAutoTypeMapper;
+import com.thinkgem.jeesite.common.service.CrudService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 推荐方式配置Service业务层处理
+ *
+ * @author Kaick
+ * @date 2023-11-20
+ */
+@Service
+public class CmAutoTypeService  extends CrudService<CmAutoTypeMapper, CmAutoType>
+{
+    @Resource
+    private CmAutoTypeMapper cmAutoTypeMapper;
+
+    /**
+     * 通过对象查询推荐方式配置列表
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return 推荐方式配置
+     */
+
+    public List<CmAutoType> getCmAutoTypeList(CmAutoType cmAutoType)
+    {
+        return cmAutoTypeMapper.getCmAutoTypeList(cmAutoType);
+    }
+
+    /**
+     * 通过Id查询推荐方式配置
+     *
+     * @param id 推荐方式配置主键
+     * @return 推荐方式配置
+     */
+
+    public CmAutoType getCmAutoTypeById(String id)
+    {
+        return cmAutoTypeMapper.getCmAutoTypeById(id);
+    }
+
+    /**
+     * 通过对象查询推荐方式配置
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return 推荐方式配置
+     */
+
+    public CmAutoType getByCmAutoType(CmAutoType cmAutoType)
+    {
+        return cmAutoTypeMapper.getByCmAutoType(cmAutoType);
+    }
+
+    /**
+     * 通过对象查询推荐方式配置Id
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return String
+     */
+
+    public String getById(CmAutoType cmAutoType)
+    {
+        return cmAutoTypeMapper.getById(cmAutoType);
+    }
+
+
+    /**
+     * 通过对象查询推荐方式配置记录总数
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return int
+     */
+
+    public int getCount(CmAutoType cmAutoType)
+    {
+        return cmAutoTypeMapper.getCount(cmAutoType);
+    }
+
+    /**
+     * 新增推荐方式配置
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return 结果
+     */
+    @Transactional(readOnly = false)
+    public int addCmAutoType(CmAutoType cmAutoType)
+    {
+        cmAutoType.setCreateTime(new Date());
+        return cmAutoTypeMapper.addCmAutoType(cmAutoType);
+    }
+
+    /**
+     * 修改推荐方式配置
+     *
+     * @param cmAutoType 推荐方式配置
+     * @return 结果
+     */
+    @Transactional(readOnly = false)
+    public int updateCmAutoType(CmAutoType cmAutoType)
+    {
+        cmAutoType.setUpdateTime(new Date());
+        return cmAutoTypeMapper.updateCmAutoType(cmAutoType);
+    }
+
+
+
+    /**
+     * 删除推荐方式配置信息
+     *
+     * @param id 推荐方式配置主键
+     * @return 结果
+     */
+    @Transactional(readOnly = false)
+    public int delCmAutoTypeById(String id)
+    {
+        return cmAutoTypeMapper.updateCmAutoType(new CmAutoType().id(id).delFlag("1"));
+        //return cmAutoTypeMapper.delCmAutoTypeById(id);
+    }
+
+}
+

+ 36 - 1
src/main/java/com/caimei/modules/cmpage/entity/CmImage.java

@@ -1,6 +1,7 @@
 package com.caimei.modules.cmpage.entity;
 
 import com.caimei.modules.product.entity.ActType;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 import org.hibernate.validator.constraints.Length;
 
@@ -52,6 +53,40 @@ public class CmImage extends DataEntity<CmImage> {
      */
     private String createDateStc;
 
+    //点击量统计
+    /** 开始点击量时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startPvCreateTime;
+    /** 结束点击量时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endPvCreateTime;
+    /** 统计分类*/
+    private String statisticsType;
+
+
+    public Date getStartPvCreateTime() {
+        return startPvCreateTime;
+    }
+
+    public void setStartPvCreateTime(Date startPvCreateTime) {
+        this.startPvCreateTime = startPvCreateTime;
+    }
+
+    public Date getEndPvCreateTime() {
+        return endPvCreateTime;
+    }
+
+    public void setEndPvCreateTime(Date endPvCreateTime) {
+        this.endPvCreateTime = endPvCreateTime;
+    }
+
+    public String getStatisticsType() {
+        return statisticsType;
+    }
+
+    public void setStatisticsType(String statisticsType) {
+        this.statisticsType = statisticsType;
+    }
 
     public String getCrmEnabledStatus() {
         return crmEnabledStatus;
@@ -259,4 +294,4 @@ public class CmImage extends DataEntity<CmImage> {
     public void setAppletsEnabledStatus(String appletsEnabledStatus) {
         this.appletsEnabledStatus = appletsEnabledStatus;
     }
-}
+}

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

@@ -3,17 +3,15 @@ package com.caimei.modules.cmpage.web;
 import com.caimei.constants.common.RedisKeyUtil;
 import com.caimei.modules.cmpage.entity.CmImage;
 import com.caimei.modules.cmpage.service.CmImageService;
-import com.caimei.modules.info.entity.Info;
 import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.redis.RedisService;
+import com.caimei.utils.StringUtils;
 import com.google.common.collect.Maps;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.persistence.Page;
-import com.caimei.utils.StringUtils;
 import com.thinkgem.jeesite.common.web.BaseController;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.ModelAttribute;
@@ -63,7 +61,7 @@ public class CmImageController extends BaseController {
 	@RequiresPermissions("cmpage:cmImage:view")
 	@RequestMapping(value = {"list", ""})
 	public String list(CmImage cmImage, HttpServletRequest request, HttpServletResponse response, Model model) {
-
+		cmImage.setStatisticsType("3");
 		if(StringUtils.equals("5",cmImage.getFlag())){//首页广告图片(【顶层广告】【轮播图】【小专题】)
 			if(StringUtils.isEmpty(cmImage.getType())){
 				cmImage.getSqlMap().put("type", " AND (a.type=5 OR a.type=6 OR a.type=7 OR a.type=9)");

+ 14 - 16
src/main/java/com/caimei/modules/info/web/InfoTypeController.java

@@ -1,15 +1,17 @@
 package com.caimei.modules.info.web;
 
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import com.caimei.modules.hehe.util.UploadPicUtils;
+import com.caimei.modules.info.entity.Info;
+import com.caimei.modules.info.entity.InfoType;
+import com.caimei.modules.info.service.InfoService;
+import com.caimei.modules.info.service.InfoTypeService;
 import com.caimei.modules.landing.domain.CmBrandLanding;
 import com.caimei.modules.landing.service.CmBrandLandingService;
 import com.caimei.modules.opensearch.CoreServiceUitls;
+import com.google.common.collect.Maps;
+import com.thinkgem.jeesite.common.config.Global;
+import com.thinkgem.jeesite.common.persistence.Page;
+import com.thinkgem.jeesite.common.utils.StringUtils;
+import com.thinkgem.jeesite.common.web.BaseController;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,15 +23,10 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
-import com.thinkgem.jeesite.common.config.Global;
-import com.thinkgem.jeesite.common.persistence.Page;
-import com.thinkgem.jeesite.common.web.BaseController;
-import com.thinkgem.jeesite.common.utils.StringUtils;
-import com.caimei.modules.info.entity.Info;
-import com.caimei.modules.info.entity.InfoType;
-import com.caimei.modules.info.service.InfoService;
-import com.caimei.modules.info.service.InfoTypeService;
-import com.google.common.collect.Maps;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 信息分类Controller
@@ -185,6 +182,7 @@ public class InfoTypeController extends BaseController {
 	@RequestMapping(value = {"infoTypeLandingList" })
 	public String list(CmBrandLanding cmBrandLanding, HttpServletRequest request, HttpServletResponse response, Model model) {
 		cmBrandLanding.setType(5);
+		cmBrandLanding.setStatisticsType("2");
 		Page<CmBrandLanding> page = cmBrandLandingService.findPage(new Page<CmBrandLanding>(request, response), cmBrandLanding);
 		model.addAttribute("cmBrandLanding", cmBrandLanding);
 		model.addAttribute("page", page);

+ 38 - 5
src/main/java/com/caimei/modules/landing/domain/CmBrandLanding.java

@@ -1,15 +1,13 @@
 package com.caimei.modules.landing.domain;
 
-import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 import lombok.Data;
 import lombok.experimental.Accessors;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.ibatis.type.Alias;
 
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -87,12 +85,47 @@ public class CmBrandLanding extends DataEntity<CmBrandLanding> implements Serial
     /** 文件名称*/
     private List<CmBrandFiles> cmBrandFiles;
     /** 修改时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
     /** 添加时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date addTime;
 
+
+    //点击量统计
+    /** 开始点击量时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startPvCreateTime;
+    /** 结束点击量时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endPvCreateTime;
+    /** 统计分类*/
+    private String statisticsType;
+
+    public String getStatisticsType() {
+        return statisticsType;
+    }
+
+    public void setStatisticsType(String statisticsType) {
+        this.statisticsType = statisticsType;
+    }
+
+    public Date getStartPvCreateTime() {
+        return startPvCreateTime;
+    }
+
+    public void setStartPvCreateTime(Date startPvCreateTime) {
+        this.startPvCreateTime = startPvCreateTime;
+    }
+
+    public Date getEndPvCreateTime() {
+        return endPvCreateTime;
+    }
+
+    public void setEndPvCreateTime(Date endPvCreateTime) {
+        this.endPvCreateTime = endPvCreateTime;
+    }
+
     public Integer getPv() {
         return pv;
     }

+ 2 - 1
src/main/java/com/caimei/modules/newhome/dao/NewPageHomeimageDao.java

@@ -6,6 +6,7 @@ import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 import com.caimei.modules.newhome.entity.NewPageHomeimage;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -20,7 +21,7 @@ public interface NewPageHomeimageDao extends CrudDao<NewPageHomeimage> {
 
     void updateSort(@Param("id") String id, @Param("sort") String sort);
 
-    List<cmStatisticsType> getBannerStatistics();
+    List<cmStatisticsType> getBannerStatistics(@Param("startPvCreateTime") Date startPvCreateTime, @Param("endPvCreateTime")Date endPvCreateTime);
 
     String findBigSort();
 }

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

@@ -1,8 +1,11 @@
 package com.caimei.modules.newhome.entity;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 import org.hibernate.validator.constraints.Length;
 
+import java.util.Date;
+
 /**
  * 新首页一级导航栏Entity
  *
@@ -46,6 +49,51 @@ public class NewPageFirstNavigation extends DataEntity<NewPageFirstNavigation> {
      */
     private String crmEnabledStatus;
 
+
+    //点击量统计
+    /** 开始点击量时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startPvCreateTime;
+    /** 结束点击量时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endPvCreateTime;
+    /** 统计分类*/
+    private String statisticsType;
+    /** 点击量*/
+    private Integer pv;
+
+    public Date getStartPvCreateTime() {
+        return startPvCreateTime;
+    }
+
+    public void setStartPvCreateTime(Date startPvCreateTime) {
+        this.startPvCreateTime = startPvCreateTime;
+    }
+
+    public Date getEndPvCreateTime() {
+        return endPvCreateTime;
+    }
+
+    public void setEndPvCreateTime(Date endPvCreateTime) {
+        this.endPvCreateTime = endPvCreateTime;
+    }
+
+    public String getStatisticsType() {
+        return statisticsType;
+    }
+
+    public void setStatisticsType(String statisticsType) {
+        this.statisticsType = statisticsType;
+    }
+
+    public Integer getPv() {
+        return pv;
+    }
+
+    public void setPv(Integer pv) {
+        this.pv = pv;
+    }
+
     public NewPageFirstNavigation() {
         super();
     }

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

@@ -1,9 +1,12 @@
 package com.caimei.modules.newhome.entity;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import org.hibernate.validator.constraints.Length;
 
 import com.thinkgem.jeesite.common.persistence.DataEntity;
 
+import java.util.Date;
+
 /**
  * 新首页轮播图Entity
  * @author ye.qin
@@ -23,6 +26,33 @@ public class NewPageHomeimage extends DataEntity<NewPageHomeimage> {
 	private String crmEnabledStatus;		// CRM端状态 0停用 1启用
 	private Integer count;	// 点击次数
 
+
+	//点击量统计
+	/** 开始点击量时间 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	private Date startPvCreateTime;
+	/** 结束点击量时间 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	private Date endPvCreateTime;
+
+	public Date getStartPvCreateTime() {
+		return startPvCreateTime;
+	}
+
+	public void setStartPvCreateTime(Date startPvCreateTime) {
+		this.startPvCreateTime = startPvCreateTime;
+	}
+
+	public Date getEndPvCreateTime() {
+		return endPvCreateTime;
+	}
+
+	public void setEndPvCreateTime(Date endPvCreateTime) {
+		this.endPvCreateTime = endPvCreateTime;
+	}
+
+
+
 	public NewPageHomeimage() {
 		super();
 	}

+ 1 - 2
src/main/java/com/caimei/modules/newhome/web/NewPageFirstNavigationController.java

@@ -1,6 +1,5 @@
 package com.caimei.modules.newhome.web;
 
-import com.caimei.constants.common.RedisKeyUtil;
 import com.caimei.modules.hehe.util.UploadPicUtils;
 import com.caimei.modules.newhome.entity.NewPageFirstNavigation;
 import com.caimei.modules.newhome.service.NewPageFirstNavigationService;
@@ -13,7 +12,6 @@ import com.thinkgem.jeesite.common.utils.StringUtils;
 import com.thinkgem.jeesite.common.web.BaseController;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.ModelAttribute;
@@ -66,6 +64,7 @@ public class NewPageFirstNavigationController extends BaseController {
     @RequiresPermissions("newhome:newPageFirstNavigation:view")
     @RequestMapping(value = {"list", ""})
     public String list(NewPageFirstNavigation newPageFirstNavigation, HttpServletRequest request, HttpServletResponse response, Model model) {
+        newPageFirstNavigation.setStatisticsType("4");
         Page<NewPageFirstNavigation> page = newPageFirstNavigationService.findPage(new Page<NewPageFirstNavigation>(request, response), newPageFirstNavigation);
         model.addAttribute("page", page);
         model.addAttribute("newPageFirstNavigation", newPageFirstNavigation);

+ 1 - 2
src/main/java/com/caimei/modules/newhome/web/NewPageHomeimageController.java

@@ -14,7 +14,6 @@ import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.utils.StringUtils;
 import com.thinkgem.jeesite.common.web.BaseController;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.ModelAttribute;
@@ -68,7 +67,7 @@ public class NewPageHomeimageController extends BaseController {
     public String list(NewPageHomeimage newPageHomeimage, HttpServletRequest request, HttpServletResponse response, Model model) {
         Page<NewPageHomeimage> page = newPageHomeimageService.findPage(new Page<NewPageHomeimage>(request, response), newPageHomeimage);
         // 点击次数
-        List<cmStatisticsType> bannerStatistics = newPageHomeimageDao.getBannerStatistics();
+        List<cmStatisticsType> bannerStatistics = newPageHomeimageDao.getBannerStatistics(newPageHomeimage.getStartPvCreateTime(),newPageHomeimage.getEndPvCreateTime());
         if (bannerStatistics.size() > 0) {
             for (NewPageHomeimage homeimage : page.getList()) {
                 List<cmStatisticsType> collect = bannerStatistics.stream().filter(b -> homeimage.getId().equals(b.getBannerId().toString())).collect(Collectors.toList());

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

@@ -4,7 +4,6 @@ import com.caimei.modules.consult.entity.type.CmConsulttype;
 import com.caimei.modules.project.model.ServiceProviderModel;
 import com.caimei.modules.user.entity.*;
 import com.thinkgem.jeesite.common.persistence.CrudDao;
-import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 import org.apache.ibatis.annotations.Param;
 
@@ -96,4 +95,6 @@ public interface NewCmClubDao extends CrudDao<NewCmClub> {
     List<CmBehaviorRecord> selPageLable();
 
     List<easyExcel> findExcelList(ClubStatistics statistics);
+
+    List<String> getClubIds(NewCmClub newCmClub);
 }

+ 8 - 0
src/main/java/com/caimei/modules/utils/DateUtil.java

@@ -64,6 +64,14 @@ public class DateUtil {
         String format = new SimpleDateFormat("yyyy-MM").format(date);
         return format;
     }
+    /**
+     *时间yyyy-mm格式
+     * @return
+     */
+    public static String format(Date date){
+        String format = new SimpleDateFormat("yyyy-MM").format(date);
+        return format;
+    }
 
 //    public static void main(String[] args) throws ParseException {
 //        String month = "2020-02";

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

@@ -36,6 +36,16 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
         return DateFormatUtils.format(new Date(), pattern);
     }
 
+    /**
+     * 得到当前日期字符串 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
+     */
+    public static String setDate(Date date, String pattern) {
+        if (date == null) {
+            return "";
+        }
+        return DateFormatUtils.format(date, pattern);
+    }
+
     /**
      * 得到日期字符串 默认格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
      */
@@ -49,6 +59,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
         return formatDate;
     }
 
+
     /**
      * 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss)
      */
@@ -56,6 +67,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
         return formatDate(date, "yyyy-MM-dd HH:mm:ss");
     }
 
+
     /**
      * 得到当前时间字符串 格式(HH:mm:ss)
      */

+ 167 - 0
src/main/resources/mappings/modules/autoType/CmAutoTypeMapper.xml

@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei.modules.autoType.mapper.CmAutoTypeMapper">
+
+    <resultMap type="CmAutoType" id="CmAutoTypeResult">
+        <result property="id"    column="id"    />
+        <result property="type"    column="type"    />
+        <result property="autoStatus"    column="autoStatus"    />
+        <result property="delFlag"    column="delFlag"    />
+        <result property="updateTime"    column="updateTime"    />
+        <result property="createTime"    column="createTime"    />
+    </resultMap>
+
+    <sql id="selectCmAutoTypeVo">
+        select
+            cm_auto_type.id,
+            cm_auto_type.type,
+            cm_auto_type.autoStatus,
+            cm_auto_type.delFlag,
+            cm_auto_type.updateTime,
+            cm_auto_type.createTime
+    </sql>
+
+    <select id="getByCmAutoType" parameterType="CmAutoType" resultMap="CmAutoTypeResult">
+        <include refid="selectCmAutoTypeVo"/>
+        from cm_auto_type AS cm_auto_type
+        <where>  cm_auto_type.delFlag = 0
+            <if test="id != null "> and cm_auto_type.id = #{id}</if>
+            <if test="type != null  and type != ''"> and cm_auto_type.type = #{type}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type.autoStatus = #{autoStatus}</if>
+        </where>
+        group by cm_auto_type.id
+        limit 0,1
+    </select>
+
+    <select id="findList" parameterType="CmAutoType" resultMap="CmAutoTypeResult">
+        <include refid="selectCmAutoTypeVo"/>
+        from cm_auto_type AS cm_auto_type
+        <where>  cm_auto_type.delFlag = 0
+            <if test="id != null "> and cm_auto_type.id = #{id}</if>
+            <if test="type != null  and type != ''">
+                and cm_auto_type.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type.autoStatus = #{autoStatus}</if>
+        </where>
+        group by cm_auto_type.id
+        order by cm_auto_type.createTime desc
+    </select>
+
+    <select id="getCmAutoTypeList" parameterType="CmAutoType" resultMap="CmAutoTypeResult">
+        <include refid="selectCmAutoTypeVo"/>
+        from cm_auto_type AS cm_auto_type
+        <where>  cm_auto_type.delFlag = 0
+            <if test="id != null "> and cm_auto_type.id = #{id}</if>
+            <if test="type != null  and type != ''">
+                and cm_auto_type.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type.autoStatus = #{autoStatus}</if>
+        </where>
+        group by cm_auto_type.id
+        order by cm_auto_type.createTime desc
+    </select>
+
+    <select id="getCount" parameterType="CmAutoType" resultType="int">
+        select count(1)
+        from cm_auto_type AS cm_auto_type
+        <where>  cm_auto_type.delFlag = 0
+            <if test="id != null "> and cm_auto_type.id = #{id}</if>
+            <if test="type != null  and type != ''"> and cm_auto_type.type = #{type}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type.autoStatus = #{autoStatus}</if>
+        </where>
+    </select>
+
+    <select id="get" parameterType="String" resultMap="CmAutoTypeResult">
+        <include refid="selectCmAutoTypeVo"/>
+        from cm_auto_type AS cm_auto_type
+        where  cm_auto_type.delFlag = 0 and cm_auto_type.id = #{id}
+    </select>
+
+    <select id="getCmAutoTypeById" parameterType="String" resultMap="CmAutoTypeResult">
+        <include refid="selectCmAutoTypeVo"/>
+        from cm_auto_type AS cm_auto_type
+        where  cm_auto_type.delFlag = 0 and cm_auto_type.id = #{id}
+    </select>
+
+    <select id="getById" parameterType="CmAutoType" resultType="String">
+        select id
+        from cm_auto_type AS cm_auto_type
+        <where>  cm_auto_type.delFlag = 0
+            <if test="id != null "> and cm_auto_type.id = #{id}</if>
+            <if test="type != null  and type != ''"> and cm_auto_type.type = #{type}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type.autoStatus = #{autoStatus}</if>
+        </where>
+        group by cm_auto_type.id
+        limit 0,1
+    </select>
+
+    <insert id="addCmAutoType" parameterType="CmAutoType" useGeneratedKeys="true" keyProperty="id">
+        insert into cm_auto_type
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">id,</if>
+            <if test="type != null and type != ''">type,</if>
+            <if test="autoStatus != null and autoStatus != ''">autoStatus,</if>
+            <if test="delFlag != null">delFlag,</if>
+            <if test="updateTime != null">updateTime,</if>
+            <if test="createTime != null">createTime,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">#{id},</if>
+            <if test="type != null and type != ''">#{type},</if>
+            <if test="autoStatus != null and autoStatus != ''">#{autoStatus},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createTime != null">#{createTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCmAutoType" parameterType="CmAutoType">
+        update cm_auto_type
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="type != null and type != ''">type = #{type},</if>
+            <if test="autoStatus != null and autoStatus != ''">autoStatus = #{autoStatus},</if>
+            <if test="delFlag != null">delFlag = #{delFlag},</if>
+            <if test="updateTime != null">updateTime = #{updateTime},</if>
+            <if test="createTime != null">createTime = #{createTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="delCmAutoTypeById" parameterType="String">
+        delete
+        from cm_auto_type where id = #{id}
+    </delete>
+
+    <delete id="delCmAutoType" parameterType="CmAutoType">
+        delete
+        from cm_auto_type AS cm_auto_type
+        <where>
+            <if test="id != null "> and cm_auto_type.id = #{id}</if>
+            <if test="type != null  and type != ''"> and cm_auto_type.type = #{type}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type.autoStatus = #{autoStatus}</if>
+        </where>
+    </delete>
+
+</mapper>

+ 188 - 0
src/main/resources/mappings/modules/autoType/CmAutoTypeRecordMapper.xml

@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei.modules.autoType.mapper.CmAutoTypeRecordMapper">
+
+    <resultMap type="CmAutoTypeRecord" id="CmAutoTypeRecordResult">
+        <result property="id"    column="id"    />
+        <result property="type"    column="type"    />
+        <result property="authorId"    column="authorId"    />
+        <result property="autoStatus"    column="autoStatus"    />
+        <result property="delFlag"    column="delFlag"    />
+        <result property="updateTime"    column="updateTime"    />
+        <result property="createTime"    column="createTime"    />
+    </resultMap>
+
+    <sql id="selectCmAutoTypeRecordVo">
+        select
+            cm_auto_type_record.id,
+            cm_auto_type_record.type,
+            cm_auto_type_record.authorId,
+            cm_auto_type_record.autoStatus,
+            cm_auto_type_record.delFlag,
+            cm_auto_type_record.updateTime,
+            cm_auto_type_record.createTime
+    </sql>
+
+    <select id="getByCmAutoTypeRecord" parameterType="CmAutoTypeRecord" resultMap="CmAutoTypeRecordResult">
+        <include refid="selectCmAutoTypeRecordVo"/>
+        from cm_auto_type_record AS cm_auto_type_record
+        <where>  cm_auto_type_record.delFlag = 0
+            <if test="id != null "> and cm_auto_type_record.id = #{id}</if>
+            <if test="type != null  and type != ''"> and cm_auto_type_record.type = #{type}</if>
+            <if test="authorId != null "> and cm_auto_type_record.authorId = #{authorId}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type_record.autoStatus = #{autoStatus}</if>
+        </where>
+        group by cm_auto_type_record.id
+        limit 0,1
+    </select>
+
+    <select id="getCmAutoTypeRecordList" parameterType="CmAutoTypeRecord" resultMap="CmAutoTypeRecordResult">
+        <include refid="selectCmAutoTypeRecordVo"/>
+        from cm_auto_type_record AS cm_auto_type_record
+        <where>  cm_auto_type_record.delFlag = 0
+            <if test="id != null "> and cm_auto_type_record.id = #{id}</if>
+            <if test="type != null  and type != ''">
+                and cm_auto_type_record.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="authorId != null "> and cm_auto_type_record.authorId = #{authorId}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type_record.autoStatus = #{autoStatus}</if>
+
+        </where>
+        group by cm_auto_type_record.id
+        order by cm_auto_type_record.createTime desc
+    </select>
+
+    <select id="findList" parameterType="CmAutoTypeRecord" resultMap="CmAutoTypeRecordResult">
+        <include refid="selectCmAutoTypeRecordVo"/>
+        <if test="type != null  and type == '1'">
+            ,i.guidanceImage,i.title
+        </if>
+        from cm_auto_type_record AS cm_auto_type_record
+        <if test="type != null  and type == '1'">
+            LEFT JOIN info i ON cm_auto_type_record.authorId=i.id and cm_auto_type_record.type =1
+        </if>
+        <where>  cm_auto_type_record.delFlag = 0
+            <if test="id != null "> and cm_auto_type_record.id = #{id}</if>
+            <if test="type != null  and type != ''">
+                and cm_auto_type_record.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="authorId != null "> and cm_auto_type_record.authorId = #{authorId}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type_record.autoStatus = #{autoStatus}</if>
+            <if test="startPvCreateTime != null ">AND cm_auto_type_record.createTime >= #{startPvCreateTime} </if>
+            <if test="endPvCreateTime != null ">AND cm_auto_type_record.createTime <![CDATA[ <= ]]> #{endPvCreateTime} </if>
+        </where>
+        group by cm_auto_type_record.id
+        order by cm_auto_type_record.createTime desc
+    </select>
+
+    <select id="getCount" parameterType="CmAutoTypeRecord" resultType="int">
+        select count(1)
+        from cm_auto_type_record AS cm_auto_type_record
+        <where>  cm_auto_type_record.delFlag = 0
+            <if test="id != null "> and cm_auto_type_record.id = #{id}</if>
+            <if test="type != null  and type != ''"> and cm_auto_type_record.type = #{type}</if>
+            <if test="authorId != null "> and cm_auto_type_record.authorId = #{authorId}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type_record.autoStatus = #{autoStatus}</if>
+        </where>
+    </select>
+
+    <select id="get" parameterType="String" resultMap="CmAutoTypeRecordResult">
+        <include refid="selectCmAutoTypeRecordVo"/>
+        from cm_auto_type_record AS cm_auto_type_record
+        where  cm_auto_type_record.delFlag = 0 and cm_auto_type_record.id = #{id}
+    </select>
+
+    <select id="getCmAutoTypeRecordById" parameterType="String" resultMap="CmAutoTypeRecordResult">
+        <include refid="selectCmAutoTypeRecordVo"/>
+        from cm_auto_type_record AS cm_auto_type_record
+        where  cm_auto_type_record.delFlag = 0 and cm_auto_type_record.id = #{id}
+    </select>
+
+
+    <select id="getById" parameterType="CmAutoTypeRecord" resultType="String">
+        select id
+        from cm_auto_type_record AS cm_auto_type_record
+        <where>  cm_auto_type_record.delFlag = 0
+            <if test="id != null "> and cm_auto_type_record.id = #{id}</if>
+            <if test="type != null  and type != ''"> and cm_auto_type_record.type = #{type}</if>
+            <if test="authorId != null "> and cm_auto_type_record.authorId = #{authorId}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type_record.autoStatus = #{autoStatus}</if>
+        </where>
+        group by cm_auto_type_record.id
+        limit 0,1
+    </select>
+
+    <insert id="addCmAutoTypeRecord" parameterType="CmAutoTypeRecord" useGeneratedKeys="true" keyProperty="id">
+        insert into cm_auto_type_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">id,</if>
+            <if test="type != null and type != ''">type,</if>
+            <if test="authorId != null">authorId,</if>
+            <if test="autoStatus != null and autoStatus != ''">autoStatus,</if>
+            <if test="delFlag != null">delFlag,</if>
+            <if test="updateTime != null">updateTime,</if>
+            <if test="createTime != null">createTime,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">#{id},</if>
+            <if test="type != null and type != ''">#{type},</if>
+            <if test="authorId != null">#{authorId},</if>
+            <if test="autoStatus != null and autoStatus != ''">#{autoStatus},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createTime != null">#{createTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCmAutoTypeRecord" parameterType="CmAutoTypeRecord">
+        update cm_auto_type_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="type != null and type != ''">type = #{type},</if>
+            <if test="authorId != null">authorId = #{authorId},</if>
+            <if test="autoStatus != null and autoStatus != ''">autoStatus = #{autoStatus},</if>
+            <if test="delFlag != null">delFlag = #{delFlag},</if>
+            <if test="updateTime != null">updateTime = #{updateTime},</if>
+            <if test="createTime != null">createTime = #{createTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="delCmAutoTypeRecordById" parameterType="String">
+        delete
+        from cm_auto_type_record where id = #{id}
+    </delete>
+
+    <delete id="delCmAutoTypeRecord" parameterType="CmAutoTypeRecord">
+        delete
+        from cm_auto_type_record AS cm_auto_type_record
+        <where>
+            <if test="id != null "> and cm_auto_type_record.id = #{id}</if>
+            <if test="type != null  and type != ''"> and cm_auto_type_record.type = #{type}</if>
+            <if test="authorId != null "> and cm_auto_type_record.authorId = #{authorId}</if>
+            <if test="autoStatus != null  and autoStatus != ''"> and cm_auto_type_record.autoStatus = #{autoStatus}</if>
+        </where>
+    </delete>
+
+</mapper>

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

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.modules.cmpage.dao.CmImageDao">
-    
+
 	<sql id="cmImageColumns">
 		a.id AS "id",
 		a.title AS "title",
@@ -26,18 +26,21 @@
 	</sql>
 
 	<select id="get" resultType="CmImage">
-		SELECT 
+		SELECT
 			<include refid="cmImageColumns"/>
 		FROM cm_page_image a
 		WHERE a.id = #{id}
 	</select>
-	
+
 	<select id="findList" resultType="CmImage">
-		SELECT 
+		SELECT
 			<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>
 		FROM cm_page_image a
 		<where>
-			
+
 			<if test="id != null and id != ''">
 				AND a.id = #{id}
 			</if>
@@ -95,14 +98,14 @@
 			</otherwise>
 		</choose>
 	</select>
-	
+
 	<select id="findAllList" resultType="CmImage">
-		SELECT 
+		SELECT
 			<include refid="cmImageColumns"/>
 		FROM cm_page_image a
 		<where>
-			
-		</where>		
+
+		</where>
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
 				ORDER BY ${page.orderBy}
@@ -159,9 +162,9 @@
 			#{topPosition}
 		)
 	</insert>
-	
+
 	<update id="update">
-		UPDATE cm_page_image SET 	
+		UPDATE cm_page_image SET
 			title = #{title},
 			link = #{link},
 			appLink = #{appLink},
@@ -181,7 +184,7 @@
 			topPosition = #{topPosition}
 		WHERE id = #{id}
 	</update>
-	
+
 	<update id="delete">
 		DELETE FROM cm_page_image
 		WHERE id = #{id}
@@ -218,4 +221,4 @@
 		  b.centreId = #{id}
 		</where>
 	</select>
-</mapper>
+</mapper>

+ 16 - 5
src/main/resources/mappings/modules/landing/CmBrandLandingMapper.xml

@@ -50,13 +50,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                a.appStatus,
                a.delFlag,
                a.updateTime,
-               a.addTime,
-               IFNULL((select c.pv from cm_praise_statistics c where a.id = c.authorId and c.type = 2), 0) as pv
-        from cm_brand_landing a
+               a.addTime
+
     </sql>
 
     <select id="selectCmBrandLandingList" parameterType="CmBrandLanding" resultMap="CmBrandLandingResult">
-        <include refid="selectCmBrandLandingVo"/>
+        <include refid="selectCmBrandLandingVo"/>,
+        <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_brand_landing a
         <where>delFlag = 0
             <if test="id != null  and id != ''">and id = #{id}</if>
             <if test="authUserId != null ">and authUserId = #{authUserId}</if>
@@ -83,6 +86,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
     <select id="findList" parameterType="CmBrandLanding" resultMap="CmBrandLandingResult">
         <include refid="selectCmBrandLandingVo"/>
+        <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_brand_landing a
         <where>delFlag = 0
             <if test="id != null  and id != ''">and id = #{id}</if>
             <if test="authUserId != null ">and authUserId = #{authUserId}</if>
@@ -109,7 +116,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="selectCmBrandLandingById" parameterType="String" resultMap="CmBrandLandingResult">
-        <include refid="selectCmBrandLandingVo"/>
+        <include refid="selectCmBrandLandingVo"/>,
+        <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_brand_landing a
         where id = #{id} and delFlag = 0
     </select>
 

+ 3 - 0
src/main/resources/mappings/modules/newhome/NewPageFirstNavigationMapper.xml

@@ -29,6 +29,9 @@
 	<select id="findList" resultType="NewPageFirstNavigation">
 		SELECT
 			<include refid="newPageFirstNavigationColumns"/>
+		<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 new_page_first_navigation a
 		<where>
 			a.delFlag = 0

+ 4 - 1
src/main/resources/mappings/modules/newhome/NewPageHomeimageMapper.xml

@@ -50,7 +50,10 @@
         ORDER BY a.sort desc,a.createDate desc
     </select>
     <select id="getBannerStatistics" resultType="com.caimei.modules.newhome.entity.cmStatisticsType">
-        SELECT COUNT(statisticsId) as count, ifnull(bannerId, 0) as bannerId  FROM cm_statistics_type WHERE typeId = 1 GROUP BY bannerId
+        SELECT COUNT(statisticsId) as count, ifnull(bannerId, 0) as bannerId  FROM cm_statistics_type WHERE typeId = 1
+        <if test="startPvCreateTime != null ">AND clickTime >= #{startPvCreateTime} </if>
+        <if test="endPvCreateTime != null ">AND clickTime <![CDATA[ <= ]]> #{endPvCreateTime} </if>
+        GROUP BY bannerId
     </select>
 
     <select id="findAllList" resultType="NewPageHomeimage">

+ 135 - 0
src/main/resources/mappings/modules/user/NewCmClubMapper.xml

@@ -1389,4 +1389,139 @@
         </where>
         GROUP BY c.userID ORDER BY ordr.lastOrderTime DESC
     </select>
+
+
+    <select id="getClubIds" resultType="String">
+        SELECT
+        clubID
+        FROM club a
+        <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>
+            (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>
+
+        </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>
 </mapper>

+ 52 - 43
src/main/webapp/WEB-INF/tlds/fns.tld

@@ -4,7 +4,7 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
   version="2.0">
-    
+
   <description>JSTL 1.1 functions library</description>
   <display-name>JSTL functions sys</display-name>
   <tlib-version>1.1</tlib-version>
@@ -46,79 +46,79 @@
     <function-signature>java.lang.Object getConst(java.lang.String)</function-signature>
     <example>${fns:getConst(key)}</example>
   </function>
-  
+
   <!-- UserUtils -->
   <function>
     <description>获取当前用户对象</description>
     <name>getUser</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.UserUtils</function-class>
     <function-signature>com.thinkgem.jeesite.modules.sys.entity.User getUser()</function-signature>
-    <example>${fns:getUser()}</example>  
+    <example>${fns:getUser()}</example>
   </function>
-  
+
   <function>
     <description>根据编码获取用户对象</description>
     <name>getUserById</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.UserUtils</function-class>
     <function-signature>com.thinkgem.jeesite.modules.sys.entity.User get(java.lang.String)</function-signature>
-    <example>${fns:getUserById(id)}</example>  
+    <example>${fns:getUserById(id)}</example>
   </function>
-  
+
   <function>
     <description>获取授权用户信息</description>
     <name>getPrincipal</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.UserUtils</function-class>
     <function-signature>com.thinkgem.jeesite.modules.sys.security.SystemAuthorizingRealm.Principal getPrincipal()</function-signature>
-    <example>${fns:getPrincipal()}</example>  
+    <example>${fns:getPrincipal()}</example>
   </function>
-  
+
   <function>
     <description>获取当前用户的菜单对象列表</description>
     <name>getMenuList</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.UserUtils</function-class>
     <function-signature>java.util.List getMenuList()</function-signature>
-    <example>${fns:getMenuList()}</example>  
+    <example>${fns:getMenuList()}</example>
   </function>
-  
+
   <function>
     <description>获取当前用户的区域对象列表</description>
     <name>getAreaList</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.UserUtils</function-class>
     <function-signature>java.util.List getAreaList()</function-signature>
-    <example>${fns:getAreaList()}</example>  
+    <example>${fns:getAreaList()}</example>
   </function>
-  
+
   <function>
     <description>获取当前用户的部门对象列表</description>
     <name>getOfficeList</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.UserUtils</function-class>
     <function-signature>java.util.List getOfficeList()</function-signature>
-    <example>${fns:getOfficeList()}</example>  
+    <example>${fns:getOfficeList()}</example>
   </function>
-  
+
   <function>
     <description>获取当前用户缓存</description>
     <name>getCache</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.UserUtils</function-class>
     <function-signature>java.lang.Object getCache(java.lang.String, java.lang.Object)</function-signature>
-    <example>${fns:getCache(cacheName, defaultValue)}</example>  
+    <example>${fns:getCache(cacheName, defaultValue)}</example>
   </function>
-	
+
   <!-- DictUtils -->
   <function>
     <description>获取字典标签</description>
     <name>getDictLabel</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.DictUtils</function-class>
     <function-signature>java.lang.String getDictLabel(java.lang.String, java.lang.String, java.lang.String)</function-signature>
-    <example>${fns:getDictLabel(value, type, defaultValue)}</example>  
+    <example>${fns:getDictLabel(value, type, defaultValue)}</example>
   </function>
-  
+
   <function>
     <description>获取字典标签(多个)</description>
     <name>getDictLabels</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.DictUtils</function-class>
     <function-signature>java.lang.String getDictLabels(java.lang.String, java.lang.String, java.lang.String)</function-signature>
-    <example>${fns:getDictLabels(values, type, defaultValue)}</example>  
+    <example>${fns:getDictLabels(values, type, defaultValue)}</example>
   </function>
 
   <function>
@@ -126,23 +126,23 @@
     <name>getDictValue</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.DictUtils</function-class>
     <function-signature>java.lang.String getDictValue(java.lang.String, java.lang.String, java.lang.String)</function-signature>
-    <example>${fns:getDictValue(label, type, defaultValue)}</example>  
+    <example>${fns:getDictValue(label, type, defaultValue)}</example>
   </function>
-  
+
   <function>
     <description>获取字典对象列表</description>
     <name>getDictList</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.DictUtils</function-class>
     <function-signature>java.util.List getDictList(java.lang.String)</function-signature>
-    <example>${fns:getDictList(type)}</example>  
+    <example>${fns:getDictList(type)}</example>
   </function>
-  
+
   <function>
     <description>获取字典对象列表</description>
     <name>getDictListJson</name>
     <function-class>com.thinkgem.jeesite.modules.sys.utils.DictUtils</function-class>
     <function-signature>java.lang.String getDictListJson(java.lang.String)</function-signature>
-    <example>${fns:getDictListJson(type)}</example>  
+    <example>${fns:getDictListJson(type)}</example>
   </function>
 
   <!-- CmmeDictUtils -->
@@ -192,112 +192,121 @@
     <name>urlEncode</name>
     <function-class>com.thinkgem.jeesite.common.utils.Encodes</function-class>
     <function-signature>java.lang.String urlEncode(java.lang.String)</function-signature>
-    <example>${fns:urlEncode(part)}</example>  
+    <example>${fns:urlEncode(part)}</example>
   </function>
   <function>
     <description>URL解码</description>
     <name>urlDecode</name>
     <function-class>com.thinkgem.jeesite.common.utils.Encodes</function-class>
     <function-signature>java.lang.String urlDecode(java.lang.String)</function-signature>
-    <example>${fns:urlDecode(part)}</example>  
+    <example>${fns:urlDecode(part)}</example>
   </function>
   <function>
     <description>HTML编码</description>
     <name>escapeHtml</name>
     <function-class>com.thinkgem.jeesite.common.utils.Encodes</function-class>
     <function-signature>java.lang.String escapeHtml(java.lang.String)</function-signature>
-    <example>${fns:escapeHtml(html)}</example>  
+    <example>${fns:escapeHtml(html)}</example>
   </function>
   <function>
     <description>HTML解码</description>
     <name>unescapeHtml</name>
     <function-class>com.thinkgem.jeesite.common.utils.Encodes</function-class>
     <function-signature>java.lang.String unescapeHtml(java.lang.String)</function-signature>
-    <example>${fns:unescapeHtml(html)}</example>  
+    <example>${fns:unescapeHtml(html)}</example>
   </function>
-  
+
   <!-- StringUtils -->
   <function>
     <description>从后边开始截取字符串</description>
     <name>substringAfterLast</name>
     <function-class>org.apache.commons.lang3.StringUtils</function-class>
     <function-signature>java.lang.String substringAfterLast(java.lang.String, java.lang.String)</function-signature>
-    <example>${fns:substringAfterLast(str,separator)}</example>  
+    <example>${fns:substringAfterLast(str,separator)}</example>
   </function>
   <function>
     <description>判断字符串是否以某某开头</description>
     <name>startsWith</name>
     <function-class>org.apache.commons.lang3.StringUtils</function-class>
     <function-signature>boolean startsWith(java.lang.CharSequence, java.lang.CharSequence)</function-signature>
-    <example>${fns:startsWith(str,prefix)}</example> 
+    <example>${fns:startsWith(str,prefix)}</example>
   </function>
   <function>
     <description>判断字符串是否以某某结尾</description>
     <name>endsWith</name>
     <function-class>org.apache.commons.lang3.StringUtils</function-class>
     <function-signature>boolean endsWith(java.lang.CharSequence, java.lang.CharSequence)</function-signature>
-    <example>${fns:endsWith(str,suffix)}</example> 
+    <example>${fns:endsWith(str,suffix)}</example>
   </function>
   <function>
     <description>缩写字符串,超过最大宽度用“...”表示</description>
     <name>abbr</name>
     <function-class>com.thinkgem.jeesite.common.utils.StringUtils</function-class>
     <function-signature>java.lang.String abbr(java.lang.String, int)</function-signature>
-    <example>${fns:abbr(str,length)}</example>  
+    <example>${fns:abbr(str,length)}</example>
   </function>
   <function>
     <description>替换掉HTML标签</description>
     <name>replaceHtml</name>
     <function-class>com.thinkgem.jeesite.common.utils.StringUtils</function-class>
     <function-signature>java.lang.String replaceHtml(java.lang.String)</function-signature>
-    <example>${fns:replaceHtml(html)}</example>  
+    <example>${fns:replaceHtml(html)}</example>
   </function>
   <function>
     <description>转换为JS获取对象值,生成三目运算返回结果。</description>
     <name>jsGetVal</name>
     <function-class>com.thinkgem.jeesite.common.utils.StringUtils</function-class>
     <function-signature>java.lang.String jsGetVal(java.lang.String)</function-signature>
-    <example>${fns:jsGetVal('row.user.id')}  返回:!row?'':!row.user?'':!row.user.id?'':row.user.id</example>  
+    <example>${fns:jsGetVal('row.user.id')}  返回:!row?'':!row.user?'':!row.user.id?'':row.user.id</example>
   </function>
   <function>
     <description>连接两个字符串</description>
     <name>appendLast</name>
     <function-class>com.thinkgem.jeesite.common.utils.StringUtils</function-class>
     <function-signature>java.lang.String appendLast(java.lang.String, java.lang.String)</function-signature>
-    <example>${fns:appendLast(str,suffixe)}</example>  
+    <example>${fns:appendLast(str,suffixe)}</example>
   </function>
-  
+
   <function>
     <description>连接多个字符串</description>
     <name>appendLast1</name>
     <function-class>com.thinkgem.jeesite.common.utils.StringUtils</function-class>
     <function-signature>java.lang.String appendLast(java.lang.String, java.lang.String, java.lang.String)</function-signature>
-    <example>${fns:appendLast1(str,suffixe1,suffixe2)}</example>  
+    <example>${fns:appendLast1(str,suffixe1,suffixe2)}</example>
   </function>
-  
+
   <!-- DateUtils -->
   <function>
     <description>获取当前日期</description>
     <name>getDate</name>
     <function-class>com.thinkgem.jeesite.common.utils.DateUtils</function-class>
     <function-signature>java.lang.String getDate(java.lang.String)</function-signature>
-    <example>${fns:getDate(pattern)}</example>  
+    <example>${fns:getDate(pattern)}</example>
   </function>
+  <!-- DateUtils -->
+  <function>
+    <description>转换日期</description>
+    <name>setDate</name>
+    <function-class>com.thinkgem.jeesite.common.utils.DateUtils</function-class>
+    <function-signature>java.lang.String setDate(java.util.Date,java.lang.String)</function-signature>
+    <example>${fns:setDate(date,pattern)}</example>
+  </function>
+
   <function>
     <description>获取过去的天数</description>
     <name>pastDays</name>
     <function-class>com.thinkgem.jeesite.common.utils.DateUtils</function-class>
     <function-signature>long pastDays(java.util.Date)</function-signature>
-    <example>${fns:pastDays(date)}</example>  
+    <example>${fns:pastDays(date)}</example>
   </function>
-  
+
   <!-- JsonMapper -->
   <function>
     <description>对象转换JSON字符串</description>
     <name>toJson</name>
     <function-class>com.thinkgem.jeesite.common.mapper.JsonMapper</function-class>
     <function-signature>java.lang.String toJsonString(java.lang.Object)</function-signature>
-    <example>${fns:toJson(object)}</example>  
+    <example>${fns:toJson(object)}</example>
   </function>
 
   <function>

+ 202 - 0
src/main/webapp/WEB-INF/views/modules/autoType/autoTypeList.jsp

@@ -0,0 +1,202 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+    <title>推送方式设置</title>
+    <meta name="decorator" content="default"/>
+    <style>
+        body {
+            padding: 30px;
+        }
+    </style>
+</head>
+<body>
+<form id="statusForm">
+    <input id="cmAutoTypeId" name="cmAutoTypeId" type="hidden" value="${cmAutoType.id}"/>
+    <div>
+        <label style="float: left">推荐方式:</label>
+        <div style="margin-left: 70px">
+            <input type="radio" name="autoStatus" value="0"  ${cmAutoType.autoStatus ne 1 ? "checked" : ""}>自动推送(设置自动推送后,则自动推送新发布的文章给所有机构)
+            <br>
+            <br>
+            <input type="radio" name="autoStatus" value="1"  ${cmAutoType.autoStatus eq 1 ? "checked" : ""}>手动推荐
+            <br>
+            <br>
+            <button id="btnSave" class="btn btn-primary" type="button"
+                    onclick="checkInfo()"  ${cmAutoType.autoStatus eq 1 ? "" : "disabled"}>选择需要推送的文章
+            </button>
+        </div>
+    </div>
+</form>
+
+<form:form id="searchForm" modelAttribute="cmAutoTypeRecord" action="${ctx}/autoType/list" method="post"
+           class="breadcrumb form-search">
+    <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+    <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+    <input id="type" name="type" type="hidden" value="${cmAutoTypeRecord.type}"/>
+    <div class="ul-form">
+        <label>ID:</label>
+        <form:input path="id" htmlEscape="false" maxlength="11" class="input-mini"/>
+        <label>标题:</label>
+        <form:input path="createTime" htmlEscape="false" maxlength="100" class="input-medium"/>
+        <label>推荐类型:</label>
+        <form:select path="autoStatus" class="input-medium">
+            <form:option value="" label="请选择"/>
+            <form:option value="0" label="自动推荐"/>
+            <form:option value="1" label="手动推荐"/>
+        </form:select>
+        <label>推送时间:</label>
+        <form:input path="startPvCreateTime" type="text" maxlength="20" class="input-mini Wdate"
+                    value="${fns:setDate(cmAutoTypeRecord.startPvCreateTime,'yyyy-MM-dd')}"
+                    onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+        -
+        <form:input path="endPvCreateTime" type="text" maxlength="20" class="input-mini Wdate"
+                    value="${fns:setDate(cmAutoTypeRecord.endPvCreateTime,'yyyy-MM-dd')}"
+                    onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+        &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
+        <div class="clearfix"></div>
+    </div>
+</form:form>
+<sys:message content="${message}"/>
+<table id="contentTable" class="table table-striped table-bordered table-condensed">
+    <thead>
+    <tr>
+        <th>ID</th>
+        <th>引导图</th>
+        <th>文章标题</th>
+        <th>推送类型</th>
+        <th>推送时间</th>
+    </tr>
+    </thead>
+    <tbody>
+    <c:forEach items="${page.list}" var="item">
+        <tr>
+            <td>${item.authorId}</td>
+            <td><img src="${item.guidanceImage}" width="100px;" height="100px;"></td>
+            <td>${item.title}</td>
+            <td>${item.autoStatus==0?"自动推荐":"手动推荐"}</td>
+            <td><fmt:formatDate value="${item.createTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+        </tr>
+    </c:forEach>
+    </tbody>
+</table>
+<div class="pagination">${page}</div>
+<script>
+    $(document).ready(function () {
+        $("#searchForm").validate({
+            submitHandler: function (form) {
+
+                loading('正在提交,请稍等...');
+                form.submit();
+            },
+            errorContainer: "#messageBox",
+            errorPlacement: function (error, element) {
+                $("#messageBox").text("输入有误,请先更正。");
+                if (element.is(":checkbox") || element.is(":radio") || element.parent().is(".input-append")) {
+                    error.appendTo(element.parent().parent());
+                } else {
+                    error.insertAfter(element);
+                }
+            }
+        });
+        $('input[name="autoStatus"]').change(function (item) {
+            var id = $('#cmAutoTypeId').val();
+            var autoStatus = $(this).val();
+            $.post("${ctx}/autoType/updateAutoStatus", {'id': id, 'autoStatus': autoStatus}, function (data) {
+                if (data.success == false) {
+                    $.jBox.tip(data.msg, 'error');
+                }
+            }, "JSON");//这里返回的类型有:json,html,xml,text
+            if (autoStatus == 0) {
+                $('#btnSave').attr("disabled", true)
+            } else {
+                $('#btnSave').attr("disabled", false)
+            }
+        })
+
+    })
+
+
+    function checkInfo() {
+        let url = "${ctx}/autoType/findAddPage";
+        let title = "选择文章";
+        let buttons={"取消": '-1',"下一步": '1'}
+        iframe(url, title,buttons, submitInfo)
+    }
+
+    var items =null;
+    var submitInfo =  function (v, h, f) {
+        //确定
+        let $jboxFrame = top.$('#jbox-iframe');
+        let $mainFrame = top.$('#mainFrame');
+        if ('1' == v && 1 == $jboxFrame.size() && 1 == $mainFrame.size()) {
+            items = $jboxFrame[0].contentWindow.getCheckedItems(0);
+            if (items.length > 0) {
+                let url = "${ctx}/autoType/findClubAddPage";
+                let title = "选择文章";
+                let buttons={ "取消": '-1',"上一步": '0',"发送": '1'}
+                iframe(url, title,buttons,submitClub)
+            } else {
+                top.$.jBox.tip("请先勾选文章...");
+                return false;
+            }
+        }
+        return true;
+    }
+
+    var submitClub =  function (v, h, f){
+        if ('0' == v){
+            checkInfo()
+        }
+        //确定
+        let $jboxFrame = top.$('#jbox-iframe');
+        let $mainFrame = top.$('#mainFrame');
+        if ('1' == v && 1 == $jboxFrame.size() && 1 == $mainFrame.size()) {
+            let ids = $jboxFrame[0].contentWindow.getCheckedItems(0);
+            if (null==ids){
+                addRecord({"type": 1,"autoStatus": 1,"infoIds": infoIds})
+            }else if (ids.length > 0)  {
+                addRecord({"type": 1,"autoStatus": 1,"infoIds": infoIds,"clubIds": clubIds})
+            }else {
+                top.$.jBox.tip("请先勾选机构...");
+                return false;
+            }
+            console.log(ids);
+            console.log(items);
+        }
+        return true
+    }
+
+    function addRecord(data){
+        // {"type": type,"infoIds": infoIds,"clubIds": clubIds}
+        $.ajax({
+            url: "${ctx}/bulkpurchase/contractOrder/enCode",
+            data: data,
+            type: "POST",
+            async: false,
+            success: function (res) {
+                if (res.success) {
+                    $.jBox.tip(res.msg, 'info');
+                } else {
+                    $.jBox.tip(res.msg, 'error');
+                }
+            }
+        });
+    }
+
+    function iframe(url, title,buttons, submit) {
+        top.$.jBox("iframe:" + url, {
+            iframeScrolling: 'yes',
+            width: $(top.document).width() - 600,
+            height: $(top.document).height() - 160,
+            persistent: true,
+            title: title,
+            buttons: buttons,
+            submit: submit
+        });
+    }
+
+
+</script>
+</body>
+</html>

+ 193 - 0
src/main/webapp/WEB-INF/views/modules/autoType/autoTypeRecordAdd.jsp

@@ -0,0 +1,193 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+    <title>选择文章</title>
+    <meta name="decorator" content="default"/>
+    <style type="text/css">
+        .table td i {
+            margin: 0 2px;
+        }
+    </style>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            //弹出框去滚动条
+            top.$('#jbox-content').css("overflow-y", "hidden");
+            show_title(30);
+
+            //			反选
+            $('body').on('click', 'input[name="info"]', function () {
+                var allInputLength = $('input[name="info"]').length - $('input[name="info"]:disabled').length,
+                    allInputCheckedLength = $('input[name="info"]:checked').length,
+                    checkAllEle = $('.check-all');
+//			    判断选中长度和总长度,如果相等就是全选否则取消全选
+                if (allInputLength === allInputCheckedLength) {
+                    checkAllEle.attr('checked', true);
+                } else {
+                    checkAllEle.attr('checked', false);
+                }
+            })
+        });
+
+        function page(n, s) {
+            $("#pageNo").val(n);
+            $("#pageSize").val(s);
+            $("#searchForm").submit();
+            return false;
+        }
+
+        function getCheckedItems() {
+            var items = new Array();
+            var $items = $('.check-item:checked');
+            $items.each(function () {
+                //通过拿到的商品ID组合键获取其它值
+                var productId = $(this).val();
+                items.push(productId);
+            });
+            return items;
+        }
+
+        function allCkbfun(ckb) {
+            var isChecked = ckb.checked;
+            $(".check-item").attr('checked', isChecked);
+        }
+
+        /**
+         * @param obj
+         * jquery控制input只能输入数字
+         */
+        function onlynum(obj) {
+            obj.value = obj.value.replace(/[^\d]/g, ""); //清除"数字"以外的字符
+        }
+
+        /**
+         * @param obj
+         * jquery控制input只能输入数字和两位小数(金额)
+         */
+        function num(obj) {
+            obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
+            obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字
+            obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个, 清除多余的
+            obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
+            obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
+        }
+        var ontypeId = null;
+        var typeId = null;
+        function ischangeType() {
+            if (null != typeId) {
+                $("#typeListId option[value=" + typeId + "]").val(ontypeId);
+            }
+            $("#optionType").find("option").eq(0).prop("selected", true)
+            optionTypeParent()
+        }
+
+        function optionTypeParent() {
+            $("#optionType [parent]").each(function (item) {
+                if ($("#typeListId option:selected").val() == $(this).attr("parent")) {
+                    $(this).show()
+                } else {
+                    $(this).hide()
+                }
+            })
+        }
+
+        function isoptionType() {
+            if ("" != $("#optionType option:selected").val()) {
+                ontypeId =  $("#optionType option:selected").attr("parent")
+                typeId = $("#optionType option:selected").val()
+                $("#typeListId option:selected").val($("#optionType option:selected").val())
+            }else {
+                ischangeType()
+            }
+        }
+
+        $(document).ready(function () {
+            $("#typeListId option[value=" + $("#optionType option:selected").attr("parent") + "]").prop("selected", true);
+            optionTypeParent()
+            isoptionType()
+            $("input[type='radio'][name='publishSource']").change(function (obj) {
+                $("#searchForm").submit();
+            })
+        })
+
+    </script>
+</head>
+<body>
+<form:form id="searchForm" modelAttribute="info" action="${ctx}/autoType/findAddPage" method="post"
+           class="breadcrumb form-search">
+    <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+    <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+    <div class="ul-form">
+        <label>ID:</label>
+        <form:hidden path="cmRelatedType"/>
+        <form:input path="id" htmlEscape="false" maxlength="11" class="input-mini"/>
+        <label>标题:</label>
+        <form:input path="title" htmlEscape="false" maxlength="100" class="input-medium"/>
+        <label>发布人:</label>
+        <form:input path="publisher" htmlEscape="false" maxlength="50" class="input-medium"/>
+        <label>发布时间:</label>
+        <form:input path="startPubDate" type="text" maxlength="10" class="input-medium Wdate"
+                    value="${startPubDate}"
+                    onclick="WdatePicker({dateFmt:'yyyy-MM-dd ',isShowClear:false});"/>
+        至
+        <form:input path="endPubDate" type="text" maxlength="10" class="input-medium Wdate"
+                    value="${startPubDate}"
+                    onclick="WdatePicker({dateFmt:'yyyy-MM-dd ',isShowClear:false});"/>
+        <br> <br>
+        <label>文章分类:</label>
+        <form:select id="typeListId" path="infoType.id" class="input-small" onchange="ischangeType()">
+            <form:option value="" label=" "/>
+            <c:forEach items="${typeList}" var="type" varStatus="index">
+                <c:if test="${type.parentId eq 0}">
+                    <form:option value="${type.id}" label="${type.name}"/>
+                </c:if>
+            </c:forEach>
+        </form:select>
+        <form:select id="optionType" path="typeId" class="input-small" onchange="isoptionType()">
+            <form:option value="" label=" "/>
+            <c:forEach items="${typeList}" var="type" varStatus="index">
+                <c:if test="${type.parentId ne 0}">
+                    <form:option value="${type.id}" label="${type.name}" parent="${type.parentId}"
+                                 cssStyle="display: none"/>
+                </c:if>
+            </c:forEach>
+        </form:select>
+        &nbsp;&nbsp<input id="btnSubmit" class="btn btn-primary" type="submit" value="搜索"/>
+        <div class="clearfix"></div>
+    </div>
+</form:form>
+<sys:message content="${message}"/>
+<table class="table table-striped table-bordered table-condensed table-hover">
+    <tr>
+        <th style="width:20px;"><input class="check-all" type="checkbox" onclick="allCkbfun(this);"/></th>
+        <th>文章ID</th>
+        <th>文章分类</th>
+        <th>引导图</th>
+        <th>发布人</th>
+        <th>文章标题</th>
+        <th>发布时间</th>
+    </tr>
+    <tbody>
+    <c:if test="${not empty page.list}">
+        <c:forEach items="${page.list}" var="item">
+            <tr id="${item.id}" class="itemtr">
+                <th>
+                    <input class="check-item" type="checkbox" name="info" value='${item.id}'/>
+                </th>
+                <td>${item.id}</td>
+                <td>${item.infoType.name}</td>
+                <td><img src="${item.guidanceImage}" width="50px" height="50px"></td>
+                <td>${item.publisher}</td>
+                <td>${item.title}</td>
+                <td><fmt:formatDate value="${item.pubdate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+            </tr>
+        </c:forEach>
+    </c:if>
+    </tbody>
+</table>
+<c:if test="${empty  page.list}">
+    <p style="text-align: center;"><font color="#1e90ff">暂无数据……</font></p>
+</c:if>
+<div class="pagination">${page}</div>
+</body>
+</html>

+ 135 - 0
src/main/webapp/WEB-INF/views/modules/autoType/autoTypeRecordClubAdd.jsp

@@ -0,0 +1,135 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+    <title>选择文章</title>
+    <meta name="decorator" content="default"/>
+    <style type="text/css">
+        .table td i {
+            margin: 0 2px;
+        }
+    </style>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            //弹出框去滚动条
+            top.$('#jbox-content').css("overflow-y", "hidden");
+            show_title(30);
+            //反选
+            $('body').on('click', 'input[name="info"]', function () {
+                var allInputLength = $('input[name="info"]').length - $('input[name="info"]:disabled').length,
+                    allInputCheckedLength = $('input[name="info"]:checked').length,
+                    checkAllEle = $('.check-all');
+            //判断选中长度和总长度,如果相等就是全选否则取消全选
+                if (allInputLength === allInputCheckedLength) {
+                    checkAllEle.attr('checked', true);
+                } else {
+                    checkAllEle.attr('checked', false);
+                }
+            })
+        });
+
+        function page(n, s) {
+            $("#pageNo").val(n);
+            $("#pageSize").val(s);
+            $("#searchForm").submit();
+            return false;
+        }
+
+        function getCheckedItems() {
+            var items = null;
+            if($("input[type='radio'][name='allClub']:checked").val()==1){
+                items = new Array();
+                var $items = $('.check-item:checked');
+                $items.each(function () {
+                    //通过拿到的商品ID组合键获取其它值
+                    var productId = $(this).val();
+                    items.push(productId);
+                });
+            }
+            return items;
+        }
+
+        function allCkbfun(ckb) {
+            var isChecked = ckb.checked;
+            $(".check-item").attr('checked', isChecked);
+        }
+
+        /**
+         * @param obj
+         * jquery控制input只能输入数字
+         */
+        function onlynum(obj) {
+            obj.value = obj.value.replace(/[^\d]/g, ""); //清除"数字"以外的字符
+        }
+
+
+        $(document).ready(function () {
+            let allClub =$("input[type='radio'][name='allClub']")
+            allClub.change(function (obj) {
+                if ( $(this).val()==1){
+                    $("#tableFrom").show()
+                }else {
+                    $("#tableFrom").hide()
+                }
+            })
+        })
+
+    </script>
+</head>
+<body>
+<div style="padding: 20px">
+    <p>选择需要推送的机构</p>
+    <label style="float: left">推荐方式:</label>
+    <div style="margin-left: 70px">
+        <input type="radio" name="allClub" value="0" checked>全部机构
+        <br>
+        <br>
+        <input type="radio" name="allClub" value="1">自定义机构
+    </div>
+</div>
+<div id="tableFrom" style="display: none">
+    <form:form id="searchForm" modelAttribute="newCmClub" action="${ctx}/autoType/findClubAddPage" method="post"
+               class="breadcrumb form-search">
+        <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+        <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+        <div class="ul-form">
+            <label>机构ID:</label>
+            <form:input path="clubID" htmlEscape="false" maxlength="11" class="input-mini"/>
+            <label>机构名称:</label>
+            <form:input path="searchName" htmlEscape="false" maxlength="100" class="input-medium"/>
+            &nbsp;&nbsp<input id="btnSubmit" class="btn btn-primary" type="submit" value="搜索"/>
+            <div class="clearfix"></div>
+        </div>
+    </form:form>
+    <sys:message content="${message}"/>
+    <table class="table table-striped table-bordered table-condensed table-hover">
+        <tr>
+            <th style="width:20px;"><input class="check-all" type="checkbox" onclick="allCkbfun(this);"/></th>
+            <th>机构ID</th>
+            <th>机构名称</th>
+            <th>联系人</th>
+            <th>手机号</th>
+        </tr>
+        <tbody>
+        <c:if test="${not empty page.list}">
+            <c:forEach items="${page.list}" var="item">
+                <tr id="${item.clubID}" class="itemtr">
+                    <th>
+                        <input class="check-item" type="checkbox" name="info" value='${item.clubID}'/>
+                    </th>
+                    <td>${item.clubID}</td>
+                    <td>${item.name}</td>
+                    <td>${item.userName}</td>
+                    <td>${item.bindMobile}</td>
+                </tr>
+            </c:forEach>
+        </c:if>
+        </tbody>
+    </table>
+    <c:if test="${empty  page.list}">
+        <p style="text-align: center;"><font color="#1e90ff">暂无数据……</font></p>
+    </c:if>
+    <div class="pagination">${page}</div>
+</div>
+</body>
+</html>

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

@@ -16,7 +16,7 @@
 	</style>
 	<script type="text/javascript">
 		$(document).ready(function() {
-			
+
 		});
 		function page(n,s){
 			$("#pageNo").val(n);
@@ -197,6 +197,12 @@
 				<form:option value="1" label="是"/>
 				<form:option value="0" label="否"/>
 			</form:select>
+			<label>点击时间:</label>
+			<form:input path="startPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" value="${fns:setDate(cmImage.startPvCreateTime,'yyyy-MM-dd')}"
+						onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+			-
+			<form:input path="endPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" value="${fns:setDate(cmImage.endPvCreateTime,'yyyy-MM-dd')}"
+						onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
 			&nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
             <c:if test="${cmImage.flag eq 4}">
 				<label style="float:right;">活动专区首页:<a href="${fns:getConfig('wwwServer')}cmpage/area.html" target="_blank">${fns:getConfig('wwwServer')}cmpage/area.html</a></label>
@@ -342,4 +348,4 @@
 	</table>
 	<div class="pagination">${page}</div>
 </body>
-</html>
+</html>

+ 1 - 1
src/main/webapp/WEB-INF/views/modules/info/infoRelatedForm.jsp

@@ -87,7 +87,7 @@
 	<div id="infoList" style="display: none">
 		<h4 style="line-height: 50px">
 			<span style="font-weight: bold;">推荐列表</span>(当前列表记录数 <span id="infoListCount">0</span>, 最多只能添加3条数据)
-			<input class="btn btn-primary" style="width: 80px" onclick="showSelect()" value="添加商品"/>
+			<input class="btn btn-primary" style="width: 80px" onclick="showSelect()" value="添加文章"/>
 		</h4>
 		<table id="contentTable" class="table table-striped table-bordered table-condensed" style="height: 300px">
 			<thead>

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

@@ -81,6 +81,12 @@
 					<form:option value="" label=" "/>
 					<form:options items="${fns:getDictList('enabled_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 				</form:select>
+			<label>点击时间:</label>
+			<form:input path="startPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" value="${fns:setDate(cmBrandLanding.startPvCreateTime,'yyyy-MM-dd')}"
+						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')}"
+						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  class="btn btn-primary" type="button" value="添加" onclick="location.href='${ctx}/cmBrandLanding/form?type=5&levelType=${cmBrandLanding.levelType}'"/>

+ 18 - 1
src/main/webapp/WEB-INF/views/modules/newhome/newPageFirstNavigationList.jsp

@@ -115,9 +115,19 @@
 	<li class=${newPageFirstNavigation.type==0?"active":""}><a href="${ctx}/newhome/newPageFirstNavigation?type=0">主菜单列表</a></li>
 	<li class=${newPageFirstNavigation.type==2?"active":""}><a href="${ctx}/newhome/newPageFirstNavigation?type=2">快捷运营菜单</a></li>
 </ul>
-<form:form id="searchForm" modelAttribute="newPageFirstNavigation" action="${ctx}/newhome/newPageFirstNavigation?type${newPageFirstNavigation.type}" method="get" class="breadcrumb form-search">
+<form:form id="searchForm" modelAttribute="newPageFirstNavigation" action="${ctx}/newhome/newPageFirstNavigation" method="get" class="breadcrumb form-search">
 	<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
 	<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+	<input id="type" name="type" type="hidden" value="${newPageFirstNavigation.type}"/>
+	<c:if test="${newPageFirstNavigation.type==2}">
+		<label>点击时间:</label>
+		<form:input path="startPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" value="${fns:setDate(newPageFirstNavigation.startPvCreateTime,'yyyy-MM-dd')}"
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+		-
+		<form:input path="endPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" value="${fns:setDate(newPageFirstNavigation.endPvCreateTime,'yyyy-MM-dd')}"
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+	</c:if>
+	&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
 	<input class="btn btn-primary" style="width:80px" onclick="batchSaveSort()" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;
 	<input class="btn btn-primary" style="width:${newPageFirstNavigation.type==0?80:120}px" onclick="window.location='${ctx}/newhome/newPageFirstNavigation/form?type=${newPageFirstNavigation.type}'" value="添加${newPageFirstNavigation.type==0?"主":"快捷运营"}菜单"/>
 	<input class="btn btn-primary" style="width:100px" onclick="updateStaticHome()" value="生成静态首页"/>
@@ -133,6 +143,9 @@
 		<th><c:if test="${newPageFirstNavigation.type==0}">主</c:if>菜单名称</th>
 		<th>图标</th>
 		<th>跳转链接</th>
+		<c:if test="${newPageFirstNavigation.type==2}">
+			<th>点击量</th>
+		</c:if>
 		<th>网站状态</th>
 		<th>小程序状态</th>
 		<th>排序</th>
@@ -153,9 +166,13 @@
 			<td>
 					<img src="${newPageFirstNavigation.icon}" style="width: 50px;height: 50px;">
 			</td>
+
 			<td>
 					<a href="${newPageFirstNavigation.link}" target="_blank">${newPageFirstNavigation.link}</a>
 			</td>
+			<c:if test="${newPageFirstNavigation.type==2}">
+				<td>${newPageFirstNavigation.pv}</td>
+			</c:if>
 			<td>
 				<shiro:hasPermission name="newhome:newPageFirstNavigation:edit">
 					<c:if test="${newPageFirstNavigation.wwwEnabledStatus eq 1 }">

+ 6 - 0
src/main/webapp/WEB-INF/views/modules/newhome/newPageHomeimageList.jsp

@@ -131,6 +131,12 @@
             <form:options items="${fns:getDictList('enabled_status')}" itemLabel="label" itemValue="value"
                           htmlEscape="false"/>
         </form:select>
+        <label>点击时间:</label>
+        <form:input path="startPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" value="${fns:setDate(newPageHomeimage.startPvCreateTime,'yyyy-MM-dd')}"
+                    onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+        -
+        <form:input path="endPvCreateTime" type="text" maxlength="20" class="input-mini Wdate" value="${fns:setDate(newPageHomeimage.endPvCreateTime,'yyyy-MM-dd')}"
+                    onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
         &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
         <c:if test="${cmImage.flag eq 4}">
             <label style="float:right;">活动专区首页:<a href="${fns:getConfig('wwwServer')}cmpage/area.html"