Commit 536594d4 by gaopeng

平台端广告位管理

parent a0a95455
...@@ -3,13 +3,12 @@ ...@@ -3,13 +3,12 @@
*/ */
package com.pcloud.book.book.dto; package com.pcloud.book.book.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
/** /**
* @描述:书籍实体DTO * @描述:书籍实体DTO
...@@ -401,6 +400,42 @@ public class BookDto extends BaseDto { ...@@ -401,6 +400,42 @@ public class BookDto extends BaseDto {
@ApiModelProperty("图书状态") @ApiModelProperty("图书状态")
private Integer bookStatus; private Integer bookStatus;
/**
* 是否开启广告位权限
*/
private Boolean isOpen;
/**
* 出版ID
*/
private Long agentId;
/**
* 出版社名称
*/
private String agentName;
/**
* 投放时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date distributionTime;
/**
* 曝光量
*/
private Long exposureNum;
/**
* 点击量
*/
private Long clickNum;
/**
* 公众号名称
*/
private String officialAccountsName;
public String getQrRemark() { public String getQrRemark() {
return qrRemark; return qrRemark;
} }
...@@ -441,9 +476,13 @@ public class BookDto extends BaseDto { ...@@ -441,9 +476,13 @@ public class BookDto extends BaseDto {
this.location = location; this.location = location;
} }
public String getTransferor() { return transferor; } public String getTransferor() {
return transferor;
}
public void setTransferor(String transferor) { this.transferor = transferor; } public void setTransferor(String transferor) {
this.transferor = transferor;
}
public Long getNoAuditNum() { public Long getNoAuditNum() {
return noAuditNum; return noAuditNum;
...@@ -1017,6 +1056,62 @@ public class BookDto extends BaseDto { ...@@ -1017,6 +1056,62 @@ public class BookDto extends BaseDto {
this.bookStatus = bookStatus; this.bookStatus = bookStatus;
} }
public Boolean getIsOpen() {
return isOpen;
}
public void setIsOpen(Boolean isOpen) {
this.isOpen = isOpen;
}
public Long getAgentId() {
return agentId;
}
public void setAgentId(Long agentId) {
this.agentId = agentId;
}
public String getAgentName() {
return agentName;
}
public void setAgentName(String agentName) {
this.agentName = agentName;
}
public Date getDistributionTime() {
return distributionTime;
}
public void setDistributionTime(Date distributionTime) {
this.distributionTime = distributionTime;
}
public Long getExposureNum() {
return exposureNum;
}
public void setExposureNum(Long exposureNum) {
this.exposureNum = exposureNum;
}
public Long getClickNum() {
return clickNum;
}
public void setClickNum(Long clickNum) {
this.clickNum = clickNum;
}
public String getOfficialAccountsName() {
return officialAccountsName;
}
public void setOfficialAccountsName(String officialAccountsName) {
this.officialAccountsName = officialAccountsName;
}
@Override @Override
public String toString() { public String toString() {
return "BookDto{" + return "BookDto{" +
...@@ -1097,6 +1192,13 @@ public class BookDto extends BaseDto { ...@@ -1097,6 +1192,13 @@ public class BookDto extends BaseDto {
", sceneName='" + sceneName + '\'' + ", sceneName='" + sceneName + '\'' +
", qrRemark='" + qrRemark + '\'' + ", qrRemark='" + qrRemark + '\'' +
", bookStatus=" + bookStatus + ", bookStatus=" + bookStatus +
", isOpen=" + isOpen +
", agentId=" + agentId +
", agentName='" + agentName + '\'' +
", distributionTime=" + distributionTime +
", exposureNum=" + exposureNum +
", clickNum=" + clickNum +
", officialAccountsName='" + officialAccountsName + '\'' +
'}'; '}';
} }
} }
package com.pcloud.book.advertising.biz;
import java.util.List;
import java.util.Map;
import com.pcloud.book.advertising.dto.AdvertisingSpaceDTO;
import com.pcloud.book.advertising.entity.AdvertisingAdviserPermission;
import com.pcloud.book.advertising.entity.AdvertisingAgentPermission;
import com.pcloud.book.advertising.entity.AdvertisingClickRecord;
import com.pcloud.book.advertising.entity.AdvertisingDistributionBook;
import com.pcloud.book.advertising.entity.AdvertisingExposureRecord;
import com.pcloud.book.advertising.entity.AdvertisingSpace;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageParam;
/**
* Description 广告位业务逻辑层接口
* @author PENG
* @date 2019/2/28
*/
public interface AdvertisingSpaceBiz {
/**
* 创建广告位
* @param advertisingSpace 广告位实体
* @return
* @throws BizException
*/
Long create(AdvertisingSpace advertisingSpace) throws BizException;
/**
* 修改广告位
* @param advertisingSpace 广告位实体
* @return
* @throws BizException
*/
void update(AdvertisingSpace advertisingSpace) throws BizException;
/**
* 停用广告位
* @param advertisingSpace 广告位实体
* @throws BizException
*/
void stop(AdvertisingSpace advertisingSpace) throws BizException;
/**
* 删除广告位
* @param advertisingSpace 广告位实体
* @throws BizException
*/
void delete(AdvertisingSpace advertisingSpace) throws BizException;
/**
* 获取广告位信息
* @param adId 广告位ID
* @return
* @throws BizException
*/
AdvertisingSpaceDTO get(Long adId) throws BizException;
/**
* 投放书刊
* @param book 广告位书刊实体
* @return
* @throws BizException
*/
void distributeBook(AdvertisingDistributionBook book) throws BizException;
/**
* 获取出版社书刊权限
* @param agentId 出版社ID
* @return
* @throws BizException
*/
Boolean getAgentPermission(Long agentId) throws BizException;
/**
* 设置出版社书刊权限
* @param agentPermission 广告位出版权限实体
* @throws BizException
*/
void setAgentPermission(AdvertisingAgentPermission agentPermission) throws BizException;
/**
* 设置编辑书刊权限
* @param adviserPermission 广告位编辑权限实体
* @throws BizException
*/
void setAdviserPermission(AdvertisingAdviserPermission adviserPermission) throws BizException;
/**
* 编辑端获取书刊列表
* @param paramMap 参数Map
* @param pageParam 分页参数
* @param adviserId 编辑ID
* @return
* @throws BizException
*/
PageBean listBook4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException;
/**
* 平台端获取某编辑书刊列表
* @param paramMap 参数Map
* @param pageParam 分页参数
* @param adviserId 编辑ID
* @return
* @throws BizException
*/
PageBean listBook4Platform(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException;
/**
* 获取广告位投放书刊列表
* @param adId 广告位ID
* @param name 书刊名称
* @param pageParam 分页参数
* @return
* @throws BizException
*/
PageBean distributionBookList(Long adId, String name, PageParam pageParam) throws BizException;
/**
* 获取广告位投放作品/应用数据统计
* @param adId 广告位ID
* @param pageParam 分页参数
* @return
* @throws BizException
*/
PageBean distributionAppStatics(Long adId, PageParam pageParam) throws BizException;
/**
* 获取广告位投放时间统计
* @param adId 广告位ID
* @param day 天数
* @return
* @throws BizException
*/
List<Object> distributionDateStatics(Long adId, Integer day) throws BizException;
/**
* 获取广告位列表
* @param name 名称
* @param pageParam 分页参数
* @return
* @throws BizException
*/
PageBean list(String name, PageParam pageParam) throws BizException;
/**
* 客户端获取书刊配置的广告位信息
* @param sceneId 二维码ID
* @param adviserId 编辑ID
* @param channelId 运营ID
* @return
* @throws BizException
*/
AdvertisingSpaceDTO get4Wechat(Long sceneId, Long adviserId, Long channelId) throws BizException;
/**
* 曝光量埋点
* @param advertisingExposureRecord 广告位曝光实体
* @throws BizException
*/
void addExposureTrack(AdvertisingExposureRecord advertisingExposureRecord) throws BizException;
/**
* 点击量埋点
* @param advertisingClickRecord 广告位点击实体
* @throws BizException
*/
void addClickTrack(AdvertisingClickRecord advertisingClickRecord) throws BizException;
}
package com.pcloud.book.advertising.dao;
import java.util.List;
import com.pcloud.book.advertising.entity.AdvertisingAdviserPermission;
import com.pcloud.common.core.dao.BaseDao;
/**
* Description 广告位编辑书刊权限数据访问层接口
* @author PENG
* @date 2019/2/28
*/
public interface AdvertisingAdviserPermissionDao extends BaseDao<AdvertisingAdviserPermission> {
/**
* 批量插入
* @param list 列表
* @return
*/
long batchInsert(List<AdvertisingAdviserPermission> list);
/**
* 根据编辑ID删除
* @param adviserId 编辑ID
* @return
*/
long deleteByAdviserId(Long adviserId);
}
package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.entity.AdvertisingAgentPermission;
import com.pcloud.common.core.dao.BaseDao;
/**
* Description 广告位出版书刊权限数据访问层接口
* @author PENG
* @date 2019/2/28
*/
public interface AdvertisingAgentPermissionDao extends BaseDao<AdvertisingAgentPermission> {
/**
* 获取出版社权限
* @param agentId 出版社ID
* @return
*/
AdvertisingAgentPermission getByAgentId(Long agentId);
}
package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.entity.AdvertisingClickRecord;
import com.pcloud.common.core.dao.BaseDao;
/**
* Description 广告位点击记录数据访问层接口
* @author PENG
* @date 2019/2/28
*/
public interface AdvertisingClickRecordDao extends BaseDao<AdvertisingClickRecord> {
}
package com.pcloud.book.advertising.dao;
import java.util.List;
import com.pcloud.book.advertising.entity.AdvertisingDistributionBook;
import com.pcloud.common.core.dao.BaseDao;
/**
* Description 广告位投放书籍数据访问层接口
* @author PENG
* @date 2019/2/28
*/
public interface AdvertisingDistributionBookDao extends BaseDao<AdvertisingDistributionBook> {
/**
* 批量新增
* @param list 列表
* @return
*/
long batchInsert(List<AdvertisingDistributionBook> list);
/**
* 校验书刊是否已投放
* @param list 列表
* @return
*/
List<Long> checkBookIdExist(List<Long> list);
/**
* 获取广告位投放的书刊列表
* @param adId 广告位ID
* @return
*/
List<AdvertisingDistributionBook> getByAdId(Long adId);
}
package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.entity.AdvertisingExposureRecord;
import com.pcloud.common.core.dao.BaseDao;
/**
* Description 广告位曝光记录数据访问层接口
* @author PENG
* @date 2019/2/28
*/
public interface AdvertisingExposureRecordDao extends BaseDao<AdvertisingExposureRecord> {
}
package com.pcloud.book.advertising.dao;
import com.pcloud.book.advertising.dto.AdvertisingSpaceDTO;
import com.pcloud.book.advertising.entity.AdvertisingSpace;
import com.pcloud.common.core.dao.BaseDao;
/**
* Description 广告位数据访问层接口
* @author PENG
* @date 2019/2/28
*/
public interface AdvertisingSpaceDao extends BaseDao<AdvertisingSpace> {
/**
* 获取广告位信息
* @param adId 广告位ID
* @return
*/
AdvertisingSpaceDTO getDTOById(Long adId);
}
package com.pcloud.book.advertising.dao.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.pcloud.book.advertising.dao.AdvertisingAdviserPermissionDao;
import com.pcloud.book.advertising.entity.AdvertisingAdviserPermission;
import com.pcloud.common.core.dao.BaseDaoImpl;
/**
* Description 广告位编辑书刊权限数据访问层接口实现类
* @author PENG
* @date 2019/2/28
*/
@Repository("advertisingAdviserPermissionDao")
public class AdvertisingAdviserPermissionDaoImpl extends BaseDaoImpl<AdvertisingAdviserPermission> implements AdvertisingAdviserPermissionDao {
/**
* 批量插入
*/
@Override
public long batchInsert(List<AdvertisingAdviserPermission> list) {
return super.getSqlSession().insert(getStatement("batchInsert"), list);
}
/**
* 根据编辑ID删除
*/
@Override
public long deleteByAdviserId(Long adviserId) {
return super.getSqlSession().delete(getStatement("deleteByAdviserId"), adviserId);
}
}
package com.pcloud.book.advertising.dao.impl;
import org.springframework.stereotype.Repository;
import com.pcloud.book.advertising.dao.AdvertisingAgentPermissionDao;
import com.pcloud.book.advertising.entity.AdvertisingAgentPermission;
import com.pcloud.common.core.dao.BaseDaoImpl;
/**
* Description 广告位出版书刊权限数据访问层接口实现类
* @author PENG
* @date 2019/2/28
*/
@Repository("advertisingAgentPermissionDao")
public class AdvertisingAgentPermissionDaoImpl extends BaseDaoImpl<AdvertisingAgentPermission> implements AdvertisingAgentPermissionDao {
/**
* 获取出版社权限
*/
@Override
public AdvertisingAgentPermission getByAgentId(Long agentId) {
return super.getSqlSession().selectOne(getStatement("getByAgentId"), agentId);
}
}
package com.pcloud.book.advertising.dao.impl;
import org.springframework.stereotype.Repository;
import com.pcloud.book.advertising.dao.AdvertisingClickRecordDao;
import com.pcloud.book.advertising.entity.AdvertisingClickRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
/**
* Description 广告位点击记录数据访问层接口实现类
* @author PENG
* @date 2019/2/28
*/
@Repository("advertisingClickRecordDao")
public class AdvertisingClickRecordDaoImpl extends BaseDaoImpl<AdvertisingClickRecord> implements AdvertisingClickRecordDao {
}
package com.pcloud.book.advertising.dao.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.pcloud.book.advertising.dao.AdvertisingDistributionBookDao;
import com.pcloud.book.advertising.entity.AdvertisingDistributionBook;
import com.pcloud.common.core.dao.BaseDaoImpl;
/**
* Description 广告位投放书籍数据访问层接口实现类
* @author PENG
* @date 2019/2/28
*/
@Repository("advertisingDistributionBookDao")
public class AdvertisingDistributionBookDaoImpl extends BaseDaoImpl<AdvertisingDistributionBook> implements AdvertisingDistributionBookDao {
/**
* 批量新增
*/
@Override
public long batchInsert(List<AdvertisingDistributionBook> list) {
return super.getSqlSession().insert(getStatement("batchInsert"), list);
}
/**
* 校验书刊是否已投放
*/
@Override
public List<Long> checkBookIdExist(List<Long> list) {
return super.getSqlSession().selectList(getStatement("checkBookIdExist"), list);
}
/**
* 获取广告位投放的书刊列表
*/
@Override
public List<AdvertisingDistributionBook> getByAdId(Long adId) {
return super.getSqlSession().selectList(getStatement("getByAdId"), adId);
}
}
package com.pcloud.book.advertising.dao.impl;
import org.springframework.stereotype.Repository;
import com.pcloud.book.advertising.dao.AdvertisingExposureRecordDao;
import com.pcloud.book.advertising.entity.AdvertisingExposureRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
/**
* Description 广告位曝光记录数据访问层接口实现类
* @author PENG
* @date 2019/2/28
*/
@Repository("advertisingExposureRecordDao")
public class AdvertisingExposureRecordDaoImpl extends BaseDaoImpl<AdvertisingExposureRecord> implements AdvertisingExposureRecordDao {
}
package com.pcloud.book.advertising.dao.impl;
import org.springframework.stereotype.Repository;
import com.pcloud.book.advertising.dao.AdvertisingSpaceDao;
import com.pcloud.book.advertising.dto.AdvertisingSpaceDTO;
import com.pcloud.book.advertising.entity.AdvertisingSpace;
import com.pcloud.common.core.dao.BaseDaoImpl;
/**
* Description 广告位数据访问层接口实现类
* @author PENG
* @date 2019/2/28
*/
@Repository("advertisingSpaceDao")
public class AdvertisingSpaceDaoImpl extends BaseDaoImpl<AdvertisingSpace> implements AdvertisingSpaceDao {
@Override
public AdvertisingSpaceDTO getDTOById(Long adId) {
return super.getSqlSession().selectOne(getStatement("getDTOById"), adId);
}
}
package com.pcloud.book.advertising.dto;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
/**
* @author PENG
*/
public class AdvertisingSpaceDTO extends BaseDto {
private static final long serialVersionUID = -1774181367397964304L;
/**
* advertising_space.id (唯一标识)
*/
private Long id;
/**
* advertising_space.ad_name (广告位名称)
*/
private String adName;
/**
* advertising_space.ad_position (广告位置)
*/
private String adPosition;
/**
* advertising_space.ad_source (广告来源)
*/
private String adSource;
/**
* advertising_space.ad_link (广告位链接)
*/
private String adLink;
/**
* advertising_space.source_id (对方id)
*/
private String sourceId;
/**
* advertising_space.ad_slogan (广告位文案)
*/
private String adSlogan;
/**
* advertising_space.ad_pic (广告位图片)
*/
private String adPic;
/**
* advertising_space.distribution_type (投放方式(0:指定书刊;1:不指定书刊))
*/
private Integer distributionType;
/**
* advertising_space.exposure_num (曝光量)
*/
private Long exposureNum;
/**
* advertising_space.click_num (点击量)
*/
private Long clickNum;
/**
* advertising_space.create_time (创建时间)
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
/**
* advertising_space.update_time (修改时间)
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
/**
* advertising_space.is_open (是否打开)
*/
private Boolean isOpen;
/**
* 投放书刊数量
*/
private Integer bookNum;
/**
* 投放书刊名称
*/
private String bookName;
/**
* 书刊ID
*/
private Long bookId;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getAdName() {
return adName;
}
public void setAdName(String adName) {
this.adName = adName;
}
public String getAdPosition() {
return adPosition;
}
public void setAdPosition(String adPosition) {
this.adPosition = adPosition;
}
public String getAdSource() {
return adSource;
}
public void setAdSource(String adSource) {
this.adSource = adSource;
}
public String getAdLink() {
return adLink;
}
public void setAdLink(String adLink) {
this.adLink = adLink;
}
public String getSourceId() {
return sourceId;
}
public void setSourceId(String sourceId) {
this.sourceId = sourceId;
}
public String getAdSlogan() {
return adSlogan;
}
public void setAdSlogan(String adSlogan) {
this.adSlogan = adSlogan;
}
public String getAdPic() {
return adPic;
}
public void setAdPic(String adPic) {
this.adPic = adPic;
}
public Integer getDistributionType() {
return distributionType;
}
public void setDistributionType(Integer distributionType) {
this.distributionType = distributionType;
}
public Long getExposureNum() {
return exposureNum;
}
public void setExposureNum(Long exposureNum) {
this.exposureNum = exposureNum;
}
public Long getClickNum() {
return clickNum;
}
public void setClickNum(Long clickNum) {
this.clickNum = clickNum;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Boolean getIsOpen() {
return isOpen;
}
public void setIsOpen(Boolean isOpen) {
this.isOpen = isOpen;
}
public Integer getBookNum() {
return bookNum;
}
public void setBookNum(Integer bookNum) {
this.bookNum = bookNum;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
@Override
public String toString() {
return "AdvertisingSpaceDTO{" +
"id=" + id +
", adName='" + adName + '\'' +
", adPosition='" + adPosition + '\'' +
", adSource='" + adSource + '\'' +
", adLink='" + adLink + '\'' +
", sourceId='" + sourceId + '\'' +
", adSlogan='" + adSlogan + '\'' +
", adPic='" + adPic + '\'' +
", distributionType=" + distributionType +
", exposureNum=" + exposureNum +
", clickNum=" + clickNum +
", createTime=" + createTime +
", updateTime=" + updateTime +
", isOpen=" + isOpen +
", bookNum=" + bookNum +
", bookName='" + bookName + '\'' +
", bookId=" + bookId +
"} " + super.toString();
}
}
\ No newline at end of file
package com.pcloud.book.advertising.dto;
import java.io.Serializable;
/**
* @description 日期数量DTO
* @author PENG
* @date 2017年6月11日 下午2:08:30
* @version 1.0
*/
public class DateCountDTO implements Serializable {
private static final long serialVersionUID = 4234798666223706295L;
/**
* 日期
*/
private String date;
/**
* 曝光量
*/
private Long exposureNum;
/**
* 点击量
*/
private Long clickNum;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public Long getExposureNum() {
return exposureNum;
}
public void setExposureNum(Long exposureNum) {
this.exposureNum = exposureNum;
}
public Long getClickNum() {
return clickNum;
}
public void setClickNum(Long clickNum) {
this.clickNum = clickNum;
}
}
package com.pcloud.book.advertising.dto;
import com.pcloud.common.dto.BaseDto;
/**
* Description 投放作品/应用DTO
* @author PENG
* @date 2019/3/6
*/
public class DistributionAppDTO extends BaseDto {
private static final long serialVersionUID = 5416187350592226379L;
/**
* 来源
*/
private String fromType;
/**
* 来源ID
*/
private Long fromId;
/**
* 名称
*/
private String title;
/**
* 场景编码
*/
private String sceneCode;
/**
* 场景名称
*/
private String sceneName;
/**
* 创建人
*/
private Long createUser;
/**
* 创建人名称
*/
private String createUserName;
/**
* 创建角色
*/
private String createRole;
/**
* 曝光量
*/
private Long exposureNum;
/**
* 点击量
*/
private Long clickNum;
public String getFromType() {
return fromType;
}
public void setFromType(String fromType) {
this.fromType = fromType;
}
public Long getFromId() {
return fromId;
}
public void setFromId(Long fromId) {
this.fromId = fromId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSceneCode() {
return sceneCode;
}
public void setSceneCode(String sceneCode) {
this.sceneCode = sceneCode;
}
public String getSceneName() {
return sceneName;
}
public void setSceneName(String sceneName) {
this.sceneName = sceneName;
}
public Long getCreateUser() {
return createUser;
}
public void setCreateUser(Long createUser) {
this.createUser = createUser;
}
public String getCreateUserName() {
return createUserName;
}
public void setCreateUserName(String createUserName) {
this.createUserName = createUserName;
}
public String getCreateRole() {
return createRole;
}
public void setCreateRole(String createRole) {
this.createRole = createRole;
}
public Long getExposureNum() {
return exposureNum;
}
public void setExposureNum(Long exposureNum) {
this.exposureNum = exposureNum;
}
public Long getClickNum() {
return clickNum;
}
public void setClickNum(Long clickNum) {
this.clickNum = clickNum;
}
@Override
public String toString() {
return "DistributionAppDTO{" +
"fromType='" + fromType + '\'' +
", fromId=" + fromId +
", title='" + title + '\'' +
", sceneCode='" + sceneCode + '\'' +
", sceneName='" + sceneName + '\'' +
", createUser=" + createUser +
", createUserName='" + createUserName + '\'' +
", createRole='" + createRole + '\'' +
", exposureNum=" + exposureNum +
", clickNum=" + clickNum +
"} " + super.toString();
}
}
package com.pcloud.book.advertising.entity;
import java.util.Date;
import com.pcloud.common.entity.BaseEntity;
/**
* @author PENG
*/
public class AdvertisingAdviserPermission extends BaseEntity {
private static final long serialVersionUID = 3864910610568657776L;
/**
* advertising_adviser_permission.id (唯一标识)
*/
private Long id;
/**
* advertising_adviser_permission.adviser_id (编辑ID)
*/
private Long adviserId;
/**
* advertising_adviser_permission.book_id (书刊ID)
*/
private Long bookId;
/**
* 运营ID
*/
private Long channelId;
/**
* advertising_adviser_permission.is_open (是否打开)
*/
private Boolean isOpen;
/**
* advertising_adviser_permission.create_time (创建时间)
*/
private Date createTime;
/**
* advertising_adviser_permission.update_time (修改时间)
*/
private Date updateTime;
/**
* 是否是批量操作
*/
private Boolean isBatchOperation;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Boolean getIsOpen() {
return isOpen;
}
public void setIsOpen(Boolean isOpen) {
this.isOpen = isOpen;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public Date getUpdateTime() {
return updateTime;
}
@Override
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Boolean getIsBatchOperation() {
return isBatchOperation;
}
public void setIsBatchOperation(Boolean isBatchOperation) {
this.isBatchOperation = isBatchOperation;
}
@Override
public String toString() {
return "AdvertisingAdviserPermission{" +
"id=" + id +
", adviserId=" + adviserId +
", bookId=" + bookId +
", channelId=" + channelId +
", isOpen=" + isOpen +
", isBatchOperation=" + isBatchOperation +
", createTime=" + createTime +
", updateTime=" + updateTime +
"} " + super.toString();
}
}
\ No newline at end of file
package com.pcloud.book.advertising.entity;
import java.util.Date;
import com.pcloud.common.entity.BaseEntity;
/**
* @author PENG
*/
public class AdvertisingAgentPermission extends BaseEntity {
private static final long serialVersionUID = 8108241715183544708L;
/**
* advertising_agent_permission.id (唯一标识)
*/
private Long id;
/**
* advertising_agent_permission.agent_id (出版社ID)
*/
private Long agentId;
/**
* advertising_agent_permission.is_open (是否打开)
*/
private Boolean isOpen;
/**
* advertising_agent_permission.create_time (创建时间)
*/
private Date createTime;
/**
* advertising_agent_permission.update_time (修改时间)
*/
private Date updateTime;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getAgentId() {
return agentId;
}
public void setAgentId(Long agentId) {
this.agentId = agentId;
}
public Boolean getIsOpen() {
return isOpen;
}
public void setIsOpen(Boolean isOpen) {
this.isOpen = isOpen;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public Date getUpdateTime() {
return updateTime;
}
@Override
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
@Override
public String toString() {
return "AdvertisingAgentPermission{" +
"id=" + id +
", agentId=" + agentId +
", isOpen=" + isOpen +
", createTime=" + createTime +
", updateTime=" + updateTime +
"} " + super.toString();
}
}
\ No newline at end of file
package com.pcloud.book.advertising.entity;
import java.util.Date;
import com.pcloud.common.entity.BaseEntity;
/**
* @author PENG
*/
public class AdvertisingClickRecord extends BaseEntity {
private static final long serialVersionUID = 1236769572623516883L;
/**
* advertising_click_record.id (唯一标识)
*/
private Long id;
/**
* advertising_click_record.ad_id (广告位ID)
*/
private Long adId;
/**
* advertising_click_record.book_id (书刊ID)
*/
private Long bookId;
/**
* 二维码ID
*/
private Long sceneId;
/**
* advertising_click_record.adviser_id (编辑ID)
*/
private Long adviserId;
/**
* advertising_click_record.agent_id (出版社ID)
*/
private Long agentId;
/**
* advertising_click_record.channel_id (运营ID)
*/
private Long channelId;
/**
* advertising_click_record.official_account_id (公众号ID)
*/
private Long officialAccountId;
/**
* advertising_click_record.from_type (来源类型)
*/
private String fromType;
/**
* advertising_click_record.from_id (来源ID)
*/
private Long fromId;
/**
* advertising_click_record.wechat_user_id (读者ID)
*/
private Long wechatUserId;
/**
* advertising_click_record.create_time (创建时间)
*/
private Date createTime;
/**
* advertising_click_record.create_day (创建日期)
*/
private Date createDay;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getAdId() {
return adId;
}
public void setAdId(Long adId) {
this.adId = adId;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getAgentId() {
return agentId;
}
public void setAgentId(Long agentId) {
this.agentId = agentId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getOfficialAccountId() {
return officialAccountId;
}
public void setOfficialAccountId(Long officialAccountId) {
this.officialAccountId = officialAccountId;
}
public String getFromType() {
return fromType;
}
public void setFromType(String fromType) {
this.fromType = fromType;
}
public Long getFromId() {
return fromId;
}
public void setFromId(Long fromId) {
this.fromId = fromId;
}
public Long getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getCreateDay() {
return createDay;
}
public void setCreateDay(Date createDay) {
this.createDay = createDay;
}
public Long getSceneId() {
return sceneId;
}
public void setSceneId(Long sceneId) {
this.sceneId = sceneId;
}
@Override
public String toString() {
return "AdvertisingClickRecord{" +
"id=" + id +
", adId=" + adId +
", bookId=" + bookId +
", sceneId=" + sceneId +
", adviserId=" + adviserId +
", agentId=" + agentId +
", channelId=" + channelId +
", officialAccountId=" + officialAccountId +
", fromType='" + fromType + '\'' +
", fromId=" + fromId +
", wechatUserId=" + wechatUserId +
", createTime=" + createTime +
", createDay=" + createDay +
"} " + super.toString();
}
}
\ No newline at end of file
package com.pcloud.book.advertising.entity;
import java.util.Date;
import java.util.List;
import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.common.entity.BaseEntity;
/**
* @author PENG
*/
public class AdvertisingDistributionBook extends BaseEntity {
private static final long serialVersionUID = -7658299195342462203L;
/**
* advertising_distribution_book.id (唯一标识)
*/
private Long id;
/**
* advertising_distribution_book.ad_id (广告位ID)
*/
private Long adId;
/**
* advertising_distribution_book.book_id (书刊ID)
*/
private Long bookId;
/**
* advertising_distribution_book.adviser_id (编辑ID)
*/
private Long adviserId;
/**
* advertising_distribution_book.agent_id (出版ID)
*/
private Long agentId;
/**
* advertising_distribution_book.channel_id (运营ID)
*/
private Long channelId;
/**
* advertising_distribution_book.distribution_time (投放时间)
*/
private Date distributionTime;
/**
* 书刊ID列表
*/
private List<BookAdviser> books;
/**
* 投放方式(0:指定书刊;1:不指定书刊)
*/
private Integer distributionType;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getAdId() {
return adId;
}
public void setAdId(Long adId) {
this.adId = adId;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getAgentId() {
return agentId;
}
public void setAgentId(Long agentId) {
this.agentId = agentId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Date getDistributionTime() {
return distributionTime;
}
public void setDistributionTime(Date distributionTime) {
this.distributionTime = distributionTime;
}
public List<BookAdviser> getBooks() {
return books;
}
public void setBooks(List<BookAdviser> books) {
this.books = books;
}
public Integer getDistributionType() {
return distributionType;
}
public void setDistributionType(Integer distributionType) {
this.distributionType = distributionType;
}
@Override
public String toString() {
return "AdvertisingDistributionBook{" +
"id=" + id +
", adId=" + adId +
", bookId=" + bookId +
", adviserId=" + adviserId +
", agentId=" + agentId +
", channelId=" + channelId +
", distributionTime=" + distributionTime +
", books=" + books +
", distributionType=" + distributionType +
"} " + super.toString();
}
}
\ No newline at end of file
package com.pcloud.book.advertising.entity;
import java.util.Date;
import com.pcloud.common.entity.BaseEntity;
/**
* @author PENG
*/
public class AdvertisingExposureRecord extends BaseEntity {
private static final long serialVersionUID = -2164449923488376086L;
/**
* advertising_exposure_record.id (唯一标识)
*/
private Long id;
/**
* advertising_exposure_record.ad_id (广告位ID)
*/
private Long adId;
/**
* advertising_exposure_record.book_id (书刊ID)
*/
private Long bookId;
/**
* 二维码ID
*/
private Long sceneId;
/**
* advertising_exposure_record.adviser_id (编辑ID)
*/
private Long adviserId;
/**
* advertising_exposure_record.agent_id (出版社ID)
*/
private Long agentId;
/**
* advertising_exposure_record.channel_id (运营ID)
*/
private Long channelId;
/**
* advertising_exposure_record.official_account_id (公众号ID)
*/
private Long officialAccountId;
/**
* advertising_exposure_record.from_type (来源类型)
*/
private String fromType;
/**
* advertising_exposure_record.from_id (来源ID)
*/
private Long fromId;
/**
* advertising_exposure_record.wechat_user_id (读者ID)
*/
private Long wechatUserId;
/**
* advertising_exposure_record.create_time (创建时间)
*/
private Date createTime;
/**
* advertising_exposure_record.create_day (创建日期)
*/
private Date createDay;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getAdId() {
return adId;
}
public void setAdId(Long adId) {
this.adId = adId;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getAgentId() {
return agentId;
}
public void setAgentId(Long agentId) {
this.agentId = agentId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getOfficialAccountId() {
return officialAccountId;
}
public void setOfficialAccountId(Long officialAccountId) {
this.officialAccountId = officialAccountId;
}
public String getFromType() {
return fromType;
}
public void setFromType(String fromType) {
this.fromType = fromType;
}
public Long getFromId() {
return fromId;
}
public void setFromId(Long fromId) {
this.fromId = fromId;
}
public Long getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getCreateDay() {
return createDay;
}
public void setCreateDay(Date createDay) {
this.createDay = createDay;
}
public Long getSceneId() {
return sceneId;
}
public void setSceneId(Long sceneId) {
this.sceneId = sceneId;
}
@Override
public String toString() {
return "AdvertisingExposureRecord{" +
"id=" + id +
", adId=" + adId +
", bookId=" + bookId +
", sceneId=" + sceneId +
", adviserId=" + adviserId +
", agentId=" + agentId +
", channelId=" + channelId +
", officialAccountId=" + officialAccountId +
", fromType='" + fromType + '\'' +
", fromId=" + fromId +
", wechatUserId=" + wechatUserId +
", createTime=" + createTime +
", createDay=" + createDay +
"} " + super.toString();
}
}
\ No newline at end of file
package com.pcloud.book.advertising.entity;
import java.util.Date;
import com.pcloud.common.entity.BaseEntity;
/**
* @author PENG
*/
public class AdvertisingSpace extends BaseEntity {
private static final long serialVersionUID = -2436861846992974754L;
/**
* advertising_space.id (唯一标识)
*/
private Long id;
/**
* advertising_space.ad_name (广告位名称)
*/
private String adName;
/**
* advertising_space.ad_position (广告位置)
*/
private String adPosition;
/**
* advertising_space.ad_source (广告来源)
*/
private String adSource;
/**
* advertising_space.ad_link (广告位链接)
*/
private String adLink;
/**
* advertising_space.source_id (对方id)
*/
private String sourceId;
/**
* advertising_space.ad_slogan (广告位文案)
*/
private String adSlogan;
/**
* advertising_space.ad_pic (广告位图片)
*/
private String adPic;
/**
* advertising_space.distribution_type (投放方式(0:指定书刊;1:不指定书刊))
*/
private Integer distributionType;
/**
* advertising_space.create_time (创建时间)
*/
private Date createTime;
/**
* advertising_space.update_time (修改时间)
*/
private Date updateTime;
/**
* advertising_space.is_open (是否打开)
*/
private Boolean isOpen;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public String getAdName() {
return adName;
}
public void setAdName(String adName) {
this.adName = adName;
}
public String getAdPosition() {
return adPosition;
}
public void setAdPosition(String adPosition) {
this.adPosition = adPosition;
}
public String getAdSource() {
return adSource;
}
public void setAdSource(String adSource) {
this.adSource = adSource;
}
public String getAdLink() {
return adLink;
}
public void setAdLink(String adLink) {
this.adLink = adLink;
}
public String getSourceId() {
return sourceId;
}
public void setSourceId(String sourceId) {
this.sourceId = sourceId;
}
public String getAdSlogan() {
return adSlogan;
}
public void setAdSlogan(String adSlogan) {
this.adSlogan = adSlogan;
}
public String getAdPic() {
return adPic;
}
public void setAdPic(String adPic) {
this.adPic = adPic;
}
public Integer getDistributionType() {
return distributionType;
}
public void setDistributionType(Integer distributionType) {
this.distributionType = distributionType;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public Date getUpdateTime() {
return updateTime;
}
@Override
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Boolean getIsOpen() {
return isOpen;
}
public void setIsOpen(Boolean isOpen) {
this.isOpen = isOpen;
}
@Override
public String toString() {
return "AdvertisingSpace{" +
"id=" + id +
", adName='" + adName + '\'' +
", adPosition='" + adPosition + '\'' +
", adSource='" + adSource + '\'' +
", adLink='" + adLink + '\'' +
", sourceId='" + sourceId + '\'' +
", adSlogan='" + adSlogan + '\'' +
", adPic='" + adPic + '\'' +
", distributionType=" + distributionType +
", createTime=" + createTime +
", updateTime=" + updateTime +
", isOpen=" + isOpen +
"} " + super.toString();
}
}
\ No newline at end of file
package com.pcloud.book.advertising.enums;
/**
* Description 广告位置枚举
* @author PENG
* @date 2019/3/1
*/
public enum AdPositionEnum {
/**
* 应用或作品详情浮标
*/
DETAIL_PAGE("DETAIL_PAGE", "应用或作品详情浮标", true),
/**
* 扫码消息
*/
SCENE_MESSAGE("SCENE_MESSAGE", "扫码消息", false);
public final String positionCode;
public final String positionName;
public final Boolean isOpen;
AdPositionEnum(String positionCode, String positionName, Boolean isOpen) {
this.positionCode = positionCode;
this.positionName = positionName;
this.isOpen = isOpen;
}
/**
* 校验位置是否存在
*/
public static Boolean checkCodeExist(String positionCode) {
AdPositionEnum[] var1 = values();
int var2 = var1.length;
for (int var3 = 0; var3 < var2; ++var3) {
AdPositionEnum adPositionEnum = var1[var3];
if (adPositionEnum.positionCode.equals(positionCode) && adPositionEnum.isOpen) {
return true;
}
}
return false;
}
public static final String[] AD_POSITION_GATHER = {DETAIL_PAGE.positionCode, SCENE_MESSAGE.positionCode};
}
package com.pcloud.book.advertising.enums;
/**
* Description 广告来源枚举
* @author PENG
* @date 2019/3/1
*/
public enum AdSourceEnum {
/**
* 推啊
*/
TUIA("TUIA"),
/**
* 招行
*/
CMB("CMB");
public String code;
AdSourceEnum(String code) {
this.code = code;
}
public static final String[] AD_SOURCE_GATHER = {TUIA.code, CMB.code};
}
package com.pcloud.book.advertising.enums;
/**
* Description 广告投放方式枚举
* @author PENG
* @date 2019/3/1
*/
public enum DistributionTypeEnum {
/**
* 指定书刊
*/
SIGN_BOOK(0),
/**
* 不指定书刊
*/
NO_SIGN_BOOK(1);
public Integer value;
DistributionTypeEnum(Integer value) {
this.value = value;
}
public static final Integer[] DISTRIBUTION_TYPE_GATHER = {SIGN_BOOK.value, NO_SIGN_BOOK.value};
}
...@@ -3,15 +3,14 @@ ...@@ -3,15 +3,14 @@
*/ */
package com.pcloud.book.book.dao; package com.pcloud.book.book.dao;
import java.util.List;
import java.util.Map;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO; import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO; import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
/** /**
* @描述:书籍数据访问层接口 * @描述:书籍数据访问层接口
* @作者:songx * @作者:songx
...@@ -286,4 +285,10 @@ public interface BookDao extends BaseDao<Book> { ...@@ -286,4 +285,10 @@ public interface BookDao extends BaseDao<Book> {
*/ */
List<BookInfo4AnlysicsDTO> getBookAnalysis(Map<String,Object> paramMap); List<BookInfo4AnlysicsDTO> getBookAnalysis(Map<String,Object> paramMap);
/**
* 获取编辑书刊ID和运营ID列表
* @param paramMap
* @return
*/
List<BookDto> listBookIdAndChannelId4Adviser(Map<String, Object> paramMap);
} }
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
*/ */
package com.pcloud.book.book.dao.impl; package com.pcloud.book.book.dao.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.pcloud.book.book.dao.BookDao; import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
...@@ -10,11 +14,6 @@ import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO; ...@@ -10,11 +14,6 @@ import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO; import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
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;
/** /**
* @描述:书籍数据访问层实现类 * @描述:书籍数据访问层实现类
...@@ -29,7 +28,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -29,7 +28,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
* 批量删除 * 批量删除
*/ */
public Integer deleteByIds(List<Long> bookIds, Long deleteUserId) { public Integer deleteByIds(List<Long> bookIds, Long deleteUserId) {
Map<String , Object> paramMap = new HashMap<String, Object>(); Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("bookIds", bookIds); paramMap.put("bookIds", bookIds);
paramMap.put("lastModifiedUser", deleteUserId); paramMap.put("lastModifiedUser", deleteUserId);
return super.getSqlSession().update(super.getStatement("deleteByIds"), paramMap); return super.getSqlSession().update(super.getStatement("deleteByIds"), paramMap);
...@@ -54,13 +53,13 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -54,13 +53,13 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
return super.getSqlSession().selectOne(super.getStatement("getByIsbnAndSnumContainsDelete"), paramMap); return super.getSqlSession().selectOne(super.getStatement("getByIsbnAndSnumContainsDelete"), paramMap);
} }
// /** // /**
// * 根据ISBN获取图书信息 // * 根据ISBN获取图书信息
// */ // */
// @Override // @Override
// public BookDto getByIsbn(String isbn) { // public BookDto getByIsbn(String isbn) {
// return super.getSqlSession().selectOne(super.getStatement("selectByIsbn"), isbn); // return super.getSqlSession().selectOne(super.getStatement("selectByIsbn"), isbn);
// } // }
/** /**
...@@ -89,14 +88,14 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -89,14 +88,14 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
@Override @Override
public List<BookDto> listDetailByIds(Map<String, Object> paramMap) { public List<BookDto> listDetailByIds(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("listDetailByIds"),paramMap); return super.getSqlSession().selectList(super.getStatement("listDetailByIds"), paramMap);
} }
/** /**
* 根据名称获取ID * 根据名称获取ID
*/ */
@Override @Override
public List<Long> getIdsByName(String bookName){ public List<Long> getIdsByName(String bookName) {
return super.getSqlSession().selectList(super.getStatement("getIdsByName"), bookName); return super.getSqlSession().selectList(super.getStatement("getIdsByName"), bookName);
} }
...@@ -104,7 +103,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -104,7 +103,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
* 根据名称获取ID * 根据名称获取ID
*/ */
@Override @Override
public List<Long> getIdsByNameMap(Map<String, Object> paramMap){ public List<Long> getIdsByNameMap(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("getIdsByNameMap"), paramMap); return super.getSqlSession().selectList(super.getStatement("getIdsByNameMap"), paramMap);
} }
...@@ -162,7 +161,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -162,7 +161,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
*/ */
@Override @Override
public int getBookCount4Platform(Map<String, Object> paramMap) { public int getBookCount4Platform(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("getBookCount4Platform"),paramMap); return super.getSqlSession().selectOne(super.getStatement("getBookCount4Platform"), paramMap);
} }
/** /**
...@@ -170,7 +169,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -170,7 +169,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
*/ */
@Override @Override
public void updateCoverImg(Book book) { public void updateCoverImg(Book book) {
super.getSqlSession().update(this.getStatement("updateCoverImg"),book); super.getSqlSession().update(this.getStatement("updateCoverImg"), book);
} }
/** /**
...@@ -178,7 +177,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -178,7 +177,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
*/ */
@Override @Override
public List<BookDto> listBookByAppId(Map<String, Object> paramMap) { public List<BookDto> listBookByAppId(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(this.getStatement("listBookByAppId"),paramMap); return super.getSqlSession().selectList(this.getStatement("listBookByAppId"), paramMap);
} }
/** /**
...@@ -186,7 +185,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -186,7 +185,7 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
*/ */
@Override @Override
public Integer deleteBook(Long bookId, Long deleteUserId) { public Integer deleteBook(Long bookId, Long deleteUserId) {
Map<String , Long> paramMap = new HashMap<String, Long>(); Map<String, Long> paramMap = new HashMap<String, Long>();
paramMap.put("bookId", bookId); paramMap.put("bookId", bookId);
paramMap.put("lastModifiedUser", deleteUserId); paramMap.put("lastModifiedUser", deleteUserId);
return super.getSqlSession().update(this.getStatement("deleteBook"), paramMap); return super.getSqlSession().update(this.getStatement("deleteBook"), paramMap);
...@@ -238,7 +237,6 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -238,7 +237,6 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
/** /**
* 根据图书isbn和序号获取图书基本信息(不包含删除图书) * 根据图书isbn和序号获取图书基本信息(不包含删除图书)
*
* @param isbn * @param isbn
* @param serialNumber * @param serialNumber
* @return * @return
...@@ -252,26 +250,31 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -252,26 +250,31 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
@Override @Override
public List<BookDto> getList4Adviser(Map<String, Object> param) { public List<BookDto> getList4Adviser(Map<String, Object> param) {
return super.getSqlSession().selectList(this.getStatement("getListPage4Adviser"),param); return super.getSqlSession().selectList(this.getStatement("getListPage4Adviser"), param);
} }
@Override @Override
public void updateTimeById(Map<String, Object> param) { public void updateTimeById(Map<String, Object> param) {
super.getSqlSession().update(super.getStatement("updateTimeById"),param); super.getSqlSession().update(super.getStatement("updateTimeById"), param);
} }
@Override @Override
public void updateTimeByIds(Map<String, Object> param) { public void updateTimeByIds(Map<String, Object> param) {
super.getSqlSession().update(super.getStatement("updateTimeByIds"),param); super.getSqlSession().update(super.getStatement("updateTimeByIds"), param);
} }
@Override @Override
public List<BookInfoAnalysicsDTO> getBookInfoBy(Map<String, Object> param) { public List<BookInfoAnalysicsDTO> getBookInfoBy(Map<String, Object> param) {
return super.getSqlSession().selectList(this.getStatement("getBookInfoBy"),param); return super.getSqlSession().selectList(this.getStatement("getBookInfoBy"), param);
} }
@Override @Override
public List<BookInfo4AnlysicsDTO> getBookAnalysis(Map<String, Object> paramMap) { public List<BookInfo4AnlysicsDTO> getBookAnalysis(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(this.getStatement("getBookAnalysis"),paramMap); return super.getSqlSession().selectList(this.getStatement("getBookAnalysis"), paramMap);
}
@Override
public List<BookDto> listBookIdAndChannelId4Adviser(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(getStatement("listBookIdAndChannelId4Adviser"), paramMap);
} }
} }
...@@ -3,17 +3,15 @@ ...@@ -3,17 +3,15 @@
*/ */
package com.pcloud.book.book.tools; package com.pcloud.book.book.tools;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.vo.NoAuthBookVO; import com.pcloud.book.book.vo.NoAuthBookVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @描述: * @描述:
* @作者:songx * @作者:songx
...@@ -82,6 +80,26 @@ public class BookTools { ...@@ -82,6 +80,26 @@ public class BookTools {
} }
/** /**
* 批量填充运营公众号信息
*/
public static void setChannelOfficialAccountsNames(List<Object> objects, Map<Long, AccountSettingDto> officialAccountNameMap) throws BizException {
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long channelId = bookDto.getChannelId();
if (officialAccountNameMap.containsKey(channelId)) {
AccountSettingDto accountSettingDto = officialAccountNameMap.get(channelId);
if (null != accountSettingDto) {
bookDto.setOfficialAccountsName(accountSettingDto.getBaseAppName());
} else {
bookDto.setOfficialAccountsName("");
}
} else {
bookDto.setOfficialAccountsName("");
}
}
}
/**
* 组装编辑标识(去重) * 组装编辑标识(去重)
* @param objects * @param objects
* @return * @return
...@@ -99,6 +117,23 @@ public class BookTools { ...@@ -99,6 +117,23 @@ public class BookTools {
} }
/** /**
* 组装出版标识(去重)
* @param objects
* @return
*/
public static List<Long> listAgentIds(List<Object> objects) {
Map<Long, Long> agentIdMap = new HashMap<>();
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long agentId = bookDto.getAgentId();
if (!agentIdMap.containsKey(agentId)) {
agentIdMap.put(agentId, agentId);
}
}
return Lists.newArrayList(agentIdMap.values());
}
/**
* 批量填充编辑名称 * 批量填充编辑名称
* @param objects * @param objects
* @param adviserNameMap * @param adviserNameMap
...@@ -115,7 +150,24 @@ public class BookTools { ...@@ -115,7 +150,24 @@ public class BookTools {
} }
} }
public static void setChannelNames4NoAuthBookVO(List<NoAuthBookVO> noAuthBookVOS, Map<Long,String> channelNameMap) { /**
* 批量填充出版名称
* @param objects
* @param agentNameMap
*/
public static void setAgentNames(List<Object> objects, Map<Long, String> agentNameMap) {
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long agentId = bookDto.getAgentId();
if (agentNameMap.containsKey(agentId)) {
bookDto.setAgentName(agentNameMap.get(agentId));
} else {
bookDto.setAgentName("");
}
}
}
public static void setChannelNames4NoAuthBookVO(List<NoAuthBookVO> noAuthBookVOS, Map<Long, String> channelNameMap) {
for (NoAuthBookVO noAuthBookVO : noAuthBookVOS) { for (NoAuthBookVO noAuthBookVO : noAuthBookVOS) {
Long channelId = noAuthBookVO.getChannelId(); Long channelId = noAuthBookVO.getChannelId();
if (channelNameMap.containsKey(channelId)) { if (channelNameMap.containsKey(channelId)) {
......
...@@ -84,4 +84,28 @@ public class AppConsr { ...@@ -84,4 +84,28 @@ public class AppConsr {
return appDtos; return appDtos;
} }
/**
* 获取应用基本信息
* @param appIds 应用ID列表
* @return
*/
public Map<Long, AppDto> getBaseByIds(List<Long> appIds) {
LOGGER.info("获取应用基本信息[appService.getBaseByIds],参数列表[appIds]:" + appIds);
Map<Long, AppDto> appDtos = new HashMap<>();
if (ListUtils.isEmpty(appIds)) {
return appDtos;
}
try {
ResponseEntity<ResponseDto<Map<Long, AppDto>>> appDtosEntity = appService.getBaseByIds(appIds);
appDtos = ResponseHandleUtil.parseMapResponse(appDtosEntity, Long.class, AppDto.class);
} catch (BizException e) {
LOGGER.warn("获取应用基本信息[appService.getBaseByIds]:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("获取应用基本信息[appService.getBaseByIds]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_USER_ERROR, "获取应用基本信息失败~!");
}
return appDtos;
}
} }
...@@ -16,6 +16,7 @@ import com.pcloud.book.base.exception.BookBizException; ...@@ -16,6 +16,7 @@ import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.resourcecenter.product.dto.Product4BookDTO;
import com.pcloud.resourcecenter.product.dto.ProductDto; import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.service.ProductService; import com.pcloud.resourcecenter.product.service.ProductService;
...@@ -61,7 +62,7 @@ public class ProductConsr { ...@@ -61,7 +62,7 @@ public class ProductConsr {
* 资源中心拉取商品基本信息 * 资源中心拉取商品基本信息
*/ */
public Map<Long, ProductDto> getProBasesByIds(List<Long> productIds) throws BizException { public Map<Long, ProductDto> getProBasesByIds(List<Long> productIds) throws BizException {
LOGGER.info("【资源中心(消)】获取商品基本信息,<START>.[productIds]=" + productIds.toString() + "]"); LOGGER.info("【资源中心(消)】获取商品基本信息,<START>.[productIds]=" + productIds + "]");
if (productIds == null || productIds.isEmpty()) { if (productIds == null || productIds.isEmpty()) {
return null; return null;
} }
...@@ -80,6 +81,28 @@ public class ProductConsr { ...@@ -80,6 +81,28 @@ public class ProductConsr {
} }
/** /**
* 资源中心拉取商品基本信息
*/
public Map<Long, Product4BookDTO> getProBasesWithSceneByIds(List<Long> productIds) throws BizException {
LOGGER.info("【资源中心(消)】获取商品基本信息,<START>.[productIds]=" + productIds + "]");
if (productIds == null || productIds.isEmpty()) {
return null;
}
try {
return ResponseHandleUtil.parseMapResponse(productService.getProInfoListWithScene(productIds), Long.class,
Product4BookDTO.class);
} catch (BizException e) {
LOGGER.warn("【资源中心(消)】获取商品基本信息失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("【资源中心(消)】获取商品基本信息.[getProInfoListWithScene]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
} finally {
LOGGER.info("【资源中心(消)】获取商品基本信息,<END>");
}
}
/**
* 获取问答商品信息 * 获取问答商品信息
*/ */
public Map<Long, ProductDto> getQaProRetailBase4Group(List<Long> productIds, Long channelId, Long agentId) public Map<Long, ProductDto> getQaProRetailBase4Group(List<Long> productIds, Long channelId, Long agentId)
......
...@@ -3,17 +3,19 @@ ...@@ -3,17 +3,19 @@
*/ */
package com.pcloud.book.consumer.user; package com.pcloud.book.consumer.user;
import com.pcloud.common.dto.ResponseDto; import java.util.List;
import com.pcloud.usercenter.party.agent.entity.Agent; import java.util.Map;
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.channelcenter.base.exceptions.ChannelBizException; import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.usercenter.party.agent.entity.Agent;
import com.pcloud.usercenter.party.agent.service.AgentService; import com.pcloud.usercenter.party.agent.service.AgentService;
/** /**
...@@ -73,4 +75,23 @@ public class AgentConsr { ...@@ -73,4 +75,23 @@ public class AgentConsr {
} }
return agent.getId(); return agent.getId();
} }
/**
* 批量获取出版名称
*/
public Map<Long, String> getNames(List<Long> agentIds) throws BizException {
LOGGER.info("【出版用户(消)】批量获取出版名称,<START>.[agentIds]=" + agentIds.toString());
if (ListUtils.isEmpty(agentIds)) {
return null;
}
Map<Long, String> agentMap = null;
try {
agentMap = ResponseHandleUtil.parseMapResponse(agentService.getNamesByIdList(agentIds), Long.class,
String.class);
} catch (Exception e) {
LOGGER.error("【出版用户(消)】批量获取出版名称.[getNames]:" + e.getMessage(), e);
}
LOGGER.info("【出版用户(消)】批量获取出版名称,<END>");
return agentMap;
}
} }
package com.pcloud.book.util.common;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import com.pcloud.common.utils.DateNewUtils;
/**
* @author PENG
* @version 1.0
* @description 通用Utils
* @date 2017年6月14日 下午2:11:50
*/
public class CommonUtils {
/**
* Long数字转字符串
* @param number Long数字
* @return
* @author PENG
*/
public static String longToString(Long number) {
return number == null ? "0" : number.toString();
}
/**
* 获取Boolean类型的值(处理为null的情况)
* @param value Boolean值
* @return
*/
public static Boolean getBooleanValue(Boolean value) {
return value == null ? false : value;
}
/**
* 两个时间之间的秒数
* @param date1 时间1
* @param date2 时间2
* @return
* @author PENG
*/
public static Integer subSecond(Date date1, Date date2) {
long d1 = date1.getTime();
long d2 = date2.getTime();
int sub = (int) ((d1 - d2) / 1000);
return sub;
}
/**
* 获取今日所剩秒数
* @return
* @author PENG
*/
public static Integer todayRemainingSeconds() {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
Integer second = subSecond(cal.getTime(), new Date());
if (second <= 0) {
second = 1;
}
return second;
}
/**
* 收集起始时间到结束时间之间所有的时间并以字符串集合方式返回
* @param timeStart 开始时间
* @param timeEnd 截止时间
* @return
* @author PENG
*/
public static List<String> collectLocalDates(Date timeStart, Date timeEnd) {
List<String> result = new ArrayList<>();
Calendar start = Calendar.getInstance();
start.setTime(timeStart);
Calendar end = Calendar.getInstance();
end.setTime(timeEnd);
while (start.before(end) || start.equals(end)) {
result.add(DateNewUtils.getShortDateStr(start.getTime()));
start.add(Calendar.DAY_OF_YEAR, 1);
}
return result;
}
/**
* 收集起始时间到结束时间之间所有的时间并以字符串集合方式返回
* @param timeStart 开始时间
* @param timeEnd 截止时间
* @return
* @author PENG
*/
public static List<String> collectLocalDates(String timeStart, String timeEnd) {
Date startDate = DateNewUtils.getDateByStr(timeStart);
Date endDate = DateNewUtils.getDateByStr(timeEnd);
return collectLocalDates(startDate, endDate);
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.advertising.dao.impl.AdvertisingAdviserPermissionDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.advertising.entity.AdvertisingAdviserPermission">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="adviser_id" property="adviserId" jdbcType="INTEGER"/>
<result column="book_id" property="bookId" jdbcType="INTEGER"/>
<result column="channel_id" property="channelId" jdbcType="INTEGER"/>
<result column="is_open" property="isOpen" jdbcType="BIT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, adviser_id, book_id, channel_id, is_open, create_time, update_time
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
select
<include refid="Base_Column_List"/>
from advertising_adviser_permission
where id = #{id}
</select>
<select id="getByAdviserId" resultMap="BaseResultMap" parameterType="map">
select
<include refid="Base_Column_List"/>
from advertising_adviser_permission
where adviser_id = #{adviserId}
and book_id = #{bookId}
and channel_id = #{channelId}
</select>
<select id="checkBookOpen" parameterType="map" resultType="Boolean">
SELECT
IF (
adp.is_open = 0
OR (
adp.is_open IS NULL
AND ap.is_open = 0
),
0,
1
) isOpen
FROM
book_adviser a
LEFT JOIN advertising_agent_permission ap ON ap.agent_id = #{agentId}
LEFT JOIN advertising_adviser_permission adp ON adp.adviser_id = a.ADVISER_ID
AND adp.channel_id = a.CHANNEL_ID
AND adp.book_id = a.BOOK_ID
WHERE
a.BOOK_ID = #{bookId}
AND a.ADVISER_ID = #{adviserId}
AND a.CHANNEL_ID = #{channelId}
AND a.IS_MAIN_EDITOR = 1
</select>
<delete id="deleteById" parameterType="Long">
delete from advertising_adviser_permission
where id = #{id}
</delete>
<delete id="deleteByAdviserId" parameterType="Long">
delete from advertising_adviser_permission
where adviser_id = #{adviserId}
</delete>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingAdviserPermission"
useGeneratedKeys="true" keyProperty="id">
insert into advertising_adviser_permission
<trim prefix="(" suffix=")" suffixOverrides=",">
adviser_id,
book_id,
channel_id,
is_open,
create_time,
update_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{adviserId,jdbcType=INTEGER},
#{bookId,jdbcType=INTEGER},
#{channelId,jdbcType=INTEGER},
#{isOpen,jdbcType=BIT},
NOW(),
NOW(),
</trim>
</insert>
<insert id="batchInsert" parameterType="com.pcloud.book.advertising.entity.AdvertisingAdviserPermission"
useGeneratedKeys="true" keyProperty="id">
insert into advertising_adviser_permission (
adviser_id,
book_id,
channel_id,
is_open,
create_time,
update_time
) values
<foreach collection="list" item="item" index="index"
separator=",">
(#{item.adviserId,jdbcType=INTEGER},
#{item.bookId,jdbcType=INTEGER},
#{item.channelId,jdbcType=INTEGER},
#{item.isOpen,jdbcType=BIT},
NOW(),
NOW())
</foreach>
</insert>
<update id="update" parameterType="com.pcloud.book.advertising.entity.AdvertisingAdviserPermission">
update advertising_adviser_permission
<set>
<if test="adviserId != null">
adviser_id = #{adviserId,jdbcType=INTEGER},
</if>
<if test="bookId != null">
book_id = #{bookId,jdbcType=INTEGER},
</if>
<if test="channelId != null">
channel_id = #{channelId,jdbcType=INTEGER},
</if>
<if test="isOpen != null">
is_open = #{isOpen,jdbcType=BIT},
</if>
update_time = NOW(),
</set>
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.advertising.dao.impl.AdvertisingAgentPermissionDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.advertising.entity.AdvertisingAgentPermission">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="agent_id" property="agentId" jdbcType="INTEGER"/>
<result column="is_open" property="isOpen" jdbcType="BIT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, agent_id, is_open, create_time, update_time
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
select
<include refid="Base_Column_List"/>
from advertising_agent_permission
where id = #{id}
</select>
<select id="getByAgentId" resultMap="BaseResultMap" parameterType="Long">
select
<include refid="Base_Column_List"/>
from advertising_agent_permission
where agent_id = #{agentId}
</select>
<delete id="deleteById" parameterType="Long">
delete from advertising_agent_permission
where id = #{id}
</delete>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingAgentPermission"
useGeneratedKeys="true" keyProperty="id">
insert into advertising_agent_permission
<trim prefix="(" suffix=")" suffixOverrides=",">
agent_id,
is_open,
create_time,
update_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{agentId,jdbcType=INTEGER},
#{isOpen,jdbcType=BIT},
NOW(),
NOW(),
</trim>
</insert>
<update id="update" parameterType="com.pcloud.book.advertising.entity.AdvertisingAgentPermission">
update advertising_agent_permission
<set>
<if test="agentId != null">
agent_id = #{agentId,jdbcType=INTEGER},
</if>
<if test="isOpen != null">
is_open = #{isOpen,jdbcType=BIT},
</if>
update_time = NOW(),
</set>
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.advertising.dao.impl.AdvertisingClickRecordDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.advertising.entity.AdvertisingClickRecord">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="ad_id" property="adId" jdbcType="INTEGER"/>
<result column="book_id" property="bookId" jdbcType="INTEGER"/>
<result column="scene_id" property="sceneId" jdbcType="INTEGER"/>
<result column="adviser_id" property="adviserId" jdbcType="INTEGER"/>
<result column="agent_id" property="agentId" jdbcType="INTEGER"/>
<result column="channel_id" property="channelId" jdbcType="INTEGER"/>
<result column="official_account_id" property="officialAccountId" jdbcType="INTEGER"/>
<result column="from_type" property="fromType" jdbcType="VARCHAR"/>
<result column="from_id" property="fromId" jdbcType="INTEGER"/>
<result column="wechat_user_id" property="wechatUserId" jdbcType="INTEGER"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="create_day" property="createDay" jdbcType="DATE"/>
</resultMap>
<sql id="Base_Column_List">
id, ad_id, book_id, scene_id, adviser_id, agent_id, channel_id, official_account_id, from_type,
from_id, wechat_user_id, create_time, create_day
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
select
<include refid="Base_Column_List"/>
from advertising_click_record
where id = #{id}
</select>
<select id="getClickNum" parameterType="map" resultType="Long">
SELECT
count(1)
FROM
advertising_click_record
WHERE
ad_id = #{adId}
<if test="bookId != null">
AND book_id = #{bookId}
AND adviser_id = #{adviserId}
AND channel_id = #{channelId}
</if>
<if test="fromId != null">
AND from_id = #{fromId}
AND from_type = #{fromType}
</if>
</select>
<delete id="deleteById" parameterType="Long">
delete from advertising_click_record
where id = #{id}
</delete>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingClickRecord"
useGeneratedKeys="true" keyProperty="id">
insert into advertising_click_record
<trim prefix="(" suffix=")" suffixOverrides=",">
ad_id,
book_id,
scene_id,
adviser_id,
agent_id,
channel_id,
official_account_id,
from_type,
from_id,
wechat_user_id,
create_time,
create_day,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{adId,jdbcType=INTEGER},
#{bookId,jdbcType=INTEGER},
#{sceneId,jdbcType=INTEGER},
#{adviserId,jdbcType=INTEGER},
#{agentId,jdbcType=INTEGER},
#{channelId,jdbcType=INTEGER},
#{officialAccountId,jdbcType=INTEGER},
#{fromType,jdbcType=VARCHAR},
#{fromId,jdbcType=INTEGER},
#{wechatUserId,jdbcType=INTEGER},
NOW(),
NOW(),
</trim>
</insert>
<update id="update" parameterType="com.pcloud.book.advertising.entity.AdvertisingClickRecord">
update advertising_click_record
<set>
<if test="adId != null">
ad_id = #{adId,jdbcType=INTEGER},
</if>
<if test="bookId != null">
book_id = #{bookId,jdbcType=INTEGER},
</if>
<if test="sceneId != null">
scene_id = #{sceneId,jdbcType=INTEGER},
</if>
<if test="adviserId != null">
adviser_id = #{adviserId,jdbcType=INTEGER},
</if>
<if test="agentId != null">
agent_id = #{agentId,jdbcType=INTEGER},
</if>
<if test="channelId != null">
channel_id = #{channelId,jdbcType=INTEGER},
</if>
<if test="officialAccountId != null">
official_account_id = #{officialAccountId,jdbcType=INTEGER},
</if>
<if test="fromType != null">
from_type = #{fromType,jdbcType=VARCHAR},
</if>
<if test="fromId != null">
from_id = #{fromId,jdbcType=INTEGER},
</if>
<if test="wechatUserId != null">
wechat_user_id = #{wechatUserId,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.advertising.dao.impl.AdvertisingDistributionBookDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.advertising.entity.AdvertisingDistributionBook">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="ad_id" property="adId" jdbcType="INTEGER"/>
<result column="book_id" property="bookId" jdbcType="INTEGER"/>
<result column="adviser_id" property="adviserId" jdbcType="INTEGER"/>
<result column="agent_id" property="agentId" jdbcType="INTEGER"/>
<result column="channel_id" property="channelId" jdbcType="INTEGER"/>
<result column="distribution_time" property="distributionTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, ad_id, book_id, adviser_id, agent_id, channel_id, distribution_time
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
select
<include refid="Base_Column_List"/>
from advertising_distribution_book
where id = #{id}
</select>
<select id="getByAdId" resultMap="BaseResultMap" parameterType="Long">
select
<include refid="Base_Column_List"/>
from advertising_distribution_book
where ad_id = #{adId}
</select>
<select id="checkBookIdExist" parameterType="list" resultType="Long">
select
b.book_id
from
advertising_distribution_book b,
advertising_space s
where
b.ad_id = s.id
and s.is_open = 1
and b.book_id in
<foreach collection="list" index="i" item="item" open="("
separator="," close=")">
${item}
</foreach>
</select>
<select id="checkAdSpaceHasBook" parameterType="map" resultType="Boolean">
select
exists (
select
id
from
advertising_distribution_book
where
ad_id = #{adId}
)
</select>
<delete id="deleteById" parameterType="Long">
delete from advertising_distribution_book
where id = #{id}
</delete>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingDistributionBook"
useGeneratedKeys="true" keyProperty="id">
insert into advertising_distribution_book
<trim prefix="(" suffix=")" suffixOverrides=",">
ad_id,
book_id,
adviser_id,
agent_id,
channel_id,
distribution_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{adId,jdbcType=INTEGER},
#{bookId,jdbcType=INTEGER},
#{adviserId,jdbcType=INTEGER},
#{agentId,jdbcType=INTEGER},
#{channelId,jdbcType=INTEGER},
NOW(),
</trim>
</insert>
<insert id="batchInsert" parameterType="com.pcloud.book.advertising.entity.AdvertisingDistributionBook"
useGeneratedKeys="true" keyProperty="id">
insert into advertising_distribution_book (
ad_id,
book_id,
adviser_id,
agent_id,
channel_id,
distribution_time
) values
<foreach collection="list" item="item" index="index"
separator=",">
(#{item.adId,jdbcType=INTEGER},
#{item.bookId,jdbcType=INTEGER},
#{item.adviserId,jdbcType=INTEGER},
#{item.agentId,jdbcType=INTEGER},
#{item.channelId,jdbcType=INTEGER},
NOW())
</foreach>
</insert>
<update id="update" parameterType="com.pcloud.book.advertising.entity.AdvertisingDistributionBook">
update advertising_distribution_book
<set>
<if test="adId != null">
ad_id = #{adId,jdbcType=INTEGER},
</if>
<if test="bookId != null">
book_id = #{bookId,jdbcType=INTEGER},
</if>
<if test="adviserId != null">
adviser_id = #{adviserId,jdbcType=INTEGER},
</if>
<if test="agentId != null">
agent_id = #{agentId,jdbcType=INTEGER},
</if>
<if test="channelId != null">
channel_id = #{channelId,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.advertising.dao.impl.AdvertisingExposureRecordDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.advertising.entity.AdvertisingExposureRecord">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="ad_id" property="adId" jdbcType="INTEGER"/>
<result column="book_id" property="bookId" jdbcType="INTEGER"/>
<result column="scene_id" property="sceneId" jdbcType="INTEGER"/>
<result column="adviser_id" property="adviserId" jdbcType="INTEGER"/>
<result column="agent_id" property="agentId" jdbcType="INTEGER"/>
<result column="channel_id" property="channelId" jdbcType="INTEGER"/>
<result column="official_account_id" property="officialAccountId" jdbcType="INTEGER"/>
<result column="from_type" property="fromType" jdbcType="VARCHAR"/>
<result column="from_id" property="fromId" jdbcType="INTEGER"/>
<result column="wechat_user_id" property="wechatUserId" jdbcType="INTEGER"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="create_day" property="createDay" jdbcType="DATE"/>
</resultMap>
<sql id="Base_Column_List">
id, ad_id, book_id, scene_id, adviser_id, agent_id, channel_id, official_account_id, from_type,
from_id, wechat_user_id, create_time, create_day
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
select
<include refid="Base_Column_List"/>
from advertising_exposure_record
where id = #{id}
</select>
<select id="getExposureNum" parameterType="map" resultType="Long">
SELECT
count(1)
FROM
advertising_exposure_record
WHERE
ad_id = #{adId}
<if test="bookId != null">
AND book_id = #{bookId}
AND adviser_id = #{adviserId}
AND channel_id = #{channelId}
</if>
<if test="fromId != null">
AND from_id = #{fromId}
AND from_type = #{fromType}
</if>
</select>
<select id="distributionDateStatics" resultType="com.pcloud.book.advertising.dto.DateCountDTO" parameterType="map">
SELECT
tmp.date,
ifnull(count(DISTINCT er.id), 0) exposureNum,
ifnull(count(DISTINCT cr.id), 0) clickNum
FROM
<foreach collection="collectDates" index="index" item="item" open="(" separator="date union all" close="date ) tmp">
select '${item}'
</foreach>
LEFT JOIN advertising_exposure_record er ON er.create_day = tmp.date
AND er.ad_id = #{adId}
LEFT JOIN advertising_click_record cr ON cr.create_day = tmp.date
AND cr.ad_id = #{adId}
GROUP BY
tmp.date
ORDER BY
tmp.date
</select>
<select id="distributionAppStatics" resultType="com.pcloud.book.advertising.dto.DistributionAppDTO" parameterType="map">
SELECT
er.from_type fromType,
er.from_id fromId,
count(DISTINCT er.id) exposureNum,
count(DISTINCT cr.id) clickNum
FROM
advertising_exposure_record er
LEFT JOIN advertising_click_record cr ON er.ad_id = cr.ad_id
AND er.from_type = cr.from_type
AND er.from_id = cr.from_id
WHERE
er.ad_id = #{adId}
GROUP BY
er.from_type,
er.from_id
ORDER BY
er.create_time ASC
</select>
<delete id="deleteById" parameterType="Long">
delete from advertising_exposure_record
where id = #{id}
</delete>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingExposureRecord"
useGeneratedKeys="true" keyProperty="id">
insert into advertising_exposure_record
<trim prefix="(" suffix=")" suffixOverrides=",">
ad_id,
book_id,
scene_id,
adviser_id,
agent_id,
channel_id,
official_account_id,
from_type,
from_id,
wechat_user_id,
create_time,
create_day,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{adId,jdbcType=INTEGER},
#{bookId,jdbcType=INTEGER},
#{sceneId,jdbcType=INTEGER},
#{adviserId,jdbcType=INTEGER},
#{agentId,jdbcType=INTEGER},
#{channelId,jdbcType=INTEGER},
#{officialAccountId,jdbcType=INTEGER},
#{fromType,jdbcType=VARCHAR},
#{fromId,jdbcType=INTEGER},
#{wechatUserId,jdbcType=INTEGER},
NOW(),
NOW(),
</trim>
</insert>
<update id="update" parameterType="com.pcloud.book.advertising.entity.AdvertisingExposureRecord">
update advertising_exposure_record
<set>
<if test="adId != null">
ad_id = #{adId,jdbcType=INTEGER},
</if>
<if test="bookId != null">
book_id = #{bookId,jdbcType=INTEGER},
</if>
<if test="sceneId != null">
scene_id = #{sceneId,jdbcType=INTEGER},
</if>
<if test="adviserId != null">
adviser_id = #{adviserId,jdbcType=INTEGER},
</if>
<if test="agentId != null">
agent_id = #{agentId,jdbcType=INTEGER},
</if>
<if test="channelId != null">
channel_id = #{channelId,jdbcType=INTEGER},
</if>
<if test="officialAccountId != null">
official_account_id = #{officialAccountId,jdbcType=INTEGER},
</if>
<if test="fromType != null">
from_type = #{fromType,jdbcType=VARCHAR},
</if>
<if test="fromId != null">
from_id = #{fromId,jdbcType=INTEGER},
</if>
<if test="wechatUserId != null">
wechat_user_id = #{wechatUserId,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.advertising.dao.impl.AdvertisingSpaceDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.advertising.entity.AdvertisingSpace">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="ad_name" property="adName" jdbcType="VARCHAR"/>
<result column="ad_position" property="adPosition" jdbcType="VARCHAR"/>
<result column="ad_source" property="adSource" jdbcType="VARCHAR"/>
<result column="ad_link" property="adLink" jdbcType="VARCHAR"/>
<result column="source_id" property="sourceId" jdbcType="VARCHAR"/>
<result column="ad_slogan" property="adSlogan" jdbcType="VARCHAR"/>
<result column="ad_pic" property="adPic" jdbcType="VARCHAR"/>
<result column="distribution_type" property="distributionType" jdbcType="BIT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="is_open" property="isOpen" jdbcType="BIT"/>
</resultMap>
<resultMap id="AdvertisingSpaceDTO" type="com.pcloud.book.advertising.dto.AdvertisingSpaceDTO">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="ad_name" property="adName" jdbcType="VARCHAR"/>
<result column="ad_position" property="adPosition" jdbcType="VARCHAR"/>
<result column="ad_source" property="adSource" jdbcType="VARCHAR"/>
<result column="ad_link" property="adLink" jdbcType="VARCHAR"/>
<result column="source_id" property="sourceId" jdbcType="VARCHAR"/>
<result column="ad_slogan" property="adSlogan" jdbcType="VARCHAR"/>
<result column="ad_pic" property="adPic" jdbcType="VARCHAR"/>
<result column="distribution_type" property="distributionType" jdbcType="BIT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="is_open" property="isOpen" jdbcType="BIT"/>
</resultMap>
<sql id="Base_Column_List">
id, ad_name, ad_position, ad_source, ad_link, source_id, ad_slogan, ad_pic, distribution_type,
create_time, update_time, is_open
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
select
<include refid="Base_Column_List"/>
from advertising_space
where id = #{id}
</select>
<select id="getDTOById" resultMap="AdvertisingSpaceDTO" parameterType="Long">
select
<include refid="Base_Column_List"/>
from advertising_space
where id = #{id}
</select>
<select id="getDTOByBookId" resultMap="AdvertisingSpaceDTO" parameterType="map">
SELECT
s.id,
s.ad_name,
s.ad_link,
s.ad_position,
s.ad_source,
s.source_id,
s.ad_slogan,
s.ad_pic
FROM
advertising_distribution_book b,
advertising_space s
WHERE
b.ad_id = s.id
AND s.is_open = 1
AND b.book_id = #{bookId}
AND b.adviser_id = #{adviserId}
AND b.channel_id = #{channelId}
ORDER BY
b.distribution_time DESC
LIMIT 1
</select>
<select id="getNoSignBookAd" resultMap="AdvertisingSpaceDTO" parameterType="map">
SELECT
s.id,
s.ad_name,
s.ad_link,
s.ad_position,
s.ad_source,
s.source_id,
s.ad_slogan,
s.ad_pic
FROM
advertising_space s
WHERE
s.is_open = 1
and s.distribution_type = 1
ORDER BY
s.create_time DESC
LIMIT 1
</select>
<select id="list" parameterType="map" resultMap="AdvertisingSpaceDTO">
select
<include refid="Base_Column_List"/>
from advertising_space
where 1 = 1
<if test="name != null">
AND (ad_name LIKE CONCAT('%', #{name}, '%') OR source_id LIKE CONCAT(#{name},'%'))
</if>
ORDER BY
create_time DESC
</select>
<delete id="deleteById" parameterType="Long">
delete from advertising_space
where id = #{id}
</delete>
<insert id="insert" parameterType="com.pcloud.book.advertising.entity.AdvertisingSpace"
useGeneratedKeys="true" keyProperty="id">
insert into advertising_space
<trim prefix="(" suffix=")" suffixOverrides=",">
ad_name,
ad_position,
ad_source,
ad_link,
source_id,
ad_slogan,
ad_pic,
distribution_type,
create_time,
update_time,
is_open,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{adName,jdbcType=VARCHAR},
#{adPosition,jdbcType=VARCHAR},
#{adSource,jdbcType=VARCHAR},
#{adLink,jdbcType=VARCHAR},
#{sourceId,jdbcType=VARCHAR},
#{adSlogan,jdbcType=VARCHAR},
#{adPic,jdbcType=VARCHAR},
#{distributionType,jdbcType=BIT},
NOW(),
NOW(),
#{isOpen,jdbcType=BIT},
</trim>
</insert>
<update id="update" parameterType="com.pcloud.book.advertising.entity.AdvertisingSpace">
update advertising_space
<set>
<if test="adName != null">
ad_name = #{adName,jdbcType=VARCHAR},
</if>
<if test="adPosition != null">
ad_position = #{adPosition,jdbcType=VARCHAR},
</if>
<if test="adSource != null">
ad_source = #{adSource,jdbcType=VARCHAR},
</if>
<if test="adLink != null">
ad_link = #{adLink,jdbcType=VARCHAR},
</if>
<if test="sourceId != null">
source_id = #{sourceId,jdbcType=VARCHAR},
</if>
<if test="adSlogan != null">
ad_slogan = #{adSlogan,jdbcType=VARCHAR},
</if>
<if test="adPic != null">
ad_pic = #{adPic,jdbcType=VARCHAR},
</if>
<if test="distributionType != null">
distribution_type = #{distributionType,jdbcType=BIT},
</if>
update_time = NOW(),
<if test="isOpen != null">
is_open = #{isOpen,jdbcType=BIT},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
...@@ -511,6 +511,236 @@ ...@@ -511,6 +511,236 @@
</select> </select>
<!-- 获取书籍列表(编辑) --> <!-- 获取书籍列表(编辑) -->
<select id="listBook4Adviser" resultMap="bookMap" parameterType="map">
SELECT
a.BOOK_ID,
a.CHANNEL_ID,
a.ADVISER_ID,
a.IS_MAIN_EDITOR,
b.ISBN,
b.BOOK_NAME,
b.REMARK,
b.AUTHOR,
b.PUBLISH,
b.PUBLISH_DATE,
b.COVER_IMG,
b.ORIGIN_NAME,
b.BOOK_PRICE,
b.ISSN,
b.BOOK_NUM,
b.SERIAL_NUMBER,
a.TEMPLET_ID,
a.CREATED_DATE,
a.LAST_MODIFIED_DATE,
a.BOOK_ADVISER_ID,
IF (
adp.is_open = 0
OR (
adp.is_open IS NULL
AND ap.is_open = 0
),
0,
1
) isOpen
FROM
BOOK_ADVISER a
INNER JOIN BOOK b ON a.BOOK_ID = b.BOOK_ID
AND a.ADVISER_ID = #{adviserId}
AND a.IS_DELETE = 0
AND b.IS_DELETE = 0
LEFT JOIN advertising_agent_permission ap ON ap.agent_id = #{agentId}
LEFT JOIN advertising_adviser_permission adp ON adp.adviser_id = a.ADVISER_ID
AND adp.channel_id = a.CHANNEL_ID
AND adp.book_id = a.BOOK_ID
WHERE
a.IS_MAIN_EDITOR = 1
<if test="name != null">
AND (b.BOOK_NAME LIKE CONCAT('%', #{name}, '%') OR b.ISBN LIKE CONCAT(#{name},'%'))
</if>
GROUP BY
a.BOOK_ID,
a.CHANNEL_ID
ORDER BY
a.LAST_MODIFIED_DATE DESC
</select>
<!-- 获取书籍列表(编辑) -->
<select id="listBook4AdvertisingSpace" resultMap="bookMap" parameterType="map">
SELECT
a.BOOK_ID,
a.CHANNEL_ID,
a.ADVISER_ID,
db.agent_id agentId,
b.ISBN,
b.BOOK_NAME,
b.COVER_IMG,
db.distribution_time distributionTime,
IF (
adp.is_open = 0
OR (
adp.is_open IS NULL
AND ap.is_open = 0
),
0,
1
) isOpen
FROM
BOOK_ADVISER a
INNER JOIN BOOK b ON a.BOOK_ID = b.BOOK_ID
AND a.IS_DELETE = 0
AND b.IS_DELETE = 0
INNER JOIN advertising_distribution_book db ON db.book_id = a.BOOK_ID
AND db.channel_id = a.CHANNEL_ID
AND db.adviser_id = a.ADVISER_ID
AND db.ad_id = #{adId}
LEFT JOIN advertising_agent_permission ap ON ap.agent_id = db.agent_id
LEFT JOIN advertising_adviser_permission adp ON adp.adviser_id = a.ADVISER_ID
AND adp.channel_id = a.CHANNEL_ID
AND adp.book_id = a.BOOK_ID
WHERE
1 = 1
<if test="name != null">
AND (b.BOOK_NAME LIKE CONCAT('%', #{name}, '%') OR b.ISBN LIKE CONCAT(#{name},'%'))
</if>
GROUP BY
a.BOOK_ID,
a.CHANNEL_ID
ORDER BY
db.distribution_time DESC
</select>
<!-- 获取书籍列表(编辑) -->
<select id="listBook4AdvertisingSpaceNoSignBook" resultMap="bookMap" parameterType="map">
SELECT
a.BOOK_ID,
a.CHANNEL_ID,
a.ADVISER_ID,
db.agent_id agentId,
b.ISBN,
b.BOOK_NAME,
b.COVER_IMG,
IF (
adp.is_open = 0
OR (
adp.is_open IS NULL
AND ap.is_open = 0
),
0,
1
) isOpen
FROM
BOOK_ADVISER a
INNER JOIN BOOK b ON a.BOOK_ID = b.BOOK_ID
AND a.IS_DELETE = 0
AND b.IS_DELETE = 0
INNER JOIN (
SELECT
book_id,
adviser_id,
channel_id,
agent_id
FROM
advertising_exposure_record
WHERE
ad_id = #{adId}
GROUP BY
book_id,
adviser_id,
channel_id
) db ON db.book_id = a.BOOK_ID
AND db.channel_id = a.CHANNEL_ID
AND db.adviser_id = a.ADVISER_ID
LEFT JOIN advertising_agent_permission ap ON ap.agent_id = db.agent_id
LEFT JOIN advertising_adviser_permission adp ON adp.adviser_id = a.ADVISER_ID
AND adp.channel_id = a.CHANNEL_ID
AND adp.book_id = a.BOOK_ID
WHERE
1 = 1
<if test="name != null">
AND (b.BOOK_NAME LIKE CONCAT('%', #{name}, '%') OR b.ISBN LIKE CONCAT(#{name},'%'))
</if>
GROUP BY
a.BOOK_ID,
a.CHANNEL_ID
ORDER BY
a.CREATED_DATE DESC
</select>
<!-- 获取书籍列表(平台) -->
<select id="listBook4Platform" resultMap="bookMap" parameterType="map">
SELECT
a.BOOK_ID,
a.CHANNEL_ID,
a.ADVISER_ID,
a.IS_MAIN_EDITOR,
b.ISBN,
b.BOOK_NAME,
b.REMARK,
b.AUTHOR,
b.PUBLISH,
b.PUBLISH_DATE,
b.COVER_IMG,
b.ORIGIN_NAME,
b.BOOK_PRICE,
b.ISSN,
b.BOOK_NUM,
b.SERIAL_NUMBER,
a.TEMPLET_ID,
a.CREATED_DATE,
a.LAST_MODIFIED_DATE,
a.BOOK_ADVISER_ID,
IF (t.id IS NOT NULL, 1, 0) isSelect
FROM
BOOK_ADVISER a
INNER JOIN BOOK b ON a.BOOK_ID = b.BOOK_ID
AND a.ADVISER_ID = #{adviserId}
AND a.IS_DELETE = 0
AND b.IS_DELETE = 0
LEFT JOIN (
SELECT
db.id,
db.ad_id,
db.book_id,
db.adviser_id,
db.channel_id
FROM
advertising_distribution_book db
INNER JOIN advertising_space s ON db.ad_id = s.id
AND s.is_open = 1
) t ON t.adviser_id = a.ADVISER_ID
AND t.channel_id = a.CHANNEL_ID
AND t.book_id = a.BOOK_ID
WHERE
a.IS_MAIN_EDITOR = 1
<if test="name != null">
AND (b.BOOK_NAME LIKE CONCAT('%', #{name}, '%') OR b.ISBN LIKE CONCAT(#{name},'%'))
</if>
GROUP BY
a.BOOK_ID,
a.CHANNEL_ID
ORDER BY
a.CREATED_DATE DESC
</select>
<!-- 获取书籍列表(编辑) -->
<select id="listBookIdAndChannelId4Adviser" resultMap="bookMap" parameterType="map">
SELECT
a.BOOK_ID,
a.CHANNEL_ID
FROM
BOOK_ADVISER a
INNER JOIN BOOK b ON a.BOOK_ID = b.BOOK_ID
AND a.ADVISER_ID = #{adviserId}
AND a.IS_DELETE = 0
AND b.IS_DELETE = 0
WHERE
a.IS_MAIN_EDITOR = 1
GROUP BY
a.BOOK_ID,
a.CHANNEL_ID
</select>
<!-- 获取书籍列表(编辑) -->
<select id="listBook" resultMap="bookMap" parameterType="map"> <select id="listBook" resultMap="bookMap" parameterType="map">
SELECT SELECT
A.BOOK_ID, A.CHANNEL_ID, A.ADVISER_ID, A.IS_MAIN_EDITOR, T.TYPE_CODE, T.TYPE_NAME, B.ISBN, B.BOOK_NAME, B.REMARK, A.BOOK_ID, A.CHANNEL_ID, A.ADVISER_ID, A.IS_MAIN_EDITOR, T.TYPE_CODE, T.TYPE_NAME, B.ISBN, B.BOOK_NAME, B.REMARK,
......
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