Commit 4d87dac2 by 郑永强

早晚发送记录、发送记录详情

parent 1c61f4ee
package com.pcloud.book.adnews.biz; package com.pcloud.book.adnews.biz;
import com.pcloud.book.adnews.entity.AdNews; import com.pcloud.book.adnews.entity.*;
import com.pcloud.book.adnews.entity.AdNewsSet; import com.pcloud.book.adnews.dto.AdNewsListParam;
import com.pcloud.book.adnews.entity.AdNewsWechat; import com.pcloud.book.adnews.vo.AdNewsGroupRecordVO;
import com.pcloud.book.adnews.vo.AdNewsListParam; import com.pcloud.book.adnews.vo.AdNewsMessageStatisticVO;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import java.util.List; import java.util.List;
...@@ -95,4 +95,26 @@ public interface AdNewsBiz { ...@@ -95,4 +95,26 @@ public interface AdNewsBiz {
*/ */
void deleteAdNewsWechatChoose(Long adNewsWechatId, Long partyId); void deleteAdNewsWechatChoose(Long adNewsWechatId, Long partyId);
/**
* 获取早晚报发送记录
* @param partyId
* @param title
* @param beginTime
* @param endTime
* @param proLabelId 专业
* @param depLabelId 深度
* @param purLabelId 目的
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<AdNewsMessageStatisticVO> getAdNewsMessageStatistic(Long partyId, String title, String beginTime, String endTime, String proLabelId, String depLabelId, String purLabelId, Integer currentPage, Integer numPerPage);
/**
* 查询早晚报发送详情
* @param partyId
* @param messageStatisticId
* @return
*/
List<AdNewsGroupRecordVO> getAdNewsGroupRecord(Long partyId, Long messageStatisticId);
} }
...@@ -6,32 +6,36 @@ import com.pcloud.book.adnews.dao.*; ...@@ -6,32 +6,36 @@ import com.pcloud.book.adnews.dao.*;
import com.pcloud.book.adnews.entity.*; import com.pcloud.book.adnews.entity.*;
import com.pcloud.book.adnews.enums.AdContentFromEnum; import com.pcloud.book.adnews.enums.AdContentFromEnum;
import com.pcloud.book.adnews.enums.AdNewsBanEnum; import com.pcloud.book.adnews.enums.AdNewsBanEnum;
import com.pcloud.book.adnews.vo.AdNewsListParam; import com.pcloud.book.adnews.dto.AdNewsListParam;
import com.pcloud.book.advertising.dto.DateCountDTO; import com.pcloud.book.adnews.vo.AdNewsGroupRecordVO;
import com.pcloud.book.adnews.vo.AdNewsMessageStatisticVO;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.WeixinQrcodeBiz; import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.dao.GroupQrcodeDao; import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.BookWxQrcodeDTO; import com.pcloud.book.group.dto.BookWxQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeFoAdDTO; import com.pcloud.book.group.dto.GroupQrcodeFoAdDTO;
import com.pcloud.book.group.vo.BookGroupClassifyVO;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils; import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.facade.quartz.entity.CallBackParam; import com.pcloud.facade.quartz.entity.CallBackParam;
import com.pcloud.facade.quartz.entity.ScheduleJob; import com.pcloud.facade.quartz.entity.ScheduleJob;
import com.pcloud.facade.quartz.service.ScheduleService; import com.pcloud.facade.quartz.service.ScheduleService;
import com.pcloud.labelcenter.label.service.LabelService;
import com.sdk.wxgroup.SendTextMessageVO; import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK; import com.sdk.wxgroup.WxGroupSDK;
import org.apache.commons.collections.MapUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.DateTimeException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -73,6 +77,8 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -73,6 +77,8 @@ public class AdNewsBizImpl implements AdNewsBiz {
private AdNewsWechatChooseDao adNewsWechatChooseDao; private AdNewsWechatChooseDao adNewsWechatChooseDao;
@Autowired @Autowired
private WeixinQrcodeBiz weixinQrcodeBiz; private WeixinQrcodeBiz weixinQrcodeBiz;
@Autowired
private LabelService labelService;
private static final String AD_MORNING_NEWS_SCHEDULE_PRE = "AD_MORNING_NEWS_SCHEDULE_"; private static final String AD_MORNING_NEWS_SCHEDULE_PRE = "AD_MORNING_NEWS_SCHEDULE_";
...@@ -275,8 +281,8 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -275,8 +281,8 @@ public class AdNewsBizImpl implements AdNewsBiz {
} }
adNewsMessageStatisticDao.batchInsert(adNewsMessageStatistics); adNewsMessageStatisticDao.batchInsert(adNewsMessageStatistics);
// 不会mybatis的主从表批量插入,所以只能这么做 // 不会mybatis的主从表批量插入,所以只能这么做
for (AdNewsMessageStatistic item : adNewsMessageStatistics){ for (AdNewsMessageStatistic item : adNewsMessageStatistics) {
adNewsGroupRecords.stream().filter(x->x.getInsertMark()==item.getInsertMark()).forEach(x->x.setMessageStatisticId(item.getId())); adNewsGroupRecords.stream().filter(x -> x.getInsertMark() == item.getInsertMark()).forEach(x -> x.setMessageStatisticId(item.getId()));
} }
adNewsGroupRecordDao.batchInsert(adNewsGroupRecords); adNewsGroupRecordDao.batchInsert(adNewsGroupRecords);
} }
...@@ -544,4 +550,91 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -544,4 +550,91 @@ public class AdNewsBizImpl implements AdNewsBiz {
public void deleteAdNewsWechatChoose(Long adNewsWechatId, Long partyId) { public void deleteAdNewsWechatChoose(Long adNewsWechatId, Long partyId) {
adNewsWechatChooseDao.deleteAdNewsWechatChooseById(adNewsWechatId, partyId); adNewsWechatChooseDao.deleteAdNewsWechatChooseById(adNewsWechatId, partyId);
} }
@Override
@ParamLog("获取早晚报发送记录")
public PageBeanNew<AdNewsMessageStatisticVO> getAdNewsMessageStatistic(Long partyId, String title, String beginTime, String endTime, String proLabelId, String depLabelId, String purLabelId, Integer currentPage, Integer numPerPage) {
PageParam pageParam = new PageParam(currentPage, numPerPage);
Map<String, Object> map = new HashMap<>();
map.put("partyId", partyId);
map.put("title", title);
map.put("beginTime", beginTime);
map.put("endTime", StringUtil.isEmpty(endTime) ? null : endTime.concat(" 23:59:59"));
map.put("proLabelId", proLabelId);
map.put("depLabelId", depLabelId);
map.put("purLabelId", purLabelId);
PageBeanNew<AdNewsMessageStatisticVO> pageBeanNew = adNewsMessageStatisticDao.listPageNew(pageParam, map, "getAdNewsMessageStatistic");
if (pageBeanNew == null) {
return new PageBeanNew<>(currentPage, numPerPage, new ArrayList<>());
}
// 遍历填充标签
List<AdNewsMessageStatisticVO> adNewsMessageStatisticVOS = pageBeanNew.getRecordList();
if (!ListUtils.isEmpty((adNewsMessageStatisticVOS))) {
List<Long> labelIds = new ArrayList<>();
for (AdNewsMessageStatisticVO item : adNewsMessageStatisticVOS) {
if (item.getDepLabelId() != null) {
labelIds.add(item.getProLabelId());
}
if (item.getPurLabelId() != null) {
labelIds.add(item.getPurLabelId());
}
if (item.getDepLabelId() != null) {
labelIds.add(item.getDepLabelId());
}
}
Map<Long, String> labelMap = new HashMap<>();
if (!ListUtils.isEmpty(labelIds)) {
labelMap = ResponseHandleUtil.parseMap(labelService.getLabelName(labelIds), Long.class, String.class);
}
if (!MapUtils.isEmpty(labelMap)) {
for (AdNewsMessageStatisticVO item : adNewsMessageStatisticVOS) {
if (item.getProLabelId() != null) {
item.setProLabelName(labelMap.get(item.getProLabelId()));
}
if (item.getPurLabelId() != null) {
item.setPurLabelName(labelMap.get(item.getPurLabelId()));
}
if (item.getDepLabelId() != null) {
item.setDepLabelName(labelMap.get(item.getDepLabelId()));
}
}
}
}
return pageBeanNew;
}
@Override
@ParamLog("查询早晚报发送详情")
public List<AdNewsGroupRecordVO> getAdNewsGroupRecord(Long partyId, Long messageStatisticId) {
return adNewsGroupRecordDao.getAdNewsGroupRecord(partyId,messageStatisticId);
}
} }
package com.pcloud.book.adnews.dao; package com.pcloud.book.adnews.dao;
import com.pcloud.book.adnews.entity.AdNewsGroupRecord; import com.pcloud.book.adnews.entity.AdNewsGroupRecord;
import com.pcloud.book.adnews.vo.AdNewsGroupRecordVO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List; import java.util.List;
...@@ -12,4 +13,6 @@ import java.util.List; ...@@ -12,4 +13,6 @@ import java.util.List;
**/ **/
public interface AdNewsGroupRecordDao extends BaseDao<AdNewsGroupRecord> { public interface AdNewsGroupRecordDao extends BaseDao<AdNewsGroupRecord> {
Integer batchInsert(List<AdNewsGroupRecord> adNewsGroupRecords); Integer batchInsert(List<AdNewsGroupRecord> adNewsGroupRecords);
List<AdNewsGroupRecordVO> getAdNewsGroupRecord(Long partyId, Long messageStatisticId);
} }
...@@ -2,6 +2,7 @@ package com.pcloud.book.adnews.dao; ...@@ -2,6 +2,7 @@ package com.pcloud.book.adnews.dao;
import com.pcloud.book.adnews.entity.AdNewsMessageStatistic; import com.pcloud.book.adnews.entity.AdNewsMessageStatistic;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import com.pcloud.common.page.PageBeanNew;
import java.util.List; import java.util.List;
......
...@@ -2,10 +2,13 @@ package com.pcloud.book.adnews.dao.impl; ...@@ -2,10 +2,13 @@ package com.pcloud.book.adnews.dao.impl;
import com.pcloud.book.adnews.dao.AdNewsGroupRecordDao; import com.pcloud.book.adnews.dao.AdNewsGroupRecordDao;
import com.pcloud.book.adnews.entity.AdNewsGroupRecord; import com.pcloud.book.adnews.entity.AdNewsGroupRecord;
import com.pcloud.book.adnews.vo.AdNewsGroupRecordVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Description * @Description
...@@ -18,4 +21,12 @@ public class AdNewsGroupRecordDaoImpl extends BaseDaoImpl<AdNewsGroupRecord> imp ...@@ -18,4 +21,12 @@ public class AdNewsGroupRecordDaoImpl extends BaseDaoImpl<AdNewsGroupRecord> imp
public Integer batchInsert(List<AdNewsGroupRecord> list) { public Integer batchInsert(List<AdNewsGroupRecord> list) {
return super.getSqlSession().insert(getStatement("batchInsert"), list); return super.getSqlSession().insert(getStatement("batchInsert"), list);
} }
@Override
public List<AdNewsGroupRecordVO> getAdNewsGroupRecord(Long partyId, Long messageStatisticId) {
Map<String,Object> map = new HashMap<>();
map.put("partyId",partyId );
map.put("messageStatisticId",messageStatisticId );
return super.getSqlSession().selectList(getStatement("getAdNewsGroupRecord"),map);
}
} }
...@@ -4,9 +4,12 @@ import com.pcloud.book.adnews.dao.AdNewsMessageStatisticDao; ...@@ -4,9 +4,12 @@ import com.pcloud.book.adnews.dao.AdNewsMessageStatisticDao;
import com.pcloud.book.adnews.entity.AdNewsGroupRecord; import com.pcloud.book.adnews.entity.AdNewsGroupRecord;
import com.pcloud.book.adnews.entity.AdNewsMessageStatistic; import com.pcloud.book.adnews.entity.AdNewsMessageStatistic;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import com.pcloud.common.page.PageBeanNew;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author zhengyongqiang * @author zhengyongqiang
......
package com.pcloud.book.adnews.vo; package com.pcloud.book.adnews.dto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
...@@ -13,6 +13,8 @@ import lombok.Data; ...@@ -13,6 +13,8 @@ import lombok.Data;
@Data @Data
public class AdNewsMessageStatistic extends BaseEntity { public class AdNewsMessageStatistic extends BaseEntity {
private static final long serialVersionUID = 5892129036072748567L;
@ApiModelProperty("群id") @ApiModelProperty("群id")
private Long qrcodeId; private Long qrcodeId;
...@@ -36,5 +38,5 @@ public class AdNewsMessageStatistic extends BaseEntity { ...@@ -36,5 +38,5 @@ public class AdNewsMessageStatistic extends BaseEntity {
@ApiModelProperty("insert时父子表标识") @ApiModelProperty("insert时父子表标识")
Integer insertMark; private Integer insertMark;
} }
package com.pcloud.book.adnews.facade; package com.pcloud.book.adnews.facade;
import com.pcloud.book.adnews.entity.AdNewsSet; import com.pcloud.book.adnews.entity.AdNewsSet;
import com.pcloud.book.adnews.entity.AdNewsWechat; import com.pcloud.book.adnews.dto.AdNewsListParam;
import com.pcloud.book.adnews.vo.AdNewsListParam;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -79,7 +77,7 @@ public interface AdNewsFacade { ...@@ -79,7 +77,7 @@ public interface AdNewsFacade {
@RequestHeader("token") @ApiParam("token信息") String token, @RequestHeader("token") @ApiParam("token信息") String token,
@RequestParam("adNewsId") @ApiParam("新闻id") Long adNewsId, @RequestParam("adNewsId") @ApiParam("新闻id") Long adNewsId,
@RequestParam("hasBan") @ApiParam("禁止推送") Integer hasBan @RequestParam("hasBan") @ApiParam("禁止推送") Integer hasBan
)throws BizException,PermissionException; ) throws BizException, PermissionException;
@ApiOperation("增加公众号反馈") @ApiOperation("增加公众号反馈")
@PostMapping("/addAdNewsWechat") @PostMapping("/addAdNewsWechat")
...@@ -117,4 +115,26 @@ public interface AdNewsFacade { ...@@ -117,4 +115,26 @@ public interface AdNewsFacade {
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage, @RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页条数") Integer numPerPage @RequestParam("numPerPage") @ApiParam("每页条数") Integer numPerPage
) throws BizException, PermissionException; ) throws BizException, PermissionException;
@ApiOperation("获取早晚报发送记录")
@GetMapping("/getAdNewsMessageStatistic")
ResponseDto<?> getAdNewsMessageStatistic(
@RequestHeader("token") @ApiParam("token信息") String token,
@RequestParam(value = "title", required = false) @ApiParam("群名称、群分类、社群码、社群书") String title,
@RequestParam(value = "beginTime", required = false) @ApiParam("开始日期") String beginTime,
@RequestParam(value = "endTime", required = false) @ApiParam("结束日期") String endTime,
@RequestParam(value = "proLabelId", required = false) @ApiParam("专业") String proLabelId,
@RequestParam(value = "depLabelId", required = false) @ApiParam("深度") String depLabelId,
@RequestParam(value = "purLabelId", required = false) @ApiParam("目的") String purLabelId,
@RequestParam(value = "currentPage", required = false, defaultValue = "0") @ApiParam("当前页") Integer currentPage,
@RequestParam(value = "numPerPage", required = false, defaultValue = "10") @ApiParam("每页条数") Integer numPerPage
) throws BizException, PermissionException;
@ApiOperation("查询早晚报发送详情")
@GetMapping("/getAdNewsGroupRecord")
ResponseDto<?> getAdNewsGroupRecord(
@RequestHeader("token") @ApiParam("token信息") String token,
@RequestParam("messageStatisticId") @ApiParam("统计表id") Long messageStatisticId
) throws BizException, PermissionException;
} }
...@@ -4,12 +4,11 @@ import com.pcloud.book.adnews.biz.AdNewsBiz; ...@@ -4,12 +4,11 @@ import com.pcloud.book.adnews.biz.AdNewsBiz;
import com.pcloud.book.adnews.entity.AdNewsSet; import com.pcloud.book.adnews.entity.AdNewsSet;
import com.pcloud.book.adnews.entity.AdNewsWechat; import com.pcloud.book.adnews.entity.AdNewsWechat;
import com.pcloud.book.adnews.facade.AdNewsFacade; import com.pcloud.book.adnews.facade.AdNewsFacade;
import com.pcloud.book.adnews.vo.AdNewsListParam; import com.pcloud.book.adnews.dto.AdNewsListParam;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.NumberUtil; import com.pcloud.common.utils.NumberUtil;
import com.pcloud.common.utils.SessionUtil; import com.pcloud.common.utils.SessionUtil;
...@@ -18,7 +17,6 @@ import io.swagger.annotations.ApiParam; ...@@ -18,7 +17,6 @@ import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -241,4 +239,39 @@ public class AdNewsFacadeImpl implements AdNewsFacade { ...@@ -241,4 +239,39 @@ public class AdNewsFacadeImpl implements AdNewsFacade {
} }
return new ResponseDto<>(adNewsBiz.getAdNewsWechatList(currentPage, numPerPage)); return new ResponseDto<>(adNewsBiz.getAdNewsWechatList(currentPage, numPerPage));
} }
@Override
@ApiOperation("获取早晚报发送记录")
@GetMapping("/getAdNewsMessageStatistic")
public ResponseDto<?> getAdNewsMessageStatistic(
@RequestHeader("token") @ApiParam("token信息") String token,
@RequestParam(value = "title", required = false) @ApiParam("群名称、群分类、社群码、社群书") String title,
@RequestParam(value = "beginTime", required = false) @ApiParam("开始日期") String beginTime,
@RequestParam(value = "endTime", required = false) @ApiParam("结束日期") String endTime,
@RequestParam(value = "proLabelId", required = false) @ApiParam("专业") String proLabelId,
@RequestParam(value = "depLabelId", required = false) @ApiParam("深度") String depLabelId,
@RequestParam(value = "purLabelId", required = false) @ApiParam("目的") String purLabelId,
@RequestParam(value = "currentPage", required = false, defaultValue = "0") @ApiParam("当前页") Integer currentPage,
@RequestParam(value = "numPerPage", required = false, defaultValue = "10") @ApiParam("每页条数") Integer numPerPage
) throws BizException, PermissionException{
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
if (currentPage == null || currentPage < 0) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "当前页不能为空且不能小于0!");
}
if (numPerPage == null || numPerPage <= 0) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "每页条数不能为空且必须大于0!");
}
return new ResponseDto<>(adNewsBiz.getAdNewsMessageStatistic(partyId,title,beginTime,endTime,proLabelId,depLabelId,purLabelId,currentPage,numPerPage));
}
@Override
@ApiOperation("查询早晚报发送详情")
@GetMapping("/getAdNewsGroupRecord")
public ResponseDto<?> getAdNewsGroupRecord(
@RequestHeader("token") @ApiParam("token信息") String token,
@RequestParam("messageStatisticId") @ApiParam("统计表id") Long messageStatisticId
) throws BizException, PermissionException{
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(adNewsBiz.getAdNewsGroupRecord(partyId,messageStatisticId));
}
} }
package com.pcloud.book.adnews.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author zhengyongqiang
* @date 2019/8/14 14:41
*/
@ApiModel
@Data
public class AdNewsGroupRecordVO {
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("新闻id")
private Long adNewsId;
@ApiModelProperty("公众号名称")
private String wechatName;
@ApiModelProperty("新闻标题")
private String title;
@ApiModelProperty("新闻短链接")
private String shortUrl;
@ApiModelProperty("自定义早晚报内容")
private String customContent;
}
package com.pcloud.book.adnews.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author zhengyongqiang
* @date 2019/8/14 10:43
*/
@Data
public class AdNewsMessageStatisticVO {
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("微信群名称")
private String groupName;
@ApiModelProperty("分类")
private String classify;
@ApiModelProperty("社群码名称")
private String groupQrcodeName;
@ApiModelProperty("社群书名称")
private String bookName;
@ApiModelProperty("专业")
private String depLabelName;
@ApiModelProperty("深度")
private String proLabelName;
@ApiModelProperty("目的")
private String purLabelName;
@ApiModelProperty("专业Id")
private Long depLabelId;
@ApiModelProperty("深度Id")
private Long proLabelId;
@ApiModelProperty("目的Id")
private Long purLabelId;
@ApiModelProperty("内容来源")
private Integer contentFrom;
@ApiModelProperty("发送消息数")
private Integer messageCount;
@ApiModelProperty("发送时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
...@@ -27,6 +27,22 @@ ...@@ -27,6 +27,22 @@
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</select> </select>
<select id="getAdNewsGroupRecord" resultType="com.pcloud.book.adnews.vo.AdNewsGroupRecordVO" parameterType="java.lang.Long">
SELECT
a.id,
a.ad_news_id adNewsId,
c.wechat_name wechatName,
b.title,
b.short_url shortUrl,
a.custom_content customContent
FROM
ad_news_group_record a
LEFT JOIN ad_news b ON a.ad_news_id=b.id
LEFT JOIN ad_news_wechat c ON b.news_from=c.news_from
WHERE a.message_statistic_id=#{messageStatisticId,jdbcType=BIGINT}
AND a.create_user=#{partyId,jdbcType=BIGINT}
</select>
<insert id="insert" parameterType="com.pcloud.book.adnews.entity.AdNewsGroupRecord" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="com.pcloud.book.adnews.entity.AdNewsGroupRecord" useGeneratedKeys="true" keyProperty="id">
insert into ad_news_group_record insert into ad_news_group_record
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
......
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.adnews.dao.impl.AdNewsMessageStatisticDaoImpl"> <mapper namespace="com.pcloud.book.adnews.dao.impl.AdNewsMessageStatisticDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.adnews.entity.AdNewsMessageStatistic"> <resultMap id="BaseResultMap" type="com.pcloud.book.adnews.entity.AdNewsMessageStatistic">
<id column="id" property="id" jdbcType="BIGINT"/> <id column="id" property="id" jdbcType="BIGINT"/>
...@@ -24,6 +24,54 @@ ...@@ -24,6 +24,54 @@
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</select> </select>
<select id="getAdNewsMessageStatistic" resultType="com.pcloud.book.adnews.vo.AdNewsMessageStatisticVO" parameterType="map">
SELECT
a.id,
d.group_name groupName,
c.classify classify,
b.group_qrcode_name groupQrcodeName,
e.BOOK_NAME bookName,
b.dep_label_id depLabelId,
b.pro_label_id proLabelId,
b.pur_label_id purLabelId,
a.message_count messageCount,
a.create_time createTime,
a.content_from contentFrom
FROM
ad_news_message_statistic a
INNER JOIN book_group b ON a.book_group_id = b.id
INNER JOIN book_group_classify c ON a.classify_id = c.id
INNER JOIN book_group_qrcode d ON d.classify_id = c.id
INNER JOIN book e ON b.book_id = e.BOOK_ID
WHERE
a.create_user = #{partyId}
<if test="title!=null">
AND (
d.group_name like concat('%', #{title}, '%')
OR c.classify like concat('%', #{title}, '%')
OR b.group_qrcode_name like concat('%', #{title}, '%')
OR e.BOOK_NAME like concat('%', #{title}, '%')
)
</if>
<if test="beginTime!=null">
AND a.create_time <![CDATA[>=]]>#{beginTime}
</if>
<if test="endTime!=null">
AND a.create_time <![CDATA[<=]]>#{endTime}
</if>
<if test="proLabelId!=null">
AND b.dep_label_id=#{proLabelId}
</if>
<if test="depLabelId!=null">
AND b.pro_label_id=#{depLabelId}
</if>
<if test="purLabelId!=null">
AND b.pur_label_id=#{purLabelId}
</if>
ORDER BY
a.create_time DESC
</select>
<insert id="insert" parameterType="com.pcloud.book.adnews.entity.AdNewsMessageStatistic" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="com.pcloud.book.adnews.entity.AdNewsMessageStatistic" useGeneratedKeys="true" keyProperty="id">
insert into ad_news_message_statistic insert into ad_news_message_statistic
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
......
import com.pcloud.book.BookApplication;
import com.pcloud.book.adnews.biz.AdNewsBiz;
import com.pcloud.book.book.biz.BookKeywordWarehouseBiz;
import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.vo.BookKeywordDetailVO;
import com.pcloud.book.book.vo.BookKeywordProductVO;
import com.pcloud.book.book.vo.KeywordWearhouseLabelVO;
import com.pcloud.book.book.vo.request.AddBookKeywordRequestVO;
import com.pcloud.book.book.vo.request.CheckKeywordRequestVO;
import com.pcloud.book.book.vo.request.EditBookKeywordRequestVO;
import com.pcloud.book.book.vo.request.QueryBookKeywordWarehouseRequestVO;
import com.pcloud.book.book.vo.response.BookKeywordResponseVO;
import com.pcloud.common.page.PageBeanNew;
import org.assertj.core.util.Lists;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = {BookApplication.class, BookKeywordWarehouseBizTest.class})
public class BookKeywordWarehouseBizTest {
@Resource
private BookKeywordWarehouseBiz bookKeywordWarehouseBiz;
@Resource
private AdNewsBiz adNewsBiz;
@Test
public void testQuartzAdNewsBiz(){
adNewsBiz.sendAdNews((2L));
}
@Test
public void addBookKeyword() {
AddBookKeywordRequestVO vo = new AddBookKeywordRequestVO();
vo.setUserId(1L);
vo.setKeyword("语文1");
vo.setGuide("12341234");
vo.setMatchingRule(0);
vo.setScope(0);
vo.setAuditStatus(1);
List<BookKeywordDetailVO> details = Lists.newArrayList();
for (Integer i = 1; i < 3; i++) {
BookKeywordDetailVO v = new BookKeywordDetailVO();
final List<KeywordWearhouseLabelVO> objects = Lists.newArrayList();
for (Integer j = 3; j < 6; j++) {
KeywordWearhouseLabelVO v1 = new KeywordWearhouseLabelVO();
v1.setProfessionalLabelId(6L);
v1.setDepthLabelId(j.longValue());
v1.setPurposeLabelId(j.longValue());
objects.add(v1);
}
v.setGroupId(1);
v.setProductId(1L);
v.setProductType("APP");
v.setDescription("111");
v.setLinkUrl("www.baidu.com");
v.setPicUrl("www.baidu.com");
details.add(v);
}
BookKeywordDetailVO v = new BookKeywordDetailVO();
final List<KeywordWearhouseLabelVO> objects = Lists.newArrayList();
KeywordWearhouseLabelVO v1 = new KeywordWearhouseLabelVO();
v1.setProfessionalLabelId(6L);
v1.setDepthLabelId(8L);
v1.setPurposeLabelId(9L);
objects.add(v1);
v.setLabels(Collections.singletonList(v1));
v.setGroupId(2);
v.setProductId(1L);
v.setProductType("APP");
v.setDescription("111");
v.setLinkUrl("www.baidu.com");
v.setPicUrl("www.baidu.com");
details.add(v);
vo.setDetails(details);
this.bookKeywordWarehouseBiz.addBookKeyword(vo, null);
}
@Test
public void editBookKeyword() {
EditBookKeywordRequestVO vo = new EditBookKeywordRequestVO();
vo.setUserId(3L);
vo.setKeywordId(1L);
vo.setKeyword("数学");
vo.setGuide("数学之美");
vo.setMatchingRule(0);
vo.setScope(0);
vo.setEditorId(1L);
List<BookKeywordDetailVO> details = Lists.newArrayList();
for (Integer i = 0; i < 3; i++) {
BookKeywordDetailVO v = new BookKeywordDetailVO();
final List<KeywordWearhouseLabelVO> objects = Lists.newArrayList();
for (Integer j = 3; j < 6; j++) {
KeywordWearhouseLabelVO v1 = new KeywordWearhouseLabelVO();
v1.setProfessionalLabelId(6L);
v1.setDepthLabelId(j.longValue());
v1.setPurposeLabelId(j.longValue());
objects.add(v1);
}
v.setGroupId(1);
v.setProductId(3L);
v.setProductType("APP");
v.setDescription("333");
v.setLinkUrl("www.baidu3.com");
v.setPicUrl("www.baidu3.com");
details.add(v);
}
BookKeywordDetailVO v = new BookKeywordDetailVO();
KeywordWearhouseLabelVO v1 = new KeywordWearhouseLabelVO();
v1.setProfessionalLabelId(6L);
v1.setDepthLabelId(8L);
v1.setPurposeLabelId(9L);
v.setLabels(Collections.singletonList(v1));
v.setGroupId(2);
v.setProductId(4L);
v.setProductType("APP");
v.setDescription("444");
v.setLinkUrl("www.baidu4.com");
v.setPicUrl("www.baidu4.com");
details.add(v);
vo.setDetails(details);
this.bookKeywordWarehouseBiz.editBookKeyword(vo);
}
@Test
public void deleteBookKeyword() {
this.bookKeywordWarehouseBiz.deleteBookKeyword(1L, 1L);
}
@Test
public void listBookKeywordWarehouse() {
QueryBookKeywordWarehouseRequestVO vo = new QueryBookKeywordWarehouseRequestVO();
vo.setCurrentPage(0);
vo.setNumPerPage(10);
vo.setKeyword("1234123414");
final PageBeanNew<BookKeywordResponseVO> warehouse = this.bookKeywordWarehouseBiz.listBookKeywordWarehouse(vo);
for (BookKeywordResponseVO responseVO : warehouse.getRecordList()) {
System.out.println(responseVO);
}
}
@Test
public void useKeyword() {
this.bookKeywordWarehouseBiz.useKeyword(1L, 1L);
}
@Test
public void oftenKeyword() {
final PageBeanNew<BookKeywordProductVO> oftenKeyword = this.bookKeywordWarehouseBiz.oftenKeyword(0, 10, 0L, 1L, 1L, 0L);
for (BookKeywordProductVO responseVO : oftenKeyword.getRecordList()) {
System.out.println(responseVO);
}
}
@Test
public void hotKeyword() {
final PageBeanNew<BookKeywordProductVO> oftenKeyword = this.bookKeywordWarehouseBiz.hotKeyword(0, 10, 47L, 50L,"", 1L, 0L);
for (BookKeywordProductVO responseVO : oftenKeyword.getRecordList()) {
System.out.println(responseVO);
}
}
@Test
public void auditKeyword() {
this.bookKeywordWarehouseBiz.auditKeyword(1L, 3L, BookConstant.BookKeywordAuditEnum.PASS_THE_AUDIT);
}
@Test
public void checkKeyword() {
CheckKeywordRequestVO vo = new CheckKeywordRequestVO();
final List<Long> longs = this.bookKeywordWarehouseBiz.checkKeyword(vo);
System.out.println(longs);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment