Commit e154ef9d by 阮思源

解决冲突

parents 561e956e 56661533
......@@ -39,4 +39,9 @@ public interface AdvertisingSpaceService {
@ApiImplicitParam(name = "userId", value = "用户登录id", dataType = "long", required = true, paramType = "query")
@GetMapping("getTagWxGroupIdsByUserId")
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);
}
......@@ -442,7 +442,7 @@ public class AdNewsBizImpl implements AdNewsBiz {
int i = 1;
for (AdNews adNews : adNewsList) {
String temp = content + i + "." + adNews.getTitle() + adNews.getShortUrl() + "\n";
if (temp.length() >= 300) {
if (temp.length() >= 1000) {
// 如果本次拼接后的长度大于 300,那么将之前拼接的内容存入数组
contents.add(content);
// 重置 content 的内容
......
package com.pcloud.book.advertising.biz;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO;
import com.pcloud.book.advertising.dto.Book4AdvertisingMasterDTO;
import com.pcloud.book.advertising.dto.GroupMasterAddDTO;
import com.pcloud.book.advertising.dto.GroupMasterDTO;
import com.pcloud.book.advertising.dto.AdvertisingBrandDTO;
import com.pcloud.book.advertising.dto.Book4AdvertisingTagDTO;
import com.pcloud.book.advertising.dto.GroupTagAddDTO;
import com.pcloud.book.advertising.dto.GroupTagDTO;
import com.pcloud.book.advertising.entity.AdvertisingBrand;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
......@@ -16,65 +18,65 @@ import java.util.Map;
* @创建时间:18:47 2019/8/22
* @版本:1.0
*/
public interface GroupMasterTagBiz {
public interface GroupTagBiz {
/**
* 微信群广告主标记列表
* 微信群品牌标记列表
* @param currentPage
* @param numPerPage
* @param paramMap
* @return
*/
PageBeanNew<GroupMasterDTO> listPageGroupMaster(Integer currentPage, Integer numPerPage, Map<String, Object> paramMap);
PageBeanNew<GroupTagDTO> listPageGroup4Brand(Integer currentPage, Integer numPerPage, Map<String, Object> paramMap);
/**
* 获取品牌方广告主
* 获取品牌方
* @return
* @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 numPerPage
* @param name
* @return
*/
PageBeanNew<Book4AdvertisingMasterDTO> listPageBook4AdMaster(Integer currentPage, Integer numPerPage, String name);
PageBeanNew<Book4AdvertisingTagDTO> listPageBook4AdBrand(Integer currentPage, Integer numPerPage, String name);
/**
* 品牌方广告主-微信群列表
* 品牌方-微信群列表
* @param userId
* @param currentPage
* @param numPerPage
* @param paramMap
* @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 proLabelId
* @param depLabelId
* @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
*/
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 {
List<String> getTagWxGroupIdsByUserId(Long userId);
/**
* 品牌方广告主-微信群基本信息列表
* 品牌方-微信群基本信息列表
* @param currentPage
* @param numPerPage
* @param name
* @param userId
* @return
*/
PageBeanNew<GroupMasterDTO> listPageGroupBaseInfo4Master(Integer currentPage, Integer numPerPage, String name, Long userId);
PageBeanNew<GroupTagDTO> listPageGroupBaseInfo4Brand(Integer currentPage, Integer numPerPage, String name, Long userId);
/**
* 修改广告主的登录id
* @param masterId
* @param loginId
*/
void updateMasterLoginId(Long masterId, Long loginId);
/**
* 广告主已标记的书刊id
* @param masterId
* 品牌方已标记的书刊id
* @param brandId
* @return
*/
List<Long> getTagBookIds4AdMatser(Long masterId);
List<Long> getTagBookIds4AdBrand(Long brandId);
/**
* 已标记的书标记新的群
......@@ -113,4 +108,63 @@ public interface GroupMasterTagBiz {
* @param 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);
}
......@@ -12,7 +12,6 @@ import com.pcloud.book.advertising.dao.AdvertisingClickRecordDao;
import com.pcloud.book.advertising.dao.AdvertisingDetailFileDao;
import com.pcloud.book.advertising.dao.AdvertisingDistributionBookDao;
import com.pcloud.book.advertising.dao.AdvertisingExposureRecordDao;
import com.pcloud.book.advertising.dao.AdvertisingGroupTagDao;
import com.pcloud.book.advertising.dao.AdvertisingIncomeDailyDao;
import com.pcloud.book.advertising.dao.AdvertisingMasterDao;
import com.pcloud.book.advertising.dao.AdvertisingPilotRecordDao;
......@@ -59,7 +58,6 @@ import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.user.AgentConsr;
import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.book.consumer.user.PartyConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.dao.BookGroupClassifyDao;
......@@ -96,7 +94,6 @@ import com.pcloud.facade.quartz.entity.ScheduleJob;
import com.pcloud.facade.quartz.service.ScheduleService;
import com.pcloud.readercenter.wechat.entity.WechatUser;
import com.pcloud.resourcecenter.product.service.ProductService;
import com.pcloud.usercenter.user.entity.UserLogin;
import com.pcloud.wechatgroup.message.dto.GroupChatCountDTO;
import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.SendPicMessageVO;
......@@ -222,10 +219,6 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
private ConvertConsr convertConsr;
@Autowired
private AdvertisingDetailFileDao detailFileDao;
@Autowired
private PartyConsr partyConsr;
@Autowired
private AdvertisingGroupTagDao advertisingGroupTagDao;
private static final String ADVERTISING_PUT_PLAN_SCHEDULE_PRE = "ADVERTISING_PUT_PALN_";
......@@ -383,7 +376,7 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
}
}
int length = linkLength + adTitle.length();
if (length > 300) {
if (length > 1000) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "文本长度超过300!");
}
}
......@@ -2321,18 +2314,6 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
if (null != nameExist && nameExist) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告主已存在!");
}
//包含品牌方结算方式
List<String> methods = advertisingMaster.getSettlementMethodList().stream().filter(s -> s.getSettlementMethod() != null).map(AdvertisingSettlementMethod::getSettlementMethod).collect(Collectors.toList());
if (methods.contains(SettlementMethodEnum.Brand.code)) {
/*if (StringUtil.isEmpty(advertisingMaster.getLoginName())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "登录名为空!");
} else {
Long loginUserId = partyConsr.addLoginAccount(advertisingMaster.getLoginName(), advertisingMaster.getPassword());
advertisingMaster.setLoginId(loginUserId);
}*/
//创建子账号,通过更新数据库与广告主关联,登录账号不在这里创建,返回默认的loginUserId
advertisingMaster.setLoginId(123l);
}
advertisingMasterDao.insert(advertisingMaster);
Long masterId = advertisingMaster.getId();
advertisingMaster.getSettlementMethodList().forEach(method -> method.setMasterId(masterId));
......@@ -2366,30 +2347,6 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
if (null == master) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告主不存在!");
}
//包含品牌方结算方式
List<String> methods = advertisingMaster.getSettlementMethodList().stream().filter(s -> s.getSettlementMethod() != null).map(AdvertisingSettlementMethod::getSettlementMethod).collect(Collectors.toList());
if (methods.contains(SettlementMethodEnum.Brand.code)) {
Long loginId = master.getLoginId();
/*if (StringUtil.isEmpty(advertisingMaster.getLoginName()) || StringUtil.isEmpty(advertisingMaster.getPassword())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "登录名或密码为空!");
}
if (null == loginId) {//新增账号
loginId = partyConsr.addLoginAccount(advertisingMaster.getLoginName(), advertisingMaster.getPassword());
advertisingMaster.setLoginId(loginId);
} else {//修改账号
partyConsr.updateLoginAccount(advertisingMaster.getLoginName(), advertisingMaster.getPassword(), loginId);
}*/
//账号修改通过子账号完成
// if (null == loginId) {
// LOGGER.error("广告主" + masterId + "是品牌方结算,子账号为空");
// }
} else {
if (null != master.getLoginId()) {//删除账号,标记记录
partyConsr.deleteLoginAccount(master.getLoginId());
advertisingMaster.setLoginId(123l);
advertisingGroupTagDao.deleteByMasterId(masterId);
}
}
advertisingMasterDao.update(advertisingMaster);
// 删除广告主之前配置的结算方式
advertisingSettlementMethodDao.deleteByMasterId(masterId);
......@@ -2439,15 +2396,6 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
new BigDecimal(pilotFinishUserNum.doubleValue() / clickUserNum).setScale(4, BigDecimal.ROUND_HALF_UP);
masterDTO.setPilotFinishUserNum(pilotFinishUserNum);
masterDTO.setPilotFinishRate(pilotFinishRate);
//广告主登录名
AdvertisingMaster master = advertisingMasterDao.getById(masterDTO.getId());
if (null != master && null != master.getLoginId()) {
UserLogin userLogin = partyConsr.getUserLoginInfo(master.getLoginId());
if (null != userLogin) {
masterDTO.setLoginName(userLogin.getUserName());
masterDTO.setPassword(userLogin.getCurrentPassword());
}
}
}
return pageBean;
}
......
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);
}
......@@ -14,17 +14,17 @@ import java.util.List;
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
*/
public List<Long> getBookIdsByMasterId(Long masterId);
public List<Long> getBookIdsByBrandId(Long brandId);
/**
* 根据群删除标记
......@@ -34,29 +34,43 @@ public interface AdvertisingGroupTagDao extends BaseDao<AdvertisingGroupTag> {
/**
* 已标记的群
* @param masterId
* @param brandId
* @return
*/
public List<Long> getGroupQrcodeIdsByMasterId(Long masterId);
public List<Long> getGroupQrcodeIdsByBrandId(Long brandId);
/**
* 根据图书删除标记
* @param bookIds
* @param masterId
* @param brandId
*/
void deleteByBook(List<Long> bookIds, Long masterId);
void deleteByBook(List<Long> bookIds, Long brandId);
/**
* 查已标记的微信群id
* @param masterId
* @param brandId
* @return
*/
List<String> getTagWxGroupIdsByMasterId(Long masterId);
List<String> getTagWxGroupIdsByBrandId(Long brandId);
/**
* 根据书查标记的广告主
* 根据书查标记的品牌方
* @param bookId
* @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;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO;
import com.pcloud.book.advertising.dto.OldBrandMasterDTO;
import com.pcloud.book.advertising.entity.AdvertisingMaster;
import com.pcloud.common.core.dao.BaseDao;
......@@ -26,29 +27,14 @@ public interface AdvertisingMasterDao extends BaseDao<AdvertisingMaster> {
AdvertisingMasterDTO getDTOById(Long masterId);
/**
* 查微信群标记的广告主
* @param groupQrcodeId
* 获取广告主品牌方
* @return
*/
List<AdvertisingMaster> getByGroup(Long groupQrcodeId);
public List<OldBrandMasterDTO> getMasterBrand();
/**
* 获取品牌方广告主
* @return
*/
List<AdvertisingMasterDTO> getBrandMaster();
/**
* 根据登录id查广告主id
* @param loginId
* @return
*/
public Long getIdByUserLoginId(Long loginId);
/**
* 修改广告主登录id
* @param masterId
* @param loginId
* 更新登录id为空
* @param masterName
*/
public void updateMasterLoginId(Long masterId, Long loginId);
public void updateLoginId(String masterName);
}
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);
}
}
......@@ -20,13 +20,13 @@ import java.util.Map;
public class AdvertisingGroupTagDaoImpl extends BaseDaoImpl<AdvertisingGroupTag> implements AdvertisingGroupTagDao {
@Override
public void deleteByMasterId(Long masterId) {
getSessionTemplate().delete(getStatement("deleteByMasterId"), masterId);
public void deleteByBrandId(Long brandId) {
getSessionTemplate().delete(getStatement("deleteByBrandId"), brandId);
}
@Override
public List<Long> getBookIdsByMasterId(Long masterId) {
return getSessionTemplate().selectList(getStatement("getBookIdsByMasterId"), masterId);
public List<Long> getBookIdsByBrandId(Long brandId) {
return getSessionTemplate().selectList(getStatement("getBookIdsByBrandId"), brandId);
}
@Override
......@@ -35,25 +35,38 @@ public class AdvertisingGroupTagDaoImpl extends BaseDaoImpl<AdvertisingGroupTag>
}
@Override
public List<Long> getGroupQrcodeIdsByMasterId(Long masterId) {
return getSessionTemplate().selectList(getStatement("getGroupQrcodeIdsByMasterId"), masterId);
public List<Long> getGroupQrcodeIdsByBrandId(Long brandId) {
return getSessionTemplate().selectList(getStatement("getGroupQrcodeIdsByBrandId"), brandId);
}
@Override
public void deleteByBook(List<Long> bookIds, Long masterId) {
public void deleteByBook(List<Long> bookIds, Long brandId) {
Map<String, Object> map = new HashMap<>();
map.put("bookIds", bookIds);
map.put("masterId", masterId);
map.put("brandId", brandId);
getSessionTemplate().delete(getStatement("deleteByBook"), map);
}
@Override
public List<String> getTagWxGroupIdsByMasterId(Long masterId) {
return getSessionTemplate().selectList(getStatement("getTagWxGroupIdsByMasterId"), masterId);
public List<String> getTagWxGroupIdsByBrandId(Long brandId) {
return getSessionTemplate().selectList(getStatement("getTagWxGroupIdsByBrandId"), brandId);
}
@Override
public List<Long> getMasterIdsByBookId(Long bookId) {
return getSessionTemplate().selectList(getStatement("getMasterIdsByBookId"), bookId);
public List<Long> getBrandIdsByBookId(Long 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;
import com.pcloud.book.advertising.dao.AdvertisingMasterDao;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO;
import com.pcloud.book.advertising.dto.OldBrandMasterDTO;
import com.pcloud.book.advertising.entity.AdvertisingMaster;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Description 广告主数据访问层接口实现类
......@@ -35,25 +34,13 @@ public class AdvertisingMasterDaoImpl extends BaseDaoImpl<AdvertisingMaster> imp
}
@Override
public List<AdvertisingMaster> getByGroup(Long groupQrcodeId) {
return getSessionTemplate().selectList(getStatement("getByGroup"), groupQrcodeId);
public List<OldBrandMasterDTO> getMasterBrand() {
return getSessionTemplate().selectList(getStatement("getMasterBrand"));
}
@Override
public List<AdvertisingMasterDTO> getBrandMaster() {
return getSessionTemplate().selectList(getStatement("getBrandMaster"));
public void updateLoginId(String masterName) {
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.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
......@@ -6,12 +6,12 @@ import com.pcloud.common.dto.BaseDto;
import java.util.Date;
/**
* @描述:广告主标记书刊列表
* @描述:品牌方标记书刊列表
* @作者:zhuyajie
* @创建时间:11:51 2019/8/22
* @版本:1.0
*/
public class Book4AdvertisingMasterDTO extends BaseDto {
public class Book4AdvertisingTagDTO extends BaseDto {
/**
* 书籍标识
......
......@@ -10,7 +10,7 @@ import java.util.List;
* @创建时间:17:19 2019/8/21
* @版本:1.0
*/
public class GroupMasterAddDTO extends BaseDto{
public class GroupTagAddDTO extends BaseDto{
//按微信群标记
/**
......@@ -18,16 +18,16 @@ public class GroupMasterAddDTO extends BaseDto{
*/
private List<Long> groupQrcodeIdList;
/**
* 广告主id列表
* 品牌方id列表
*/
private List<Long> masterIdList;
private List<Long> brandIdList;
//按图书标记
/**
* 广告主id
* 品牌方id
*/
private Long masterId;
private Long brandId;
/**
* 图书id列表
*/
......@@ -41,20 +41,20 @@ public class GroupMasterAddDTO extends BaseDto{
this.groupQrcodeIdList = groupQrcodeIdList;
}
public List<Long> getMasterIdList() {
return masterIdList;
public List<Long> getBrandIdList() {
return brandIdList;
}
public void setMasterIdList(List<Long> masterIdList) {
this.masterIdList = masterIdList;
public void setBrandIdList(List<Long> brandIdList) {
this.brandIdList = brandIdList;
}
public Long getMasterId() {
return masterId;
public Long getBrandId() {
return brandId;
}
public void setMasterId(Long masterId) {
this.masterId = masterId;
public void setBrandId(Long brandId) {
this.brandId = brandId;
}
public List<Long> getBookIdList() {
......
......@@ -8,12 +8,12 @@ import java.util.Date;
import java.util.List;
/**
* @描述:群广告主标记列表
* @描述:微信群品牌标记列表
* @作者:zhuyajie
* @创建时间:15:00 2019/8/21
* @版本:1.0
*/
public class GroupMasterDTO extends BaseDto{
public class GroupTagDTO extends BaseDto{
/**
* 微信群id
*/
......@@ -96,9 +96,9 @@ public class GroupMasterDTO extends BaseDto{
)
private Date createTime;
/**
* 标记的广告主列表
* 标记的品牌方列表
*/
List<AdvertisingMaster> masterList;
List<AdvertisingBrandDTO> brandList;
/**
* 标记时间
*/
......@@ -278,12 +278,12 @@ public class GroupMasterDTO extends BaseDto{
this.createTime = createTime;
}
public List<AdvertisingMaster> getMasterList() {
return masterList;
public List<AdvertisingBrandDTO> getBrandList() {
return brandList;
}
public void setMasterList(List<AdvertisingMaster> masterList) {
this.masterList = masterList;
public void setBrandList(List<AdvertisingBrandDTO> brandList) {
this.brandList = brandList;
}
public Date getTagTime() {
......@@ -336,7 +336,7 @@ public class GroupMasterDTO extends BaseDto{
@Override
public String toString() {
return "GroupMasterDTO{" +
return "GroupTagDTO{" +
"wxGroupId='" + wxGroupId + '\'' +
", groupQrcodeId=" + groupQrcodeId +
", groupName='" + groupName + '\'' +
......@@ -356,7 +356,7 @@ public class GroupMasterDTO extends BaseDto{
", advertisingSpaceNum=" + advertisingSpaceNum +
", qrcodeUrl='" + qrcodeUrl + '\'' +
", createTime=" + createTime +
", masterList=" + masterList +
", brandList=" + brandList +
", tagTime=" + tagTime +
", 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;
}
}
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
......@@ -21,9 +21,9 @@ public class AdvertisingGroupTag extends BaseEntity{
private Long groupQrcodeId;
/**
* 广告主id
* 品牌方id
*/
private Long masterId;
private Long brandId;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
......@@ -46,12 +46,12 @@ public class AdvertisingGroupTag extends BaseEntity{
this.groupQrcodeId = groupQrcodeId;
}
public Long getMasterId() {
return masterId;
public Long getBrandId() {
return brandId;
}
public void setMasterId(Long masterId) {
this.masterId = masterId;
public void setBrandId(Long brandId) {
this.brandId = brandId;
}
public Date getCreateTime() {
......@@ -67,7 +67,7 @@ public class AdvertisingGroupTag extends BaseEntity{
return "AdvertisingGroupTag{" +
"tagBookId=" + tagBookId +
", groupQrcodeId=" + groupQrcodeId +
", masterId=" + masterId +
", brandId=" + brandId +
", createTime=" + createTime +
'}';
}
......
......@@ -42,10 +42,7 @@ public class AdvertisingMaster extends BaseEntity {
*/
private String password;
/**
* 登录账号id
*/
private Long loginId;
@Override
public Long getId() {
return id;
......@@ -100,13 +97,6 @@ public class AdvertisingMaster extends BaseEntity {
this.loginName = loginName;
}
public Long getLoginId() {
return loginId;
}
public void setLoginId(Long loginId) {
this.loginId = loginId;
}
public String getPassword() {
return password;
......@@ -126,7 +116,6 @@ public class AdvertisingMaster extends BaseEntity {
", settlementMethodList=" + settlementMethodList +
", loginName='" + loginName + '\'' +
", password='" + password + '\'' +
", loginId=" + loginId +
'}';
}
......
......@@ -9,8 +9,7 @@ public enum SettlementMethodEnum {
CPC("CPC", "按点击量"),
CPM("CPM", "按曝光量"),
CPA("CPA", "按实际行动"),
CPS("CPS", "按实际销售"),
Brand("Brand","品牌方,线下结算");
CPS("CPS", "按实际销售");
public final String code;
......@@ -33,7 +32,7 @@ public enum SettlementMethodEnum {
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};
}
package com.pcloud.book.advertising.service.impl;
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.common.core.aspect.ParamLog;
import com.pcloud.common.dto.ResponseDto;
......@@ -38,7 +38,7 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService {
@Autowired
private AdvertisingSpaceBiz advertisingSpaceBiz;
@Autowired
private GroupMasterTagBiz groupMasterTagBiz;
private GroupTagBiz groupTagBiz;
/**
* 每日凌晨计算昨日广告位收益
......@@ -61,7 +61,16 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService {
@GetMapping("getTagWxGroupIdsByUserId")
@ParamLog("根据登录用户获取标记的微信群列表")
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);
}
@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);
}
}
......@@ -77,38 +77,6 @@ public class PartyConsr {
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("获取登录账号信息")
public UserLogin getUserLoginInfo(Long loginId) {
......
......@@ -46,6 +46,11 @@ public interface BookAuthUserBiz {
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);
......
package com.pcloud.book.copyright.biz.impl;
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.dao.BookAuthServeDao;
import com.pcloud.book.copyright.dao.BookAuthUserDao;
import com.pcloud.book.copyright.dao.BookClickBuyRecordDao;
import com.pcloud.book.copyright.dto.CheckUserAuthDTO;
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.BookClickBuyRecord;
import com.pcloud.book.copyright.enums.AuthBookTypeEnum;
......@@ -19,6 +22,8 @@ import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cookie.Cookie;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
......@@ -27,12 +32,11 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @author lily
......@@ -45,6 +49,10 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz {
private BookAuthUserDao bookAuthUserDao;
@Autowired
private BookClickBuyRecordDao bookClickBuyRecordDao;
@Autowired
private QrcodeSceneConsr qrcodeSceneConsr;
@Autowired
private BookAuthServeDao bookAuthServeDao;
@ParamLog(value = "获取授权用户数量")
......@@ -156,6 +164,25 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz {
}
@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) {
BookAuthCodeUserVO bookAuthCodeUserVO = bookAuthUserDao.getAuthUserTotalCount(adviserIds, removeAdviserIds);
if(bookAuthCodeUserVO != null){
......
......@@ -11,6 +11,7 @@ import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
......@@ -66,4 +67,9 @@ public interface BookAuthUserFacade {
@ApiOperation("校验用户是否授权过")
ResponseDto<?> checkIsHaveAuth(@CookieValue("userInfo") String userInfo, @RequestBody CheckUserParam checkUserParam)
throws BizException;
@GetMapping("checkIsHaveAuthWithServer")
@ApiOperation("校验用户针对指定的服务是否被授权")
ResponseDto<?> checkIsHaveAuthWithServer(@CookieValue("userInfo") String userInfo, @RequestParam("serveId") Long serveId)
throws BizException;
}
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.facade.BookAuthUserFacade;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
......@@ -16,6 +17,7 @@ import com.pcloud.common.utils.cookie.Cookie;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
......@@ -96,4 +98,10 @@ public class BookAuthUserFacadeImpl implements BookAuthUserFacade {
Boolean result = bookAuthUserBiz.checkIsHaveAuth(bookId, channelId, adviserId, wechatUserId, 1);
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));
}
}
......@@ -422,6 +422,9 @@ public class BookGroupBizImpl implements BookGroupBiz {
|| StringUtil.isEmpty(bookGroup.getJoinSlogan()) ) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
if (bookGroup.getGroupQrcodeName().contains("#")){
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "名称不能包含#!");
}
BookGroup group = bookGroupDao.getById(bookGroup.getId());
if (null == group) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "群二维码不存在!");
......
......@@ -306,6 +306,9 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
if (isHaveThisClassify) {
throw new BookBizException(BookBizException.ERROR, "已存在该分类!");
}
if (classify != null && classify.contains("#")) {
throw new BookBizException(BookBizException.ERROR, "名称不能包含#!");
}
}
@ParamLog("获取社群下有多少分类")
......@@ -973,11 +976,12 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
@ParamLog("获取编辑的分类")
public PageBeanNew<AdviserClassifyVO> listAdviserClassify(Long adviserId, AdviserClassifyParam adviserClassifyParam) {
PageParam pageParam = new PageParam(adviserClassifyParam.getCurrentPage(), adviserClassifyParam.getNumPerPage());
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("adviserId",adviserId);
paramMap.put("classify",adviserClassifyParam.getClassify());
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adviserId", adviserId);
paramMap.put("classify", adviserClassifyParam.getClassify());
paramMap.put("bookId", adviserClassifyParam.getBookId());
PageBeanNew<AdviserClassifyVO> pageBeanNew = bookGroupClassifyDao.listPageNew(pageParam, paramMap, "listAdviserClassify");
if(pageBeanNew == null){
if (pageBeanNew == null) {
return new PageBeanNew<>(adviserClassifyParam.getCurrentPage(), adviserClassifyParam.getNumPerPage(), new ArrayList<>());
}
return pageBeanNew;
......
......@@ -3,7 +3,7 @@ package com.pcloud.book.group.biz.impl;
import com.google.common.collect.Maps;
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.base.exception.BookBizException;
import com.pcloud.book.consumer.label.LabelConsr;
......@@ -15,9 +15,7 @@ import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.biz.GroupAnnouncementBiz;
import com.pcloud.book.group.biz.GroupQrcodeBiz;
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.dto.AutoUpdateGroupNumDTO;
import com.pcloud.book.group.dto.BookWxQrcodeDTO;
import com.pcloud.book.group.dto.ChangeGroupNameDTO;
import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
......@@ -66,16 +64,11 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
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 lombok.extern.slf4j.Slf4j;
......@@ -115,7 +108,7 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
@Autowired
private BookGroupBiz bookGroupBiz;
@Autowired
private GroupMasterTagBiz groupMasterTagBiz;
private GroupTagBiz groupTagBiz;
/**
......@@ -328,7 +321,7 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
public Long insert(GroupQrcode groupQrcode) {
groupQrcodeDao.insert(groupQrcode);
//判断广告位标记
groupMasterTagBiz.addTagByBookGroup(groupQrcode.getClassifyId(), groupQrcode.getId());
groupTagBiz.addTagByBookGroup(groupQrcode.getClassifyId(), groupQrcode.getId());
return groupQrcode.getId();
}
......@@ -420,6 +413,9 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
if (wechatGroupName == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "微信群名称不能为空");
}
if (wechatGroupName.contains("#")) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "名称不能包含#");
}
ChangeGroupNameDTO changeGroupNameDTO = groupQrcodeDao.getUpdateGroupNameParam(id);
groupQrcodeDao.modifyNameById(wechatGroupName, id, updateUser);
if (changeGroupNameDTO != null) {
......
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.group.dto.*;
import com.pcloud.book.group.entity.GroupQrcode;
......@@ -236,11 +236,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
public Map<String, Object> getGroupCountUserCountByBookId(Long bookId);
/**
* 查询微信群广告标记列表
* 查询微信群品牌方标记列表
* @param map
* @return
*/
public List<GroupMasterDTO> listPageGroupMaster(Map<String, Object> map);
public List<GroupTagDTO> listPageGroup4Brand(Map<String, Object> map);
List<ClassifyQrcodeVO> getQrcodeByClassify(Long classifyId);
......
......@@ -2,7 +2,7 @@ package com.pcloud.book.group.dao.impl;
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.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.*;
......@@ -242,8 +242,8 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
}
@Override
public List<GroupMasterDTO> listPageGroupMaster(Map<String, Object> map) {
return getSessionTemplate().selectList(getStatement("listPageGroupMaster"), map);
public List<GroupTagDTO> listPageGroup4Brand(Map<String, Object> map) {
return getSessionTemplate().selectList(getStatement("listPageGroup4Brand"), map);
}
}
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;
}
......@@ -18,6 +18,9 @@ public class AdviserClassifyParam {
@ApiModelProperty("分类名称")
private String classify;
@ApiModelProperty("图书id")
private Long bookId;
public Integer getCurrentPage() {
return currentPage;
}
......@@ -42,12 +45,21 @@ public class AdviserClassifyParam {
this.classify = classify;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
@Override
public String toString() {
return "AdviserClassifyParam{" +
"currentPage=" + currentPage +
", numPerPage=" + numPerPage +
", classify='" + classify + '\'' +
", bookId=" + bookId +
'}';
}
}
......@@ -17,6 +17,8 @@ import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.dto.JoinGroupCipherDTO;
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.GroupQrcode;
import com.pcloud.book.group.entity.JoinGroupCipher;
......@@ -377,24 +379,47 @@ public class BookGuideBizImpl implements BookGuideBiz {
}
//获取公众号基本信息
AccountSettingDto wechatInfo = qrcodeSceneConsr.getWechatInfo(classifyQrcodeInfo.getChannelId());
//获取关键词信息(改成10个了) 刘娜需求 1001282 群不推送关键词
//获取关键词信息(改成10个了,20190911周磊改成不限制了,但是开发要求必须要加限制,所以先限制40个) 刘娜需求 1001282 群不推送关键词
List<KeywordDTO> keywords = bookKeywordBiz.listFiveKeyword(classifyQrcodeInfo.getClassifyId(), classifyQrcodeInfo.getBookGroupId());
Boolean isHaveKeywords = !ListUtils.isEmpty(keywords);
final Boolean groupRobot = wechatGroupConsr.isGroupRobot(robotId);
log.info("[wechatGroupConsr.isGroupRobot] robotId:{} groupRobot:{}", robotId, groupRobot);
//如果设置了群学习报告,加一个群学习报告的关键词
KeywordStatusDTO dto = pushLearningReport(classifyQrcodeInfo, robotId, weixinGroupId, pushAddUserMessageDTO.getIp());
AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(classifyQrcodeInfo.getChannelId());
if (ListUtils.isEmpty(replyMessages)) {
//获取群名称
GroupQrcodeBaseInfoVO groupInfo = groupQrcodeBiz.getBaseById(classifyQrcodeInfo.getGroupQrcodeId());
//推送消息 刘娜需求 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 {
//处理链接
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());
}
......
......@@ -357,7 +357,14 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
bookKeyword.setId(setRankVO.getBookKeywordId());
bookKeyword.setRank(setRankVO.getRank());
bookKeyword.setUpdateUser(partyId);
bookKeywordDao.setRank(bookKeyword);
KeywordVO byBookKeyword = bookKeywordDao.getByBookKeyword(setRankVO.getBookKeywordId());
if (byBookKeyword != null && (byBookKeyword.getClassifyId() == null || byBookKeyword.getClassifyId() == 0)){
Long bookGroupId = byBookKeyword.getBookGroupId();
Long keywordId = byBookKeyword.getKeywordId();
bookKeywordDao.updateRank(bookGroupId,setRankVO.getRank(),partyId,keywordId);
}else {
bookKeywordDao.setRank(bookKeyword);
}
}
@Override
......@@ -423,7 +430,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
}
@Override
@ParamLog("获取5个关键词(改成10个了)")
@ParamLog("获取5个关键词(改成10个了,20190911周磊改成不限制了,但是开发要求必须要加限制,所以先限制40个)")
public List<KeywordDTO> listFiveKeyword(Long classifyId, Long bookGroupId) {
//获取是否单独设置关键词
List<KeywordDTO> keywords = bookKeywordDao.listFiveKeyword(classifyId, bookGroupId);
......@@ -562,7 +569,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
log.info("[关键词消息回复] redisContent:{} insertBookKeywordRecord return", redisContent);
return true;
} else {
JedisClusterUtils.setJson("BOOK:KEYWORD:" + weixinGroupId + "-" + replyKeywordDTO.getKeywordId(), replyKeywordDTO.getKeywordId(), 30);
// 60s不回复同一关键词 20190916降低消息量方案之一
JedisClusterUtils.setJson("BOOK:KEYWORD:" + weixinGroupId + "-" + replyKeywordDTO.getKeywordId(), replyKeywordDTO.getKeywordId(), 60);
insertBookKeywordRecord(dto, replyKeywordDTO.getKeywordId(), userWxId, weixinGroupId, true);
}
return false;
......@@ -620,7 +628,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
replyKeywordDTO.setLinkUrl(linkUrl);
}
String redisContent = JedisClusterUtils.getJson("BOOK:KEYWORD:" + weixinGroupId + "-" + replyKeywordDTO.getKeywordId(), String.class);
// 同一群10秒内不回复同一关键词
// 同一群10秒内不回复同一关键词,60s不回复同一关键词 20190916降低消息量方案之一
if (insertBookKeywordRecord(weixinGroupId, userWxId, replyKeywordDTO, classifyQrcodeInfo, redisContent)) {
return;
}
......
......@@ -103,4 +103,11 @@ public interface BookKeywordDao extends BaseDao<BookKeyword> {
* @date 2019/7/16 17:18
*/
void deleteKeywords(Long keywordId, Long bookGroupId, Long classifyId, Long partyId);
/**
* @description 根据书调整关键词顺序
* @author 戴兴
* @date 2019/9/11 17:24
*/
void updateRank(Long bookGroupId, Integer rank, Long partyId, Long keywordId);
}
......@@ -134,4 +134,14 @@ public class BookKeywordDaoImpl extends BaseDaoImpl<BookKeyword> implements Book
paramMap.put("partyId", partyId);
this.getSqlSession().update(this.getStatement("deleteKeywords"), paramMap);
}
@Override
public void updateRank(Long bookGroupId, Integer rank, Long partyId, Long keywordId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("rank", rank);
paramMap.put("bookGroupId", bookGroupId);
paramMap.put("partyId", partyId);
paramMap.put("keywordId", keywordId);
this.getSqlSession().update(this.getStatement("updateRank"), paramMap);
}
}
......@@ -31,6 +31,23 @@ public class KeywordDTO implements Serializable {
@ApiModelProperty("引导语")
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;
}
......@@ -140,6 +140,9 @@ public class WXGroupLearningReportListener {
String list="";
for (LearningScoreDTO learningScoreDTO:learningScoreDTOS){
String headUrl = learningScoreDTO.getHeadUrl();
if (StringUtil.isEmpty(headUrl)) {
headUrl = "https://file.5rs.me/oss/uploadfe/png/1d9f1538260e9f9426ed6934f49eda4d.png";
}
if (headUrl.contains("https://oss.5rs.me")) {
headUrl = headUrl.replace("https://oss.5rs.me", "https://file.5rs.me");
} else if (headUrl.contains("http://oss.5rs.me")) {
......@@ -373,9 +376,10 @@ public class WXGroupLearningReportListener {
" ];\n" +
"\n" +
" var html = '';\n" +
" var defaultImg = 'https://file.5rs.me/oss/uploadfe/png/1d9f1538260e9f9426ed6934f49eda4d.png';\n" +
"\n" +
" list.forEach((item, index) => {\n" +
" html += '<tr><td><span data-index=0' + index + ' class=index></span></td><td><img src=' + item.headPic +\n" +
" html += '<tr><td><span data-index=0' + index + ' class=index></span></td><td><img src=' + (item.headPic || defaultImg) +\n" +
" ' alt=\"headPic\" class=\"headPic\" width=\"64\" height=\"64\"></td><td class=\"nickName\"><span>' + item.nickName +\n" +
" '</span></td><td><span class=\"strength\">' + item.strength + '</span></td></tr>'\n" +
" });\n" +
......
package com.pcloud.book.push.biz.impl;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.app.AppConsr;
......@@ -25,9 +24,28 @@ import com.pcloud.book.group.enums.TouchTypeEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.push.biz.PushBiz;
import com.pcloud.book.push.check.PushCheck;
import com.pcloud.book.push.dao.*;
import com.pcloud.book.push.dto.*;
import com.pcloud.book.push.entity.*;
import com.pcloud.book.push.dao.MorningEveningNewsDao;
import com.pcloud.book.push.dao.PushDao;
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.PushStatusEnum;
import com.pcloud.book.push.enums.PushTypeEnum;
......@@ -48,14 +66,21 @@ import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.*;
import java.util.ArrayList;
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;
/**
......@@ -969,7 +994,7 @@ public class PushBizImpl implements PushBiz {
int i = 1;
for (ESNews esNews : esNewsList) {
String contentL = content + i + "." + esNews.getTitle() + esNews.getShortUrl() + "\n";
if (contentL.length() >= 300) {
if (contentL.length() >= 1000) {
contents.add(content);
content = i + "." + esNews.getTitle() + esNews.getShortUrl() + "\n";
} else {
......
<?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
......@@ -5,52 +5,52 @@
<id column="id" property="id" jdbcType="BIGINT" />
<result column="tag_book_id" property="tagBookId" 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" />
</resultMap>
<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>
<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,
master_id, create_time)
brand_id, create_time)
values (#{tagBookId,jdbcType=BIGINT}, #{groupQrcodeId,jdbcType=BIGINT},
#{masterId,jdbcType=BIGINT},NOW())
#{brandId,jdbcType=BIGINT},NOW())
</insert>
<delete id="deleteByMasterId" parameterType="long">
<delete id="deleteByBrandId" parameterType="long">
DELETE
FROM
advertising_group_tag
WHERE
master_id = #{masterId}
brand_id = #{brandId}
</delete>
<insert id="batchInsert" parameterType="com.pcloud.book.advertising.entity.AdvertisingGroupTag" useGeneratedKeys="true" keyProperty="id">
insert into advertising_group_tag (
tag_book_id,
group_qrcode_id,
master_id,
brand_id,
create_time
) values
<foreach collection="list" item="item" index="index"
separator=",">
(#{item.tagBookId,jdbcType=BIGINT},
#{item.groupQrcodeId,jdbcType=BIGINT},
#{item.masterId,jdbcType=BIGINT},
#{item.brandId,jdbcType=BIGINT},
NOW())
</foreach>
</insert>
<select id="getBookIdsByMasterId" parameterType="long" resultType="long">
<select id="getBookIdsByBrandId" parameterType="long" resultType="long">
SELECT DISTINCT
tag_book_id
FROM
advertising_group_tag
WHERE
master_id = #{masterId}
brand_id = #{brandId}
AND tag_book_id IS NOT NULL
AND group_qrcode_id = 0
</select>
......@@ -62,13 +62,13 @@
WHERE group_qrcode_id = #{groupQrcodeId}
</delete>
<select id="getGroupQrcodeIdsByMasterId" parameterType="long" resultType="long">
<select id="getGroupQrcodeIdsByBrandId" parameterType="long" resultType="long">
SELECT DISTINCT
group_qrcode_id
FROM
advertising_group_tag
WHERE
master_id = #{masterId}
brand_id = #{brandId}
AND group_qrcode_id != 0
</select>
......@@ -77,31 +77,49 @@
FROM
advertising_group_tag
WHERE
master_id = #{masterId}
brand_id = #{brandId}
AND tag_book_id in
<foreach collection="bookIds" index="index" item="item" open="(" separator="," close=")">
${item}
</foreach>
</delete>
<select id="getTagWxGroupIdsByMasterId" parameterType="long" resultType="string">
<select id="getTagWxGroupIdsByBrandId" parameterType="long" resultType="string">
SELECT DISTINCT
q.weixin_group_id
FROM
book_group_qrcode q
LEFT JOIN advertising_group_tag t ON q.id = t.group_qrcode_id
WHERE
t.master_id = #{masterId}
t.brand_id = #{brandId}
AND q.weixin_group_id IS NOT NULL
</select>
<select id="getMasterIdsByBookId" parameterType="long" resultType="long">
<select id="getBrandIdsByBookId" parameterType="long" resultType="long">
SELECT DISTINCT
master_id
brand_id
FROM
advertising_group_tag
WHERE
tag_book_id = #{bookId}
AND group_qrcode_id = 0
</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>
\ No newline at end of file
......@@ -6,7 +6,6 @@
<result column="master_name" property="masterName" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="login_id" property="loginId" jdbcType="BIGINT"/>
</resultMap>
<resultMap id="AdvertisingMasterDTO" type="com.pcloud.book.advertising.dto.AdvertisingMasterDTO">
......@@ -14,11 +13,10 @@
<result column="master_name" property="masterName" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="login_id" property="loginId" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
id, master_name, create_time, update_time, login_id
id, master_name, create_time, update_time
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long">
......@@ -86,13 +84,11 @@
master_name,
create_time,
update_time,
login_id,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{masterName,jdbcType=VARCHAR},
NOW(),
NOW(),
#{loginId},
</trim>
</insert>
......@@ -103,50 +99,26 @@
master_name = #{masterName,jdbcType=VARCHAR},
</if>
update_time = NOW(),
<if test="loginId != null">
login_id = #{loginId},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getByGroup" parameterType="long" resultType="com.pcloud.book.advertising.entity.AdvertisingMaster">
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 id="getMasterBrand" resultType="com.pcloud.book.advertising.dto.OldBrandMasterDTO">
SELECT
m.id id,
m.master_name masterName
FROM
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
id id,
master_name masterName,
login_id loginId
FROM
advertising_master
WHERE
login_id = #{loginId}
login_id IS NOT NULL
</select>
<update id="updateMasterLoginId" parameterType="map">
<update id="updateLoginId" parameterType="string">
UPDATE advertising_master
SET login_id = #{loginId}
SET login_id = NULL
WHERE
id = #{masterId}
master_name = #{masterName}
</update>
</mapper>
\ No newline at end of file
......@@ -698,6 +698,9 @@
<if test="classify!=null">
and classify like concat('%', #{classify}, '%')
</if>
<if test="bookId != null">
AND c.book_id = #{bookId}
</if>
</select>
<select id="getProAssocGroupAndUserNumber" resultType="ProAssocGroupAndUserNumberDTO" parameterType="Long">
......
......@@ -344,7 +344,7 @@
where id = #{bookGroupId} and is_delete = 0
</update>
<select id="listPageBook4AdMaster" parameterType="map" resultType="com.pcloud.book.advertising.dto.Book4AdvertisingMasterDTO">
<select id="listPageBook4AdBrand" parameterType="map" resultType="com.pcloud.book.advertising.dto.Book4AdvertisingTagDTO">
SELECT
b.BOOK_ID bookId,
b.ISBN isbn,
......
......@@ -562,7 +562,7 @@
id = #{qrcodeId}
</update>
<select id="listPageGroupMaster" parameterType="map" resultType="com.pcloud.book.advertising.dto.GroupMasterDTO">
<select id="listPageGroup4Brand" parameterType="map" resultType="com.pcloud.book.advertising.dto.GroupTagDTO">
SELECT
q.weixin_group_id wxGroupId,
q.id groupQrcodeId,
......@@ -616,8 +616,8 @@
<if test="purLabelId != null">
AND bg.pur_label_id = #{purLabelId}
</if>
<if test="masterId != null">
AND t.master_id = #{masterId}
<if test="brandId != null">
AND t.brand_id = #{brandId}
</if>
<if test="startTime != null and endTime!= null">
AND t.create_time BETWEEN #{startTime} AND #{endTime}
......
......@@ -130,26 +130,32 @@
<if test="keywords!=null">
AND keywords like concat('%', #{keywords}, '%')
</if>
order by bk.rank ASC, bk.id DESC
order by bk.rank ASC, bk.update_time desc, bk.id DESC
</select>
<select id="listFiveKeyword" resultType="keywordDTO" parameterType="map">
<select id="listFiveKeyword" resultType="com.pcloud.book.keywords.dto.KeywordDTO" parameterType="map">
SELECT
k.keywords,
k.id keywordId,
bk.is_warehouse as isWarehouse,
bk.warehouse_id as warehouseId,
k.guide
k.keywords,
k.id keywordId,
bk.is_warehouse as isWarehouse,
bk.warehouse_id as warehouseId,
k.guide,
k.content,
k.description,
k.link_url as linkUrl,
k.serve_id AS serveId,
k.serve_type AS serveType,
k.reply_type AS replyType
FROM
book_keyword bk
book_keyword bk
JOIN
keyword k ON bk.keyword_id = k.id
keyword k ON bk.keyword_id = k.id
WHERE
bk.is_delete = 0
AND
k.is_delete = 0
AND classify_id = #{classifyId}
AND book_group_id = #{bookGroupId} order by bk.rank, bk.id desc limit 10
AND book_group_id = #{bookGroupId} order by bk.rank, bk.id desc
</select>
<select id="getKeywordId" resultType="ReplyKeywordDTO" parameterType="map">
......@@ -344,6 +350,18 @@
and book_group_id = #{bookGroupId,jdbcType=BIGINT}
and classify_id = #{classifyId,jdbcType=BIGINT}
</update>
<update id="updateRank" parameterType="map">
update book_keyword
<set>
rank = #{rank},
update_user = #{partyId},
update_time = now()
</set>
where keyword_id = #{keywordId,jdbcType=BIGINT}
and book_group_id = #{bookGroupId,jdbcType=BIGINT}
and is_delete = 0
</update>
<select id="getServiceByWeixinGroup" parameterType="map" resultType="com.pcloud.book.keywords.dto.ServiceResourceDTO">
SELECT
......
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