Commit 383a8c30 by 阮思源

解决冲突

parents 743d5362 4a741a38
...@@ -39,4 +39,9 @@ public interface AdvertisingSpaceService { ...@@ -39,4 +39,9 @@ public interface AdvertisingSpaceService {
@ApiImplicitParam(name = "userId", value = "用户登录id", dataType = "long", required = true, paramType = "query") @ApiImplicitParam(name = "userId", value = "用户登录id", dataType = "long", required = true, paramType = "query")
@GetMapping("getTagWxGroupIdsByUserId") @GetMapping("getTagWxGroupIdsByUserId")
ResponseEntity<ResponseDto<List<String>>> getTagWxGroupIdsByUserId(@RequestParam("userId") Long userId); ResponseEntity<ResponseDto<List<String>>> getTagWxGroupIdsByUserId(@RequestParam("userId") Long userId);
@ApiOperation(value = "查微信群标记的品牌方id", httpMethod = "GET")
@ApiImplicitParam(name = "wxGroupId", value = "微信群id", dataType = "string", required = true, paramType = "query")
@GetMapping("getBrandIdsByWxGroupId")
ResponseEntity<ResponseDto<List<Long>>> getBrandIdsByWxGroupId(@RequestParam("wxGroupId") String wxGroupId);
} }
...@@ -93,6 +93,21 @@ public class GroupQrcodeInfo4Advertising extends BaseDto { ...@@ -93,6 +93,21 @@ public class GroupQrcodeInfo4Advertising extends BaseDto {
*/ */
private Integer advertisingSpaceNum; private Integer advertisingSpaceNum;
/**
* 分类id
*/
private Long classifyId;
/**
* 社群码id
*/
private Long bookGroupId;
/**
* 进群方式:1群二维码,2客服机器人
*/
private Integer joinGroupType;
public String getWxGroupId() { public String getWxGroupId() {
return wxGroupId; return wxGroupId;
} }
...@@ -245,6 +260,30 @@ public class GroupQrcodeInfo4Advertising extends BaseDto { ...@@ -245,6 +260,30 @@ public class GroupQrcodeInfo4Advertising extends BaseDto {
this.purLabelName = purLabelName; this.purLabelName = purLabelName;
} }
public Long getClassifyId() {
return classifyId;
}
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
public Long getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public Integer getJoinGroupType() {
return joinGroupType;
}
public void setJoinGroupType(Integer joinGroupType) {
this.joinGroupType = joinGroupType;
}
@Override @Override
public String toString() { public String toString() {
return "GroupQrcodeInfo4Advertising{" + return "GroupQrcodeInfo4Advertising{" +
...@@ -267,6 +306,9 @@ public class GroupQrcodeInfo4Advertising extends BaseDto { ...@@ -267,6 +306,9 @@ public class GroupQrcodeInfo4Advertising extends BaseDto {
", agentName='" + agentName + '\'' + ", agentName='" + agentName + '\'' +
", isOpen=" + isOpen + ", isOpen=" + isOpen +
", advertisingSpaceNum=" + advertisingSpaceNum + ", advertisingSpaceNum=" + advertisingSpaceNum +
'}'; ", classifyId=" + classifyId +
", bookGroupId=" + bookGroupId +
", joinGroupType=" + joinGroupType +
"} " + super.toString();
} }
} }
...@@ -10,7 +10,6 @@ import org.springframework.amqp.core.Binding; ...@@ -10,7 +10,6 @@ import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.Queue; import org.springframework.amqp.core.Queue;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients; import org.springframework.cloud.netflix.feign.EnableFeignClients;
...@@ -32,7 +31,6 @@ import springfox.documentation.spring.web.plugins.Docket; ...@@ -32,7 +31,6 @@ import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication @SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("com.pcloud") @ComponentScan("com.pcloud")
@EnableEurekaClient @EnableEurekaClient
@EnableFeignClients("com.pcloud") @EnableFeignClients("com.pcloud")
...@@ -221,4 +219,15 @@ public class BookApplication { ...@@ -221,4 +219,15 @@ public class BookApplication {
public Binding wxGroupUserBindBind(){ public Binding wxGroupUserBindBind(){
return RabbitMQFactory.bindingExchange(wxGroupUserBindQueue(), MQTopicProducer.WXGROUP_USER_BIND); return RabbitMQFactory.bindingExchange(wxGroupUserBindQueue(), MQTopicProducer.WXGROUP_USER_BIND);
} }
@Bean
public Queue wxLiveBroadcastReminderBindQueue(){
return RabbitMQFactory.queueBuilder(MQTopicConumer.WX_LIVE_BROADCAST_REMINDER);
}
@Bean
public Binding wxLiveBroadcastReminderBindBind(){
return RabbitMQFactory.bindingExchange(wxLiveBroadcastReminderBindQueue(), MQTopicProducer.WX_LIVE_BROADCAST_REMINDER);
}
} }
...@@ -442,7 +442,7 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -442,7 +442,7 @@ public class AdNewsBizImpl implements AdNewsBiz {
int i = 1; int i = 1;
for (AdNews adNews : adNewsList) { for (AdNews adNews : adNewsList) {
String temp = content + i + "." + adNews.getTitle() + adNews.getShortUrl() + "\n"; String temp = content + i + "." + adNews.getTitle() + adNews.getShortUrl() + "\n";
if (temp.length() >= 300) { if (temp.length() >= 1000) {
// 如果本次拼接后的长度大于 300,那么将之前拼接的内容存入数组 // 如果本次拼接后的长度大于 300,那么将之前拼接的内容存入数组
contents.add(content); contents.add(content);
// 重置 content 的内容 // 重置 content 的内容
......
package com.pcloud.book.advertising.biz; package com.pcloud.book.advertising.biz;
import java.util.List; import com.pcloud.book.advertising.dto.AdvertisingCpaDTO;
import java.util.Map;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO; import com.pcloud.book.advertising.dto.AdvertisingMasterDTO;
import com.pcloud.book.advertising.dto.AdvertisingSpaceDTO; import com.pcloud.book.advertising.dto.AdvertisingSpaceDTO;
import com.pcloud.book.advertising.dto.AdvertisingWechatMsgDTO;
import com.pcloud.book.advertising.dto.QrcodeAdvertisingSpaceCountDTO; import com.pcloud.book.advertising.dto.QrcodeAdvertisingSpaceCountDTO;
import com.pcloud.book.advertising.entity.*; import com.pcloud.book.advertising.entity.AdvertisingAdviserPermission;
import com.pcloud.book.advertising.entity.AdvertisingAgentPermission;
import com.pcloud.book.advertising.entity.AdvertisingBrowseRecord;
import com.pcloud.book.advertising.entity.AdvertisingClickRecord;
import com.pcloud.book.advertising.entity.AdvertisingCpa;
import com.pcloud.book.advertising.entity.AdvertisingDistributionBook;
import com.pcloud.book.advertising.entity.AdvertisingExposureRecord;
import com.pcloud.book.advertising.entity.AdvertisingMaster;
import com.pcloud.book.advertising.entity.AdvertisingPilotRecord;
import com.pcloud.book.advertising.entity.AdvertisingPlan;
import com.pcloud.book.advertising.entity.AdvertisingSpace;
import com.pcloud.book.advertising.entity.AdvertisingWechatMsg;
import com.pcloud.book.group.dto.AdGroupQrcodeDTO; import com.pcloud.book.group.dto.AdGroupQrcodeDTO;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
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 java.util.List;
import java.util.Map;
/** /**
* Description 广告位业务逻辑层接口 * Description 广告位业务逻辑层接口
* @author PENG * @author PENG
...@@ -170,7 +184,7 @@ public interface AdvertisingSpaceBiz { ...@@ -170,7 +184,7 @@ public interface AdvertisingSpaceBiz {
* @return * @return
* @throws BizException * @throws BizException
*/ */
PageBean list(String name, PageParam pageParam, Boolean filterClose, Boolean filterTest, String adPosition) throws BizException; PageBean list(String name, PageParam pageParam, Boolean filterClose, Boolean filterTest, String adPosition, String type) throws BizException;
/** /**
* 书刊广告位明细 * 书刊广告位明细
...@@ -471,4 +485,63 @@ public interface AdvertisingSpaceBiz { ...@@ -471,4 +485,63 @@ public interface AdvertisingSpaceBiz {
* @param peopleCounts * @param peopleCounts
*/ */
void updateExposureByQrcode(Long qrcodeId, Integer peopleCounts); void updateExposureByQrcode(Long qrcodeId, Integer peopleCounts);
/**
* 创建多条微信群消息
* @param advertisingWechatMsgList
*/
void createWechatGroupMsg(List<AdvertisingWechatMsg> advertisingWechatMsgList);
/**
* 创建cpa内容
* @param advertisingCpa
* @return
*/
Long createCPAContent(AdvertisingCpa advertisingCpa);
/**
* 修改cpa内容
* @param advertisingCpa
*/
void updateCPAContent(AdvertisingCpa advertisingCpa);
/**
* 删除cpa内容
* @param cpaId
*/
void deleteCPAContent(Long cpaId);
/**
* 根据id查询cpa内容
* @param cpaId
* @return
*/
AdvertisingCpaDTO getCPAContentById(Long cpaId);
/**
* 分页查询cpa内容
* @param title
* @param detailMode
* @return
*/
PageBeanNew<AdvertisingCpaDTO> listPageCPAContent(String title, String detailMode, Integer currentPage, Integer numPerPage);
/**
* 分页查询cpalink
* @param title
* @param detailMode
* @return
*/
PageBeanNew<AdvertisingCpaDTO> listPageCPALink(String title, String detailMode, Integer currentPage, Integer numPerPage);
/**
* 根据广告id查询
* @param adId
* @return
*/
List<AdvertisingWechatMsgDTO> getWechatGroupMsgListByAdId(Long adId);
/**
* cpa内容旧数据处理
*/
void dealOldCPAContent();
} }
...@@ -35,7 +35,7 @@ public interface BmBiz { ...@@ -35,7 +35,7 @@ public interface BmBiz {
* 新增选项列表 * 新增选项列表
* @param advertisingBmOptionList * @param advertisingBmOptionList
*/ */
void addOptionList(List<AdvertisingBmOption> advertisingBmOptionList,Long adId); void addOptionList(List<AdvertisingBmOption> advertisingBmOptionList, Long cpaId);
/** /**
* 新增选项配置 * 新增选项配置
...@@ -45,12 +45,12 @@ public interface BmBiz { ...@@ -45,12 +45,12 @@ public interface BmBiz {
*/ */
Long addOption(AdvertisingBmOption bmOption) throws BizException; Long addOption(AdvertisingBmOption bmOption) throws BizException;
/** /**
* 根据应用ID获取选项列表信息 * 根据cpaID获取选项列表信息
* @param adId 选项实体 * @param cpaId 选项实体
* @return * @return
* @throws BizException * @throws BizException
*/ */
List<AdvertisingBmOption> getByAdId(Long adId); List<AdvertisingBmOption> getByCPAId(Long cpaId);
/** /**
* 修改选项配置 * 修改选项配置
...@@ -62,9 +62,9 @@ public interface BmBiz { ...@@ -62,9 +62,9 @@ public interface BmBiz {
/** /**
* 删除选项 * 删除选项
* @param adId * @param cpaId
*/ */
void deleteByAdId(Long adId); void deleteByCPAId(Long cpaId);
/** /**
* 用户提交表单 * 用户提交表单
......
package com.pcloud.book.advertising.biz; package com.pcloud.book.advertising.biz;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO; import com.pcloud.book.advertising.dto.AdvertisingBrandDTO;
import com.pcloud.book.advertising.dto.Book4AdvertisingMasterDTO; import com.pcloud.book.advertising.dto.Book4AdvertisingTagDTO;
import com.pcloud.book.advertising.dto.GroupMasterAddDTO; import com.pcloud.book.advertising.dto.GroupTagAddDTO;
import com.pcloud.book.advertising.dto.GroupMasterDTO; import com.pcloud.book.advertising.dto.GroupTagDTO;
import com.pcloud.book.advertising.entity.AdvertisingBrand;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import java.util.List; import java.util.List;
...@@ -16,65 +18,65 @@ import java.util.Map; ...@@ -16,65 +18,65 @@ import java.util.Map;
* @创建时间:18:47 2019/8/22 * @创建时间:18:47 2019/8/22
* @版本:1.0 * @版本:1.0
*/ */
public interface GroupMasterTagBiz { public interface GroupTagBiz {
/** /**
* 微信群广告主标记列表 * 微信群品牌标记列表
* @param currentPage * @param currentPage
* @param numPerPage * @param numPerPage
* @param paramMap * @param paramMap
* @return * @return
*/ */
PageBeanNew<GroupMasterDTO> listPageGroupMaster(Integer currentPage, Integer numPerPage, Map<String, Object> paramMap); PageBeanNew<GroupTagDTO> listPageGroup4Brand(Integer currentPage, Integer numPerPage, Map<String, Object> paramMap);
/** /**
* 获取品牌方广告主 * 获取品牌方
* @return * @return
* @throws BizException * @throws BizException
*/ */
List<AdvertisingMasterDTO> getBrandMaster() throws BizException; List<AdvertisingBrandDTO> getAllBrand() throws BizException;
/** /**
* 微信群标记广告主 * 微信群标记品牌方
* @param groupMasterAddDTO * @param groupTagAddDTO
*/ */
void setGroupMaster(GroupMasterAddDTO groupMasterAddDTO); void setGroupBrand(GroupTagAddDTO groupTagAddDTO);
/** /**
* 广告主标记-图书列表 * 品牌标记-图书列表
* @param currentPage * @param currentPage
* @param numPerPage * @param numPerPage
* @param name * @param name
* @return * @return
*/ */
PageBeanNew<Book4AdvertisingMasterDTO> listPageBook4AdMaster(Integer currentPage, Integer numPerPage, String name); PageBeanNew<Book4AdvertisingTagDTO> listPageBook4AdBrand(Integer currentPage, Integer numPerPage, String name);
/** /**
* 品牌方广告主-微信群列表 * 品牌方-微信群列表
* @param userId * @param userId
* @param currentPage * @param currentPage
* @param numPerPage * @param numPerPage
* @param paramMap * @param paramMap
* @return * @return
*/ */
PageBeanNew<GroupMasterDTO> listPageGroupList4Master(Long userId, Integer currentPage, Integer numPerPage, Map<String, Object> paramMap); PageBeanNew<GroupTagDTO> listPageGroupList4Brand(Long userId, Integer currentPage, Integer numPerPage, Map<String, Object> paramMap);
/** /**
* 微信群广告主标记列表-导出 * 微信群品牌方标记列表-导出
* @param name * @param name
* @param proLabelId * @param proLabelId
* @param depLabelId * @param depLabelId
* @param purLabelId * @param purLabelId
* @param masterId * @param brandId
*/ */
void exportGroupMaster(String name, Long proLabelId, Long depLabelId, Long purLabelId, Long masterId, Long partyId); void exportGroupBrand(String name, Long proLabelId, Long depLabelId, Long purLabelId, Long brandId, Long partyId);
/** /**
* 品牌方广告主-微信群导出 * 品牌方-微信群导出
* @param partyId * @param userId
* @param paramMap * @param paramMap
*/ */
void exportGroupList4Master(Long partyId, Map<String, Object> paramMap, Long userId); Map<String,Object> exportGroupList4Brand(Map<String, Object> paramMap, Long userId);
/** /**
* 根据登录用户获取标记的微信群列表 * 根据登录用户获取标记的微信群列表
...@@ -84,28 +86,21 @@ public interface GroupMasterTagBiz { ...@@ -84,28 +86,21 @@ public interface GroupMasterTagBiz {
List<String> getTagWxGroupIdsByUserId(Long userId); List<String> getTagWxGroupIdsByUserId(Long userId);
/** /**
* 品牌方广告主-微信群基本信息列表 * 品牌方-微信群基本信息列表
* @param currentPage * @param currentPage
* @param numPerPage * @param numPerPage
* @param name * @param name
* @param userId * @param userId
* @return * @return
*/ */
PageBeanNew<GroupMasterDTO> listPageGroupBaseInfo4Master(Integer currentPage, Integer numPerPage, String name, Long userId); PageBeanNew<GroupTagDTO> listPageGroupBaseInfo4Brand(Integer currentPage, Integer numPerPage, String name, Long userId);
/** /**
* 修改广告主的登录id * 品牌方已标记的书刊id
* @param masterId * @param brandId
* @param loginId
*/
void updateMasterLoginId(Long masterId, Long loginId);
/**
* 广告主已标记的书刊id
* @param masterId
* @return * @return
*/ */
List<Long> getTagBookIds4AdMatser(Long masterId); List<Long> getTagBookIds4AdBrand(Long brandId);
/** /**
* 已标记的书标记新的群 * 已标记的书标记新的群
...@@ -113,4 +108,63 @@ public interface GroupMasterTagBiz { ...@@ -113,4 +108,63 @@ public interface GroupMasterTagBiz {
* @param qrcodeId * @param qrcodeId
*/ */
public void addTagByBookGroup(Long classifyId, Long qrcodeId); public void addTagByBookGroup(Long classifyId, Long qrcodeId);
/**
* 创建品牌方账号
* @param advertisingBrand
* @return
*/
Long createBrand(AdvertisingBrand advertisingBrand);
/**
* 根据id查品牌方信息(明文密码)
* @param brandId
* @return
*/
AdvertisingBrandDTO getBrandById(Long brandId);
/**
* 修改品牌方密码
* @param advertisingBrand
*/
void updateBrandPassword(AdvertisingBrand advertisingBrand);
/**
* 根据id删除品牌方
* @param brandId
*/
void deleteBrandById(Long brandId);
/**
* 分页查询品牌方
* @param currentPage
* @param numPerPage
* @param name
* @return
*/
PageBean listPageBrand(Integer currentPage, Integer numPerPage, String name);
/**
* 品牌方登录
* @param advertisingBrandDTO
* @return
*/
Map<String,Object> brandLogin(AdvertisingBrandDTO advertisingBrandDTO);
/**
* 查微信群标记的品牌方id
* @param wxGroupId
* @return
*/
List<Long> getBrandIdsByWxGroupId(String wxGroupId);
/**
* 品牌方旧数据处理
*/
void dealOldBrandStatistic();
/**
* 获取品牌方登录信息
* @param userId
* @return
*/
Map<String,Object> getBrandLoginInfo(Long userId);
} }
...@@ -104,12 +104,6 @@ public class BmBizImpl implements BmBiz { ...@@ -104,12 +104,6 @@ public class BmBizImpl implements BmBiz {
list.add(optionType); list.add(optionType);
optionType = new OptionType("select", "选择(列表/菜单)"); optionType = new OptionType("select", "选择(列表/菜单)");
list.add(optionType); list.add(optionType);
// optionType = new OptionType("levelselect", "2级选择(列表/菜单)");
// list.add(optionType);
optionType = new OptionType("file", "文件域");
list.add(optionType);
// optionType = new OptionType("areas", "省市区");
// list.add(optionType);
return list; return list;
} }
...@@ -137,8 +131,6 @@ public class BmBizImpl implements BmBiz { ...@@ -137,8 +131,6 @@ public class BmBizImpl implements BmBiz {
list.add(optionType); list.add(optionType);
optionType = new OptionType("idcard", "身份证"); optionType = new OptionType("idcard", "身份证");
list.add(optionType); list.add(optionType);
// optionType = new OptionType("image", "图片");
// list.add(optionType);
return list; return list;
} }
...@@ -146,13 +138,13 @@ public class BmBizImpl implements BmBiz { ...@@ -146,13 +138,13 @@ public class BmBizImpl implements BmBiz {
* 新增选项列表 * 新增选项列表
*/ */
@Override @Override
public void addOptionList(List<AdvertisingBmOption> advertisingBmOptionList, Long adId) { public void addOptionList(List<AdvertisingBmOption> advertisingBmOptionList, Long cpaId) {
if (ListUtils.isEmpty(advertisingBmOptionList) || null == adId) { if (ListUtils.isEmpty(advertisingBmOptionList) || null == cpaId) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
} }
List<Long> optionIds = bmOptionDao.getOptionIdsByAdId(adId); List<Long> optionIds = bmOptionDao.getOptionIdsByCPAId(cpaId);
for (AdvertisingBmOption bmOption : advertisingBmOptionList) { for (AdvertisingBmOption bmOption : advertisingBmOptionList) {
bmOption.setAdId(adId); bmOption.setCpaId(cpaId);
if (!ListUtils.isEmpty(optionIds) && null != bmOption.getId()) {//修改选项 if (!ListUtils.isEmpty(optionIds) && null != bmOption.getId()) {//修改选项
modifyOption(bmOption); modifyOption(bmOption);
optionIds.remove(bmOption.getId()); optionIds.remove(bmOption.getId());
...@@ -175,7 +167,7 @@ public class BmBizImpl implements BmBiz { ...@@ -175,7 +167,7 @@ public class BmBizImpl implements BmBiz {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Long addOption(AdvertisingBmOption bmOption) throws BizException { public Long addOption(AdvertisingBmOption bmOption) throws BizException {
if (null == bmOption.getAdId() || StringUtil.isEmpty(bmOption.getItemInputType()) if (null == bmOption.getCpaId() || StringUtil.isEmpty(bmOption.getItemInputType())
|| StringUtil.isEmpty(bmOption.getItemDataType()) || StringUtil.isEmpty(bmOption.getItemTitle())) { || StringUtil.isEmpty(bmOption.getItemDataType()) || StringUtil.isEmpty(bmOption.getItemTitle())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
} }
...@@ -219,11 +211,11 @@ public class BmBizImpl implements BmBiz { ...@@ -219,11 +211,11 @@ public class BmBizImpl implements BmBiz {
* 根据广告ID获取选项列表信息 * 根据广告ID获取选项列表信息
*/ */
@Override @Override
public List<AdvertisingBmOption> getByAdId(Long adId) throws BizException { public List<AdvertisingBmOption> getByCPAId(Long cpaId) throws BizException {
if (null == adId){ if (null == cpaId){
return new ArrayList<>(); return new ArrayList<>();
} }
List<AdvertisingBmOption> list = bmOptionDao.getByAdId(adId); List<AdvertisingBmOption> list = bmOptionDao.getByCPAId(cpaId);
return list; return list;
} }
...@@ -235,7 +227,7 @@ public class BmBizImpl implements BmBiz { ...@@ -235,7 +227,7 @@ public class BmBizImpl implements BmBiz {
public void modifyOption(AdvertisingBmOption bmOption) throws BizException { public void modifyOption(AdvertisingBmOption bmOption) throws BizException {
Long optionId = bmOption.getId(); Long optionId = bmOption.getId();
// 校验参数 // 校验参数
if (null == bmOption.getAdId() || null == optionId || StringUtil.isEmpty(bmOption.getItemInputType()) if (null == bmOption.getCpaId() || null == optionId || StringUtil.isEmpty(bmOption.getItemInputType())
|| StringUtil.isEmpty(bmOption.getItemDataType()) || StringUtil.isEmpty(bmOption.getItemTitle())) { || StringUtil.isEmpty(bmOption.getItemDataType()) || StringUtil.isEmpty(bmOption.getItemTitle())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
} }
...@@ -249,8 +241,8 @@ public class BmBizImpl implements BmBiz { ...@@ -249,8 +241,8 @@ public class BmBizImpl implements BmBiz {
} }
@Override @Override
public void deleteByAdId(Long adId) { public void deleteByCPAId(Long cpaId) {
List<Long> optionIds = bmOptionDao.getOptionIdsByAdId(adId); List<Long> optionIds = bmOptionDao.getOptionIdsByCPAId(cpaId);
if (ListUtils.isEmpty(optionIds)) { if (ListUtils.isEmpty(optionIds)) {
return; return;
} }
...@@ -271,11 +263,12 @@ public class BmBizImpl implements BmBiz { ...@@ -271,11 +263,12 @@ public class BmBizImpl implements BmBiz {
if (null == space) { if (null == space) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位不存在或已删除!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位不存在或已删除!");
} }
Long cpaId = space.getCpaId();
List<AdvertisingBmRegisterItem> items = bmRegister.getBmRegisterItemList(); List<AdvertisingBmRegisterItem> items = bmRegister.getBmRegisterItemList();
if (ListUtils.isEmpty(items)) { if (ListUtils.isEmpty(items)) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "请填写表单"); throw new BookBizException(BookBizException.PARAM_IS_ERROR, "请填写表单");
} }
Long mobilePhoneOptionId = bmOptionDao.getMobilePhoneOptionIdByAd(adId); Long mobilePhoneOptionId = bmOptionDao.getMobilePhoneOptionIdByCPA(cpaId);
Optional<AdvertisingBmRegisterItem> itemOptional = items.stream().filter(s -> s != null && s.getOptionId() == mobilePhoneOptionId).findFirst(); Optional<AdvertisingBmRegisterItem> itemOptional = items.stream().filter(s -> s != null && s.getOptionId() == mobilePhoneOptionId).findFirst();
if (itemOptional.isPresent()) {// 存在 if (itemOptional.isPresent()) {// 存在
AdvertisingBmRegisterItem registerItem = itemOptional.get(); AdvertisingBmRegisterItem registerItem = itemOptional.get();
...@@ -398,7 +391,7 @@ public class BmBizImpl implements BmBiz { ...@@ -398,7 +391,7 @@ public class BmBizImpl implements BmBiz {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
try { try {
String title = spaceDTO.getAdName() + "-客户信息"; String title = spaceDTO.getAdName() + "-客户信息";
List<AdvertisingBmOption> optionList = bmOptionDao.getByAdId(adId); List<AdvertisingBmOption> optionList = bmOptionDao.getByCPAId(spaceDTO.getCpaId());
List<String> rowsNameList = new ArrayList<>(); List<String> rowsNameList = new ArrayList<>();
rowsNameList.add("序号"); rowsNameList.add("序号");
rowsNameList.add("报名人"); rowsNameList.add("报名人");
......
package com.pcloud.book.advertising.check;
import com.pcloud.book.advertising.entity.AdvertisingCpa;
import com.pcloud.book.advertising.entity.AdvertisingDetailFile;
import com.pcloud.book.advertising.entity.AdvertisingSpace;
import com.pcloud.book.advertising.enums.AdDetailModeEnum;
import com.pcloud.book.advertising.enums.AdPositionDetailEnum;
import com.pcloud.book.advertising.enums.AdPositionEnum;
import com.pcloud.book.advertising.enums.AdPositionModeEnum;
import com.pcloud.book.advertising.enums.SettlementMethodEnum;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.string.StringUtil;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @描述:广告位参数校验
* @作者:zhuyajie
* @创建时间:11:15 2019/9/4
* @版本:1.0
*/
@Component("advertisingCheck")
public class AdvertisingCheck {
/**
* 新增广告位前校验参数
*/
public void checkParamBeforeCreate(AdvertisingSpace advertisingSpace) {
String adPosition = advertisingSpace.getAdPosition();
if (null == advertisingSpace.getAdName() || null == advertisingSpace.getMasterId() || null == advertisingSpace.getSettlementMethod()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
/* if (!AdPositionEnum.checkCodeExist(adPosition)) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位置选择有误!");
}
if (!AdPositionModeEnum.checkCodeExist(adPosition, advertisingSpace.getAdPositionMode())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位置选择有误!");
}
if (AdPositionEnum.BOOK_GROUP_PAGE.equals(adPosition)
&& !AdPositionDetailEnum.checkCodeExist(adPosition, advertisingSpace.getAdPositionDetail())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位置选择有误!");
}*/
String settlementMethod = advertisingSpace.getSettlementMethod();
//按点击量结算、按曝光量结算、按实际行动结算价格不为空
if (ArrayUtils.contains(SettlementMethodEnum.SETTLEMENT_METHOD_NEED_PRICE_GATHER, settlementMethod)
&& null == advertisingSpace.getPriceEachTime()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "价格不能为空!");
}
}
/**
* CPA方式参数校验
* @param advertisingCpa
*/
public void checkCPAParam(AdvertisingCpa advertisingCpa) {
List<AdvertisingDetailFile> fileList = advertisingCpa.getAdvertisingDetailFileList();
if (StringUtil.isEmpty(advertisingCpa.getDetailMode())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告详情不能为空!");
}
if (ListUtils.isEmpty(advertisingCpa.getAdvertisingBmOptionList())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "报名表单不能为空!");
}
if (StringUtil.isEmpty(advertisingCpa.getDetailInfo())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "产品介绍不能为空!");
}
if (StringUtil.isEmpty(advertisingCpa.getWelfarePic())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "优惠展示图不能为空!");
}
//1图文介绍
if (AdDetailModeEnum.IMG_TEXT.code.equals(advertisingCpa.getDetailMode())) {
if (StringUtil.isEmpty(advertisingCpa.getCoverPic())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "封面不能为空!");
}
}
//2音频试听
else if (AdDetailModeEnum.AUDIO.code.equals(advertisingCpa.getDetailMode())) {
if (ListUtils.isEmpty(fileList)) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "请上传音频资源!");
}
for (AdvertisingDetailFile file : fileList) {
if (StringUtil.isEmpty(file.getFileId())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "请上传音频资源!");
}
if (StringUtil.isEmpty(file.getTitle())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "标题不能为空!");
}
}
}
//3视频试看
else if (AdDetailModeEnum.VIDEO.code.equals(advertisingCpa.getDetailMode())) {
if (ListUtils.isEmpty(fileList)) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "请上传视频资源!");
}
for (AdvertisingDetailFile file : fileList) {
if (StringUtil.isEmpty(file.getCoverPic())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "封面不能为空!");
}
if (StringUtil.isEmpty(file.getFileId())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "请上传视频资源!");
}
if (StringUtil.isEmpty(file.getTitle())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "标题不能为空!");
}
}
}
//报名设置
if (null == advertisingCpa.getFormMobileCheck()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "手机号校验不能为空!");
}
if (StringUtil.isEmpty(advertisingCpa.getFormRemark())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "报名表单备注不能为空!");
}
if (StringUtil.isEmpty(advertisingCpa.getFormButton())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "按钮提示不能为空!");
}
}
/**
* 判断链接文本长度
* @param adTitle
*/
/*public void checkLinkLength(String adTitle){
List<String> linkList = getLinkList(adTitle);
int linkLength = 0;//短链接长度
if (!ListUtils.isEmpty(linkList)) {
for (String link : linkList) {
adTitle = adTitle.replace(link, "");
linkLength = linkLength + 26;
}
}
int length = linkLength + adTitle.length();
if (length > 300) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "文本长度超过300!");
}
}*/
/* private List<String> getLinkList(String title) {
List<String> list = new ArrayList<>();
Pattern pa = Pattern.compile("<link>.*?</link>");//标题正则表达式
Matcher ma = pa.matcher(title);
while (ma.find()) {
list.add(ma.group());
}
return list;
}*/
}
package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.dto.AdvertisingBrandDTO;
import com.pcloud.book.advertising.entity.AdvertisingBrand;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @描述:广告品牌方
* @作者:zhuyajie
* @创建时间:15:25 2019/9/9
* @版本:1.0
*/
public interface AdvertisingBrandDao extends BaseDao<AdvertisingBrand> {
/**
* 根据群id查标记的品牌方
* @param groupQrcodeId
* @return
*/
List<AdvertisingBrandDTO> getByGroupQrcodeId(Long groupQrcodeId);
/**
* 所有品牌方列表
* @return
*/
List<AdvertisingBrandDTO> getAllBrand();
/**
* 根据登录id查品牌方id
* @param userId
* @return
*/
Long getBrandIdByUserLoginId(Long userId);
/**
* 删除品牌方(假删除)
* @param brandId
*/
void deleteBrand(Long brandId);
/**
* 根据id查询
* @param brandId
* @return
*/
AdvertisingBrandDTO getBrandById(Long brandId);
/**
* 品牌名称是否重复
* @param brandName
* @return
*/
Boolean checkBrandNameRepeat(String brandName);
/**
* 登录名是否重复
* @param loginName
* @return
*/
Boolean checkLoginNameRepeat(String loginName);
/**
* 查询登录信息
* @param loginName
* @return
*/
AdvertisingBrand getLoginInfo(String loginName);
}
...@@ -57,4 +57,18 @@ public interface AdvertisingClickRecordDao extends BaseDao<AdvertisingClickRecor ...@@ -57,4 +57,18 @@ public interface AdvertisingClickRecordDao extends BaseDao<AdvertisingClickRecor
* @return * @return
*/ */
public Long getClickUserNumByBookId(Long adId, Long bookId, Long adviserId, Long channelId, String statisMonth); public Long getClickUserNumByBookId(Long adId, Long bookId, Long adviserId, Long channelId, String statisMonth);
/**
* 根据CPAID查点击次数
* @param cpaId
* @return
*/
public Long getClickNumByCPAId(Long cpaId);
/**
* 根据cpaid查点击人数
* @param cpaId
* @return
*/
public Long getClickUserNumByCPAId(Long cpaId);
} }
package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.entity.AdvertisingCpa;
import com.pcloud.common.core.dao.BaseDao;
/**
* @描述:cpa内容
* @作者:zhuyajie
* @创建时间:15:44 2019/9/3
* @版本:1.0
*/
public interface AdvertisingCpaDao extends BaseDao<AdvertisingCpa> {
}
...@@ -15,14 +15,21 @@ public interface AdvertisingDetailFileDao extends BaseDao<AdvertisingDetailFile> ...@@ -15,14 +15,21 @@ public interface AdvertisingDetailFileDao extends BaseDao<AdvertisingDetailFile>
/** /**
* 根据广告id查询 * 根据广告id查询
* @param adId * @param cpaId
* @return * @return
*/ */
public List<AdvertisingDetailFile> getByAdId(Long adId); public List<AdvertisingDetailFile> getByCPAId(Long cpaId);
/** /**
* 删除文件 * 删除文件
* @param cpaId
*/
void deleteByCPAId(Long cpaId);
/**
* 更新cpaId
* @param adId * @param adId
* @param cpaId
*/ */
void deleteByAdId(Long adId); void updateCPAId(Long adId, Long cpaId);
} }
...@@ -24,4 +24,11 @@ public interface AdvertisingExposureRecordDao extends BaseDao<AdvertisingExposur ...@@ -24,4 +24,11 @@ public interface AdvertisingExposureRecordDao extends BaseDao<AdvertisingExposur
* @param peopleCounts * @param peopleCounts
*/ */
void updateExposureByQrcode(Long qrcodeId, Integer peopleCounts); void updateExposureByQrcode(Long qrcodeId, Integer peopleCounts);
/**
* 根据cpaid查曝光量
* @param cpaId
* @return
*/
public Long getExposureNumByCPAId(Long cpaId);
} }
...@@ -14,17 +14,17 @@ import java.util.List; ...@@ -14,17 +14,17 @@ import java.util.List;
public interface AdvertisingGroupTagDao extends BaseDao<AdvertisingGroupTag> { public interface AdvertisingGroupTagDao extends BaseDao<AdvertisingGroupTag> {
/** /**
* 根据广告主删除 * 根据品牌方删除
* @param masterId * @param brandId
*/ */
public void deleteByMasterId(Long masterId); public void deleteByBrandId(Long brandId);
/** /**
* 已标记的书 * 已标记的书
* @param masterId * @param brandId
* @return * @return
*/ */
public List<Long> getBookIdsByMasterId(Long masterId); public List<Long> getBookIdsByBrandId(Long brandId);
/** /**
* 根据群删除标记 * 根据群删除标记
...@@ -34,29 +34,43 @@ public interface AdvertisingGroupTagDao extends BaseDao<AdvertisingGroupTag> { ...@@ -34,29 +34,43 @@ public interface AdvertisingGroupTagDao extends BaseDao<AdvertisingGroupTag> {
/** /**
* 已标记的群 * 已标记的群
* @param masterId * @param brandId
* @return * @return
*/ */
public List<Long> getGroupQrcodeIdsByMasterId(Long masterId); public List<Long> getGroupQrcodeIdsByBrandId(Long brandId);
/** /**
* 根据图书删除标记 * 根据图书删除标记
* @param bookIds * @param bookIds
* @param masterId * @param brandId
*/ */
void deleteByBook(List<Long> bookIds, Long masterId); void deleteByBook(List<Long> bookIds, Long brandId);
/** /**
* 查已标记的微信群id * 查已标记的微信群id
* @param masterId * @param brandId
* @return * @return
*/ */
List<String> getTagWxGroupIdsByMasterId(Long masterId); List<String> getTagWxGroupIdsByBrandId(Long brandId);
/** /**
* 根据书查标记的广告主 * 根据书查标记的品牌方
* @param bookId * @param bookId
* @return * @return
*/ */
List<Long> getMasterIdsByBookId(Long bookId); List<Long> getBrandIdsByBookId(Long bookId);
/**
* 查微信群标记的品牌方id
* @param wxGroupId
* @return
*/
List<Long> getBrandIdsByWxGroupId(String wxGroupId);
/**
* 更新旧数据品牌id
* @param masterId
* @param brandId
*/
void updateId(Long masterId, Long brandId);
} }
package com.pcloud.book.advertising.dao; package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO; import com.pcloud.book.advertising.dto.AdvertisingMasterDTO;
import com.pcloud.book.advertising.dto.OldBrandMasterDTO;
import com.pcloud.book.advertising.entity.AdvertisingMaster; import com.pcloud.book.advertising.entity.AdvertisingMaster;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
...@@ -26,29 +27,14 @@ public interface AdvertisingMasterDao extends BaseDao<AdvertisingMaster> { ...@@ -26,29 +27,14 @@ public interface AdvertisingMasterDao extends BaseDao<AdvertisingMaster> {
AdvertisingMasterDTO getDTOById(Long masterId); AdvertisingMasterDTO getDTOById(Long masterId);
/** /**
* 查微信群标记的广告主 * 获取广告主品牌方
* @param groupQrcodeId
* @return * @return
*/ */
List<AdvertisingMaster> getByGroup(Long groupQrcodeId); public List<OldBrandMasterDTO> getMasterBrand();
/** /**
* 获取品牌方广告主 * 更新登录id为空
* @return * @param masterName
*/
List<AdvertisingMasterDTO> getBrandMaster();
/**
* 根据登录id查广告主id
* @param loginId
* @return
*/
public Long getIdByUserLoginId(Long loginId);
/**
* 修改广告主登录id
* @param masterId
* @param loginId
*/ */
public void updateMasterLoginId(Long masterId, Long loginId); public void updateLoginId(String masterName);
} }
...@@ -52,4 +52,11 @@ public interface AdvertisingPilotRecordDao extends BaseDao<AdvertisingPilotRecor ...@@ -52,4 +52,11 @@ public interface AdvertisingPilotRecordDao extends BaseDao<AdvertisingPilotRecor
* @return * @return
*/ */
Long getPilotUserNumByBookId(Long bookId, Long adviserId, Long channelId, Long adId, String statisMonth); Long getPilotUserNumByBookId(Long bookId, Long adviserId, Long channelId, Long adId, String statisMonth);
/**
* cpa试听人数
* @param cpaId
* @return
*/
Long getPilotUserNumByCPAId(Long cpaId);
} }
...@@ -79,4 +79,24 @@ public interface AdvertisingSpaceDao extends BaseDao<AdvertisingSpace> { ...@@ -79,4 +79,24 @@ public interface AdvertisingSpaceDao extends BaseDao<AdvertisingSpace> {
* @return * @return
*/ */
List<Long> getAdIdsByMasterId(Long id); List<Long> getAdIdsByMasterId(Long id);
/**
* 使用cpa的广告ids
* @param cpaId
* @return
*/
public List<Long> getAdIdsByCPAId(Long cpaId);
/**
* 更新cpaId
* @param adId
* @param cpaId
*/
void updateCPAId(Long adId, Long cpaId);
/**
* 查询cpa方式的广告位,没有cpaid
* @return
*/
public List<AdvertisingSpace> getCPASpaceList();
} }
package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.entity.AdvertisingWechatMsg;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @描述:微信群消息
* @作者:zhuyajie
* @创建时间:15:24 2019/9/2
* @版本:1.0
*/
public interface AdvertisingWechatMsgDao extends BaseDao<AdvertisingWechatMsg> {
/**
*根据广告位id查群消息
*/
public List<AdvertisingWechatMsg> getByAdId(Long adId);
/**
* 删除广告位下群消息
* @param adId
*/
public void deleteByAdId(Long adId);
}
...@@ -16,10 +16,10 @@ public interface BmOptionDao extends BaseDao<AdvertisingBmOption> { ...@@ -16,10 +16,10 @@ public interface BmOptionDao extends BaseDao<AdvertisingBmOption> {
/** /**
* 获取报名列表 * 获取报名列表
* @param adId * @param cpaId
* @return * @return
*/ */
List<AdvertisingBmOption> getByAdId(Long adId); List<AdvertisingBmOption> getByCPAId(Long cpaId);
/** /**
* 批量删除 * 批量删除
...@@ -28,16 +28,22 @@ public interface BmOptionDao extends BaseDao<AdvertisingBmOption> { ...@@ -28,16 +28,22 @@ public interface BmOptionDao extends BaseDao<AdvertisingBmOption> {
void deleteByIds(List<Long> optionIds); void deleteByIds(List<Long> optionIds);
/** /**
* 根据广告id获取选项id列表 * 根据cpaid获取选项id列表
* @param adId * @param cpaId
* @return * @return
*/ */
List<Long> getOptionIdsByAdId(Long adId); List<Long> getOptionIdsByCPAId(Long cpaId);
/** /**
* 查手机号选项id * 查手机号选项id
* @param adId * @param adId
* @return * @return
*/ */
Long getMobilePhoneOptionIdByAd(Long adId); Long getMobilePhoneOptionIdByCPA(Long adId);
/**
* 更新cpaId
* @param adId
* @param cpaId
*/
void updateCPAId(Long adId, Long cpaId);
} }
package com.pcloud.book.advertising.dao.impl;
import com.pcloud.book.advertising.dao.AdvertisingBrandDao;
import com.pcloud.book.advertising.dto.AdvertisingBrandDTO;
import com.pcloud.book.advertising.entity.AdvertisingBrand;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @描述:广告品牌方
* @作者:zhuyajie
* @创建时间:15:26 2019/9/9
* @版本:1.0
*/
@Component("advertisingBrandDao")
public class AdvertisingBrandDaoImpl extends BaseDaoImpl<AdvertisingBrand> implements AdvertisingBrandDao{
@Override
public List<AdvertisingBrandDTO> getByGroupQrcodeId(Long groupQrcodeId) {
return getSessionTemplate().selectList(getStatement("getByGroupQrcodeId"), groupQrcodeId);
}
@Override
public List<AdvertisingBrandDTO> getAllBrand() {
return getSessionTemplate().selectList(getStatement("getAllBrand"));
}
@Override
public Long getBrandIdByUserLoginId(Long userId) {
//品牌方登录,userId=brandId
return userId;
}
@Override
public void deleteBrand(Long brandId) {
getSessionTemplate().update(getStatement("deleteBrand"), brandId);
}
@Override
public AdvertisingBrandDTO getBrandById(Long brandId) {
return getSessionTemplate().selectOne(getStatement("getBrandById"), brandId);
}
@Override
public Boolean checkBrandNameRepeat(String brandName) {
return getSessionTemplate().selectOne(getStatement("checkBrandNameRepeat"), brandName);
}
@Override
public Boolean checkLoginNameRepeat(String loginName) {
return getSessionTemplate().selectOne(getStatement("checkLoginNameRepeat"), loginName);
}
@Override
public AdvertisingBrand getLoginInfo(String loginName) {
Map<String, Object> map = new HashMap<>();
map.put("loginName", loginName);
return getSessionTemplate().selectOne(getStatement("getLoginInfo"), map);
}
}
...@@ -65,4 +65,14 @@ public class AdvertisingClickRecordDaoImpl extends BaseDaoImpl<AdvertisingClickR ...@@ -65,4 +65,14 @@ public class AdvertisingClickRecordDaoImpl extends BaseDaoImpl<AdvertisingClickR
paramMap.put("statisMonth", statisMonth); paramMap.put("statisMonth", statisMonth);
return getSessionTemplate().selectOne(getStatement("getClickUserNumByBookId"), paramMap); return getSessionTemplate().selectOne(getStatement("getClickUserNumByBookId"), paramMap);
} }
@Override
public Long getClickNumByCPAId(Long cpaId) {
return getSessionTemplate().selectOne(getStatement("getClickNumByCPAId"), cpaId);
}
@Override
public Long getClickUserNumByCPAId(Long cpaId) {
return getSessionTemplate().selectOne(getStatement("getClickUserNumByCPAId"), cpaId);
}
} }
package com.pcloud.book.advertising.dao.impl;
import com.pcloud.book.advertising.dao.AdvertisingCpaDao;
import com.pcloud.book.advertising.entity.AdvertisingCpa;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
/**
* @描述:cpa内容
* @作者:zhuyajie
* @创建时间:15:45 2019/9/3
* @版本:1.0
*/
@Component("advertisingCpaDao")
public class AdvertisingCpaDaoImpl extends BaseDaoImpl<AdvertisingCpa> implements AdvertisingCpaDao {
}
...@@ -6,7 +6,9 @@ import com.pcloud.common.core.dao.BaseDaoImpl; ...@@ -6,7 +6,9 @@ import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @描述:广告详情上传文件 * @描述:广告详情上传文件
...@@ -18,12 +20,20 @@ import java.util.List; ...@@ -18,12 +20,20 @@ import java.util.List;
public class AdvertisingDetailFileDaoImpl extends BaseDaoImpl<AdvertisingDetailFile> implements AdvertisingDetailFileDao { public class AdvertisingDetailFileDaoImpl extends BaseDaoImpl<AdvertisingDetailFile> implements AdvertisingDetailFileDao {
@Override @Override
public List<AdvertisingDetailFile> getByAdId(Long adId) { public List<AdvertisingDetailFile> getByCPAId(Long cpaId) {
return getSessionTemplate().selectList(getStatement("getByAdId"), adId); return getSessionTemplate().selectList(getStatement("getByCPAId"), cpaId);
} }
@Override @Override
public void deleteByAdId(Long adId) { public void deleteByCPAId(Long cpaId) {
getSessionTemplate().delete(getStatement("deleteByAdId"), adId); getSessionTemplate().delete(getStatement("deleteByCPAId"), cpaId);
}
@Override
public void updateCPAId(Long adId, Long cpaId) {
Map<String, Object> map = new HashMap<>();
map.put("adId", adId);
map.put("cpaId", cpaId);
getSessionTemplate().update(getStatement("updateCPAId"), map);
} }
} }
...@@ -34,4 +34,9 @@ public class AdvertisingExposureRecordDaoImpl extends BaseDaoImpl<AdvertisingExp ...@@ -34,4 +34,9 @@ public class AdvertisingExposureRecordDaoImpl extends BaseDaoImpl<AdvertisingExp
map.put("count", peopleCounts); map.put("count", peopleCounts);
getSessionTemplate().update(getStatement("updateExposureByQrcode"), map); getSessionTemplate().update(getStatement("updateExposureByQrcode"), map);
} }
@Override
public Long getExposureNumByCPAId(Long cpaId) {
return getSessionTemplate().selectOne(getStatement("getExposureNumByCPAId"), cpaId);
}
} }
...@@ -20,13 +20,13 @@ import java.util.Map; ...@@ -20,13 +20,13 @@ import java.util.Map;
public class AdvertisingGroupTagDaoImpl extends BaseDaoImpl<AdvertisingGroupTag> implements AdvertisingGroupTagDao { public class AdvertisingGroupTagDaoImpl extends BaseDaoImpl<AdvertisingGroupTag> implements AdvertisingGroupTagDao {
@Override @Override
public void deleteByMasterId(Long masterId) { public void deleteByBrandId(Long brandId) {
getSessionTemplate().delete(getStatement("deleteByMasterId"), masterId); getSessionTemplate().delete(getStatement("deleteByBrandId"), brandId);
} }
@Override @Override
public List<Long> getBookIdsByMasterId(Long masterId) { public List<Long> getBookIdsByBrandId(Long brandId) {
return getSessionTemplate().selectList(getStatement("getBookIdsByMasterId"), masterId); return getSessionTemplate().selectList(getStatement("getBookIdsByBrandId"), brandId);
} }
@Override @Override
...@@ -35,25 +35,38 @@ public class AdvertisingGroupTagDaoImpl extends BaseDaoImpl<AdvertisingGroupTag> ...@@ -35,25 +35,38 @@ public class AdvertisingGroupTagDaoImpl extends BaseDaoImpl<AdvertisingGroupTag>
} }
@Override @Override
public List<Long> getGroupQrcodeIdsByMasterId(Long masterId) { public List<Long> getGroupQrcodeIdsByBrandId(Long brandId) {
return getSessionTemplate().selectList(getStatement("getGroupQrcodeIdsByMasterId"), masterId); return getSessionTemplate().selectList(getStatement("getGroupQrcodeIdsByBrandId"), brandId);
} }
@Override @Override
public void deleteByBook(List<Long> bookIds, Long masterId) { public void deleteByBook(List<Long> bookIds, Long brandId) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("bookIds", bookIds); map.put("bookIds", bookIds);
map.put("masterId", masterId); map.put("brandId", brandId);
getSessionTemplate().delete(getStatement("deleteByBook"), map); getSessionTemplate().delete(getStatement("deleteByBook"), map);
} }
@Override @Override
public List<String> getTagWxGroupIdsByMasterId(Long masterId) { public List<String> getTagWxGroupIdsByBrandId(Long brandId) {
return getSessionTemplate().selectList(getStatement("getTagWxGroupIdsByMasterId"), masterId); return getSessionTemplate().selectList(getStatement("getTagWxGroupIdsByBrandId"), brandId);
} }
@Override @Override
public List<Long> getMasterIdsByBookId(Long bookId) { public List<Long> getBrandIdsByBookId(Long bookId) {
return getSessionTemplate().selectList(getStatement("getMasterIdsByBookId"), bookId); return getSessionTemplate().selectList(getStatement("getBrandIdsByBookId"), bookId);
}
@Override
public List<Long> getBrandIdsByWxGroupId(String wxGroupId) {
return getSessionTemplate().selectList(getStatement("getBrandIdsByWxGroupId"), wxGroupId);
}
@Override
public void updateId(Long masterId, Long brandId) {
Map<String, Object> map = new HashMap<>();
map.put("masterId", masterId);
map.put("brandId", brandId);
getSessionTemplate().update(getStatement("updateId"), map);
} }
} }
...@@ -2,14 +2,13 @@ package com.pcloud.book.advertising.dao.impl; ...@@ -2,14 +2,13 @@ package com.pcloud.book.advertising.dao.impl;
import com.pcloud.book.advertising.dao.AdvertisingMasterDao; import com.pcloud.book.advertising.dao.AdvertisingMasterDao;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO; import com.pcloud.book.advertising.dto.AdvertisingMasterDTO;
import com.pcloud.book.advertising.dto.OldBrandMasterDTO;
import com.pcloud.book.advertising.entity.AdvertisingMaster; import com.pcloud.book.advertising.entity.AdvertisingMaster;
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 广告主数据访问层接口实现类
...@@ -35,25 +34,13 @@ public class AdvertisingMasterDaoImpl extends BaseDaoImpl<AdvertisingMaster> imp ...@@ -35,25 +34,13 @@ public class AdvertisingMasterDaoImpl extends BaseDaoImpl<AdvertisingMaster> imp
} }
@Override @Override
public List<AdvertisingMaster> getByGroup(Long groupQrcodeId) { public List<OldBrandMasterDTO> getMasterBrand() {
return getSessionTemplate().selectList(getStatement("getByGroup"), groupQrcodeId); return getSessionTemplate().selectList(getStatement("getMasterBrand"));
} }
@Override @Override
public List<AdvertisingMasterDTO> getBrandMaster() { public void updateLoginId(String masterName) {
return getSessionTemplate().selectList(getStatement("getBrandMaster")); getSessionTemplate().update(getStatement("updateLoginId"), masterName);
} }
@Override
public Long getIdByUserLoginId(Long loginId) {
return getSessionTemplate().selectOne(getStatement("getIdByUserLoginId"), loginId);
}
@Override
public void updateMasterLoginId(Long masterId, Long loginId) {
Map<String, Object> map = new HashMap<>();
map.put("masterId", masterId);
map.put("loginId", loginId);
getSessionTemplate().update(getStatement("updateMasterLoginId"), map);
}
} }
package com.pcloud.book.advertising.dao.impl; package com.pcloud.book.advertising.dao.impl;
import com.pcloud.book.advertising.dao.AdvertisingClickRecordDao;
import com.pcloud.book.advertising.dao.AdvertisingPilotRecordDao; import com.pcloud.book.advertising.dao.AdvertisingPilotRecordDao;
import com.pcloud.book.advertising.dto.WechatGroupClickUserDTO;
import com.pcloud.book.advertising.entity.AdvertisingClickRecord;
import com.pcloud.book.advertising.entity.AdvertisingPilotRecord; import com.pcloud.book.advertising.entity.AdvertisingPilotRecord;
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.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -58,4 +54,9 @@ public class AdvertisingPilotRecordDaoImpl extends BaseDaoImpl<AdvertisingPilotR ...@@ -58,4 +54,9 @@ public class AdvertisingPilotRecordDaoImpl extends BaseDaoImpl<AdvertisingPilotR
paramMap.put("statisMonth", statisMonth); paramMap.put("statisMonth", statisMonth);
return getSessionTemplate().selectOne(getStatement("getPilotUserNumByBookId"), paramMap); return getSessionTemplate().selectOne(getStatement("getPilotUserNumByBookId"), paramMap);
} }
@Override
public Long getPilotUserNumByCPAId(Long cpaId) {
return getSessionTemplate().selectOne(getStatement("getPilotUserNumByCPAId"), cpaId);
}
} }
...@@ -88,4 +88,22 @@ public class AdvertisingSpaceDaoImpl extends BaseDaoImpl<AdvertisingSpace> imple ...@@ -88,4 +88,22 @@ public class AdvertisingSpaceDaoImpl extends BaseDaoImpl<AdvertisingSpace> imple
public List<Long> getAdIdsByMasterId(Long masterId) { public List<Long> getAdIdsByMasterId(Long masterId) {
return getSessionTemplate().selectList(getStatement("getAdIdsByMasterId"),masterId); return getSessionTemplate().selectList(getStatement("getAdIdsByMasterId"),masterId);
} }
@Override
public List<Long> getAdIdsByCPAId(Long cpaId) {
return getSessionTemplate().selectList(getStatement("getAdIdsByCPAId"), cpaId);
}
@Override
public void updateCPAId(Long adId, Long cpaId) {
Map<String, Object> map = new HashMap<>();
map.put("id", adId);
map.put("cpaId", cpaId);
getSessionTemplate().update(getStatement("updateCPAId"), map);
}
@Override
public List<AdvertisingSpace> getCPASpaceList() {
return getSessionTemplate().selectList(getStatement("getCPASpaceList"));
}
} }
package com.pcloud.book.advertising.dao.impl;
import com.pcloud.book.advertising.dao.AdvertisingWechatMsgDao;
import com.pcloud.book.advertising.entity.AdvertisingWechatMsg;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @描述:微信群消息
* @作者:zhuyajie
* @创建时间:15:24 2019/9/2
* @版本:1.0
*/
@Component("advertisingWechatMsgDao")
public class AdvertisingWechatMsgDaoImpl extends BaseDaoImpl<AdvertisingWechatMsg> implements AdvertisingWechatMsgDao {
@Override
public List<AdvertisingWechatMsg> getByAdId(Long adId) {
return getSessionTemplate().selectList(getStatement("getByAdId"), adId);
}
@Override
public void deleteByAdId(Long adId) {
getSessionTemplate().delete(getStatement("deleteByAdId"), adId);
}
}
...@@ -6,7 +6,9 @@ import com.pcloud.common.core.dao.BaseDaoImpl; ...@@ -6,7 +6,9 @@ import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @描述:报名选项 * @描述:报名选项
...@@ -17,8 +19,8 @@ import java.util.List; ...@@ -17,8 +19,8 @@ import java.util.List;
@Component("bmOptionDao") @Component("bmOptionDao")
public class BmOptionDaoImpl extends BaseDaoImpl<AdvertisingBmOption> implements BmOptionDao { public class BmOptionDaoImpl extends BaseDaoImpl<AdvertisingBmOption> implements BmOptionDao {
@Override @Override
public List<AdvertisingBmOption> getByAdId(Long adId) { public List<AdvertisingBmOption> getByCPAId(Long cpaId) {
return getSessionTemplate().selectList(getStatement("getByAdId"), adId); return getSessionTemplate().selectList(getStatement("getByCPAId"), cpaId);
} }
@Override @Override
...@@ -27,12 +29,20 @@ public class BmOptionDaoImpl extends BaseDaoImpl<AdvertisingBmOption> implements ...@@ -27,12 +29,20 @@ public class BmOptionDaoImpl extends BaseDaoImpl<AdvertisingBmOption> implements
} }
@Override @Override
public List<Long> getOptionIdsByAdId(Long adId) { public List<Long> getOptionIdsByCPAId(Long cpaId) {
return getSessionTemplate().selectList(getStatement("getOptionIdsByAdId"), adId); return getSessionTemplate().selectList(getStatement("getOptionIdsByCPAId"), cpaId);
} }
@Override @Override
public Long getMobilePhoneOptionIdByAd(Long adId) { public Long getMobilePhoneOptionIdByCPA(Long cpaId) {
return getSessionTemplate().selectOne(getStatement("getMobilePhoneOptionIdByAd"),adId); return getSessionTemplate().selectOne(getStatement("getMobilePhoneOptionIdByCPA"),cpaId);
}
@Override
public void updateCPAId(Long adId, Long cpaId) {
Map<String, Object> map = new HashMap<>();
map.put("adId", adId);
map.put("cpaId", cpaId);
getSessionTemplate().update(getStatement("updateCPAId"), map);
} }
} }
package com.pcloud.book.advertising.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import java.util.Date;
/**
* 品牌方
*/
public class AdvertisingBrandDTO extends BaseDto {
/**
* 品牌方id
*/
private Long id;
/**
* 品牌名称
*/
private String brandName;
/**
* 登录名
*/
private String loginName;
/**
* 密码
*/
private String password;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName == null ? null : brandName.trim();
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName == null ? null : loginName.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
\ No newline at end of file
package com.pcloud.book.advertising.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.book.advertising.entity.AdvertisingBmOption;
import com.pcloud.book.advertising.entity.AdvertisingDetailFile;
import com.pcloud.common.dto.BaseDto;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @描述:CPA内容
* @作者:zhuyajie
* @创建时间:15:27 2019/9/4
* @版本:1.0
*/
public class AdvertisingCpaDTO extends BaseDto {
private Long id;
/**
*标题
*/
private String detailName;
/**
*广告详情方式
*/
private String detailMode;
/**
*广告详情封面
*/
private String coverPic;
/**
*广告详情优惠图
*/
private String welfarePic;
/**
* 广告详情介绍
*/
private String detailInfo;
/**
*广告报名表单是否校验手机号
*/
private Boolean formMobileCheck;
/**
*广告报名表单备注
*/
private String formRemark;
/**
*广告报名表单提交按钮
*/
private String formButton;
/**
*广告报名表单跳转链接
*/
private String formLink;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date updateTime;
/**
* 预览链接
*/
private String previewLink;
/**
* 报名选项设置
*/
private List<AdvertisingBmOption> advertisingBmOptionList;
/**
* 多个上传文件
*/
private List<AdvertisingDetailFile> advertisingDetailFileList;
/**
* 曝光量
*/
private Long exposureNum;
/**
* 点击量
*/
private Long clickNum;
/**
* 点击率
*/
private BigDecimal clickRate;
/**
* 点击用户数(独立访客数)
*/
private Long clickUserNum;
/**
* 报名量
*/
private Long registerNum;
/**
* 报名率
*/
private BigDecimal registerRate;
/**
* 试听完成人数(完课量)
*/
private Long pilotFinishUserNum;
/**
* 试听完成比率(完课率)
*/
private BigDecimal pilotFinishRate;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDetailName() {
return detailName;
}
public void setDetailName(String detailName) {
this.detailName = detailName;
}
public String getDetailMode() {
return detailMode;
}
public void setDetailMode(String detailMode) {
this.detailMode = detailMode;
}
public String getCoverPic() {
return coverPic;
}
public void setCoverPic(String coverPic) {
this.coverPic = coverPic;
}
public String getWelfarePic() {
return welfarePic;
}
public void setWelfarePic(String welfarePic) {
this.welfarePic = welfarePic;
}
public String getDetailInfo() {
return detailInfo;
}
public void setDetailInfo(String detailInfo) {
this.detailInfo = detailInfo;
}
public Boolean getFormMobileCheck() {
return formMobileCheck;
}
public void setFormMobileCheck(Boolean formMobileCheck) {
this.formMobileCheck = formMobileCheck;
}
public String getFormRemark() {
return formRemark;
}
public void setFormRemark(String formRemark) {
this.formRemark = formRemark;
}
public String getFormButton() {
return formButton;
}
public void setFormButton(String formButton) {
this.formButton = formButton;
}
public String getFormLink() {
return formLink;
}
public void setFormLink(String formLink) {
this.formLink = formLink;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public List<AdvertisingBmOption> getAdvertisingBmOptionList() {
return advertisingBmOptionList;
}
public void setAdvertisingBmOptionList(List<AdvertisingBmOption> advertisingBmOptionList) {
this.advertisingBmOptionList = advertisingBmOptionList;
}
public List<AdvertisingDetailFile> getAdvertisingDetailFileList() {
return advertisingDetailFileList;
}
public void setAdvertisingDetailFileList(List<AdvertisingDetailFile> advertisingDetailFileList) {
this.advertisingDetailFileList = advertisingDetailFileList;
}
public String getPreviewLink() {
return previewLink;
}
public void setPreviewLink(String previewLink) {
this.previewLink = previewLink;
}
public Long getExposureNum() {
return exposureNum;
}
public void setExposureNum(Long exposureNum) {
this.exposureNum = exposureNum;
}
public Long getClickNum() {
return clickNum;
}
public void setClickNum(Long clickNum) {
this.clickNum = clickNum;
}
public BigDecimal getClickRate() {
return clickRate;
}
public void setClickRate(BigDecimal clickRate) {
this.clickRate = clickRate;
}
public Long getClickUserNum() {
return clickUserNum;
}
public void setClickUserNum(Long clickUserNum) {
this.clickUserNum = clickUserNum;
}
public Long getRegisterNum() {
return registerNum;
}
public void setRegisterNum(Long registerNum) {
this.registerNum = registerNum;
}
public BigDecimal getRegisterRate() {
return registerRate;
}
public void setRegisterRate(BigDecimal registerRate) {
this.registerRate = registerRate;
}
public Long getPilotFinishUserNum() {
return pilotFinishUserNum;
}
public void setPilotFinishUserNum(Long pilotFinishUserNum) {
this.pilotFinishUserNum = pilotFinishUserNum;
}
public BigDecimal getPilotFinishRate() {
return pilotFinishRate;
}
public void setPilotFinishRate(BigDecimal pilotFinishRate) {
this.pilotFinishRate = pilotFinishRate;
}
@Override
public String toString() {
return "AdvertisingCpaDTO{" +
"id=" + id +
", detailName='" + detailName + '\'' +
", detailMode='" + detailMode + '\'' +
", coverPic='" + coverPic + '\'' +
", welfarePic='" + welfarePic + '\'' +
", detailInfo='" + detailInfo + '\'' +
", formMobileCheck=" + formMobileCheck +
", formRemark='" + formRemark + '\'' +
", formButton='" + formButton + '\'' +
", formLink='" + formLink + '\'' +
", updateTime=" + updateTime +
", previewLink='" + previewLink + '\'' +
", advertisingBmOptionList=" + advertisingBmOptionList +
", advertisingDetailFileList=" + advertisingDetailFileList +
", exposureNum=" + exposureNum +
", clickNum=" + clickNum +
", clickRate=" + clickRate +
", clickUserNum=" + clickUserNum +
", registerNum=" + registerNum +
", registerRate=" + registerRate +
", pilotFinishUserNum=" + pilotFinishUserNum +
", pilotFinishRate=" + pilotFinishRate +
'}';
}
}
...@@ -316,7 +316,10 @@ public class AdvertisingSpaceDTO extends BaseDto { ...@@ -316,7 +316,10 @@ public class AdvertisingSpaceDTO extends BaseDto {
* 多个上传文件 * 多个上传文件
*/ */
private List<AdvertisingDetailFile> advertisingDetailFileList; private List<AdvertisingDetailFile> advertisingDetailFileList;
/**
* cp内容id
*/
private Long cpaId;
public Long getId() { public Long getId() {
return id; return id;
} }
...@@ -832,6 +835,14 @@ public class AdvertisingSpaceDTO extends BaseDto { ...@@ -832,6 +835,14 @@ public class AdvertisingSpaceDTO extends BaseDto {
this.advertisingDetailFileList = advertisingDetailFileList; this.advertisingDetailFileList = advertisingDetailFileList;
} }
public Long getCpaId() {
return cpaId;
}
public void setCpaId(Long cpaId) {
this.cpaId = cpaId;
}
@Override @Override
public String toString() { public String toString() {
return "AdvertisingSpaceDTO{" + return "AdvertisingSpaceDTO{" +
...@@ -899,6 +910,7 @@ public class AdvertisingSpaceDTO extends BaseDto { ...@@ -899,6 +910,7 @@ public class AdvertisingSpaceDTO extends BaseDto {
", outRate=" + outRate + ", outRate=" + outRate +
", distributionNum=" + distributionNum + ", distributionNum=" + distributionNum +
", advertisingDetailFileList=" + advertisingDetailFileList + ", advertisingDetailFileList=" + advertisingDetailFileList +
", cpaId=" + cpaId +
'}'; '}';
} }
} }
\ No newline at end of file
package com.pcloud.book.advertising.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
/**
* 微信群消息
*/
public class AdvertisingWechatMsgDTO extends BaseDto{
private Long id;
/**
* 广告id
*/
private Long adId;
/**
* 广告位置方式
*/
private String adPositionMode;
/**
* 广告位链接
*/
private String adLink;
/**
*广告位标题
*/
private String adTitle;
/**
*广告位文案
*/
private String adSlogan;
/**
*广告位图片
*/
private String adPic;
/**
* 序号
*/
private Integer seq;
/**
* cpaId
*/
private Long cpaId;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getAdId() {
return adId;
}
public void setAdId(Long adId) {
this.adId = adId;
}
public String getAdPositionMode() {
return adPositionMode;
}
public void setAdPositionMode(String adPositionMode) {
this.adPositionMode = adPositionMode == null ? null : adPositionMode.trim();
}
public String getAdLink() {
return adLink;
}
public void setAdLink(String adLink) {
this.adLink = adLink == null ? null : adLink.trim();
}
public String getAdTitle() {
return adTitle;
}
public void setAdTitle(String adTitle) {
this.adTitle = adTitle == null ? null : adTitle.trim();
}
public String getAdSlogan() {
return adSlogan;
}
public void setAdSlogan(String adSlogan) {
this.adSlogan = adSlogan == null ? null : adSlogan.trim();
}
public String getAdPic() {
return adPic;
}
public void setAdPic(String adPic) {
this.adPic = adPic == null ? null : adPic.trim();
}
public Integer getSeq() {
return seq;
}
public void setSeq(Integer seq) {
this.seq = seq;
}
public Long getCpaId() {
return cpaId;
}
public void setCpaId(Long cpaId) {
this.cpaId = cpaId;
}
@Override
public String toString() {
return "AdvertisingWechatMsgDTO{" +
"id=" + id +
", adId=" + adId +
", adPositionMode='" + adPositionMode + '\'' +
", adLink='" + adLink + '\'' +
", adTitle='" + adTitle + '\'' +
", adSlogan='" + adSlogan + '\'' +
", adPic='" + adPic + '\'' +
", seq=" + seq +
", cpaId=" + cpaId +
'}';
}
}
\ No newline at end of file
...@@ -6,12 +6,12 @@ import com.pcloud.common.dto.BaseDto; ...@@ -6,12 +6,12 @@ import com.pcloud.common.dto.BaseDto;
import java.util.Date; import java.util.Date;
/** /**
* @描述:广告主标记书刊列表 * @描述:品牌方标记书刊列表
* @作者:zhuyajie * @作者:zhuyajie
* @创建时间:11:51 2019/8/22 * @创建时间:11:51 2019/8/22
* @版本:1.0 * @版本:1.0
*/ */
public class Book4AdvertisingMasterDTO extends BaseDto { public class Book4AdvertisingTagDTO extends BaseDto {
/** /**
* 书籍标识 * 书籍标识
......
...@@ -10,7 +10,7 @@ import java.util.List; ...@@ -10,7 +10,7 @@ import java.util.List;
* @创建时间:17:19 2019/8/21 * @创建时间:17:19 2019/8/21
* @版本:1.0 * @版本:1.0
*/ */
public class GroupMasterAddDTO extends BaseDto{ public class GroupTagAddDTO extends BaseDto{
//按微信群标记 //按微信群标记
/** /**
...@@ -18,16 +18,16 @@ public class GroupMasterAddDTO extends BaseDto{ ...@@ -18,16 +18,16 @@ public class GroupMasterAddDTO extends BaseDto{
*/ */
private List<Long> groupQrcodeIdList; private List<Long> groupQrcodeIdList;
/** /**
* 广告主id列表 * 品牌方id列表
*/ */
private List<Long> masterIdList; private List<Long> brandIdList;
//按图书标记 //按图书标记
/** /**
* 广告主id * 品牌方id
*/ */
private Long masterId; private Long brandId;
/** /**
* 图书id列表 * 图书id列表
*/ */
...@@ -41,20 +41,20 @@ public class GroupMasterAddDTO extends BaseDto{ ...@@ -41,20 +41,20 @@ public class GroupMasterAddDTO extends BaseDto{
this.groupQrcodeIdList = groupQrcodeIdList; this.groupQrcodeIdList = groupQrcodeIdList;
} }
public List<Long> getMasterIdList() { public List<Long> getBrandIdList() {
return masterIdList; return brandIdList;
} }
public void setMasterIdList(List<Long> masterIdList) { public void setBrandIdList(List<Long> brandIdList) {
this.masterIdList = masterIdList; this.brandIdList = brandIdList;
} }
public Long getMasterId() { public Long getBrandId() {
return masterId; return brandId;
} }
public void setMasterId(Long masterId) { public void setBrandId(Long brandId) {
this.masterId = masterId; this.brandId = brandId;
} }
public List<Long> getBookIdList() { public List<Long> getBookIdList() {
......
...@@ -8,12 +8,12 @@ import java.util.Date; ...@@ -8,12 +8,12 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* @描述:群广告主标记列表 * @描述:微信群品牌标记列表
* @作者:zhuyajie * @作者:zhuyajie
* @创建时间:15:00 2019/8/21 * @创建时间:15:00 2019/8/21
* @版本:1.0 * @版本:1.0
*/ */
public class GroupMasterDTO extends BaseDto{ public class GroupTagDTO extends BaseDto{
/** /**
* 微信群id * 微信群id
*/ */
...@@ -96,9 +96,9 @@ public class GroupMasterDTO extends BaseDto{ ...@@ -96,9 +96,9 @@ public class GroupMasterDTO extends BaseDto{
) )
private Date createTime; private Date createTime;
/** /**
* 标记的广告主列表 * 标记的品牌方列表
*/ */
List<AdvertisingMaster> masterList; List<AdvertisingBrandDTO> brandList;
/** /**
* 标记时间 * 标记时间
*/ */
...@@ -109,6 +109,23 @@ public class GroupMasterDTO extends BaseDto{ ...@@ -109,6 +109,23 @@ public class GroupMasterDTO extends BaseDto{
* isbn * isbn
*/ */
private String isbn; private String isbn;
/**
* 分类id
*/
private Long classifyId;
/**
* 社群书id
*/
private Long bookGroupId;
/**
* 进群方式:1群二维码,2客服机器人
*/
private Integer joinGroupType;
private String codeUrl;
public String getWxGroupId() { public String getWxGroupId() {
return wxGroupId; return wxGroupId;
} }
...@@ -261,12 +278,12 @@ public class GroupMasterDTO extends BaseDto{ ...@@ -261,12 +278,12 @@ public class GroupMasterDTO extends BaseDto{
this.createTime = createTime; this.createTime = createTime;
} }
public List<AdvertisingMaster> getMasterList() { public List<AdvertisingBrandDTO> getBrandList() {
return masterList; return brandList;
} }
public void setMasterList(List<AdvertisingMaster> masterList) { public void setBrandList(List<AdvertisingBrandDTO> brandList) {
this.masterList = masterList; this.brandList = brandList;
} }
public Date getTagTime() { public Date getTagTime() {
...@@ -285,9 +302,41 @@ public class GroupMasterDTO extends BaseDto{ ...@@ -285,9 +302,41 @@ public class GroupMasterDTO extends BaseDto{
this.isbn = isbn; this.isbn = isbn;
} }
public Long getClassifyId() {
return classifyId;
}
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
public Long getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public Integer getJoinGroupType() {
return joinGroupType;
}
public void setJoinGroupType(Integer joinGroupType) {
this.joinGroupType = joinGroupType;
}
public String getCodeUrl() {
return codeUrl;
}
public void setCodeUrl(String codeUrl) {
this.codeUrl = codeUrl;
}
@Override @Override
public String toString() { public String toString() {
return "GroupMasterDTO{" + return "GroupTagDTO{" +
"wxGroupId='" + wxGroupId + '\'' + "wxGroupId='" + wxGroupId + '\'' +
", groupQrcodeId=" + groupQrcodeId + ", groupQrcodeId=" + groupQrcodeId +
", groupName='" + groupName + '\'' + ", groupName='" + groupName + '\'' +
...@@ -307,7 +356,7 @@ public class GroupMasterDTO extends BaseDto{ ...@@ -307,7 +356,7 @@ public class GroupMasterDTO extends BaseDto{
", advertisingSpaceNum=" + advertisingSpaceNum + ", advertisingSpaceNum=" + advertisingSpaceNum +
", qrcodeUrl='" + qrcodeUrl + '\'' + ", qrcodeUrl='" + qrcodeUrl + '\'' +
", createTime=" + createTime + ", createTime=" + createTime +
", masterList=" + masterList + ", brandList=" + brandList +
", tagTime=" + tagTime + ", tagTime=" + tagTime +
", isbn='" + isbn + '\'' + ", isbn='" + isbn + '\'' +
'}'; '}';
......
package com.pcloud.book.advertising.dto;
/**
* @描述:广告主品牌方旧数据
* @作者:zhuyajie
* @创建时间:11:20 2019/9/11
* @版本:1.0
*/
public class OldBrandMasterDTO {
private Long id;
/**
* 品牌方名称
*/
private String masterName;
/**
* 登录id
*/
private Long loginId;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getMasterName() {
return masterName;
}
public void setMasterName(String masterName) {
this.masterName = masterName;
}
public Long getLoginId() {
return loginId;
}
public void setLoginId(Long loginId) {
this.loginId = loginId;
}
}
...@@ -61,6 +61,11 @@ public class AdvertisingBmOption extends BaseEntity{ ...@@ -61,6 +61,11 @@ public class AdvertisingBmOption extends BaseEntity{
*/ */
private List<AdvertisingBmOptionItem> optionItem; private List<AdvertisingBmOptionItem> optionItem;
/**
* cp内容id
*/
private Long cpaId;
public Long getAdId() { public Long getAdId() {
return adId; return adId;
} }
...@@ -157,6 +162,14 @@ public class AdvertisingBmOption extends BaseEntity{ ...@@ -157,6 +162,14 @@ public class AdvertisingBmOption extends BaseEntity{
this.optionItem = optionItem; this.optionItem = optionItem;
} }
public Long getCpaId() {
return cpaId;
}
public void setCpaId(Long cpaId) {
this.cpaId = cpaId;
}
@Override @Override
public String toString() { public String toString() {
return "AdvertisingBmOption{" + return "AdvertisingBmOption{" +
...@@ -172,6 +185,7 @@ public class AdvertisingBmOption extends BaseEntity{ ...@@ -172,6 +185,7 @@ public class AdvertisingBmOption extends BaseEntity{
", updateUser=" + updateUser + ", updateUser=" + updateUser +
", updateTime=" + updateTime + ", updateTime=" + updateTime +
", optionItem=" + optionItem + ", optionItem=" + optionItem +
", cpaId=" + cpaId +
'}'; '}';
} }
} }
\ No newline at end of file
package com.pcloud.book.advertising.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
/**
* 品牌方
*/
public class AdvertisingBrand extends BaseEntity {
/**
* 品牌名称
*/
private String brandName;
/**
* 登录名
*/
private String loginName;
/**
* 密码
*/
private String password;
/**
* 是否删除
*/
private Boolean isDelete;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
private Long createUser;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date updateTime;
private Long updateUser;
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName == null ? null : brandName.trim();
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName == null ? null : loginName.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public Boolean getIsDelete() {
return isDelete;
}
public void setIsDelete(Boolean isDelete) {
this.isDelete = isDelete;
}
public java.util.Date getCreateTime() {
return createTime;
}
public void setCreateTime(java.util.Date createTime) {
this.createTime = createTime;
}
public Long getCreateUser() {
return createUser;
}
public void setCreateUser(Long createUser) {
this.createUser = createUser;
}
public java.util.Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(java.util.Date updateTime) {
this.updateTime = updateTime;
}
public Long getUpdateUser() {
return updateUser;
}
public void setUpdateUser(Long updateUser) {
this.updateUser = updateUser;
}
}
\ No newline at end of file
package com.pcloud.book.advertising.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import java.util.List;
/**
* cpa内容
*/
public class AdvertisingCpa extends BaseEntity{
/**
*标题
*/
private String detailName;
/**
*广告详情方式
*/
private String detailMode;
/**
*广告详情封面
*/
private String coverPic;
/**
*广告详情优惠图
*/
private String welfarePic;
/**
* 广告详情介绍
*/
private String detailInfo;
/**
*广告报名表单是否校验手机号
*/
private Boolean formMobileCheck;
/**
*广告报名表单备注
*/
private String formRemark;
/**
*广告报名表单提交按钮
*/
private String formButton;
/**
*广告报名表单跳转链接
*/
private String formLink;
@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 updateTime;
/**
* 预览链接
*/
private String previewLink;
/**
* 报名选项设置
*/
private List<AdvertisingBmOption> advertisingBmOptionList;
/**
* 多个上传文件
*/
private List<AdvertisingDetailFile> advertisingDetailFileList;
public String getDetailName() {
return detailName;
}
public void setDetailName(String detailName) {
this.detailName = detailName == null ? null : detailName.trim();
}
public String getDetailMode() {
return detailMode;
}
public void setDetailMode(String detailMode) {
this.detailMode = detailMode == null ? null : detailMode.trim();
}
public String getCoverPic() {
return coverPic;
}
public void setCoverPic(String coverPic) {
this.coverPic = coverPic == null ? null : coverPic.trim();
}
public String getWelfarePic() {
return welfarePic;
}
public void setWelfarePic(String welfarePic) {
this.welfarePic = welfarePic == null ? null : welfarePic.trim();
}
public Boolean getFormMobileCheck() {
return formMobileCheck;
}
public void setFormMobileCheck(Boolean formMobileCheck) {
this.formMobileCheck = formMobileCheck;
}
public String getFormRemark() {
return formRemark;
}
public void setFormRemark(String formRemark) {
this.formRemark = formRemark == null ? null : formRemark.trim();
}
public String getFormButton() {
return formButton;
}
public void setFormButton(String formButton) {
this.formButton = formButton == null ? null : formButton.trim();
}
public String getFormLink() {
return formLink;
}
public void setFormLink(String formLink) {
this.formLink = formLink == null ? null : formLink.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getDetailInfo() {
return detailInfo;
}
public void setDetailInfo(String detailInfo) {
this.detailInfo = detailInfo == null ? null : detailInfo.trim();
}
public List<AdvertisingBmOption> getAdvertisingBmOptionList() {
return advertisingBmOptionList;
}
public void setAdvertisingBmOptionList(List<AdvertisingBmOption> advertisingBmOptionList) {
this.advertisingBmOptionList = advertisingBmOptionList;
}
public List<AdvertisingDetailFile> getAdvertisingDetailFileList() {
return advertisingDetailFileList;
}
public void setAdvertisingDetailFileList(List<AdvertisingDetailFile> advertisingDetailFileList) {
this.advertisingDetailFileList = advertisingDetailFileList;
}
public String getPreviewLink() {
return previewLink;
}
public void setPreviewLink(String previewLink) {
this.previewLink = previewLink;
}
}
\ No newline at end of file
...@@ -72,6 +72,10 @@ public class AdvertisingDetailFile extends BaseEntity{ ...@@ -72,6 +72,10 @@ public class AdvertisingDetailFile extends BaseEntity{
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private Date updateTime;
/**
* cpa内容id
*/
private Long cpaId;
public Long getAdId() { public Long getAdId() {
return adId; return adId;
} }
...@@ -186,6 +190,14 @@ public class AdvertisingDetailFile extends BaseEntity{ ...@@ -186,6 +190,14 @@ public class AdvertisingDetailFile extends BaseEntity{
this.updateTime = updateTime; this.updateTime = updateTime;
} }
public Long getCpaId() {
return cpaId;
}
public void setCpaId(Long cpaId) {
this.cpaId = cpaId;
}
@Override @Override
public String toString() { public String toString() {
return "AdvertisingDetailFile{" + return "AdvertisingDetailFile{" +
......
...@@ -21,9 +21,9 @@ public class AdvertisingGroupTag extends BaseEntity{ ...@@ -21,9 +21,9 @@ public class AdvertisingGroupTag extends BaseEntity{
private Long groupQrcodeId; private Long groupQrcodeId;
/** /**
* 广告主id * 品牌方id
*/ */
private Long masterId; private Long brandId;
@JsonFormat( @JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss", pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8" timezone = "GMT+8"
...@@ -46,12 +46,12 @@ public class AdvertisingGroupTag extends BaseEntity{ ...@@ -46,12 +46,12 @@ public class AdvertisingGroupTag extends BaseEntity{
this.groupQrcodeId = groupQrcodeId; this.groupQrcodeId = groupQrcodeId;
} }
public Long getMasterId() { public Long getBrandId() {
return masterId; return brandId;
} }
public void setMasterId(Long masterId) { public void setBrandId(Long brandId) {
this.masterId = masterId; this.brandId = brandId;
} }
public Date getCreateTime() { public Date getCreateTime() {
...@@ -67,7 +67,7 @@ public class AdvertisingGroupTag extends BaseEntity{ ...@@ -67,7 +67,7 @@ public class AdvertisingGroupTag extends BaseEntity{
return "AdvertisingGroupTag{" + return "AdvertisingGroupTag{" +
"tagBookId=" + tagBookId + "tagBookId=" + tagBookId +
", groupQrcodeId=" + groupQrcodeId + ", groupQrcodeId=" + groupQrcodeId +
", masterId=" + masterId + ", brandId=" + brandId +
", createTime=" + createTime + ", createTime=" + createTime +
'}'; '}';
} }
......
...@@ -42,10 +42,7 @@ public class AdvertisingMaster extends BaseEntity { ...@@ -42,10 +42,7 @@ public class AdvertisingMaster extends BaseEntity {
*/ */
private String password; private String password;
/**
* 登录账号id
*/
private Long loginId;
@Override @Override
public Long getId() { public Long getId() {
return id; return id;
...@@ -100,13 +97,6 @@ public class AdvertisingMaster extends BaseEntity { ...@@ -100,13 +97,6 @@ public class AdvertisingMaster extends BaseEntity {
this.loginName = loginName; this.loginName = loginName;
} }
public Long getLoginId() {
return loginId;
}
public void setLoginId(Long loginId) {
this.loginId = loginId;
}
public String getPassword() { public String getPassword() {
return password; return password;
...@@ -126,7 +116,6 @@ public class AdvertisingMaster extends BaseEntity { ...@@ -126,7 +116,6 @@ public class AdvertisingMaster extends BaseEntity {
", settlementMethodList=" + settlementMethodList + ", settlementMethodList=" + settlementMethodList +
", loginName='" + loginName + '\'' + ", loginName='" + loginName + '\'' +
", password='" + password + '\'' + ", password='" + password + '\'' +
", loginId=" + loginId +
'}'; '}';
} }
......
...@@ -180,7 +180,10 @@ public class AdvertisingSpace extends BaseEntity { ...@@ -180,7 +180,10 @@ public class AdvertisingSpace extends BaseEntity {
* 多个上传文件 * 多个上传文件
*/ */
private List<AdvertisingDetailFile> advertisingDetailFileList; private List<AdvertisingDetailFile> advertisingDetailFileList;
/**
* cp内容id
*/
private Long cpaId;
@Override @Override
public Long getId() { public Long getId() {
return id; return id;
...@@ -483,6 +486,14 @@ public class AdvertisingSpace extends BaseEntity { ...@@ -483,6 +486,14 @@ public class AdvertisingSpace extends BaseEntity {
this.advertisingDetailFileList = advertisingDetailFileList; this.advertisingDetailFileList = advertisingDetailFileList;
} }
public Long getCpaId() {
return cpaId;
}
public void setCpaId(Long cpaId) {
this.cpaId = cpaId;
}
@Override @Override
public String toString() { public String toString() {
return "AdvertisingSpace{" + return "AdvertisingSpace{" +
...@@ -523,6 +534,7 @@ public class AdvertisingSpace extends BaseEntity { ...@@ -523,6 +534,7 @@ public class AdvertisingSpace extends BaseEntity {
", adDetailFileName='" + adDetailFileName + '\'' + ", adDetailFileName='" + adDetailFileName + '\'' +
", adDetailFileDuration=" + adDetailFileDuration + ", adDetailFileDuration=" + adDetailFileDuration +
", advertisingDetailFileList=" + advertisingDetailFileList + ", advertisingDetailFileList=" + advertisingDetailFileList +
", cpaId=" + cpaId +
'}'; '}';
} }
} }
\ No newline at end of file
package com.pcloud.book.advertising.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
public class AdvertisingWechatMsg extends BaseEntity{
/**
* 广告id
*/
private Long adId;
/**
* 广告位置方式
*/
private String adPositionMode;
/**
* 广告位链接
*/
private String adLink;
/**
*广告位标题
*/
private String adTitle;
/**
*广告位文案
*/
private String adSlogan;
/**
*广告位图片
*/
private String adPic;
/**
* 序号
*/
private Integer seq;
@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 updateTime;
/**
* cpaId
*/
private Long cpaId;
public Long getAdId() {
return adId;
}
public void setAdId(Long adId) {
this.adId = adId;
}
public String getAdPositionMode() {
return adPositionMode;
}
public void setAdPositionMode(String adPositionMode) {
this.adPositionMode = adPositionMode == null ? null : adPositionMode.trim();
}
public String getAdLink() {
return adLink;
}
public void setAdLink(String adLink) {
this.adLink = adLink == null ? null : adLink.trim();
}
public String getAdTitle() {
return adTitle;
}
public void setAdTitle(String adTitle) {
this.adTitle = adTitle == null ? null : adTitle.trim();
}
public String getAdSlogan() {
return adSlogan;
}
public void setAdSlogan(String adSlogan) {
this.adSlogan = adSlogan == null ? null : adSlogan.trim();
}
public String getAdPic() {
return adPic;
}
public void setAdPic(String adPic) {
this.adPic = adPic == null ? null : adPic.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getSeq() {
return seq;
}
public void setSeq(Integer seq) {
this.seq = seq;
}
public Long getCpaId() {
return cpaId;
}
public void setCpaId(Long cpaId) {
this.cpaId = cpaId;
}
@Override
public String toString() {
return "AdvertisingWechatMsg{" +
"adId=" + adId +
", adPositionMode='" + adPositionMode + '\'' +
", adLink='" + adLink + '\'' +
", adTitle='" + adTitle + '\'' +
", adSlogan='" + adSlogan + '\'' +
", adPic='" + adPic + '\'' +
", seq=" + seq +
", createTime=" + createTime +
", updateTime=" + updateTime +
", cpaId=" + cpaId +
'}';
}
}
\ No newline at end of file
...@@ -9,8 +9,7 @@ public enum SettlementMethodEnum { ...@@ -9,8 +9,7 @@ public enum SettlementMethodEnum {
CPC("CPC", "按点击量"), CPC("CPC", "按点击量"),
CPM("CPM", "按曝光量"), CPM("CPM", "按曝光量"),
CPA("CPA", "按实际行动"), CPA("CPA", "按实际行动"),
CPS("CPS", "按实际销售"), CPS("CPS", "按实际销售");
Brand("Brand","品牌方,线下结算");
public final String code; public final String code;
...@@ -33,7 +32,7 @@ public enum SettlementMethodEnum { ...@@ -33,7 +32,7 @@ public enum SettlementMethodEnum {
return null; return null;
} }
public static final String[] SETTLEMENT_METHOD_GATHER = {CPC.code, CPM.code, CPA.code, CPS.code, Brand.code}; public static final String[] SETTLEMENT_METHOD_GATHER = {CPC.code, CPM.code, CPA.code, CPS.code};
public static final String[] SETTLEMENT_METHOD_NEED_PRICE_GATHER = {CPC.code, CPM.code, CPA.code}; public static final String[] SETTLEMENT_METHOD_NEED_PRICE_GATHER = {CPC.code, CPM.code, CPA.code};
} }
package com.pcloud.book.advertising.service.impl; package com.pcloud.book.advertising.service.impl;
import com.pcloud.book.advertising.biz.AdvertisingSpaceBiz; import com.pcloud.book.advertising.biz.AdvertisingSpaceBiz;
import com.pcloud.book.advertising.biz.GroupMasterTagBiz; import com.pcloud.book.advertising.biz.GroupTagBiz;
import com.pcloud.book.advertising.service.AdvertisingSpaceService; import com.pcloud.book.advertising.service.AdvertisingSpaceService;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
...@@ -38,7 +38,7 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService { ...@@ -38,7 +38,7 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService {
@Autowired @Autowired
private AdvertisingSpaceBiz advertisingSpaceBiz; private AdvertisingSpaceBiz advertisingSpaceBiz;
@Autowired @Autowired
private GroupMasterTagBiz groupMasterTagBiz; private GroupTagBiz groupTagBiz;
/** /**
* 每日凌晨计算昨日广告位收益 * 每日凌晨计算昨日广告位收益
...@@ -61,7 +61,16 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService { ...@@ -61,7 +61,16 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService {
@GetMapping("getTagWxGroupIdsByUserId") @GetMapping("getTagWxGroupIdsByUserId")
@ParamLog("根据登录用户获取标记的微信群列表") @ParamLog("根据登录用户获取标记的微信群列表")
public ResponseEntity<ResponseDto<List<String>>> getTagWxGroupIdsByUserId(@RequestParam("userId") Long userId) { public ResponseEntity<ResponseDto<List<String>>> getTagWxGroupIdsByUserId(@RequestParam("userId") Long userId) {
List<String> list = groupMasterTagBiz.getTagWxGroupIdsByUserId(userId); List<String> list = groupTagBiz.getTagWxGroupIdsByUserId(userId);
return ResponseHandleUtil.toResponse(list); return ResponseHandleUtil.toResponse(list);
} }
@Override
@GetMapping("getBrandIdsByWxGroupId")
@ParamLog("查微信群标记的品牌方id")
public ResponseEntity<ResponseDto<List<Long>>> getBrandIdsByWxGroupId(@RequestParam("wxGroupId") String wxGroupId) {
List<Long> brandIds = groupTagBiz.getBrandIdsByWxGroupId(wxGroupId);
return ResponseHandleUtil.toResponse(brandIds);
}
} }
...@@ -1116,11 +1116,11 @@ public class BookBizImpl implements BookBiz { ...@@ -1116,11 +1116,11 @@ public class BookBizImpl implements BookBiz {
@Override @Override
public PageBean listPage4Agent(PageParam pageParam, Map<String, Object> paramMap, Long agentId) { public PageBean listPage4Agent(PageParam pageParam, Map<String, Object> paramMap, Long agentId) {
LOGGER.info("书刊列表-出版端,<START>.[paramMap]=" + paramMap + ",agentId" + agentId); LOGGER.info("书刊列表-出版端,<START>.[paramMap]=" + paramMap + ",agentId" + agentId);
List<Long> adviserIds = adviserConsr.getIdsByNameAndAgentId(agentId, (String) paramMap.get("mainEditorName")); List<Long> adviserIds = adviserConsr.getIdsByNameAndAgentId(agentId, (String) paramMap.get("bookName"));
paramMap.put("adviserIds", adviserIds); paramMap.put("adviserIds", adviserIds);
if (ListUtils.isEmpty(adviserIds)) { /*if (ListUtils.isEmpty(adviserIds)) {
return new PageBean(0, 0, new ArrayList<>()); return new PageBean(0, 0, new ArrayList<>());
} }*/
PageBean pageBean = bookDao.listPage(pageParam, paramMap, "listPage4Agent"); PageBean pageBean = bookDao.listPage(pageParam, paramMap, "listPage4Agent");
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) { if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(); return new PageBean();
......
package com.pcloud.book.consumer.live;
import com.google.common.collect.Lists;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.liveapp.live.dto.CourseListDto;
import com.pcloud.liveapp.live.service.LiveCourseService;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import java.util.List;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Component
public class LiveCons {
@Resource
private LiveCourseService liveCourseService;
@ParamLog("[获取直播课表]")
public List<CourseListDto> getList4BroadcastReminder(Long serverId, String serverType) {
try {
ResponseEntity<ResponseDto<List<CourseListDto>>> reminder = liveCourseService.getList4BroadcastReminder(serverId, serverType);
log.info("[获取直播课表] appId:{}, serverType:{}, reminder:{}", serverId, serverType, reminder);
List<CourseListDto> courseListDtos = ResponseHandleUtil.parseList(reminder, CourseListDto.class);
return courseListDtos;
} catch (PermissionException e) {
log.error("[获取直播课表] error appId:{}, serverType:{}, e:{}", serverId, serverType, e);
}
return Lists.newArrayList();
}
}
...@@ -77,38 +77,6 @@ public class PartyConsr { ...@@ -77,38 +77,6 @@ public class PartyConsr {
return partyIdListVO; return partyIdListVO;
} }
@ParamLog("创建平台端登录账号")
public Long addLoginAccount(String loginName, String password) {
Long loginId = null;
try {
//todo
loginId = 000l;
} catch (Exception e) {
LOGGER.error("【用户中心】创建平台端登录账号失败" + e.getMessage(), e);
}
return loginId;
}
@ParamLog("修改平台端登录账号")
public void updateLoginAccount(String loginName, String password, Long loginId) {
try {
//todo
} catch (Exception e) {
LOGGER.error("【用户中心】修改平台端登录账号失败" + e.getMessage(), e);
}
}
@ParamLog("删除登录账号")
public void deleteLoginAccount(Long loginId) {
try {
//todo
} catch (Exception e) {
LOGGER.error("【用户中心】删除平台端登录账号失败" + e.getMessage(), e);
}
}
@ParamLog("获取登录账号信息") @ParamLog("获取登录账号信息")
public UserLogin getUserLoginInfo(Long loginId) { public UserLogin getUserLoginInfo(Long loginId) {
......
...@@ -46,6 +46,11 @@ public interface BookAuthUserBiz { ...@@ -46,6 +46,11 @@ public interface BookAuthUserBiz {
Boolean checkIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId, Integer authBookType); Boolean checkIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId, Integer authBookType);
/** /**
* 校验用户针对指定的服务是否被授权
*/
Boolean checkIsHaveAuthWithServer(String userInfo, Long serverId);
/**
* 获取授权信息总的统计数据 * 获取授权信息总的统计数据
*/ */
BookAuthCodeUserVO getAuthUserTotalCount(List<Long> adviserIds, List<Long> removeAdviserIds); BookAuthCodeUserVO getAuthUserTotalCount(List<Long> adviserIds, List<Long> removeAdviserIds);
......
package com.pcloud.book.copyright.biz.impl; package com.pcloud.book.copyright.biz.impl;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.copyright.biz.BookAuthUserBiz; import com.pcloud.book.copyright.biz.BookAuthUserBiz;
import com.pcloud.book.copyright.dao.BookAuthServeDao;
import com.pcloud.book.copyright.dao.BookAuthUserDao; import com.pcloud.book.copyright.dao.BookAuthUserDao;
import com.pcloud.book.copyright.dao.BookClickBuyRecordDao; import com.pcloud.book.copyright.dao.BookClickBuyRecordDao;
import com.pcloud.book.copyright.dto.CheckUserAuthDTO; import com.pcloud.book.copyright.dto.CheckUserAuthDTO;
import com.pcloud.book.copyright.dto.DateDTO; import com.pcloud.book.copyright.dto.DateDTO;
import com.pcloud.book.copyright.dto.ServeDTO;
import com.pcloud.book.copyright.entity.BookAuthUser; import com.pcloud.book.copyright.entity.BookAuthUser;
import com.pcloud.book.copyright.entity.BookClickBuyRecord; import com.pcloud.book.copyright.entity.BookClickBuyRecord;
import com.pcloud.book.copyright.enums.AuthBookTypeEnum; import com.pcloud.book.copyright.enums.AuthBookTypeEnum;
...@@ -19,6 +22,8 @@ import com.pcloud.book.util.common.ThreadPoolUtils; ...@@ -19,6 +22,8 @@ import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
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.cookie.Cookie;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -27,12 +32,11 @@ import org.springframework.stereotype.Component; ...@@ -27,12 +32,11 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/** /**
* @author lily * @author lily
...@@ -45,6 +49,10 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz { ...@@ -45,6 +49,10 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz {
private BookAuthUserDao bookAuthUserDao; private BookAuthUserDao bookAuthUserDao;
@Autowired @Autowired
private BookClickBuyRecordDao bookClickBuyRecordDao; private BookClickBuyRecordDao bookClickBuyRecordDao;
@Autowired
private QrcodeSceneConsr qrcodeSceneConsr;
@Autowired
private BookAuthServeDao bookAuthServeDao;
@ParamLog(value = "获取授权用户数量") @ParamLog(value = "获取授权用户数量")
...@@ -156,6 +164,25 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz { ...@@ -156,6 +164,25 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz {
} }
@Override @Override
public Boolean checkIsHaveAuthWithServer(String userInfo, Long serverId) {
Long bookId = qrcodeSceneConsr.getBookId4SceneId(Cookie.getId(userInfo,Cookie._SCENE_ID));
Long channelId = Cookie.getId(userInfo, Cookie._CHANNEL_ID);
Long adviserId = Cookie.getId(userInfo,Cookie._ADVISER_ID);
Long wecharUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
// 书类型指定为is_paper_book
Boolean isUserAuth = checkIsHaveAuth(bookId,channelId,adviserId,wecharUserId,0);
if(isUserAuth){
List<Long> serverIds = new ArrayList<>();
serverIds.add(serverId);
List<ServeDTO> serveDTOS = bookAuthServeDao.isSetServeAuth(bookId, channelId, adviserId, serverIds);
// 用户被授权, 且指定的应用也被版权保护时, 返回true
return !ListUtils.isEmpty(serveDTOS);
}
// 其余情况都是false
return false;
}
@Override
public BookAuthCodeUserVO getAuthUserTotalCount(List<Long> adviserIds, List<Long> removeAdviserIds) { public BookAuthCodeUserVO getAuthUserTotalCount(List<Long> adviserIds, List<Long> removeAdviserIds) {
BookAuthCodeUserVO bookAuthCodeUserVO = bookAuthUserDao.getAuthUserTotalCount(adviserIds, removeAdviserIds); BookAuthCodeUserVO bookAuthCodeUserVO = bookAuthUserDao.getAuthUserTotalCount(adviserIds, removeAdviserIds);
if(bookAuthCodeUserVO != null){ if(bookAuthCodeUserVO != null){
......
...@@ -11,6 +11,7 @@ import com.pcloud.common.exceptions.BizException; ...@@ -11,6 +11,7 @@ import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
...@@ -66,4 +67,9 @@ public interface BookAuthUserFacade { ...@@ -66,4 +67,9 @@ public interface BookAuthUserFacade {
@ApiOperation("校验用户是否授权过") @ApiOperation("校验用户是否授权过")
ResponseDto<?> checkIsHaveAuth(@CookieValue("userInfo") String userInfo, @RequestBody CheckUserParam checkUserParam) ResponseDto<?> checkIsHaveAuth(@CookieValue("userInfo") String userInfo, @RequestBody CheckUserParam checkUserParam)
throws BizException; throws BizException;
@GetMapping("checkIsHaveAuthWithServer")
@ApiOperation("校验用户针对指定的服务是否被授权")
ResponseDto<?> checkIsHaveAuthWithServer(@CookieValue("userInfo") String userInfo, @RequestParam("serveId") Long serveId)
throws BizException;
} }
package com.pcloud.book.copyright.facade.impl; package com.pcloud.book.copyright.facade.impl;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.copyright.biz.BookAuthUserBiz; import com.pcloud.book.copyright.biz.BookAuthUserBiz;
import com.pcloud.book.copyright.facade.BookAuthUserFacade; import com.pcloud.book.copyright.facade.BookAuthUserFacade;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO; import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
...@@ -16,6 +17,7 @@ import com.pcloud.common.utils.cookie.Cookie; ...@@ -16,6 +17,7 @@ import com.pcloud.common.utils.cookie.Cookie;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
...@@ -96,4 +98,10 @@ public class BookAuthUserFacadeImpl implements BookAuthUserFacade { ...@@ -96,4 +98,10 @@ public class BookAuthUserFacadeImpl implements BookAuthUserFacade {
Boolean result = bookAuthUserBiz.checkIsHaveAuth(bookId, channelId, adviserId, wechatUserId, 1); Boolean result = bookAuthUserBiz.checkIsHaveAuth(bookId, channelId, adviserId, wechatUserId, 1);
return new ResponseDto<>(result); return new ResponseDto<>(result);
} }
@Override
@GetMapping("checkIsHaveAuthWithServer")
public ResponseDto<?> checkIsHaveAuthWithServer(@CookieValue("userInfo") String userInfo, @RequestParam("serveId") Long serveId) throws BizException {
return new ResponseDto<>(bookAuthUserBiz.checkIsHaveAuthWithServer(userInfo,serveId));
}
} }
...@@ -296,6 +296,11 @@ public interface BookGroupBiz { ...@@ -296,6 +296,11 @@ public interface BookGroupBiz {
OwnAltQrcodeInfoDTO getOwnAltQrcodeInfoDTOByClassifyId(Long wechatUserId, Long classifyId); OwnAltQrcodeInfoDTO getOwnAltQrcodeInfoDTOByClassifyId(Long wechatUserId, Long classifyId);
/** /**
* 根据群二维码id获取个人二维码信息
*/
OwnAltQrcodeInfoDTO getOwnAltQrcodeInfoDTOByQrcodeId(Long wechatUserId, Long qrcodeId);
/**
* 获取暗号状态 * 获取暗号状态
*/ */
Integer getCipherState(String cipher); Integer getCipherState(String cipher);
......
...@@ -3,6 +3,7 @@ package com.pcloud.book.group.biz; ...@@ -3,6 +3,7 @@ package com.pcloud.book.group.biz;
import com.pcloud.book.group.dto.GroupAndUserNumberDTO; import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
import com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising; import com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising;
import com.pcloud.book.group.dto.GroupQrcodeInfoDTO; import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.dto.GroupQrcodeServerDTO;
import com.pcloud.book.group.entity.GroupQrcode; import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.ClassifyQrcodeVO; import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO; import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
...@@ -23,6 +24,12 @@ import java.util.Map; ...@@ -23,6 +24,12 @@ import java.util.Map;
public interface GroupQrcodeBiz { public interface GroupQrcodeBiz {
/** /**
* 根据Server获取相关的群id
* @param serverId
* @return
*/
List<GroupQrcodeServerDTO> getWxGroupIdByServerId(List<Long> serverIds);
/**
* 更新群人数 * 更新群人数
*/ */
Integer updateGroupCount(String wxGroupId, Integer num); Integer updateGroupCount(String wxGroupId, Integer num);
......
...@@ -24,6 +24,14 @@ import com.pcloud.book.consumer.user.AdviserConsr; ...@@ -24,6 +24,14 @@ import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.BookGroupBiz; import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.BookGroupClassifyBiz; import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.dao.*;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.entity.JoinGroupCipher;
import com.pcloud.book.group.entity.TempletRelevance;
import com.pcloud.book.group.enums.CipherTypeEnum;
import com.pcloud.book.group.enums.LargTempletEnum;
import com.pcloud.book.group.vo.StatisticVO;
import com.pcloud.book.group.biz.GroupQrcodeBiz; import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dao.AppClickRecordDao; import com.pcloud.book.group.dao.AppClickRecordDao;
import com.pcloud.book.group.dao.AppTouchRecordDao; import com.pcloud.book.group.dao.AppTouchRecordDao;
...@@ -51,12 +59,7 @@ import com.pcloud.book.group.dto.PersonalQrcodeDTO; ...@@ -51,12 +59,7 @@ import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO; import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto; import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import com.pcloud.book.group.dto.StatisticsIncomeDto; import com.pcloud.book.group.dto.StatisticsIncomeDto;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.JoinGroupCipher;
import com.pcloud.book.group.entity.TempletRelevance;
import com.pcloud.book.group.enums.CipherTypeEnum;
import com.pcloud.book.group.enums.LargTempletEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools; import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.ClassifyAndGroupCountVO; import com.pcloud.book.group.vo.ClassifyAndGroupCountVO;
import com.pcloud.book.group.vo.ClassifyQrcodeVO; import com.pcloud.book.group.vo.ClassifyQrcodeVO;
...@@ -69,7 +72,6 @@ import com.pcloud.book.group.vo.ListBook4ChannelVO; ...@@ -69,7 +72,6 @@ import com.pcloud.book.group.vo.ListBook4ChannelVO;
import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO; import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO;
import com.pcloud.book.group.vo.ResourceClickVO; import com.pcloud.book.group.vo.ResourceClickVO;
import com.pcloud.book.group.vo.ResourcesStatisticVO; import com.pcloud.book.group.vo.ResourcesStatisticVO;
import com.pcloud.book.group.vo.StatisticVO;
import com.pcloud.book.group.vo.TotalRescourceDataVO; import com.pcloud.book.group.vo.TotalRescourceDataVO;
import com.pcloud.book.group.vo.WxGroupStatisticVO; import com.pcloud.book.group.vo.WxGroupStatisticVO;
import com.pcloud.book.keywords.dao.BookKeywordDao; import com.pcloud.book.keywords.dao.BookKeywordDao;
...@@ -226,6 +228,8 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -226,6 +228,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
private GroupQrcodeBiz groupQrcodeBiz; private GroupQrcodeBiz groupQrcodeBiz;
@Autowired @Autowired
private BookGroupServeDao bookGroupServeDao; private BookGroupServeDao bookGroupServeDao;
@Autowired
private GroupQrcodeDao groupQrcodeDao;
...@@ -1354,6 +1358,66 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -1354,6 +1358,66 @@ public class BookGroupBizImpl implements BookGroupBiz {
return ownAltQrcodeInfoDTO; return ownAltQrcodeInfoDTO;
} }
@Transactional(rollbackFor = Exception.class)
@ParamLog("根据分类id获取个人二维码信息")
@Override
public OwnAltQrcodeInfoDTO getOwnAltQrcodeInfoDTOByQrcodeId(Long wechatUserId, Long qrcodeId) {
OwnAltQrcodeInfoDTO ownAltQrcodeInfoDTO = new OwnAltQrcodeInfoDTO();
GroupQrcode groupQrcode = groupQrcodeDao.getById(qrcodeId);
Long classifyId = groupQrcode.getClassifyId();
//根据分类id查询社群码信息
ClassifyDTO classifyDTO = bookGroupClassifyDao.getById(classifyId);
if (classifyDTO == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "没有该分类");
}
Long bookId = classifyDTO.getBookId();
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("bookId", bookId);
paramMap.put("adviserId", classifyDTO.getCreateUser());
paramMap.put("channelId", classifyDTO.getChannelId());
BookDto bookDto = bookDao.getById(paramMap);
Long templetId = bookDto.getTempletId();
//根据分类id获取大类
TempletRelevance templetRelevance = templetRelevanceDao.getByTempletId(templetId);
LOGGER.info("根据分类id获取大类templetRelevance" + templetRelevance.toString());
Integer largeTemplet = templetRelevance.getLargeTemplet();
SelfRobotDTO selfRobotDTO = wechatGroupConsr.getAvailableRobot(wechatUserId, largeTemplet, classifyId);
if (selfRobotDTO == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "未找到机器人!");
}
ownAltQrcodeInfoDTO.setAltHeadUrl(selfRobotDTO.getHeadPic());
ownAltQrcodeInfoDTO.setAltId(selfRobotDTO.getWxId());
ownAltQrcodeInfoDTO.setAltNickName(selfRobotDTO.getNickName());
ownAltQrcodeInfoDTO.setAltQrcodeUrl(selfRobotDTO.getQrcodeUrl());
ownAltQrcodeInfoDTO.setAltHeadUrl(selfRobotDTO.getHeadPic());
//获取之前是否有没有使用的暗号
JoinGroupCipher joinGroupCipher = joinGroupCipherDao.getByWechatUserIdAndQrcodeId(wechatUserId, qrcodeId, CipherTypeEnum.QRCODE_CIPHER.code);
String cipher;
if (joinGroupCipher != null) {
cipher = joinGroupCipher.getCipher();
} else {
//新增暗号
cipher = UUIDUitl.generateShort();
//查重,如果有重复,再次生成
JoinGroupCipher joinGroupCipherHas = joinGroupCipherDao.getByCipher(cipher);
if (joinGroupCipherHas != null) {
cipher = UUIDUitl.generateShort();
}
cipher = "RAYS_" + cipher;
JoinGroupCipher joinGroupCipherNew = new JoinGroupCipher();
joinGroupCipherNew.setCipher(cipher);
joinGroupCipherNew.setWechatUserId(wechatUserId);
joinGroupCipherNew.setClassifyId(classifyId);
joinGroupCipherNew.setAltId(selfRobotDTO.getWxId());
joinGroupCipherNew.setQrcodeId(qrcodeId);
joinGroupCipherNew.setType(CipherTypeEnum.QRCODE_CIPHER.code);
joinGroupCipherDao.insert(joinGroupCipherNew);
}
ownAltQrcodeInfoDTO.setCipher(cipher);
return ownAltQrcodeInfoDTO;
}
@ParamLog("获取暗号状态") @ParamLog("获取暗号状态")
@Override @Override
public Integer getCipherState(String cipher) { public Integer getCipherState(String cipher) {
......
...@@ -978,11 +978,12 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz { ...@@ -978,11 +978,12 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
@ParamLog("获取编辑的分类") @ParamLog("获取编辑的分类")
public PageBeanNew<AdviserClassifyVO> listAdviserClassify(Long adviserId, AdviserClassifyParam adviserClassifyParam) { public PageBeanNew<AdviserClassifyVO> listAdviserClassify(Long adviserId, AdviserClassifyParam adviserClassifyParam) {
PageParam pageParam = new PageParam(adviserClassifyParam.getCurrentPage(), adviserClassifyParam.getNumPerPage()); PageParam pageParam = new PageParam(adviserClassifyParam.getCurrentPage(), adviserClassifyParam.getNumPerPage());
Map<String,Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adviserId",adviserId); paramMap.put("adviserId", adviserId);
paramMap.put("classify",adviserClassifyParam.getClassify()); paramMap.put("classify", adviserClassifyParam.getClassify());
paramMap.put("bookId", adviserClassifyParam.getBookId());
PageBeanNew<AdviserClassifyVO> pageBeanNew = bookGroupClassifyDao.listPageNew(pageParam, paramMap, "listAdviserClassify"); PageBeanNew<AdviserClassifyVO> pageBeanNew = bookGroupClassifyDao.listPageNew(pageParam, paramMap, "listAdviserClassify");
if(pageBeanNew == null){ if (pageBeanNew == null) {
return new PageBeanNew<>(adviserClassifyParam.getCurrentPage(), adviserClassifyParam.getNumPerPage(), new ArrayList<>()); return new PageBeanNew<>(adviserClassifyParam.getCurrentPage(), adviserClassifyParam.getNumPerPage(), new ArrayList<>());
} }
return pageBeanNew; return pageBeanNew;
......
package com.pcloud.book.group.biz.impl; package com.pcloud.book.group.biz.impl;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.pcloud.book.advertising.biz.AdvertisingSpaceBiz; import com.pcloud.book.advertising.biz.AdvertisingSpaceBiz;
import com.pcloud.book.advertising.biz.GroupMasterTagBiz; import com.pcloud.book.advertising.biz.GroupTagBiz;
import com.pcloud.book.advertising.dto.QrcodeAdvertisingSpaceCountDTO; import com.pcloud.book.advertising.dto.QrcodeAdvertisingSpaceCountDTO;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.label.LabelConsr; import com.pcloud.book.consumer.label.LabelConsr;
...@@ -15,9 +16,7 @@ import com.pcloud.book.group.biz.BookGroupClassifyBiz; ...@@ -15,9 +16,7 @@ import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.biz.GroupAnnouncementBiz; import com.pcloud.book.group.biz.GroupAnnouncementBiz;
import com.pcloud.book.group.biz.GroupQrcodeBiz; import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.biz.WeixinQrcodeBiz; import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.constants.BookBusinessConstants;
import com.pcloud.book.group.dao.GroupQrcodeDao; import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.AutoUpdateGroupNumDTO;
import com.pcloud.book.group.dto.BookWxQrcodeDTO; import com.pcloud.book.group.dto.BookWxQrcodeDTO;
import com.pcloud.book.group.dto.ChangeGroupNameDTO; import com.pcloud.book.group.dto.ChangeGroupNameDTO;
import com.pcloud.book.group.dto.GroupAndUserNumberDTO; import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
...@@ -25,6 +24,7 @@ import com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO; ...@@ -25,6 +24,7 @@ import com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO; import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising; import com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising;
import com.pcloud.book.group.dto.GroupQrcodeInfoDTO; import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.dto.GroupQrcodeServerDTO;
import com.pcloud.book.group.dto.PushAddUserMessageDTO; import com.pcloud.book.group.dto.PushAddUserMessageDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO; import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.dto.WeixinQrcodeDTO; import com.pcloud.book.group.dto.WeixinQrcodeDTO;
...@@ -66,16 +66,11 @@ import org.springframework.util.CollectionUtils; ...@@ -66,16 +66,11 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -115,7 +110,7 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz { ...@@ -115,7 +110,7 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
@Autowired @Autowired
private BookGroupBiz bookGroupBiz; private BookGroupBiz bookGroupBiz;
@Autowired @Autowired
private GroupMasterTagBiz groupMasterTagBiz; private GroupTagBiz groupTagBiz;
/** /**
...@@ -124,6 +119,14 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz { ...@@ -124,6 +119,14 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
// private static final AtomicBoolean IS_START = new AtomicBoolean(false); // private static final AtomicBoolean IS_START = new AtomicBoolean(false);
@Override
public List<GroupQrcodeServerDTO> getWxGroupIdByServerId(List<Long> serverIds) {
if (CollectionUtils.isEmpty(serverIds)) {
return Lists.newArrayList();
}
return groupQrcodeDao.getWxGroupIdByServerId(serverIds);
}
/** /**
* 处理群人数线程池 * 处理群人数线程池
*/ */
...@@ -328,7 +331,7 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz { ...@@ -328,7 +331,7 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
public Long insert(GroupQrcode groupQrcode) { public Long insert(GroupQrcode groupQrcode) {
groupQrcodeDao.insert(groupQrcode); groupQrcodeDao.insert(groupQrcode);
//判断广告位标记 //判断广告位标记
groupMasterTagBiz.addTagByBookGroup(groupQrcode.getClassifyId(), groupQrcode.getId()); groupTagBiz.addTagByBookGroup(groupQrcode.getClassifyId(), groupQrcode.getId());
return groupQrcode.getId(); return groupQrcode.getId();
} }
......
package com.pcloud.book.group.dao; package com.pcloud.book.group.dao;
import com.pcloud.book.advertising.dto.GroupMasterDTO; import com.pcloud.book.advertising.dto.GroupTagDTO;
import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO; import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO;
import com.pcloud.book.group.dto.*; import com.pcloud.book.group.dto.ChangeGroupNameDTO;
import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeFoAdDTO;
import com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising;
import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.dto.GroupQrcodeServerDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.entity.GroupQrcode; import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.ClassifyQrcodeVO; import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO; import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
...@@ -18,6 +25,8 @@ import java.util.Map; ...@@ -18,6 +25,8 @@ import java.util.Map;
*/ */
public interface GroupQrcodeDao extends BaseDao<GroupQrcode> { public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
List<GroupQrcodeServerDTO> getWxGroupIdByServerId(List<Long> serverId);
Integer updateGroupCount(String wxGroupId, Integer num); Integer updateGroupCount(String wxGroupId, Integer num);
void updateGroupQrcode(Long groupQrcodeId, String qrcodeUrl, Long userId); void updateGroupQrcode(Long groupQrcodeId, String qrcodeUrl, Long userId);
...@@ -236,11 +245,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> { ...@@ -236,11 +245,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
public Map<String, Object> getGroupCountUserCountByBookId(Long bookId); public Map<String, Object> getGroupCountUserCountByBookId(Long bookId);
/** /**
* 查询微信群广告标记列表 * 查询微信群品牌方标记列表
* @param map * @param map
* @return * @return
*/ */
public List<GroupMasterDTO> listPageGroupMaster(Map<String, Object> map); public List<GroupTagDTO> listPageGroup4Brand(Map<String, Object> map);
List<ClassifyQrcodeVO> getQrcodeByClassify(Long classifyId); List<ClassifyQrcodeVO> getQrcodeByClassify(Long classifyId);
......
...@@ -48,4 +48,8 @@ public interface JoinGroupCipherDao extends BaseDao<JoinGroupCipher> { ...@@ -48,4 +48,8 @@ public interface JoinGroupCipherDao extends BaseDao<JoinGroupCipher> {
* @return * @return
*/ */
List<DayCountDTO> getBookGroupFriendsCountByDay(Long bookGroupId, String startTime, String endTime); List<DayCountDTO> getBookGroupFriendsCountByDay(Long bookGroupId, String startTime, String endTime);
JoinGroupCipher getByWechatUserIdAndQrcodeId(Long wechatUserId, Long qrcodeId, Integer type);
void updateCipher(Long id, String cipher);
} }
...@@ -2,10 +2,17 @@ package com.pcloud.book.group.dao.impl; ...@@ -2,10 +2,17 @@ package com.pcloud.book.group.dao.impl;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.pcloud.book.advertising.dto.GroupMasterDTO; import com.pcloud.book.advertising.dto.GroupTagDTO;
import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO; import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO;
import com.pcloud.book.group.dao.GroupQrcodeDao; import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.*; import com.pcloud.book.group.dto.ChangeGroupNameDTO;
import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeFoAdDTO;
import com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising;
import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.dto.GroupQrcodeServerDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.entity.GroupQrcode; import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.ClassifyQrcodeVO; import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO; import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
...@@ -26,6 +33,11 @@ import java.util.Map; ...@@ -26,6 +33,11 @@ import java.util.Map;
public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements GroupQrcodeDao { public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements GroupQrcodeDao {
@Override @Override
public List<GroupQrcodeServerDTO> getWxGroupIdByServerId(List<Long> list) {
return this.getSqlSession().selectList(this.getStatement("getWxGroupIdByServerId"), list);
}
@Override
public Integer updateGroupCount(String wxGroupId, Integer num) { public Integer updateGroupCount(String wxGroupId, Integer num) {
final Map<String, Object> map = Maps.newHashMap(); final Map<String, Object> map = Maps.newHashMap();
map.put("weixinGroupId", wxGroupId); map.put("weixinGroupId", wxGroupId);
...@@ -247,8 +259,8 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou ...@@ -247,8 +259,8 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
} }
@Override @Override
public List<GroupMasterDTO> listPageGroupMaster(Map<String, Object> map) { public List<GroupTagDTO> listPageGroup4Brand(Map<String, Object> map) {
return getSessionTemplate().selectList(getStatement("listPageGroupMaster"), map); return getSessionTemplate().selectList(getStatement("listPageGroup4Brand"), map);
} }
} }
...@@ -102,4 +102,20 @@ public class JoinGroupCipherDaoImpl extends BaseDaoImpl<JoinGroupCipher> impleme ...@@ -102,4 +102,20 @@ public class JoinGroupCipherDaoImpl extends BaseDaoImpl<JoinGroupCipher> impleme
map.put("endTime", endTime); map.put("endTime", endTime);
return getSessionTemplate().selectList(getStatement("getBookGroupFriendsCountByDay"), map); return getSessionTemplate().selectList(getStatement("getBookGroupFriendsCountByDay"), map);
} }
public JoinGroupCipher getByWechatUserIdAndQrcodeId(Long wechatUserId, Long qrcodeId, Integer type) {
Map<String,Object> map=new HashMap<>();
map.put("wechatUserId",wechatUserId);
map.put("qrcodeId",qrcodeId);
map.put("type",type);
return this.getSqlSession().selectOne(this.getStatement("getByWechatUserIdAndQrcodeId"), map);
}
@Override
public void updateCipher(Long id, String cipher) {
Map<String, Object> map = new HashMap<>();
map.put("id", id);
map.put("cipher", cipher);
getSessionTemplate().update(getStatement("updateCipher"), map);
}
} }
package com.pcloud.book.group.dto;
import java.io.Serializable;
import lombok.Data;
@Data
public class GroupQrcodeServerDTO implements Serializable {
/**
* 微信群id @chatroom
*/
private String wxGroupId;
/**
* 应用连接
*/
private String linkUrl;
/**
* 渠道id
*/
private Long channelId;
/**
* 社群书id
*/
private Long bookGroupId;
/**
* 所属分类id
*/
private Long classifyId;
/**
* 应用/作品ID
*/
private Long serveId;
/**
* APP or PRODUCT
*/
private String serveType;
/**
* book_group_qrcode表主键
*/
private Long groupQrcodeId;
}
package com.pcloud.book.group.dto;
import com.pcloud.book.keywords.dto.KeywordDTO;
import com.pcloud.book.keywords.dto.KeywordStatusDTO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import java.util.List;
import lombok.Data;
@Data
public class SendDefaultGuideMessageDTO {
private String groupName;
private String robotId;
private String weixinGroupId;
private Boolean isHaveKeywords;
private Boolean isGroupRobot;
private List<KeywordDTO> keywords;
private KeywordStatusDTO dto;
private GroupClassifyQrcodeDTO classifyQrcodeInfo;
private String ip;
private AccountSettingDto accountSettingDto;
}
package com.pcloud.book.group.dto;
import com.pcloud.book.keywords.dto.KeywordDTO;
import com.pcloud.book.keywords.dto.KeywordStatusDTO;
import com.pcloud.book.keywords.vo.ReplyMessageVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import java.util.List;
import lombok.Data;
@Data
public class SendGuideMessageDTO {
private List<ReplyMessageVO> replyMessages;
private String robotId;
private String weixinGroupId;
private Boolean isGroupRobot;
private List<KeywordDTO> keywords;
private KeywordStatusDTO dto;
private String ip;
private Integer code;
private AccountSettingDto accountSettingDto;
private GroupClassifyQrcodeDTO classifyQrcodeInfo;
}
...@@ -308,6 +308,13 @@ public interface BookGroupFacade { ...@@ -308,6 +308,13 @@ public interface BookGroupFacade {
@RequestParam("classifyId") Long classifyId @RequestParam("classifyId") Long classifyId
) throws BizException, PermissionException, JsonParseException; ) throws BizException, PermissionException, JsonParseException;
@ApiOperation("根据分类id获取个人二维码")
@GetMapping("getOwnAltQrcodeInfoDTOByQrcodeId")
ResponseDto<?> getOwnAltQrcodeInfoDTOByQrcodeId(
@CookieValue("userInfo") String userInfo,
@RequestParam("qrcodeId") Long qrcodeId
) throws BizException, PermissionException, JsonParseException;
@ApiOperation("获取所有的大类") @ApiOperation("获取所有的大类")
@GetMapping("getAllLargeTemplet") @GetMapping("getAllLargeTemplet")
ResponseDto<?> getAllLargeTemplet( ResponseDto<?> getAllLargeTemplet(
......
...@@ -448,6 +448,20 @@ public class BookGroupFacadeImpl implements BookGroupFacade { ...@@ -448,6 +448,20 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
return new ResponseDto<>(bookGroupBiz.getOwnAltQrcodeInfoDTOByClassifyId(wechatUserId, classifyId)); return new ResponseDto<>(bookGroupBiz.getOwnAltQrcodeInfoDTOByClassifyId(wechatUserId, classifyId));
} }
@ApiOperation("根据群二维码id获取个人二维码")
@GetMapping("getOwnAltQrcodeInfoDTOByQrcodeId")
@Override
public ResponseDto<?> getOwnAltQrcodeInfoDTOByQrcodeId(
@CookieValue("userInfo") String userInfo,
@RequestParam("qrcodeId") Long qrcodeId
) throws BizException, PermissionException, JsonParseException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
if (qrcodeId == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "分类不能为空!");
}
return new ResponseDto<>(bookGroupBiz.getOwnAltQrcodeInfoDTOByQrcodeId(wechatUserId, qrcodeId));
}
@ApiOperation("获取所有的大类") @ApiOperation("获取所有的大类")
@GetMapping("getAllLargeTemplet") @GetMapping("getAllLargeTemplet")
@Override @Override
......
...@@ -18,6 +18,9 @@ public class AdviserClassifyParam { ...@@ -18,6 +18,9 @@ public class AdviserClassifyParam {
@ApiModelProperty("分类名称") @ApiModelProperty("分类名称")
private String classify; private String classify;
@ApiModelProperty("图书id")
private Long bookId;
public Integer getCurrentPage() { public Integer getCurrentPage() {
return currentPage; return currentPage;
} }
...@@ -42,12 +45,21 @@ public class AdviserClassifyParam { ...@@ -42,12 +45,21 @@ public class AdviserClassifyParam {
this.classify = classify; this.classify = classify;
} }
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
@Override @Override
public String toString() { public String toString() {
return "AdviserClassifyParam{" + return "AdviserClassifyParam{" +
"currentPage=" + currentPage + "currentPage=" + currentPage +
", numPerPage=" + numPerPage + ", numPerPage=" + numPerPage +
", classify='" + classify + '\'' + ", classify='" + classify + '\'' +
", bookId=" + bookId +
'}'; '}';
} }
} }
...@@ -17,6 +17,8 @@ import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO; ...@@ -17,6 +17,8 @@ import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO; import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.dto.JoinGroupCipherDTO; import com.pcloud.book.group.dto.JoinGroupCipherDTO;
import com.pcloud.book.group.dto.PushAddUserMessageDTO; import com.pcloud.book.group.dto.PushAddUserMessageDTO;
import com.pcloud.book.group.dto.SendDefaultGuideMessageDTO;
import com.pcloud.book.group.dto.SendGuideMessageDTO;
import com.pcloud.book.group.entity.AppTouchRecord; import com.pcloud.book.group.entity.AppTouchRecord;
import com.pcloud.book.group.entity.GroupQrcode; import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.entity.JoinGroupCipher; import com.pcloud.book.group.entity.JoinGroupCipher;
...@@ -133,7 +135,14 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -133,7 +135,14 @@ public class BookGuideBizImpl implements BookGuideBiz {
} }
final JoinGroupCipherDTO dto = joinGroupCipherDao.getDTOByCipher(cipher); final JoinGroupCipherDTO dto = joinGroupCipherDao.getDTOByCipher(cipher);
//获取群 //获取群
final GroupQrcodeBaseInfoVO wxGroup = bookGroupClassifyBiz.getWxGroupIdByClassifyIdAndWechatId(dto.getClassifyId(), dto.getWechatUserId()); GroupQrcodeBaseInfoVO wxGroup = bookGroupClassifyBiz.getWxGroupIdByClassifyIdAndWechatId(dto.getClassifyId(), dto.getWechatUserId());
//判断是否是品牌方进具体群,如果是,从暗号表获取已经定好的群
if ((!StringUtil.isEmpty(agreeAddUserDTO.getCipher())) && agreeAddUserDTO.getCipher().contains("RAYS_")) {
JoinGroupCipher jgc = joinGroupCipherDao.getByCipher(agreeAddUserDTO.getCipher());
if (CipherTypeEnum.QRCODE_CIPHER.code.equals(jgc.getType())) {
wxGroup = groupQrcodeDao.getBaseById(jgc.getQrcodeId());
}
}
if (null == wxGroup) { if (null == wxGroup) {
log.error("[同意加好友发送欢迎语] : bookGroupClassifyBiz.getWxGroupIdByClassifyIdAndWechatId dto:{}"); log.error("[同意加好友发送欢迎语] : bookGroupClassifyBiz.getWxGroupIdByClassifyIdAndWechatId dto:{}");
throw new BookBizException(BookBizException.ID_NOT_EXIST, "群不存在"); throw new BookBizException(BookBizException.ID_NOT_EXIST, "群不存在");
...@@ -499,17 +508,40 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -499,17 +508,40 @@ public class BookGuideBizImpl implements BookGuideBiz {
log.info("[wechatGroupConsr.isGroupRobot] robotId:{} groupRobot:{}", robotId, groupRobot); log.info("[wechatGroupConsr.isGroupRobot] robotId:{} groupRobot:{}", robotId, groupRobot);
//如果设置了群学习报告,加一个群学习报告的关键词 //如果设置了群学习报告,加一个群学习报告的关键词
KeywordStatusDTO dto = pushLearningReport(classifyQrcodeInfo, robotId, weixinGroupId, pushAddUserMessageDTO.getIp()); KeywordStatusDTO dto = pushLearningReport(classifyQrcodeInfo, robotId, weixinGroupId, pushAddUserMessageDTO.getIp());
AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(classifyQrcodeInfo.getChannelId());
if (ListUtils.isEmpty(replyMessages)) { if (ListUtils.isEmpty(replyMessages)) {
//获取群名称 //获取群名称
GroupQrcodeBaseInfoVO groupInfo = groupQrcodeBiz.getBaseById(classifyQrcodeInfo.getGroupQrcodeId()); GroupQrcodeBaseInfoVO groupInfo = groupQrcodeBiz.getBaseById(classifyQrcodeInfo.getGroupQrcodeId());
//推送消息 刘娜需求 1001282 群不推送关键词 //推送消息 刘娜需求 1001282 群不推送关键词
// 若非之前的机器人则不回复普通关键词 // 若非之前的机器人则不回复普通关键词
SendWeixinRequestTools.sendDefaultMessage(groupInfo == null ? "" : groupInfo.getGroupName(), robotId, weixinGroupId, isHaveKeywords, groupRobot, keywords, dto, pushAddUserMessageDTO.getIp()); SendDefaultGuideMessageDTO sendGuideMessageDTO = new SendDefaultGuideMessageDTO();
sendGuideMessageDTO.setClassifyQrcodeInfo(classifyQrcodeInfo);
sendGuideMessageDTO.setGroupName(groupInfo == null ? "" : groupInfo.getGroupName());
sendGuideMessageDTO.setRobotId(robotId);
sendGuideMessageDTO.setWeixinGroupId(weixinGroupId);
sendGuideMessageDTO.setIsHaveKeywords(isHaveKeywords);
sendGuideMessageDTO.setIsGroupRobot(groupRobot);
sendGuideMessageDTO.setKeywords(keywords);
sendGuideMessageDTO.setDto(dto);
sendGuideMessageDTO.setIp(pushAddUserMessageDTO.getIp());
sendGuideMessageDTO.setAccountSettingDto(accountSettingDto);
SendWeixinRequestTools.sendDefaultMessage(sendGuideMessageDTO);
} else { } else {
//处理链接 //处理链接
handleUrl(replyMessages, wechatInfo, classifyQrcodeInfo); handleUrl(replyMessages, wechatInfo, classifyQrcodeInfo);
//推送消息 //推送消息
SendWeixinRequestTools.sendGuideMessage(replyMessages, robotId, weixinGroupId, groupRobot, keywords, dto, pushAddUserMessageDTO.getIp(), SendMessageTypeEnum.GROUP.getCode()); SendGuideMessageDTO sendGuideMessageDTO = new SendGuideMessageDTO();
sendGuideMessageDTO.setClassifyQrcodeInfo(classifyQrcodeInfo);
sendGuideMessageDTO.setReplyMessages(replyMessages);
sendGuideMessageDTO.setRobotId(robotId);
sendGuideMessageDTO.setWeixinGroupId(weixinGroupId);
sendGuideMessageDTO.setIsGroupRobot(groupRobot);
sendGuideMessageDTO.setKeywords(keywords);
sendGuideMessageDTO.setDto(dto);
sendGuideMessageDTO.setIp(pushAddUserMessageDTO.getIp());
sendGuideMessageDTO.setCode(SendMessageTypeEnum.GROUP.getCode());
sendGuideMessageDTO.setAccountSettingDto(accountSettingDto);
SendWeixinRequestTools.sendGuideMessage(sendGuideMessageDTO);
//新增欢迎语应用触发记录 //新增欢迎语应用触发记录
addGuideAppTouchRecord(replyMessages,weixinGroupId,classifyQrcodeInfo.getBookGroupId(),classifyQrcodeInfo.getClassifyId()); addGuideAppTouchRecord(replyMessages,weixinGroupId,classifyQrcodeInfo.getBookGroupId(),classifyQrcodeInfo.getClassifyId());
} }
...@@ -521,9 +553,10 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -521,9 +553,10 @@ public class BookGuideBizImpl implements BookGuideBiz {
@ParamLog("推关学习报告/猜谜语关键词消息") @ParamLog("推关学习报告/猜谜语关键词消息")
private KeywordStatusDTO pushLearningReport(GroupClassifyQrcodeDTO classifyQrcodeInfo, String robotId, String weixinGroupId, String ip) { private KeywordStatusDTO pushLearningReport(GroupClassifyQrcodeDTO classifyQrcodeInfo, String robotId, String weixinGroupId, String ip) {
Boolean reportOpen = false; boolean reportOpen = false;
Boolean riddleOpen = false; boolean riddleOpen = false;
Boolean clockOpen = false; boolean clockOpen = false;
KeywordStatusDTO dto = new KeywordStatusDTO();
if (classifyQrcodeInfo.getHasOpenLearningReport() != null && classifyQrcodeInfo.getHasOpenLearningReport()) { if (classifyQrcodeInfo.getHasOpenLearningReport() != null && classifyQrcodeInfo.getHasOpenLearningReport()) {
reportOpen = true; reportOpen = true;
} }
...@@ -534,12 +567,12 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -534,12 +567,12 @@ public class BookGuideBizImpl implements BookGuideBiz {
WeixinClockDto weixinClockDto = weixinClockGroupClassifyDao.getClockBaseInfoByClassify(classifyQrcodeInfo.getClassifyId()); WeixinClockDto weixinClockDto = weixinClockGroupClassifyDao.getClockBaseInfoByClassify(classifyQrcodeInfo.getClassifyId());
if (null != weixinClockDto && !StringUtil.isEmpty(weixinClockDto.getClockGuide()) && !StringUtil.isEmpty(weixinClockDto.getClockKeyword())) { if (null != weixinClockDto && !StringUtil.isEmpty(weixinClockDto.getClockGuide()) && !StringUtil.isEmpty(weixinClockDto.getClockKeyword())) {
clockOpen = true; clockOpen = true;
dto.setClockGuide(weixinClockDto.getClockGuide());
dto.setClockKeyword(weixinClockDto.getClockKeyword());
} }
KeywordStatusDTO dto = new KeywordStatusDTO();
dto.setReportOpen(reportOpen); dto.setReportOpen(reportOpen);
dto.setRiddleOpen(riddleOpen); dto.setRiddleOpen(riddleOpen);
dto.setClockOpen(clockOpen); dto.setClockOpen(clockOpen);
dto.setClockKeyword(null == weixinClockDto ? StringUtil.EMPTY : weixinClockDto.getClockKeyword());
return dto; return dto;
// if (reportOpen && riddleOpen && clockOpen) { // if (reportOpen && riddleOpen && clockOpen) {
// SendWeixinRequestTools.sendTextMessage("关键词【学习报告】\n 获取个人专属学习报告,与群成员PK元气值\n" + // SendWeixinRequestTools.sendTextMessage("关键词【学习报告】\n 获取个人专属学习报告,与群成员PK元气值\n" +
......
...@@ -9,6 +9,7 @@ import com.pcloud.book.base.exception.BookBizException; ...@@ -9,6 +9,7 @@ import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookKeywordWarehouseBiz; import com.pcloud.book.book.biz.BookKeywordWarehouseBiz;
import com.pcloud.book.consumer.app.AppConsr; import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr; import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.live.LiveCons;
import com.pcloud.book.consumer.resource.ProductConsr; import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.BookGroupBiz; import com.pcloud.book.group.biz.BookGroupBiz;
...@@ -68,6 +69,7 @@ import com.pcloud.common.utils.bean.ResponesUtils; ...@@ -68,6 +69,7 @@ import com.pcloud.common.utils.bean.ResponesUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils; import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.httpclient.UrlUtils; import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.liveapp.live.dto.CourseListDto;
import com.pcloud.resourcecenter.product.dto.ProductDto; import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductTypeDto; import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
import com.pcloud.wechatgroup.group.dto.RobotReplyDTO; import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
...@@ -141,6 +143,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -141,6 +143,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
private GroupQrcodeBiz groupQrcodeBiz; private GroupQrcodeBiz groupQrcodeBiz;
@Autowired @Autowired
private JoinGroupCipherDao joinGroupCipherDao; private JoinGroupCipherDao joinGroupCipherDao;
@Autowired
private LiveCons liveCons;
@Override @Override
@ParamLog("新增关键词") @ParamLog("新增关键词")
...@@ -540,9 +544,25 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -540,9 +544,25 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
if (isApp || isLink) { if (isApp || isLink) {
AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(dto.getChannelId()); AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(dto.getChannelId());
String linkUrl = SendWeixinRequestTools.splitUrlNew(accountSettingDto, replyKeywordDTO.getLinkUrl(), dto.getBookGroupId(), dto.getClassifyId(), qrcodeId); String linkUrl = SendWeixinRequestTools.splitUrlNew(accountSettingDto, replyKeywordDTO.getLinkUrl(), dto.getBookGroupId(), dto.getClassifyId(), qrcodeId);
String shortUrl4Own = UrlUtils.getShortUrl4Own(linkUrl);
replyKeywordDTO.setLinkUrl(linkUrl); replyKeywordDTO.setLinkUrl(linkUrl);
if (replyKeywordDTO.getLinkUrl().contains("/live/")) {
// 获取直播课信息
List<CourseListDto> list4BroadcastReminder = liveCons.getList4BroadcastReminder(replyKeywordDTO.getServeId(), replyKeywordDTO.getServeType());
replyKeywordDTO.setReplyType(ReplyTypeEnum.TEXT.value);
StringBuilder sb = new StringBuilder("【");
sb.append(CollectionUtils.isEmpty(list4BroadcastReminder) ? replyKeywordDTO.getDescription() : list4BroadcastReminder.get(0).getTableTitle())
.append("】近期将开播的课程\n");
if (!CollectionUtils.isEmpty(list4BroadcastReminder)) {
for (CourseListDto listDto : list4BroadcastReminder) {
sb.append("第").append(listDto.getSequenceNum()).append("课:").append(listDto.getTitle()).append("\n");
}
}
sb.append("查看更多课程表链接:").append(shortUrl4Own);
replyKeywordDTO.setContent(sb.toString());
}
if (!StringUtil.isEmpty(linkUrl)) { if (!StringUtil.isEmpty(linkUrl)) {
replyKeywordDTO.setShortLinkUrl(UrlUtils.getShortUrl4Own(linkUrl)); replyKeywordDTO.setShortLinkUrl(shortUrl4Own);
} }
} }
String redisContent = JedisClusterUtils.getJson("BOOK:KEYWORD:" + userWxId + "-" + replyKeywordDTO.getKeywordId(), String.class); String redisContent = JedisClusterUtils.getJson("BOOK:KEYWORD:" + userWxId + "-" + replyKeywordDTO.getKeywordId(), String.class);
...@@ -682,7 +702,24 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -682,7 +702,24 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
if (isApp || isLink) { if (isApp || isLink) {
AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(classifyQrcodeInfo.getChannelId()); AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(classifyQrcodeInfo.getChannelId());
String linkUrl = SendWeixinRequestTools.splitUrlNew(accountSettingDto, replyKeywordDTO.getLinkUrl(), classifyQrcodeInfo.getBookGroupId(), classifyQrcodeInfo.getClassifyId(), classifyQrcodeInfo.getGroupQrcodeId()); String linkUrl = SendWeixinRequestTools.splitUrlNew(accountSettingDto, replyKeywordDTO.getLinkUrl(), classifyQrcodeInfo.getBookGroupId(), classifyQrcodeInfo.getClassifyId(), classifyQrcodeInfo.getGroupQrcodeId());
String shortUrl4Own = UrlUtils.getShortUrl4Own(linkUrl);
if (replyKeywordDTO.getLinkUrl().contains("live/C")) {
// 获取直播课信息
List<CourseListDto> list4BroadcastReminder = liveCons.getList4BroadcastReminder(replyKeywordDTO.getServeId(), replyKeywordDTO.getServeType());
replyKeywordDTO.setReplyType(ReplyTypeEnum.TEXT.value);
StringBuilder sb = new StringBuilder("【");
sb.append(CollectionUtils.isEmpty(list4BroadcastReminder) ? replyKeywordDTO.getDescription() : list4BroadcastReminder.get(0).getTableTitle())
.append("】近期将开播的课程\n");
if (!CollectionUtils.isEmpty(list4BroadcastReminder)) {
for (CourseListDto listDto : list4BroadcastReminder) {
sb.append("第").append(listDto.getSequenceNum()).append("课:").append(listDto.getTitle()).append("\n");
}
}
sb.append("查看更多课程表链接:").append(shortUrl4Own);
replyKeywordDTO.setContent(sb.toString());
}
replyKeywordDTO.setLinkUrl(linkUrl); replyKeywordDTO.setLinkUrl(linkUrl);
replyKeywordDTO.setShortLinkUrl(shortUrl4Own);
} }
String redisContent = JedisClusterUtils.getJson("BOOK:KEYWORD:" + weixinGroupId + "-" + replyKeywordDTO.getKeywordId(), String.class); String redisContent = JedisClusterUtils.getJson("BOOK:KEYWORD:" + weixinGroupId + "-" + replyKeywordDTO.getKeywordId(), String.class);
// 同一群10秒内不回复同一关键词,60s不回复同一关键词 20190916降低消息量方案之一 // 同一群10秒内不回复同一关键词,60s不回复同一关键词 20190916降低消息量方案之一
......
...@@ -31,6 +31,23 @@ public class KeywordDTO implements Serializable { ...@@ -31,6 +31,23 @@ public class KeywordDTO implements Serializable {
@ApiModelProperty("引导语") @ApiModelProperty("引导语")
private String guide; private String guide;
@ApiModelProperty("关键词应用/作品id")
private Long serveId;
@ApiModelProperty("应用/作品")
private String serveType;
@ApiModelProperty("关键词连接")
private String linkUrl;
@ApiModelProperty("关键词内容")
private String content;
@ApiModelProperty("关键词描述")
private String description;
@ApiModelProperty("回复类型")
private Integer replyType;
} }
...@@ -23,4 +23,9 @@ public class KeywordStatusDTO { ...@@ -23,4 +23,9 @@ public class KeywordStatusDTO {
*/ */
private String clockKeyword; private String clockKeyword;
/**
* 打卡引导语
*/
private String clockGuide;
} }
...@@ -80,4 +80,9 @@ public class MQTopicConumer { ...@@ -80,4 +80,9 @@ public class MQTopicConumer {
*/ */
public static final String CONSUMER_WXGROUP_USER_BIND = PREFIX + MQTopicProducer.WXGROUP_USER_BIND; public static final String CONSUMER_WXGROUP_USER_BIND = PREFIX + MQTopicProducer.WXGROUP_USER_BIND;
/**
* 直播开播提醒
*/
public static final String WX_LIVE_BROADCAST_REMINDER = PREFIX + MQTopicProducer.WX_LIVE_BROADCAST_REMINDER;
} }
package com.pcloud.book.mq.topic;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.dto.BookWxQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeServerDTO;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.mq.config.MQTopicConumer;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.liveapp.live.dto.LiveCourseDetailInfoDto;
import com.pcloud.liveapp.live.dto.TableDetailDto;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.TreeSet;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Component
@RabbitListener(queues = MQTopicConumer.WX_LIVE_BROADCAST_REMINDER)
public class WxLiveBroadcastReminderListener {
@Resource
private GroupQrcodeBiz groupQrcodeBiz;
@Resource
private QrcodeSceneConsr qrcodeSceneConsr;
@Autowired
private WeixinQrcodeBiz weixinQrcodeBiz;
/**
* 接收微信用户进群消息
*/
@ParamLog("直播开播提醒")
@RabbitHandler
public void onMessage(LiveCourseDetailInfoDto liveCourse) throws BizException {
if (Objects.isNull(liveCourse) || CollectionUtils.isEmpty(liveCourse.getTableDetailDtos())) {
return;
}
Map<Long, Long> collect = liveCourse.getTableDetailDtos().stream().collect(Collectors.toMap(TableDetailDto::getOriginId, TableDetailDto::getTableId));
final List<GroupQrcodeServerDTO> wxGroups = groupQrcodeBiz.getWxGroupIdByServerId(Lists.newArrayList(collect.keySet()));
log.info("[直播开播提醒] : liveCourse :{} wxGroups:{}", liveCourse, wxGroups);
if (CollectionUtils.isEmpty(wxGroups)) {
return;
}
final Map<Long, AccountSettingDto> accountMap = Maps.newHashMap();
List<String> wxGroupIds = wxGroups.stream().map(GroupQrcodeServerDTO::getWxGroupId).collect(Collectors.toList());
Map<String, BookWxQrcodeDTO> groupVersion = weixinQrcodeBiz.getGroupVersion(wxGroupIds);
final List<GroupQrcodeServerDTO> wxGroups2 = wxGroups.stream().collect(
Collectors. collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(GroupQrcodeServerDTO::getWxGroupId))), ArrayList::new)
);
for (GroupQrcodeServerDTO dto : wxGroups2) {
// 避免重复挂服务调用性能损耗
AccountSettingDto accountSettingDto = accountMap.get(dto.getChannelId());
if (Objects.isNull(accountSettingDto)) {
accountSettingDto = qrcodeSceneConsr.getWechatInfo(dto.getChannelId());
accountMap.put(dto.getChannelId(), accountSettingDto);
}
String linkUrl = SendWeixinRequestTools.splitUrlNew(accountSettingDto, dto.getLinkUrl(), dto.getBookGroupId(), dto.getClassifyId(), dto.getGroupQrcodeId());
// 定位到具体课程
String liveInfo = linkUrl.replace("liveinfo?", "lesson/" + liveCourse.getLessonId() + "?tableId=" + collect.get(dto.getServeId()) + "&");
String shortUrl4Own = UrlUtils.getShortUrl4Own(liveInfo);
SendTextMessageVO vo = new SendTextMessageVO();
vo.setContent("【" + liveCourse.getTitle() + "】即将开播啦,感兴趣的同学们可以开始进入啦。猛戳直播链接:" + shortUrl4Own);
vo.setWxGroupId(dto.getWxGroupId());
// 负载均衡会根据群获取该群活跃小号,所以传什么都不重要,写死为“我为你笑着”
vo.setAltId(Optional.ofNullable(groupVersion.get(dto.getWxGroupId())).orElse(new BookWxQrcodeDTO()).getRobotWxId());
vo.setIp(Optional.ofNullable(groupVersion.get(dto.getWxGroupId())).orElse(new BookWxQrcodeDTO()).getWechatGroupIp());
WxGroupSDK.sendTextMessage(vo);
}
}
}
package com.pcloud.book.push.biz.impl; package com.pcloud.book.push.biz.impl;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.pcloud.appcenter.app.dto.AppDto; import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.app.AppConsr; import com.pcloud.book.consumer.app.AppConsr;
...@@ -25,9 +24,28 @@ import com.pcloud.book.group.enums.TouchTypeEnum; ...@@ -25,9 +24,28 @@ import com.pcloud.book.group.enums.TouchTypeEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools; import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.push.biz.PushBiz; import com.pcloud.book.push.biz.PushBiz;
import com.pcloud.book.push.check.PushCheck; import com.pcloud.book.push.check.PushCheck;
import com.pcloud.book.push.dao.*; import com.pcloud.book.push.dao.MorningEveningNewsDao;
import com.pcloud.book.push.dto.*; import com.pcloud.book.push.dao.PushDao;
import com.pcloud.book.push.entity.*; import com.pcloud.book.push.dao.PushGroupDao;
import com.pcloud.book.push.dao.PushGroupRecordDao;
import com.pcloud.book.push.dao.PushItemDao;
import com.pcloud.book.push.dao.PushNewsRecordDao;
import com.pcloud.book.push.dao.PushPlanDao;
import com.pcloud.book.push.dao.PushRecordDao;
import com.pcloud.book.push.dto.PlanClassifyDTO;
import com.pcloud.book.push.dto.PushDTO;
import com.pcloud.book.push.dto.PushGroupDTO;
import com.pcloud.book.push.dto.PushPlanDTO;
import com.pcloud.book.push.dto.PushPlanItemDTO;
import com.pcloud.book.push.dto.PushRecordDTO;
import com.pcloud.book.push.entity.MorningEveningNews;
import com.pcloud.book.push.entity.Push;
import com.pcloud.book.push.entity.PushGroup;
import com.pcloud.book.push.entity.PushGroupRecord;
import com.pcloud.book.push.entity.PushItem;
import com.pcloud.book.push.entity.PushNewsRecord;
import com.pcloud.book.push.entity.PushPlan;
import com.pcloud.book.push.entity.PushRecord;
import com.pcloud.book.push.enums.ItemTypeEnum; import com.pcloud.book.push.enums.ItemTypeEnum;
import com.pcloud.book.push.enums.PushStatusEnum; import com.pcloud.book.push.enums.PushStatusEnum;
import com.pcloud.book.push.enums.PushTypeEnum; import com.pcloud.book.push.enums.PushTypeEnum;
...@@ -48,14 +66,21 @@ import com.sdk.wxgroup.SendArticleMessageVO; ...@@ -48,14 +66,21 @@ import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.SendPicMessageVO; import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO; import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK; import com.sdk.wxgroup.WxGroupSDK;
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.util.*; import java.util.ArrayList;
import java.util.concurrent.*; import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -969,7 +994,7 @@ public class PushBizImpl implements PushBiz { ...@@ -969,7 +994,7 @@ public class PushBizImpl implements PushBiz {
int i = 1; int i = 1;
for (ESNews esNews : esNewsList) { for (ESNews esNews : esNewsList) {
String contentL = content + i + "." + esNews.getTitle() + esNews.getShortUrl() + "\n"; String contentL = content + i + "." + esNews.getTitle() + esNews.getShortUrl() + "\n";
if (contentL.length() >= 300) { if (contentL.length() >= 1000) {
contents.add(content); contents.add(content);
content = i + "." + esNews.getTitle() + esNews.getShortUrl() + "\n"; content = i + "." + esNews.getTitle() + esNews.getShortUrl() + "\n";
} else { } else {
......
...@@ -14,32 +14,33 @@ ...@@ -14,32 +14,33 @@
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_user" property="updateUser" jdbcType="BIGINT" /> <result column="update_user" property="updateUser" jdbcType="BIGINT" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" /> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="cpa_id" property="cpaId" jdbcType="BIGINT" />
<collection property="optionItem" column="id" <collection property="optionItem" column="id"
select="com.pcloud.book.advertising.dao.impl.BmOptionItemDaoImpl.getByOptionId" /> select="com.pcloud.book.advertising.dao.impl.BmOptionItemDaoImpl.getByOptionId" />
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, ad_id, seq, item_title, item_desc, item_input_type, item_data_type, required, id, ad_id, seq, item_title, item_desc, item_input_type, item_data_type, required,
create_user, create_time, update_user, update_time create_user, create_time, update_user, update_time, cpa_id
</sql> </sql>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingBmOption" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingBmOption" useGeneratedKeys="true" keyProperty="id">
insert into advertising_bm_option (ad_id, seq, item_title, insert into advertising_bm_option (ad_id, seq, item_title,
item_desc, item_input_type, item_data_type, item_desc, item_input_type, item_data_type,
required, create_user, create_time required, create_user, create_time, cpa_id
) )
values (#{adId,jdbcType=BIGINT}, #{seq,jdbcType=BIGINT}, #{itemTitle,jdbcType=VARCHAR}, values (#{adId,jdbcType=BIGINT}, #{seq,jdbcType=BIGINT}, #{itemTitle,jdbcType=VARCHAR},
#{itemDesc,jdbcType=VARCHAR}, #{itemInputType,jdbcType=VARCHAR}, #{itemDataType,jdbcType=VARCHAR}, #{itemDesc,jdbcType=VARCHAR}, #{itemInputType,jdbcType=VARCHAR}, #{itemDataType,jdbcType=VARCHAR},
#{required,jdbcType=BIT}, #{createUser,jdbcType=BIGINT}, NOW() #{required,jdbcType=BIT}, #{createUser,jdbcType=BIGINT}, NOW(), #{cpaId}
) )
</insert> </insert>
<!-- 根据广告ID获取选项表单 --> <!-- 根据广告ID获取选项表单 -->
<select id="getByAdId" resultMap="BaseResultMap" parameterType="map" > <select id="getByCPAId" resultMap="BaseResultMap" parameterType="map" >
select select
<include refid="Base_Column_List" /> <include refid="Base_Column_List" />
from advertising_bm_option from advertising_bm_option
where ad_id = #{adId,jdbcType=BIGINT} where cpa_id = #{cpaId,jdbcType=BIGINT}
order by seq asc, id asc order by seq asc, id asc
</select> </select>
...@@ -79,19 +80,19 @@ ...@@ -79,19 +80,19 @@
</foreach> </foreach>
</delete> </delete>
<select id="getOptionIdsByAdId" parameterType="Long" resultType="Long"> <select id="getOptionIdsByCPAId" parameterType="Long" resultType="Long">
SELECT id SELECT id
FROM advertising_bm_option FROM advertising_bm_option
WHERE ad_id = #{adId,jdbcType=BIGINT} WHERE cpa_id = #{cpaId,jdbcType=BIGINT}
</select> </select>
<select id="getMobilePhoneOptionIdByAd" parameterType="Long" resultType="Long"> <select id="getMobilePhoneOptionIdByCPA" parameterType="Long" resultType="Long">
SELECT SELECT
id id
FROM FROM
advertising_bm_option advertising_bm_option
WHERE WHERE
ad_id = #{adId,jdbcType=BIGINT} cpa_id = #{cpaId,jdbcType=BIGINT}
AND item_title = '手机号' AND item_title = '手机号'
AND item_input_type = 'input' AND item_input_type = 'input'
AND item_data_type = 'mobile' AND item_data_type = 'mobile'
...@@ -99,4 +100,11 @@ ...@@ -99,4 +100,11 @@
LIMIT 1 LIMIT 1
</select> </select>
<update id="updateCPAId" parameterType="map">
UPDATE advertising_bm_option
SET cpa_id = #{cpaId,jdbcType=BIGINT}
WHERE
ad_id = #{adId,jdbcType=BIGINT}
</update>
</mapper> </mapper>
\ No newline at end of file
<?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.pcloud.book.advertising.dao.impl.AdvertisingBrandDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.advertising.entity.AdvertisingBrand" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="brand_name" property="brandName" jdbcType="VARCHAR" />
<result column="login_name" property="loginName" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="is_delete" property="isDelete" jdbcType="BIT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="create_user" property="createUser" jdbcType="BIGINT" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="update_user" property="updateUser" jdbcType="BIGINT" />
</resultMap>
<sql id="Base_Column_List" >
id, brand_name, login_name, password, is_delete, create_time, create_user, update_time,
update_user
</sql>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingBrand" useGeneratedKeys="true" keyProperty="id">
insert into advertising_brand (brand_name, login_name,
password, is_delete, create_time,
create_user
)
values (#{brandName,jdbcType=VARCHAR}, #{loginName,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR}, #{isDelete,jdbcType=BIT}, NOW(),
#{createUser,jdbcType=BIGINT}
)
</insert>
<update id="update" parameterType="com.pcloud.book.advertising.entity.AdvertisingBrand" >
update advertising_brand
<set >
<if test="password != null" >
password = #{password,jdbcType=VARCHAR},
</if>
update_time = NOW(),
<if test="updateUser != null" >
update_user = #{updateUser,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getByGroupQrcodeId" parameterType="long" resultType="com.pcloud.book.advertising.dto.AdvertisingBrandDTO">
SELECT
b.id id,
b.brand_name brandName
FROM
advertising_group_tag t
LEFT JOIN advertising_brand b ON t.brand_id = b.id
WHERE
t.group_qrcode_id = #{groupQrcodeId}
AND b.is_delete = 0
ORDER BY b.id ASC
</select>
<select id="getAllBrand" resultType="com.pcloud.book.advertising.dto.AdvertisingBrandDTO">
SELECT
id id,
brand_name brandName
FROM
advertising_brand
WHERE
is_delete = 0
ORDER BY id ASC
</select>
<update id="deleteBrand" parameterType="long">
update advertising_brand
set is_delete = 1
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getBrandById" parameterType="long" resultType="com.pcloud.book.advertising.dto.AdvertisingBrandDTO">
SELECT
brand_name brandName,
login_name loginName,
password password
FROM
advertising_brand
WHERE
is_delete = 0
AND id = #{id,jdbcType=BIGINT}
</select>
<select id="checkBrandNameRepeat" parameterType="string" resultType="boolean">
SELECT
EXISTS (
SELECT
brand_name
FROM
advertising_brand
WHERE
brand_name = #{brandName}
AND is_delete = 0
)
</select>
<select id="checkLoginNameRepeat" resultType="boolean" parameterType="string">
SELECT
EXISTS (
SELECT
brand_name
FROM
advertising_brand
WHERE
login_name = #{loginName}
AND is_delete = 0
)
</select>
<select id="listPageBrand" parameterType="map" resultType="com.pcloud.book.advertising.dto.AdvertisingBrandDTO">
SELECT
id id,
brand_name brandName,
login_name loginName,
create_time createTime
FROM
advertising_brand
WHERE
is_delete = 0
<if test="name != null">
AND login_name LIKE concat('%', #{name}, '%')
</if>
ORDER BY
create_time DESC
</select>
<select id="getLoginInfo" parameterType="map" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
advertising_brand
WHERE
login_name = #{loginName}
AND is_delete = 0
LIMIT 1
</select>
</mapper>
\ No newline at end of file
...@@ -287,4 +287,24 @@ ...@@ -287,4 +287,24 @@
) AS a ) AS a
</select> </select>
<select id="getClickNumByCPAId" parameterType="map" resultType="Long">
SELECT
count(1)
FROM
advertising_click_record r
INNER JOIN advertising_space s ON r.ad_id = s.id
WHERE
s.cpa_id = #{cpaId}
</select>
<select id="getClickUserNumByCPAId" parameterType="map" resultType="Long">
SELECT
COUNT(DISTINCT wechat_user_id)
FROM
advertising_click_record r
INNER JOIN advertising_space s ON r.ad_id = s.id
WHERE
s.cpa_id = #{cpaId}
</select>
</mapper> </mapper>
\ No newline at end of file
<?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.pcloud.book.advertising.dao.impl.AdvertisingCpaDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.advertising.entity.AdvertisingCpa" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="detail_name" property="detailName" jdbcType="VARCHAR" />
<result column="detail_mode" property="detailMode" jdbcType="VARCHAR" />
<result column="cover_pic" property="coverPic" jdbcType="VARCHAR" />
<result column="welfare_pic" property="welfarePic" jdbcType="VARCHAR" />
<result column="form_mobile_check" property="formMobileCheck" jdbcType="BIT" />
<result column="form_remark" property="formRemark" jdbcType="VARCHAR" />
<result column="form_button" property="formButton" jdbcType="VARCHAR" />
<result column="form_link" property="formLink" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="detail_info" property="detailInfo" jdbcType="LONGVARCHAR" />
<result column="preview_link" property="previewLink" jdbcType="VARCHAR" />
</resultMap>
<resultMap id="AdvertisingCpaDTO" type="com.pcloud.book.advertising.dto.AdvertisingCpaDTO">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="detail_name" property="detailName" jdbcType="VARCHAR"/>
<result column="detail_mode" property="detailMode" jdbcType="VARCHAR"/>
<result column="cover_pic" property="coverPic" jdbcType="VARCHAR"/>
<result column="welfare_pic" property="welfarePic" jdbcType="VARCHAR"/>
<result column="form_mobile_check" property="formMobileCheck" jdbcType="BIT"/>
<result column="form_remark" property="formRemark" jdbcType="VARCHAR"/>
<result column="form_button" property="formButton" jdbcType="VARCHAR"/>
<result column="form_link" property="formLink" jdbcType="VARCHAR"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="detail_info" property="detailInfo" jdbcType="LONGVARCHAR"/>
<result column="preview_link" property="previewLink" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, detail_name, detail_mode, cover_pic, welfare_pic, form_mobile_check, form_remark,
form_button, form_link, create_time, update_time, detail_info, preview_link
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long" >
select
<include refid="Base_Column_List" />
from advertising_cpa
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteById" parameterType="java.lang.Long" >
delete from advertising_cpa
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingCpa" useGeneratedKeys="true" keyProperty="id">
insert into advertising_cpa (detail_name, detail_mode,
cover_pic, welfare_pic, form_mobile_check,
form_remark, form_button, form_link,
create_time, update_time, detail_info, preview_link
)
values (#{detailName,jdbcType=VARCHAR}, #{detailMode,jdbcType=VARCHAR},
#{coverPic,jdbcType=VARCHAR}, #{welfarePic,jdbcType=VARCHAR}, #{formMobileCheck,jdbcType=BIT},
#{formRemark,jdbcType=VARCHAR}, #{formButton,jdbcType=VARCHAR}, #{formLink,jdbcType=VARCHAR},
NOW(), NOW(), #{detailInfo,jdbcType=LONGVARCHAR}, #{previewLink,jdbcType=VARCHAR}
)
</insert>
<update id="update" parameterType="com.pcloud.book.advertising.entity.AdvertisingCpa" >
update advertising_cpa
<set >
<if test="detailName != null" >
detail_name = #{detailName,jdbcType=VARCHAR},
</if>
<if test="detailMode != null" >
detail_mode = #{detailMode,jdbcType=VARCHAR},
</if>
<if test="coverPic != null" >
cover_pic = #{coverPic,jdbcType=VARCHAR},
</if>
<if test="welfarePic != null" >
welfare_pic = #{welfarePic,jdbcType=VARCHAR},
</if>
<if test="formMobileCheck != null" >
form_mobile_check = #{formMobileCheck,jdbcType=BIT},
</if>
<if test="formRemark != null" >
form_remark = #{formRemark,jdbcType=VARCHAR},
</if>
<if test="formButton != null" >
form_button = #{formButton,jdbcType=VARCHAR},
</if>
<if test="formLink != null" >
form_link = #{formLink,jdbcType=VARCHAR},
</if>
update_time = NOW(),
<if test="detailInfo != null" >
detail_info = #{detailInfo,jdbcType=LONGVARCHAR},
</if>
<if test="previewLink != null">
preview_link = #{previewLink,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="listPage" parameterType="map" resultMap="AdvertisingCpaDTO">
select
<include refid="Base_Column_List"/>
from advertising_cpa
WHERE
1 = 1
<if test="name != null ">
AND detail_name LIKE CONCAT( '%', #{name}, '%')
</if>
<if test="detailMode != null">
AND detail_mode = #{detailMode,jdbcType=VARCHAR}
</if>
ORDER BY
update_time DESC
</select>
</mapper>
\ No newline at end of file
...@@ -17,23 +17,24 @@ ...@@ -17,23 +17,24 @@
<result column="cover_pic" property="coverPic" jdbcType="VARCHAR" /> <result column="cover_pic" property="coverPic" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" /> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="cpa_id" property="cpaId" jdbcType="BIGINT" />
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, ad_id, file_id, file_convert_state, file_size, file_name, file_duration, file_url, id, ad_id, file_id, file_convert_state, file_size, file_name, file_duration, file_url,
file_pilot_second, file_pilot_url, file_pilot_finish_tip, title, cover_pic, create_time, update_time file_pilot_second, file_pilot_url, file_pilot_finish_tip, title, cover_pic, create_time, update_time, cpa_id
</sql> </sql>
<select id="getByAdId" resultMap="BaseResultMap" parameterType="java.lang.Long" > <select id="getByCPAId" resultMap="BaseResultMap" parameterType="java.lang.Long" >
select select
<include refid="Base_Column_List" /> <include refid="Base_Column_List" />
from advertising_detail_file from advertising_detail_file
where ad_id = #{adId,jdbcType=BIGINT} where cpa_id = #{cpaId,jdbcType=BIGINT}
</select> </select>
<delete id="deleteByAdId" parameterType="Long"> <delete id="deleteByCPAId" parameterType="Long">
delete from advertising_detail_file delete from advertising_detail_file
where ad_id = #{adId,jdbcType=BIGINT} where cpa_id = #{cpaId,jdbcType=BIGINT}
</delete> </delete>
<insert id="batchInsert" useGeneratedKeys="true" parameterType="java.util.List" keyProperty="id"> <insert id="batchInsert" useGeneratedKeys="true" parameterType="java.util.List" keyProperty="id">
...@@ -42,7 +43,7 @@ ...@@ -42,7 +43,7 @@
file_convert_state, file_size, file_name, file_convert_state, file_size, file_name,
file_duration, file_url, file_pilot_second, file_duration, file_url, file_pilot_second,
file_pilot_url, file_pilot_finish_tip, title, file_pilot_url, file_pilot_finish_tip, title,
cover_pic, create_time) cover_pic, create_time, cpa_id)
values values
<foreach collection="list" item="item" index="index" separator="," > <foreach collection="list" item="item" index="index" separator="," >
( (
...@@ -50,50 +51,16 @@ ...@@ -50,50 +51,16 @@
#{item.fileConvertState,jdbcType=INTEGER}, #{item.fileSize,jdbcType=BIGINT}, #{item.fileName,jdbcType=VARCHAR}, #{item.fileConvertState,jdbcType=INTEGER}, #{item.fileSize,jdbcType=BIGINT}, #{item.fileName,jdbcType=VARCHAR},
#{item.fileDuration,jdbcType=BIGINT}, #{item.fileUrl,jdbcType=VARCHAR}, #{item.filePilotSecond,jdbcType=BIGINT}, #{item.fileDuration,jdbcType=BIGINT}, #{item.fileUrl,jdbcType=VARCHAR}, #{item.filePilotSecond,jdbcType=BIGINT},
#{item.filePilotUrl,jdbcType=VARCHAR}, #{item.filePilotFinishTip,jdbcType=VARCHAR}, #{item.title,jdbcType=VARCHAR}, #{item.filePilotUrl,jdbcType=VARCHAR}, #{item.filePilotFinishTip,jdbcType=VARCHAR}, #{item.title,jdbcType=VARCHAR},
#{item.coverPic,jdbcType=VARCHAR}, NOW() #{item.coverPic,jdbcType=VARCHAR}, NOW(), #{item.cpaId}
) )
</foreach> </foreach>
</insert> </insert>
<update id="updateByPrimaryKeySelective" parameterType="com.pcloud.book.advertising.entity.AdvertisingDetailFile" > <update id="updateCPAId" parameterType="map">
update advertising_detail_file UPDATE advertising_detail_file
<set > SET cpa_id = #{cpaId,jdbcType=BIGINT}
<if test="fileId != null" > WHERE
file_id = #{fileId,jdbcType=VARCHAR}, ad_id = #{adId}
</if>
<if test="fileConvertState != null" >
file_convert_state = #{fileConvertState,jdbcType=INTEGER},
</if>
<if test="fileSize != null" >
file_size = #{fileSize,jdbcType=BIGINT},
</if>
<if test="fileName != null" >
file_name = #{fileName,jdbcType=VARCHAR},
</if>
<if test="fileDuration != null" >
file_duration = #{fileDuration,jdbcType=BIGINT},
</if>
<if test="fileUrl != null" >
file_url = #{fileUrl,jdbcType=VARCHAR},
</if>
<if test="filePilotSecond != null" >
file_pilot_second = #{filePilotSecond,jdbcType=BIGINT},
</if>
<if test="filePilotUrl != null" >
file_pilot_url = #{filePilotUrl,jdbcType=VARCHAR},
</if>
<if test="filePilotFinishTip != null" >
file_pilot_finish_tip = #{filePilotFinishTip,jdbcType=VARCHAR},
</if>
<if test="title != null" >
title = #{title,jdbcType=VARCHAR},
</if>
<if test="coverPic != null" >
cover_pic = #{coverPic,jdbcType=VARCHAR},
</if>
update_time = NOW(),
</set>
where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>
\ No newline at end of file
...@@ -293,4 +293,14 @@ ...@@ -293,4 +293,14 @@
AND count = 0 AND count = 0
</update> </update>
<select id="getExposureNumByCPAId" parameterType="long" resultType="long">
SELECT
ifnull(sum(count), 0)
FROM
advertising_exposure_record r
INNER JOIN advertising_space s ON r.ad_id = s.id
WHERE
s.cpa_id = #{cpaId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -5,52 +5,52 @@ ...@@ -5,52 +5,52 @@
<id column="id" property="id" jdbcType="BIGINT" /> <id column="id" property="id" jdbcType="BIGINT" />
<result column="tag_book_id" property="tagBookId" jdbcType="BIGINT" /> <result column="tag_book_id" property="tagBookId" jdbcType="BIGINT" />
<result column="group_qrcode_id" property="groupQrcodeId" jdbcType="BIGINT" /> <result column="group_qrcode_id" property="groupQrcodeId" jdbcType="BIGINT" />
<result column="master_id" property="masterId" jdbcType="BIGINT" /> <result column="brand_id" property="brandId" jdbcType="BIGINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, tag_book_id, group_qrcode_id, master_id, create_time id, tag_book_id, group_qrcode_id, brand_id, create_time
</sql> </sql>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingGroupTag" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingGroupTag" useGeneratedKeys="true" keyProperty="id">
insert into advertising_group_tag (tag_book_id, group_qrcode_id, insert into advertising_group_tag (tag_book_id, group_qrcode_id,
master_id, create_time) brand_id, create_time)
values (#{tagBookId,jdbcType=BIGINT}, #{groupQrcodeId,jdbcType=BIGINT}, values (#{tagBookId,jdbcType=BIGINT}, #{groupQrcodeId,jdbcType=BIGINT},
#{masterId,jdbcType=BIGINT},NOW()) #{brandId,jdbcType=BIGINT},NOW())
</insert> </insert>
<delete id="deleteByMasterId" parameterType="long"> <delete id="deleteByBrandId" parameterType="long">
DELETE DELETE
FROM FROM
advertising_group_tag advertising_group_tag
WHERE WHERE
master_id = #{masterId} brand_id = #{brandId}
</delete> </delete>
<insert id="batchInsert" parameterType="com.pcloud.book.advertising.entity.AdvertisingGroupTag" useGeneratedKeys="true" keyProperty="id"> <insert id="batchInsert" parameterType="com.pcloud.book.advertising.entity.AdvertisingGroupTag" useGeneratedKeys="true" keyProperty="id">
insert into advertising_group_tag ( insert into advertising_group_tag (
tag_book_id, tag_book_id,
group_qrcode_id, group_qrcode_id,
master_id, brand_id,
create_time create_time
) values ) values
<foreach collection="list" item="item" index="index" <foreach collection="list" item="item" index="index"
separator=","> separator=",">
(#{item.tagBookId,jdbcType=BIGINT}, (#{item.tagBookId,jdbcType=BIGINT},
#{item.groupQrcodeId,jdbcType=BIGINT}, #{item.groupQrcodeId,jdbcType=BIGINT},
#{item.masterId,jdbcType=BIGINT}, #{item.brandId,jdbcType=BIGINT},
NOW()) NOW())
</foreach> </foreach>
</insert> </insert>
<select id="getBookIdsByMasterId" parameterType="long" resultType="long"> <select id="getBookIdsByBrandId" parameterType="long" resultType="long">
SELECT DISTINCT SELECT DISTINCT
tag_book_id tag_book_id
FROM FROM
advertising_group_tag advertising_group_tag
WHERE WHERE
master_id = #{masterId} brand_id = #{brandId}
AND tag_book_id IS NOT NULL AND tag_book_id IS NOT NULL
AND group_qrcode_id = 0 AND group_qrcode_id = 0
</select> </select>
...@@ -62,13 +62,13 @@ ...@@ -62,13 +62,13 @@
WHERE group_qrcode_id = #{groupQrcodeId} WHERE group_qrcode_id = #{groupQrcodeId}
</delete> </delete>
<select id="getGroupQrcodeIdsByMasterId" parameterType="long" resultType="long"> <select id="getGroupQrcodeIdsByBrandId" parameterType="long" resultType="long">
SELECT DISTINCT SELECT DISTINCT
group_qrcode_id group_qrcode_id
FROM FROM
advertising_group_tag advertising_group_tag
WHERE WHERE
master_id = #{masterId} brand_id = #{brandId}
AND group_qrcode_id != 0 AND group_qrcode_id != 0
</select> </select>
...@@ -77,31 +77,49 @@ ...@@ -77,31 +77,49 @@
FROM FROM
advertising_group_tag advertising_group_tag
WHERE WHERE
master_id = #{masterId} brand_id = #{brandId}
AND tag_book_id in AND tag_book_id in
<foreach collection="bookIds" index="index" item="item" open="(" separator="," close=")"> <foreach collection="bookIds" index="index" item="item" open="(" separator="," close=")">
${item} ${item}
</foreach> </foreach>
</delete> </delete>
<select id="getTagWxGroupIdsByMasterId" parameterType="long" resultType="string"> <select id="getTagWxGroupIdsByBrandId" parameterType="long" resultType="string">
SELECT DISTINCT SELECT DISTINCT
q.weixin_group_id q.weixin_group_id
FROM FROM
book_group_qrcode q book_group_qrcode q
LEFT JOIN advertising_group_tag t ON q.id = t.group_qrcode_id LEFT JOIN advertising_group_tag t ON q.id = t.group_qrcode_id
WHERE WHERE
t.master_id = #{masterId} t.brand_id = #{brandId}
AND q.weixin_group_id IS NOT NULL AND q.weixin_group_id IS NOT NULL
</select> </select>
<select id="getMasterIdsByBookId" parameterType="long" resultType="long"> <select id="getBrandIdsByBookId" parameterType="long" resultType="long">
SELECT DISTINCT SELECT DISTINCT
master_id brand_id
FROM FROM
advertising_group_tag advertising_group_tag
WHERE WHERE
tag_book_id = #{bookId} tag_book_id = #{bookId}
AND group_qrcode_id = 0 AND group_qrcode_id = 0
</select> </select>
<select id="getBrandIdsByWxGroupId" parameterType="string" resultType="long">
SELECT DISTINCT
t.brand_id
FROM
advertising_group_tag t
LEFT JOIN book_group_qrcode q ON t.group_qrcode_id = q.id
WHERE
q.weixin_group_id = #{wxGroupId}
</select>
<update id="updateId" parameterType="map">
UPDATE advertising_group_tag
SET brand_id = #{brandId}
WHERE
brand_id = #{masterId}
</update>
</mapper> </mapper>
\ No newline at end of file
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
<result column="master_name" property="masterName" jdbcType="VARCHAR"/> <result column="master_name" property="masterName" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="login_id" property="loginId" jdbcType="BIGINT"/>
</resultMap> </resultMap>
<resultMap id="AdvertisingMasterDTO" type="com.pcloud.book.advertising.dto.AdvertisingMasterDTO"> <resultMap id="AdvertisingMasterDTO" type="com.pcloud.book.advertising.dto.AdvertisingMasterDTO">
...@@ -14,11 +13,10 @@ ...@@ -14,11 +13,10 @@
<result column="master_name" property="masterName" jdbcType="VARCHAR"/> <result column="master_name" property="masterName" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="login_id" property="loginId" jdbcType="BIGINT"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, master_name, create_time, update_time, login_id id, master_name, create_time, update_time
</sql> </sql>
<select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long"> <select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long">
...@@ -86,13 +84,11 @@ ...@@ -86,13 +84,11 @@
master_name, master_name,
create_time, create_time,
update_time, update_time,
login_id,
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
#{masterName,jdbcType=VARCHAR}, #{masterName,jdbcType=VARCHAR},
NOW(), NOW(),
NOW(), NOW(),
#{loginId},
</trim> </trim>
</insert> </insert>
...@@ -103,50 +99,26 @@ ...@@ -103,50 +99,26 @@
master_name = #{masterName,jdbcType=VARCHAR}, master_name = #{masterName,jdbcType=VARCHAR},
</if> </if>
update_time = NOW(), update_time = NOW(),
<if test="loginId != null">
login_id = #{loginId},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
<select id="getByGroup" parameterType="long" resultType="com.pcloud.book.advertising.entity.AdvertisingMaster"> <select id="getMasterBrand" resultType="com.pcloud.book.advertising.dto.OldBrandMasterDTO">
SELECT
m.id id,
m.master_name masterName
FROM
advertising_master m
LEFT JOIN advertising_group_tag t ON m.id = t.master_id
WHERE
t.group_qrcode_id = #{groupQrcodeId}
</select>
<select id="getBrandMaster" resultType="com.pcloud.book.advertising.dto.AdvertisingMasterDTO">
SELECT SELECT
m.id id, id id,
m.master_name masterName master_name masterName,
FROM login_id loginId
advertising_master m
LEFT JOIN advertising_settlement_method s ON m.id = s.master_id
WHERE
s.settlement_method = 'Brand'
GROUP BY
m.id
</select>
<select id="getIdByUserLoginId" resultType="long" parameterType="long">
SELECT
id
FROM FROM
advertising_master advertising_master
WHERE WHERE
login_id = #{loginId} login_id IS NOT NULL
</select> </select>
<update id="updateMasterLoginId" parameterType="map"> <update id="updateLoginId" parameterType="string">
UPDATE advertising_master UPDATE advertising_master
SET login_id = #{loginId} SET login_id = NULL
WHERE WHERE
id = #{masterId} master_name = #{masterName}
</update> </update>
</mapper> </mapper>
\ No newline at end of file
...@@ -169,4 +169,13 @@ ...@@ -169,4 +169,13 @@
</if> </if>
</select> </select>
<select id="getPilotUserNumByCPAId" parameterType="long" resultType="long">
SELECT
COUNT(DISTINCT wechat_user_id)
FROM
advertising_pilot_record r
INNER JOIN advertising_space s ON r.ad_id = s.id
WHERE
s.cpa_id = #{cpaId}
</select>
</mapper> </mapper>
\ No newline at end of file
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