Commit 2c0f8eeb by 郑永强

Merge branch 'master' into zhengyongqiang

parents 70873f28 eb746adb
package com.pcloud.book.advertising.service; package com.pcloud.book.advertising.service;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
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.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import com.pcloud.common.exceptions.BizException; import org.springframework.web.bind.annotation.RequestParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import java.util.Map; import java.util.Map;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
@FeignClient(value = "pcloud-service-book", qualifier = "advertisingSpaceServiceCloud", path = "book/v1.0/advertisingSpaceService") @FeignClient(value = "pcloud-service-book", qualifier = "advertisingSpaceServiceCloud", path = "book/v1.0/advertisingSpaceService")
@Api(description = "广告位内部接口") @Api(description = "广告位内部接口")
public interface AdvertisingSpaceService { public interface AdvertisingSpaceService {
...@@ -26,4 +34,9 @@ public interface AdvertisingSpaceService { ...@@ -26,4 +34,9 @@ public interface AdvertisingSpaceService {
@ApiOperation("发送广告计划") @ApiOperation("发送广告计划")
@PostMapping("sendAdvertisingPlan") @PostMapping("sendAdvertisingPlan")
void sendAdvertisingPlan(@RequestBody Map<String, Object> map) throws BizException; void sendAdvertisingPlan(@RequestBody Map<String, Object> map) throws BizException;
@ApiOperation(value = "根据登录用户获取标记的微信群列表", httpMethod = "GET")
@ApiImplicitParam(name = "userId", value = "用户登录id", dataType = "long", required = true, paramType = "query")
@GetMapping("getTagWxGroupIdsByUserId")
ResponseEntity<ResponseDto<List<String>>> getTagWxGroupIdsByUserId(@RequestParam("userId") Long userId);
} }
...@@ -553,6 +553,10 @@ public class BookDto extends BaseDto { ...@@ -553,6 +553,10 @@ public class BookDto extends BaseDto {
*/ */
private BigDecimal outRate; private BigDecimal outRate;
/**
* 编辑手机号
*/
private String phone;
public String getQrRemark() { public String getQrRemark() {
return qrRemark; return qrRemark;
...@@ -1478,6 +1482,14 @@ public class BookDto extends BaseDto { ...@@ -1478,6 +1482,14 @@ public class BookDto extends BaseDto {
this.outRate = outRate; this.outRate = outRate;
} }
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override @Override
public String toString() { public String toString() {
return "BookDto{" + return "BookDto{" +
...@@ -1485,6 +1497,7 @@ public class BookDto extends BaseDto { ...@@ -1485,6 +1497,7 @@ public class BookDto extends BaseDto {
", typeCode='" + typeCode + '\'' + ", typeCode='" + typeCode + '\'' +
", typeName='" + typeName + '\'' + ", typeName='" + typeName + '\'' +
", isbn='" + isbn + '\'' + ", isbn='" + isbn + '\'' +
", isDelete=" + isDelete +
", bookName='" + bookName + '\'' + ", bookName='" + bookName + '\'' +
", bookPrice='" + bookPrice + '\'' + ", bookPrice='" + bookPrice + '\'' +
", originName='" + originName + '\'' + ", originName='" + originName + '\'' +
...@@ -1588,6 +1601,7 @@ public class BookDto extends BaseDto { ...@@ -1588,6 +1601,7 @@ public class BookDto extends BaseDto {
", avgBrowseTimes=" + avgBrowseTimes + ", avgBrowseTimes=" + avgBrowseTimes +
", outNum=" + outNum + ", outNum=" + outNum +
", outRate=" + outRate + ", outRate=" + outRate +
", phone='" + phone + '\'' +
'}'; '}';
} }
} }
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.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
import java.util.Map;
/**
* @描述:微信群标记广告主
* @作者:zhuyajie
* @创建时间:18:47 2019/8/22
* @版本:1.0
*/
public interface GroupMasterTagBiz {
/**
* 微信群广告主标记列表
* @param currentPage
* @param numPerPage
* @param paramMap
* @return
*/
PageBeanNew<GroupMasterDTO> listPageGroupMaster(Integer currentPage, Integer numPerPage, Map<String, Object> paramMap);
/**
* 获取品牌方广告主
* @return
* @throws BizException
*/
List<AdvertisingMasterDTO> getBrandMaster() throws BizException;
/**
* 微信群标记广告主
* @param groupMasterAddDTO
*/
void setGroupMaster(GroupMasterAddDTO groupMasterAddDTO);
/**
* 广告主标记-图书列表
* @param currentPage
* @param numPerPage
* @param name
* @return
*/
PageBeanNew<Book4AdvertisingMasterDTO> listPageBook4AdMaster(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);
/**
* 微信群广告主标记列表-导出
* @param name
* @param proLabelId
* @param depLabelId
* @param purLabelId
* @param masterId
*/
void exportGroupMaster(String name, Long proLabelId, Long depLabelId, Long purLabelId, Long masterId, Long partyId);
/**
* 品牌方广告主-微信群导出
* @param partyId
* @param paramMap
*/
void exportGroupList4Master(Long partyId, Map<String, Object> paramMap, Long userId);
/**
* 根据登录用户获取标记的微信群列表
* @param userId
* @return
*/
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);
/**
* 修改广告主的登录id
* @param masterId
* @param loginId
*/
void updateMasterLoginId(Long masterId, Long loginId);
/**
* 广告主已标记的书刊id
* @param masterId
* @return
*/
List<Long> getTagBookIds4AdMatser(Long masterId);
}
...@@ -5,10 +5,51 @@ import com.pcloud.appcenter.app.service.AppTypeService; ...@@ -5,10 +5,51 @@ import com.pcloud.appcenter.app.service.AppTypeService;
import com.pcloud.book.advertising.biz.AdvertisingSpaceBiz; import com.pcloud.book.advertising.biz.AdvertisingSpaceBiz;
import com.pcloud.book.advertising.biz.BmBiz; import com.pcloud.book.advertising.biz.BmBiz;
import com.pcloud.book.advertising.check.AdvertisingPlanCheck; import com.pcloud.book.advertising.check.AdvertisingPlanCheck;
import com.pcloud.book.advertising.dao.*; import com.pcloud.book.advertising.dao.AdvertisingAdviserPermissionDao;
import com.pcloud.book.advertising.dto.*; import com.pcloud.book.advertising.dao.AdvertisingAgentPermissionDao;
import com.pcloud.book.advertising.entity.*; import com.pcloud.book.advertising.dao.AdvertisingBrowseRecordDao;
import com.pcloud.book.advertising.enums.*; 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;
import com.pcloud.book.advertising.dao.AdvertisingPlanDao;
import com.pcloud.book.advertising.dao.AdvertisingPlanGroupDao;
import com.pcloud.book.advertising.dao.AdvertisingPutDao;
import com.pcloud.book.advertising.dao.AdvertisingSettlementMethodDao;
import com.pcloud.book.advertising.dao.AdvertisingSpaceDao;
import com.pcloud.book.advertising.dto.AdvertisingDistributionDTO;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO;
import com.pcloud.book.advertising.dto.AdvertisingSettlementMethodDTO;
import com.pcloud.book.advertising.dto.AdvertisingSpaceDTO;
import com.pcloud.book.advertising.dto.BookAndChannelDTO;
import com.pcloud.book.advertising.dto.QrcodeAdvertisingSpaceCountDTO;
import com.pcloud.book.advertising.dto.WechatGroupClickUserDTO;
import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO;
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.AdvertisingDetailFile;
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.AdvertisingPlanGroup;
import com.pcloud.book.advertising.entity.AdvertisingPut;
import com.pcloud.book.advertising.entity.AdvertisingSettlementMethod;
import com.pcloud.book.advertising.entity.AdvertisingSpace;
import com.pcloud.book.advertising.entity.DistributionWechatGroup;
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.PutTypeEnum;
import com.pcloud.book.advertising.enums.SettlementMethodEnum;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz; import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.dao.BookDao; import com.pcloud.book.book.dao.BookDao;
...@@ -24,6 +65,7 @@ import com.pcloud.book.consumer.resource.ProductConsr; ...@@ -24,6 +65,7 @@ import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.user.AdviserConsr; import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.user.AgentConsr; import com.pcloud.book.consumer.user.AgentConsr;
import com.pcloud.book.consumer.user.ChannelConsr; 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.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.WeixinQrcodeBiz; import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.dao.BookGroupClassifyDao; import com.pcloud.book.group.dao.BookGroupClassifyDao;
...@@ -60,6 +102,7 @@ import com.pcloud.facade.quartz.entity.ScheduleJob; ...@@ -60,6 +102,7 @@ import com.pcloud.facade.quartz.entity.ScheduleJob;
import com.pcloud.facade.quartz.service.ScheduleService; import com.pcloud.facade.quartz.service.ScheduleService;
import com.pcloud.readercenter.wechat.entity.WechatUser; import com.pcloud.readercenter.wechat.entity.WechatUser;
import com.pcloud.resourcecenter.product.service.ProductService; import com.pcloud.resourcecenter.product.service.ProductService;
import com.pcloud.usercenter.user.entity.UserLogin;
import com.pcloud.wechatgroup.message.dto.GroupChatCountDTO; import com.pcloud.wechatgroup.message.dto.GroupChatCountDTO;
import com.sdk.wxgroup.SendArticleMessageVO; import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.SendPicMessageVO; import com.sdk.wxgroup.SendPicMessageVO;
...@@ -77,7 +120,16 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -77,7 +120,16 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.*; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -176,6 +228,10 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz { ...@@ -176,6 +228,10 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
private ConvertConsr convertConsr; private ConvertConsr convertConsr;
@Autowired @Autowired
private AdvertisingDetailFileDao detailFileDao; private AdvertisingDetailFileDao detailFileDao;
@Autowired
private PartyConsr partyConsr;
@Autowired
private AdvertisingGroupTagDao advertisingGroupTagDao;
private static final String ADVERTISING_PUT_PLAN_SCHEDULE_PRE = "ADVERTISING_PUT_PALN_"; private static final String ADVERTISING_PUT_PLAN_SCHEDULE_PRE = "ADVERTISING_PUT_PALN_";
...@@ -2252,6 +2308,18 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz { ...@@ -2252,6 +2308,18 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
if (null != nameExist && nameExist) { if (null != nameExist && nameExist) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告主已存在!"); 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); advertisingMasterDao.insert(advertisingMaster);
Long masterId = advertisingMaster.getId(); Long masterId = advertisingMaster.getId();
advertisingMaster.getSettlementMethodList().forEach(method -> method.setMasterId(masterId)); advertisingMaster.getSettlementMethodList().forEach(method -> method.setMasterId(masterId));
...@@ -2281,6 +2349,34 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz { ...@@ -2281,6 +2349,34 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
if (null != nameExist && nameExist) { if (null != nameExist && nameExist) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告主名称不能重复!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告主名称不能重复!");
} }
AdvertisingMaster master = advertisingMasterDao.getById(masterId);
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(null);
advertisingGroupTagDao.deleteByMasterId(masterId);
}
}
advertisingMasterDao.update(advertisingMaster); advertisingMasterDao.update(advertisingMaster);
// 删除广告主之前配置的结算方式 // 删除广告主之前配置的结算方式
advertisingSettlementMethodDao.deleteByMasterId(masterId); advertisingSettlementMethodDao.deleteByMasterId(masterId);
...@@ -2330,6 +2426,15 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz { ...@@ -2330,6 +2426,15 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
new BigDecimal(pilotFinishUserNum.doubleValue() / clickUserNum).setScale(4, BigDecimal.ROUND_HALF_UP); new BigDecimal(pilotFinishUserNum.doubleValue() / clickUserNum).setScale(4, BigDecimal.ROUND_HALF_UP);
masterDTO.setPilotFinishUserNum(pilotFinishUserNum); masterDTO.setPilotFinishUserNum(pilotFinishUserNum);
masterDTO.setPilotFinishRate(pilotFinishRate); 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; return pageBean;
} }
......
package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.entity.AdvertisingGroupTag;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @描述:群标记广告主
* @作者:zhuyajie
* @创建时间:14:52 2019/8/21
* @版本:1.0
*/
public interface AdvertisingGroupTagDao extends BaseDao<AdvertisingGroupTag> {
/**
* 根据广告主删除
* @param masterId
*/
public void deleteByMasterId(Long masterId);
/**
* 已标记的书
* @param masterId
* @return
*/
public List<Long> getBookIdsByMasterId(Long masterId);
/**
* 根据群删除标记
* @param groupQrcodeId
*/
public void deleteByGroupQrcodeId(Long groupQrcodeId);
/**
* 已标记的群
* @param masterId
* @return
*/
public List<Long> getGroupQrcodeIdsByMasterId(Long masterId);
/**
* 根据图书删除标记
* @param bookIds
* @param masterId
*/
void deleteByBook(List<Long> bookIds, Long masterId);
/**
* 查已标记的微信群id
* @param masterId
* @return
*/
List<String> getTagWxGroupIdsByMasterId(Long masterId);
}
package com.pcloud.book.advertising.dao; package com.pcloud.book.advertising.dao;
import java.util.List;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO; import com.pcloud.book.advertising.dto.AdvertisingMasterDTO;
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;
import java.util.List;
/** /**
* Description 广告主数据访问层接口 * Description 广告主数据访问层接口
* Created by PENG on 2019/4/26. * Created by PENG on 2019/4/26.
...@@ -23,4 +24,31 @@ public interface AdvertisingMasterDao extends BaseDao<AdvertisingMaster> { ...@@ -23,4 +24,31 @@ public interface AdvertisingMasterDao extends BaseDao<AdvertisingMaster> {
* @return * @return
*/ */
AdvertisingMasterDTO getDTOById(Long masterId); AdvertisingMasterDTO getDTOById(Long masterId);
/**
* 查微信群标记的广告主
* @param groupQrcodeId
* @return
*/
List<AdvertisingMaster> getByGroup(Long groupQrcodeId);
/**
* 获取品牌方广告主
* @return
*/
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);
} }
package com.pcloud.book.advertising.dao.impl;
import com.pcloud.book.advertising.dao.AdvertisingGroupTagDao;
import com.pcloud.book.advertising.entity.AdvertisingGroupTag;
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
* @创建时间:14:53 2019/8/21
* @版本:1.0
*/
@Component("advertisingGroupTagDao")
public class AdvertisingGroupTagDaoImpl extends BaseDaoImpl<AdvertisingGroupTag> implements AdvertisingGroupTagDao {
@Override
public void deleteByMasterId(Long masterId) {
getSessionTemplate().delete(getStatement("deleteByMasterId"), masterId);
}
@Override
public List<Long> getBookIdsByMasterId(Long masterId) {
return getSessionTemplate().selectList(getStatement("getBookIdsByMasterId"), masterId);
}
@Override
public void deleteByGroupQrcodeId(Long groupQrcodeId) {
getSessionTemplate().delete(getStatement("deleteByGroupQrcodeId"), groupQrcodeId);
}
@Override
public List<Long> getGroupQrcodeIdsByMasterId(Long masterId) {
return getSessionTemplate().selectList(getStatement("getGroupQrcodeIdsByMasterId"), masterId);
}
@Override
public void deleteByBook(List<Long> bookIds, Long masterId) {
Map<String, Object> map = new HashMap<>();
map.put("bookIds", bookIds);
map.put("masterId", masterId);
getSessionTemplate().delete(getStatement("deleteByBook"), map);
}
@Override
public List<String> getTagWxGroupIdsByMasterId(Long masterId) {
return getSessionTemplate().selectList(getStatement("getTagWxGroupIdsByMasterId"), masterId);
}
}
package com.pcloud.book.advertising.dao.impl; package com.pcloud.book.advertising.dao.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
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.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 java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* Description 广告主数据访问层接口实现类 * Description 广告主数据访问层接口实现类
* Created by PENG on 2019/4/26. * Created by PENG on 2019/4/26.
...@@ -29,4 +33,27 @@ public class AdvertisingMasterDaoImpl extends BaseDaoImpl<AdvertisingMaster> imp ...@@ -29,4 +33,27 @@ public class AdvertisingMasterDaoImpl extends BaseDaoImpl<AdvertisingMaster> imp
public AdvertisingMasterDTO getDTOById(Long masterId) { public AdvertisingMasterDTO getDTOById(Long masterId) {
return super.getSqlSession().selectOne(getStatement("getDTOById"), masterId); return super.getSqlSession().selectOne(getStatement("getDTOById"), masterId);
} }
@Override
public List<AdvertisingMaster> getByGroup(Long groupQrcodeId) {
return getSessionTemplate().selectList(getStatement("getByGroup"), groupQrcodeId);
}
@Override
public List<AdvertisingMasterDTO> getBrandMaster() {
return getSessionTemplate().selectList(getStatement("getBrandMaster"));
}
@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);
}
} }
...@@ -84,6 +84,18 @@ public class AdvertisingMasterDTO extends BaseDto { ...@@ -84,6 +84,18 @@ public class AdvertisingMasterDTO extends BaseDto {
*/ */
private BigDecimal pilotFinishRate; private BigDecimal pilotFinishRate;
/**
* 登录账号id
*/
private Long loginId;
/**
* 登录名
*/
private String loginName;
/**
* 登录密码
*/
private String password;
public Long getId() { public Long getId() {
return id; return id;
...@@ -207,6 +219,30 @@ public class AdvertisingMasterDTO extends BaseDto { ...@@ -207,6 +219,30 @@ public class AdvertisingMasterDTO extends BaseDto {
this.pilotFinishRate = pilotFinishRate; this.pilotFinishRate = pilotFinishRate;
} }
public Long getLoginId() {
return loginId;
}
public void setLoginId(Long loginId) {
this.loginId = loginId;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override @Override
public String toString() { public String toString() {
return "AdvertisingMasterDTO{" + return "AdvertisingMasterDTO{" +
...@@ -225,6 +261,9 @@ public class AdvertisingMasterDTO extends BaseDto { ...@@ -225,6 +261,9 @@ public class AdvertisingMasterDTO extends BaseDto {
", clickUserNum=" + clickUserNum + ", clickUserNum=" + clickUserNum +
", pilotFinishUserNum=" + pilotFinishUserNum + ", pilotFinishUserNum=" + pilotFinishUserNum +
", pilotFinishRate=" + pilotFinishRate + ", pilotFinishRate=" + pilotFinishRate +
", loginId=" + loginId +
", loginName='" + loginName + '\'' +
", password='" + password + '\'' +
'}'; '}';
} }
} }
\ 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 java.util.Date;
/**
* @描述:广告主标记书刊列表
* @作者:zhuyajie
* @创建时间:11:51 2019/8/22
* @版本:1.0
*/
public class Book4AdvertisingMasterDTO extends BaseDto {
/**
* 书籍标识
*/
private Long bookId;
/**
* 书籍ISBN码
*/
private String isbn;
/**
* 书籍名称
*/
private String bookName;
/**
* 创建日期
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
/**
* 微信群数量
*/
private Integer groupCount;
/**
* 群总人数
*/
private Integer groupUserNum;
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getGroupCount() {
return groupCount;
}
public void setGroupCount(Integer groupCount) {
this.groupCount = groupCount;
}
public Integer getGroupUserNum() {
return groupUserNum;
}
public void setGroupUserNum(Integer groupUserNum) {
this.groupUserNum = groupUserNum;
}
@Override
public String toString() {
return "Book4AdvertisingMasterDTO{" +
"bookId=" + bookId +
", isbn='" + isbn + '\'' +
", bookName='" + bookName + '\'' +
", createTime=" + createTime +
", groupCount=" + groupCount +
", groupUserNum=" + groupUserNum +
'}';
}
}
package com.pcloud.book.advertising.dto;
import com.pcloud.common.dto.BaseDto;
import java.util.List;
/**
* @描述:微信群标记广告主
* @作者:zhuyajie
* @创建时间:17:19 2019/8/21
* @版本:1.0
*/
public class GroupMasterAddDTO extends BaseDto{
//按微信群标记
/**
* 微信群二维码id
*/
private List<Long> groupQrcodeIdList;
/**
* 广告主id列表
*/
private List<Long> masterIdList;
//按图书标记
/**
* 广告主id
*/
private Long masterId;
/**
* 图书id列表
*/
private List<Long> bookIdList;
public List<Long> getGroupQrcodeIdList() {
return groupQrcodeIdList;
}
public void setGroupQrcodeIdList(List<Long> groupQrcodeIdList) {
this.groupQrcodeIdList = groupQrcodeIdList;
}
public List<Long> getMasterIdList() {
return masterIdList;
}
public void setMasterIdList(List<Long> masterIdList) {
this.masterIdList = masterIdList;
}
public Long getMasterId() {
return masterId;
}
public void setMasterId(Long masterId) {
this.masterId = masterId;
}
public List<Long> getBookIdList() {
return bookIdList;
}
public void setBookIdList(List<Long> bookIdList) {
this.bookIdList = bookIdList;
}
}
package com.pcloud.book.advertising.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.book.advertising.entity.AdvertisingMaster;
import com.pcloud.common.dto.BaseDto;
import java.util.Date;
import java.util.List;
/**
* @描述:群广告主标记列表
* @作者:zhuyajie
* @创建时间:15:00 2019/8/21
* @版本:1.0
*/
public class GroupMasterDTO extends BaseDto{
/**
* 微信群id
*/
private String wxGroupId;
/**
* 群二维码id
*/
private Long groupQrcodeId;
/**
* 微信群名称
*/
private String groupName;
/**
* 图书名称
*/
private String bookName;
/**
* 群分类名称
*/
private String classify;
/**
* 专业标签ID
*/
private Long proLabelId;
/**
* 专业标签名称
*/
private String proLabelName;
/**
* 深度标签ID
*/
private Long depLabelId;
/**
* 深度标签名称
*/
private String depLabelName;
/**
* 目的标签ID
*/
private Long purLabelId;
/**
* 目的标签名称
*/
private String purLabelName;
/**
* 出版社名称
*/
private String agentName;
/**
* 编辑id
*/
private Long adviserId;
/**
* 编辑名称
*/
private String adviserName;
/**
* 活跃度
*/
private Integer activeCount;
/**
* 当前群人数
*/
private Integer userNumber;
/**
* 广告位数量
*/
private Integer advertisingSpaceNum;
/**
* 群二维码url
*/
private String qrcodeUrl;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
/**
* 标记的广告主列表
*/
List<AdvertisingMaster> masterList;
/**
* 标记时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date tagTime;
/**
* isbn
*/
private String isbn;
public String getWxGroupId() {
return wxGroupId;
}
public void setWxGroupId(String wxGroupId) {
this.wxGroupId = wxGroupId;
}
public Long getGroupQrcodeId() {
return groupQrcodeId;
}
public void setGroupQrcodeId(Long groupQrcodeId) {
this.groupQrcodeId = groupQrcodeId;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getClassify() {
return classify;
}
public void setClassify(String classify) {
this.classify = classify;
}
public Long getProLabelId() {
return proLabelId;
}
public void setProLabelId(Long proLabelId) {
this.proLabelId = proLabelId;
}
public String getProLabelName() {
return proLabelName;
}
public void setProLabelName(String proLabelName) {
this.proLabelName = proLabelName;
}
public Long getDepLabelId() {
return depLabelId;
}
public void setDepLabelId(Long depLabelId) {
this.depLabelId = depLabelId;
}
public String getDepLabelName() {
return depLabelName;
}
public void setDepLabelName(String depLabelName) {
this.depLabelName = depLabelName;
}
public Long getPurLabelId() {
return purLabelId;
}
public void setPurLabelId(Long purLabelId) {
this.purLabelId = purLabelId;
}
public String getPurLabelName() {
return purLabelName;
}
public void setPurLabelName(String purLabelName) {
this.purLabelName = purLabelName;
}
public String getAgentName() {
return agentName;
}
public void setAgentName(String agentName) {
this.agentName = agentName;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public String getAdviserName() {
return adviserName;
}
public void setAdviserName(String adviserName) {
this.adviserName = adviserName;
}
public Integer getActiveCount() {
return activeCount;
}
public void setActiveCount(Integer activeCount) {
this.activeCount = activeCount;
}
public Integer getUserNumber() {
return userNumber;
}
public void setUserNumber(Integer userNumber) {
this.userNumber = userNumber;
}
public Integer getAdvertisingSpaceNum() {
return advertisingSpaceNum;
}
public void setAdvertisingSpaceNum(Integer advertisingSpaceNum) {
this.advertisingSpaceNum = advertisingSpaceNum;
}
public String getQrcodeUrl() {
return qrcodeUrl;
}
public void setQrcodeUrl(String qrcodeUrl) {
this.qrcodeUrl = qrcodeUrl;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public List<AdvertisingMaster> getMasterList() {
return masterList;
}
public void setMasterList(List<AdvertisingMaster> masterList) {
this.masterList = masterList;
}
public Date getTagTime() {
return tagTime;
}
public void setTagTime(Date tagTime) {
this.tagTime = tagTime;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
@Override
public String toString() {
return "GroupMasterDTO{" +
"wxGroupId='" + wxGroupId + '\'' +
", groupQrcodeId=" + groupQrcodeId +
", groupName='" + groupName + '\'' +
", bookName='" + bookName + '\'' +
", classify='" + classify + '\'' +
", proLabelId=" + proLabelId +
", proLabelName='" + proLabelName + '\'' +
", depLabelId=" + depLabelId +
", depLabelName='" + depLabelName + '\'' +
", purLabelId=" + purLabelId +
", purLabelName='" + purLabelName + '\'' +
", agentName='" + agentName + '\'' +
", adviserId=" + adviserId +
", adviserName='" + adviserName + '\'' +
", activeCount=" + activeCount +
", userNumber=" + userNumber +
", advertisingSpaceNum=" + advertisingSpaceNum +
", qrcodeUrl='" + qrcodeUrl + '\'' +
", createTime=" + createTime +
", masterList=" + masterList +
", tagTime=" + tagTime +
", isbn='" + isbn + '\'' +
'}';
}
}
package com.pcloud.book.advertising.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
/**
* 群标记广告主
*/
public class AdvertisingGroupTag extends BaseEntity{
/**
* 被标记的图书id
*/
private Long tagBookId;
/**
* 群二维码id
*/
private Long groupQrcodeId;
/**
* 广告主id
*/
private Long masterId;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
public Long getTagBookId() {
return tagBookId;
}
public void setTagBookId(Long tagBookId) {
this.tagBookId = tagBookId;
}
public Long getGroupQrcodeId() {
return groupQrcodeId;
}
public void setGroupQrcodeId(Long groupQrcodeId) {
this.groupQrcodeId = groupQrcodeId;
}
public Long getMasterId() {
return masterId;
}
public void setMasterId(Long masterId) {
this.masterId = masterId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "AdvertisingGroupTag{" +
"tagBookId=" + tagBookId +
", groupQrcodeId=" + groupQrcodeId +
", masterId=" + masterId +
", createTime=" + createTime +
'}';
}
}
\ No newline at end of file
...@@ -33,6 +33,19 @@ public class AdvertisingMaster extends BaseEntity { ...@@ -33,6 +33,19 @@ public class AdvertisingMaster extends BaseEntity {
*/ */
private List<AdvertisingSettlementMethod> settlementMethodList; private List<AdvertisingSettlementMethod> settlementMethodList;
/**
* 登录名
*/
private String loginName;
/**
* 登录密码
*/
private String password;
/**
* 登录账号id
*/
private Long loginId;
@Override @Override
public Long getId() { public Long getId() {
return id; return id;
...@@ -79,6 +92,30 @@ public class AdvertisingMaster extends BaseEntity { ...@@ -79,6 +92,30 @@ public class AdvertisingMaster extends BaseEntity {
this.settlementMethodList = settlementMethodList; this.settlementMethodList = settlementMethodList;
} }
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public Long getLoginId() {
return loginId;
}
public void setLoginId(Long loginId) {
this.loginId = loginId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override @Override
public String toString() { public String toString() {
return "AdvertisingMaster{" + return "AdvertisingMaster{" +
...@@ -87,6 +124,10 @@ public class AdvertisingMaster extends BaseEntity { ...@@ -87,6 +124,10 @@ public class AdvertisingMaster extends BaseEntity {
", createTime=" + createTime + ", createTime=" + createTime +
", updateTime=" + updateTime + ", updateTime=" + updateTime +
", settlementMethodList=" + settlementMethodList + ", settlementMethodList=" + settlementMethodList +
"} " + super.toString(); ", loginName='" + loginName + '\'' +
", password='" + password + '\'' +
", loginId=" + loginId +
'}';
} }
} }
\ No newline at end of file
...@@ -9,7 +9,8 @@ public enum SettlementMethodEnum { ...@@ -9,7 +9,8 @@ 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;
...@@ -32,7 +33,7 @@ public enum SettlementMethodEnum { ...@@ -32,7 +33,7 @@ public enum SettlementMethodEnum {
return null; return null;
} }
public static final String[] SETTLEMENT_METHOD_GATHER = {CPC.code, CPM.code, CPA.code, CPS.code}; public static final String[] SETTLEMENT_METHOD_GATHER = {CPC.code, CPM.code, CPA.code, CPS.code, Brand.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 io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
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.service.AdvertisingSpaceService; import com.pcloud.book.advertising.service.AdvertisingSpaceService;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ResponseHandleUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map; import java.util.Map;
import io.swagger.annotations.ApiOperation;
/** /**
* Description 广告位内部接口实现类 * Description 广告位内部接口实现类
* Created by PENG on 2019/5/6. * Created by PENG on 2019/5/6.
...@@ -23,6 +37,8 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService { ...@@ -23,6 +37,8 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService {
@Autowired @Autowired
private AdvertisingSpaceBiz advertisingSpaceBiz; private AdvertisingSpaceBiz advertisingSpaceBiz;
@Autowired
private GroupMasterTagBiz groupMasterTagBiz;
/** /**
* 每日凌晨计算昨日广告位收益 * 每日凌晨计算昨日广告位收益
...@@ -40,4 +56,12 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService { ...@@ -40,4 +56,12 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService {
LOGGER.info("内部接口群发广告被调用"+map.toString()); LOGGER.info("内部接口群发广告被调用"+map.toString());
advertisingSpaceBiz.sendAdvertisingPlan(new Long(map.get("advertisingPutId").toString())); advertisingSpaceBiz.sendAdvertisingPlan(new Long(map.get("advertisingPutId").toString()));
} }
@Override
@GetMapping("getTagWxGroupIdsByUserId")
@ParamLog("根据登录用户获取标记的微信群列表")
public ResponseEntity<ResponseDto<List<String>>> getTagWxGroupIdsByUserId(@RequestParam("userId") Long userId) {
List<String> list = groupMasterTagBiz.getTagWxGroupIdsByUserId(userId);
return ResponseHandleUtil.toResponse(list);
}
} }
...@@ -200,7 +200,7 @@ public interface BookBiz { ...@@ -200,7 +200,7 @@ public interface BookBiz {
* @return * @return
* @throws BizException * @throws BizException
*/ */
PageBean getListPage4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException; PageBean getListPage4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId, Integer hasQrcode) throws BizException;
/** /**
* 首页展示正在做的图书 * 首页展示正在做的图书
......
...@@ -37,6 +37,7 @@ import com.pcloud.book.book.dto.BookNameUpdateDTO; ...@@ -37,6 +37,7 @@ import com.pcloud.book.book.dto.BookNameUpdateDTO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookAdviser; import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.set.BookSet; import com.pcloud.book.book.set.BookSet;
import com.pcloud.book.book.tools.BookTools;
import com.pcloud.book.book.vo.ListNoAuthBookParam; import com.pcloud.book.book.vo.ListNoAuthBookParam;
import com.pcloud.book.consumer.analysisengine.SceneRecordConsr; import com.pcloud.book.consumer.analysisengine.SceneRecordConsr;
import com.pcloud.book.consumer.app.AssistTempletConsr; import com.pcloud.book.consumer.app.AssistTempletConsr;
...@@ -725,12 +726,24 @@ public class BookBizImpl implements BookBiz { ...@@ -725,12 +726,24 @@ public class BookBizImpl implements BookBiz {
* 获取书籍列表(编辑) * 获取书籍列表(编辑)
*/ */
@Override @Override
public PageBean getListPage4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException { public PageBean getListPage4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId, Integer hasQrcode) throws BizException {
LOGGER.info("【书籍应用】获取书籍列表,<START>.[paramMap]=" + paramMap.toString()); LOGGER.info("【书籍应用】获取书籍列表,<START>.[paramMap]=" + paramMap.toString());
PageBean pageBean = bookDao.listPage(pageParam, paramMap, "getListPage4Adviser"); PageBean pageBean = bookDao.listPage(pageParam, paramMap, "getListPage4Adviser");
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) { if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(0, 0, new ArrayList<>()); return new PageBean(0, 0, new ArrayList<>());
} }
if (null != hasQrcode && 1 == hasQrcode) {
List<Long> channelIds = BookTools.listChannelIds(pageBean.getRecordList());
List<com.pcloud.channelcenter.qrcode.dto.BookDto> bookIds = qrcodeSceneConsr.getQrcodeBookIds(channelIds, adviserId);
if (ListUtils.isEmpty(bookIds)){
return new PageBean(0, 0, new ArrayList<>());
}
paramMap.put("bookIds", bookIds);
pageBean = bookDao.listPage(pageParam, paramMap, "getListPage4Adviser");
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(0, 0, new ArrayList<>());
}
}
// 填充渠道基础信息 // 填充渠道基础信息
bookSet.setChannelInfoList(pageBean.getRecordList()); bookSet.setChannelInfoList(pageBean.getRecordList());
bookSet.setBookSvUvPv4Object(pageBean.getRecordList()); bookSet.setBookSvUvPv4Object(pageBean.getRecordList());
...@@ -1261,8 +1274,8 @@ public class BookBizImpl implements BookBiz { ...@@ -1261,8 +1274,8 @@ public class BookBizImpl implements BookBiz {
LOGGER.info("图书列表(平台端)<START>,paramMap=" + paramMap); LOGGER.info("图书列表(平台端)<START>,paramMap=" + paramMap);
PageBean pageBean = bookDao.listPage(pageParam, paramMap, "listBookClassify", "listBookClassifyCount"); PageBean pageBean = bookDao.listPage(pageParam, paramMap, "listBookClassify", "listBookClassifyCount");
if (pageBean != null) { if (pageBean != null) {
// 设置编辑名称 // 设置编辑名称,手机号
bookSet.setAdviserName4BookDto(pageBean.getRecordList()); bookSet.setAdviserInfo4BookDto(pageBean.getRecordList());
// 设置图书读者量、扫码量、浏览量 // 设置图书读者量、扫码量、浏览量
bookSet.setBookSvUvPv4Object(pageBean.getRecordList()); bookSet.setBookSvUvPv4Object(pageBean.getRecordList());
// 设置书刊分类 // 设置书刊分类
......
...@@ -145,7 +145,8 @@ public interface BookFacade { ...@@ -145,7 +145,8 @@ public interface BookFacade {
@ApiImplicitParam(name = "isFundSupport", value = "只看基金支持", dataType = "int", paramType = "query"), @ApiImplicitParam(name = "isFundSupport", value = "只看基金支持", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "bookId", value = "书籍标识", dataType = "int", paramType = "query"), @ApiImplicitParam(name = "bookId", value = "书籍标识", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "templetId", value = "图书类型标识", dataType = "long", paramType = "query"), @ApiImplicitParam(name = "templetId", value = "图书类型标识", dataType = "long", paramType = "query"),
@ApiImplicitParam(name = "bookStatus", value = "图书版权保护状态", dataType = "Integer", paramType = "query")}) @ApiImplicitParam(name = "bookStatus", value = "图书版权保护状态", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "hasQrcode", value = "只看有二维码", dataType = "int", paramType = "query")})
@RequestMapping(value = "listPage4Adviser", method = RequestMethod.GET) @RequestMapping(value = "listPage4Adviser", method = RequestMethod.GET)
ResponseDto<PageBean> getListPage4Adviser(@RequestHeader("token") String token, ResponseDto<PageBean> getListPage4Adviser(@RequestHeader("token") String token,
@RequestParam(value = "name", required = false) String name, @RequestParam(value = "name", required = false) String name,
...@@ -160,7 +161,8 @@ public interface BookFacade { ...@@ -160,7 +161,8 @@ public interface BookFacade {
@RequestParam(value = "bookId", required = false) Integer bookId, @RequestParam(value = "bookId", required = false) Integer bookId,
@RequestParam(value = "templetId", required = false) Long templetId, @RequestParam(value = "templetId", required = false) Long templetId,
@RequestParam(value = "bookStatus", required = false) Integer bookStatus, @RequestParam(value = "bookStatus", required = false) Integer bookStatus,
@RequestParam(value = "secondTempletId", required = false) Long secondTempletId) @RequestParam(value = "secondTempletId", required = false) Long secondTempletId,
@RequestParam(value = "hasQrcode",required = false) Integer hasQrcode)
throws BizException, PermissionException; throws BizException, PermissionException;
@ApiOperation(value = "首页获取正在做的图书", httpMethod = "GET") @ApiOperation(value = "首页获取正在做的图书", httpMethod = "GET")
......
...@@ -238,7 +238,8 @@ public class BookFacadeImpl implements BookFacade { ...@@ -238,7 +238,8 @@ public class BookFacadeImpl implements BookFacade {
@RequestParam(value = "bookId", required = false) Integer bookId, @RequestParam(value = "bookId", required = false) Integer bookId,
@RequestParam(value = "templetId", required = false) Long templetId, @RequestParam(value = "templetId", required = false) Long templetId,
@RequestParam(value = "bookStatus", required = false) Integer bookStatus, @RequestParam(value = "bookStatus", required = false) Integer bookStatus,
@RequestParam(value = "secondTempletId",required = false) Long secondTempletId) @RequestParam(value = "secondTempletId",required = false) Long secondTempletId,
@RequestParam(value = "hasQrcode",required = false) Integer hasQrcode)
throws BizException, PermissionException { throws BizException, PermissionException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID); Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) { if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
...@@ -258,7 +259,7 @@ public class BookFacadeImpl implements BookFacade { ...@@ -258,7 +259,7 @@ public class BookFacadeImpl implements BookFacade {
paramMap.put("bookStatus", bookStatus); paramMap.put("bookStatus", bookStatus);
paramMap.put("secondTempletId",secondTempletId); paramMap.put("secondTempletId",secondTempletId);
paramMap.put("secondTempletIds", Optional.ofNullable(paramMap.get("secondTempletId")).map(Lists::newArrayList).orElse(Lists.newArrayList())); paramMap.put("secondTempletIds", Optional.ofNullable(paramMap.get("secondTempletId")).map(Lists::newArrayList).orElse(Lists.newArrayList()));
PageBean pageBean = bookBiz.getListPage4Adviser(paramMap, new PageParam(currentPage, numPerPage), adviserId); PageBean pageBean = bookBiz.getListPage4Adviser(paramMap, new PageParam(currentPage, numPerPage), adviserId, hasQrcode);
return new ResponseDto<>(pageBean); return new ResponseDto<>(pageBean);
} }
......
...@@ -3,28 +3,9 @@ ...@@ -3,28 +3,9 @@
*/ */
package com.pcloud.book.book.set; package com.pcloud.book.book.set;
import java.math.BigDecimal; import com.google.common.collect.Lists;
import java.util.ArrayList;
import java.util.Arrays;
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.stream.Collectors;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto; import com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto;
import com.pcloud.appcenter.app.dto.AppDto; import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO; import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
...@@ -98,6 +79,27 @@ import com.pcloud.usercenter.party.adviser.entity.Adviser; ...@@ -98,6 +79,27 @@ import com.pcloud.usercenter.party.adviser.entity.Adviser;
import com.pcloud.usercenter.party.agent.entity.Agent; import com.pcloud.usercenter.party.agent.entity.Agent;
import com.pcloud.voicemessage.party.merchant.entity.MerchantVideo; import com.pcloud.voicemessage.party.merchant.entity.MerchantVideo;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
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.stream.Collectors;
/** /**
* @描述:图书信息填充 * @描述:图书信息填充
* @作者:songx * @作者:songx
...@@ -1630,4 +1632,28 @@ public class BookSet { ...@@ -1630,4 +1632,28 @@ public class BookSet {
// 批量填充运营信息 // 批量填充运营信息
BookTools.setChannelNames4NoAuthBookVO(noAuthBookVOS, channelNameMap); BookTools.setChannelNames4NoAuthBookVO(noAuthBookVOS, channelNameMap);
} }
public void setAdviserInfo4BookDto(List<Object> objects) {
LOGGER.info("【书刊基础】批量填充顾问名称、手机号,<START>");
// 组装编辑标识(去重)
List<Long> adviserIds = BookTools.listAdviserIds(objects);
// 从用户中心批量获取编辑名称
Map<Long, AdviserBaseInfoDto> adviserMap = adviserConsr.getAdviserId2AdviserInfoDtoMap(adviserIds);
if (MapUtils.isEmpty(adviserMap)) {
return;
}
// 批量填充编辑名称手机号
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long adviserId = bookDto.getAdviserId();
if (adviserMap.containsKey(adviserId)) {
bookDto.setAdviserName(adviserMap.get(adviserId).getPartyName());
bookDto.setPhone(adviserMap.get(adviserId).getPhoneNum());
} else {
bookDto.setAdviserName("");
bookDto.setPhone("");
}
}
LOGGER.info("【书刊基础】批量填充顾问名称、手机号,<END>");
}
} }
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
package com.pcloud.book.consumer.channel; package com.pcloud.book.consumer.channel;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.channelcenter.qrcode.dto.BookDto;
import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO; import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto; import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService; import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
...@@ -27,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -27,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -324,4 +326,16 @@ public class QrcodeSceneConsr { ...@@ -324,4 +326,16 @@ public class QrcodeSceneConsr {
} }
return null; return null;
} }
@ParamLog("获取编辑下有二维码的图书")
public List<BookDto> getQrcodeBookIds(List<Long> channelIds, Long adviserId) {
List<BookDto> bookIds = new ArrayList<>();
try {
bookIds = ResponseHandleUtil.parseListResponse(qrcodeSceneService.getQrcodeBookIds(channelIds, adviserId), BookDto.class);
} catch (Exception e) {
LOGGER.error("【二维码-渠道】 获取编辑下有二维码的图书,<ERROR>.[getQrcodeBookIds]:" + e.getMessage(), e);
}
return bookIds;
}
} }
...@@ -3,26 +3,26 @@ ...@@ -3,26 +3,26 @@
*/ */
package com.pcloud.book.consumer.user; package com.pcloud.book.consumer.user;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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;
import com.pcloud.usercenter.party.common.dto.PartyListDto; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.usercenter.party.agent.entity.Agent;
import com.pcloud.usercenter.party.common.service.PartyService;
import com.pcloud.usercenter.party.common.vo.PartyIdListVO; import com.pcloud.usercenter.party.common.vo.PartyIdListVO;
import com.pcloud.usercenter.user.entity.UserLogin;
import com.pcloud.usercenter.user.service.UserLoginService; import com.pcloud.usercenter.user.service.UserLoginService;
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.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.pcloud.common.exceptions.BizException; import java.util.HashMap;
import com.pcloud.common.utils.ListUtils; import java.util.List;
import com.pcloud.common.utils.ResponseHandleUtil; import java.util.Map;
import com.pcloud.usercenter.party.agent.entity.Agent;
import com.pcloud.usercenter.party.common.service.PartyService;
/** /**
* @描述:当事人中间类 * @描述:当事人中间类
...@@ -76,4 +76,49 @@ public class PartyConsr { ...@@ -76,4 +76,49 @@ public class PartyConsr {
PartyIdListVO partyIdListVO = ResponseHandleUtil.parseResponse(partyIdList, PartyIdListVO.class); PartyIdListVO partyIdListVO = ResponseHandleUtil.parseResponse(partyIdList, PartyIdListVO.class);
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("获取登录账号信息")
public UserLogin getUserLoginInfo(Long loginId) {
UserLogin userLogin = new UserLogin();
try {
userLogin = ResponseHandleUtil.parseResponse(userLoginService.getUserLoginInfo(loginId), UserLogin.class);
} catch (Exception e) {
LOGGER.error("【用户中心】获取平台端登录账号失败" + e.getMessage(), e);
}
return userLogin;
}
} }
...@@ -325,6 +325,17 @@ public class WechatGroupConsr { ...@@ -325,6 +325,17 @@ public class WechatGroupConsr {
return map; return map;
} }
@ParamLog("根据用户微信ID获取用户信息")
public GroupUserDTO getWxUserInfoByWxUserId(String wxUserId) {
GroupUserDTO dto = new GroupUserDTO();
try {
dto = ResponseHandleUtil.parseResponse(groupMemberService.getWxUserInfoByWxId(wxUserId), GroupUserDTO.class);
} catch (Exception e) {
log.error("根据用户微信ID获取用户信息.[getWxUserInfoByWxId]:" + e.getMessage(), e);
}
return dto;
}
@ParamLog(value = "获取可用机器人") @ParamLog(value = "获取可用机器人")
public SelfRobotDTO getAvailableRobot(Long wechatUserId, Integer largeTemplet, Long classifyId) { public SelfRobotDTO getAvailableRobot(Long wechatUserId, Integer largeTemplet, Long classifyId) {
SelfRobotDTO selfRobotDTO = null; SelfRobotDTO selfRobotDTO = null;
...@@ -335,15 +346,19 @@ public class WechatGroupConsr { ...@@ -335,15 +346,19 @@ public class WechatGroupConsr {
} }
return selfRobotDTO; return selfRobotDTO;
} }
@ParamLog("根据用户微信ID获取用户信息")
public GroupUserDTO getWxUserInfoByWxUserId(String wxUserId) { @ParamLog(value = "根据群id集合最近7天群活跃度")
GroupUserDTO dto = new GroupUserDTO(); public Map<Long,Integer> get7DayActiveCountByQrcode(List<Long> qrcodeIds) {
Map<Long, Integer> map = new HashMap<>();
try { try {
dto = ResponseHandleUtil.parseResponse(groupMemberService.getWxUserInfoByWxId(wxUserId), GroupUserDTO.class); map = ResponseHandleUtil.parseMapResponse(messageService.get7DayActiveCountByQrcode(qrcodeIds), Long.class, Integer.class);
} catch (Exception e) { } catch (Exception e) {
log.error("根据用户微信ID获取用户信息.[getWxUserInfoByWxId]:" + e.getMessage(), e); log.error("根据群id集合最近7天群活跃度.[get7DayActiveCountByQrcode]:" + e.getMessage(), e);
} }
return dto; if (map == null) {
return new HashMap<>();
}
return map;
} }
} }
...@@ -265,8 +265,8 @@ public class PushBizImpl implements PushBiz { ...@@ -265,8 +265,8 @@ public class PushBizImpl implements PushBiz {
pushRecord.setPushStatus(PushStatusEnum.PUSHING.value); pushRecord.setPushStatus(PushStatusEnum.PUSHING.value);
//新增群发记录 //新增群发记录
pushRecordDao.insert(pushRecord); pushRecordDao.insert(pushRecord);
//新增细化到群的记录并发送消息 //新增细化到群的记录并发送消息,异步
addPushGroupRecordsAndSend(pushGroupList, pushRecord, pushItemList); ThreadPoolUtils.SEND_MESSAGE_THREAD_POOL.execute(() -> addPushGroupRecordsAndSend(pushGroupList, pushRecord, pushItemList));
} catch (Exception e) { } catch (Exception e) {
LOGGER.error(e.getMessage(), "群发消息失败!"+e); LOGGER.error(e.getMessage(), "群发消息失败!"+e);
pushRecordDao.updateStateById(pushRecord.getId(), PushStatusEnum.FAIL.value); pushRecordDao.updateStateById(pushRecord.getId(), PushStatusEnum.FAIL.value);
...@@ -299,7 +299,15 @@ public class PushBizImpl implements PushBiz { ...@@ -299,7 +299,15 @@ public class PushBizImpl implements PushBiz {
String altId = wechatGroupConsr.getRobotIdByGroupId(groupQrcode.getWeixinGroupId()); String altId = wechatGroupConsr.getRobotIdByGroupId(groupQrcode.getWeixinGroupId());
//遍历发送消息 //遍历发送消息
for (PushItem pushItem : pushItemList) { for (PushItem pushItem : pushItemList) {
sendWechatMessage(pushGroup, pushItem, pushGroupRecord.getId(), altId); try {
LOGGER.info("发送一个群里的一个消息开始pushGroup=" + pushGroup.toString() + "pushItem=" + pushItem.toString() + "altId=" + altId);
sendWechatMessage(pushGroup, pushItem, pushGroupRecord.getId(), altId);
LOGGER.info("发送一个群里的一个消息结束,休眠1秒pushGroup=" + pushGroup.toString() + "pushItem=" + pushItem.toString() + "altId=" + altId);
Thread.sleep(1000);
} catch (InterruptedException e) {
LOGGER.error("发消息休眠1秒出错", e);
}
} }
} }
} }
......
<?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.AdvertisingGroupTagDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.advertising.entity.AdvertisingGroupTag" >
<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="create_time" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, tag_book_id, group_qrcode_id, master_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)
values (#{tagBookId,jdbcType=BIGINT}, #{groupQrcodeId,jdbcType=BIGINT},
#{masterId,jdbcType=BIGINT},NOW())
</insert>
<delete id="deleteByMasterId" parameterType="long">
DELETE
FROM
advertising_group_tag
WHERE
master_id = #{masterId}
</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,
create_time
) values
<foreach collection="list" item="item" index="index"
separator=",">
(#{item.tagBookId,jdbcType=BIGINT},
#{item.groupQrcodeId,jdbcType=BIGINT},
#{item.masterId,jdbcType=BIGINT},
NOW())
</foreach>
</insert>
<select id="getBookIdsByMasterId" parameterType="long" resultType="long">
SELECT DISTINCT
tag_book_id
FROM
advertising_group_tag
WHERE
master_id = #{masterId}
AND tag_book_id IS NOT NULL
AND group_qrcode_id = 0
</select>
<delete id="deleteByGroupQrcodeId" parameterType="long">
DELETE
FROM
advertising_group_tag
WHERE group_qrcode_id = #{groupQrcodeId}
</delete>
<select id="getGroupQrcodeIdsByMasterId" parameterType="long" resultType="long">
SELECT DISTINCT
group_qrcode_id
FROM
advertising_group_tag
WHERE
master_id = #{masterId}
AND group_qrcode_id != 0
</select>
<delete id="deleteByBook" parameterType="map" >
DELETE
FROM
advertising_group_tag
WHERE
master_id = #{masterId}
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 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}
AND q.weixin_group_id IS NOT NULL
</select>
</mapper>
\ No newline at end of file
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<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">
...@@ -13,10 +14,11 @@ ...@@ -13,10 +14,11 @@
<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 id, master_name, create_time, update_time, login_id
</sql> </sql>
<select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long"> <select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long">
...@@ -84,11 +86,13 @@ ...@@ -84,11 +86,13 @@
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>
...@@ -98,8 +102,49 @@ ...@@ -98,8 +102,49 @@
<if test="masterName != null"> <if test="masterName != null">
master_name = #{masterName,jdbcType=VARCHAR}, master_name = #{masterName,jdbcType=VARCHAR},
</if> </if>
update_time = NOW(), update_time = NOW(),
login_id = #{loginId},
</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
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
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
FROM
advertising_master
WHERE
login_id = #{loginId}
</select>
<update id="updateMasterLoginId" parameterType="map">
UPDATE advertising_master
SET login_id = #{loginId}
WHERE
id = #{masterId}
</update>
</mapper> </mapper>
\ No newline at end of file
...@@ -514,6 +514,13 @@ ...@@ -514,6 +514,13 @@
AND AND
I.book_status = #{bookStatus} I.book_status = #{bookStatus}
</if> </if>
<if test="bookIds != null">
<foreach collection="bookIds" index="index" item="item" open="and (" separator="or" close=")">
<if test="item.bookId != null and item.channelId != null">
A.BOOK_ID = ${item.bookId} AND A.CHANNEL_ID = ${item.channelId}
</if>
</foreach>
</if>
GROUP BY A.BOOK_ID, A.CHANNEL_ID GROUP BY A.BOOK_ID, A.CHANNEL_ID
ORDER BY ORDER BY
LAST_MODIFIED_DATE DESC LAST_MODIFIED_DATE DESC
......
...@@ -28,6 +28,9 @@ ...@@ -28,6 +28,9 @@
#{weixinClockId, jdbcType=BIGINT}, #{wxUserId, jdbcType=VARCHAR}, #{bookGroupClassifyId, jdbcType=BIGINT}, #{wxGroupId, jdbcType=VARCHAR}, #{weixinClockId, jdbcType=BIGINT}, #{wxUserId, jdbcType=VARCHAR}, #{bookGroupClassifyId, jdbcType=BIGINT}, #{wxGroupId, jdbcType=VARCHAR},
#{nickname, jdbcType=VARCHAR}, #{headPic, jdbcType=VARCHAR}, #{allClockDay, jdbcType=INTEGER}, NOW(), NOW(),#{wechatUserId, jdbcType=BIGINT} #{nickname, jdbcType=VARCHAR}, #{headPic, jdbcType=VARCHAR}, #{allClockDay, jdbcType=INTEGER}, NOW(), NOW(),#{wechatUserId, jdbcType=BIGINT}
) )
ON DUPLICATE KEY
UPDATE
update_time = NOW()
</insert> </insert>
<select id="listWeixinClockRank" parameterType="map" resultType="com.pcloud.book.weixinclock.dto.RankDto"> <select id="listWeixinClockRank" parameterType="map" resultType="com.pcloud.book.weixinclock.dto.RankDto">
...@@ -73,6 +76,7 @@ ...@@ -73,6 +76,7 @@
order by all_clock_day desc, update_time asc order by all_clock_day desc, update_time asc
) a ) a
) cm where cm.wx_user_id = #{userWxId} ) cm where cm.wx_user_id = #{userWxId}
LIMIT 1
</select> </select>
<select id="getClockWechatUserRank" parameterType="map" resultType="com.pcloud.book.weixinclock.dto.RankDto"> <select id="getClockWechatUserRank" parameterType="map" resultType="com.pcloud.book.weixinclock.dto.RankDto">
......
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
#{weixinClockId, jdbcType=BIGINT}, #{weixinClockMemberId, jdbcType=BIGINT}, #{wxUserId, jdbcType=VARCHAR}, #{bookGroupClassifyId, jdbcType=BIGINT}, #{weixinClockId, jdbcType=BIGINT}, #{weixinClockMemberId, jdbcType=BIGINT}, #{wxUserId, jdbcType=VARCHAR}, #{bookGroupClassifyId, jdbcType=BIGINT},
#{wxGroupId, jdbcType=VARCHAR}, #{createdDay, jdbcType=DATE}, NOW() #{wxGroupId, jdbcType=VARCHAR}, #{createdDay, jdbcType=DATE}, NOW()
) )
ON DUPLICATE KEY
UPDATE
weixin_clock_member_id = weixin_clock_member_id
</insert> </insert>
<!-- 获取用户今天打卡情况 --> <!-- 获取用户今天打卡情况 -->
......
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