Commit 536594d4 by gaopeng

平台端广告位管理

parent a0a95455
......@@ -3,13 +3,12 @@
*/
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.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
/**
* @描述:书籍实体DTO
......@@ -18,1085 +17,1188 @@ import java.util.List;
*/
public class BookDto extends BaseDto {
/**
*
*/
private static final long serialVersionUID = -162839217433038629L;
/**
* 书籍标识
*/
private Long bookId;
/**
* 类型编码
*/
private String typeCode;
/**
* 类型名称
*/
private String typeName;
/**
* 书籍ISBN码
*/
private String isbn;
/**
* 书籍名称
*/
private String bookName;
/**
* 书籍价格
*/
private String bookPrice;
/**
* 图书原名
*/
private String originName;
/**
* 简介
*/
private String remark;
/**
* 作者
*/
private String author;
/**
* 出版社
*/
private String publish;
/**
* 出版时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date publishDate;
/**
* 封面图
*/
private String coverImg;
/**
* 详情
*/
private String detail;
/**
* 主办单位
*/
private String sponsor;
/**
* 主管单位
*/
private String organizer;
/**
* CN
*/
private String cn;
/**
* 发行周期
*/
private String releaseCycle;
/**
* 期物刊数
*/
private String bookNum;
/**
* 栏目
*/
private String programa;
/**
* 邮发代号
*/
private String mailCode;
/**
* 地址
*/
private String address;
/**
* 电话
*/
private String telephone;
/**
* 邮箱
*/
private String mail;
/**
* 宗旨
*/
private String purpose;
/**
* 编辑标识
*/
private Long adviserId;
/**
* 编辑名称
*/
private String adviserName;
/**
* 渠道标识
*/
private Long channelId;
/**
* 渠道名称
*/
private String channelName;
/**
* 二维码数量
*/
private Integer qrcodeCount;
/**
* 应用数量
*/
private Integer appCount;
/**
* 作品数量
*/
private Integer productCount;
/**
* 最新二维码
*/
private String latestQrcode;
/**
* 应用列表
*/
private List<Object> apps;
/**
* 作品列表
*/
private List<Object> products;
/**
* 资源列表
*/
private List<Object> resourceFiles;
/**
* 第一次扫描时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date firstScanDate;
/**
* 首次来源二维码名称
*/
private String firstSceneName;
/**
* 期刊号
*/
private String issn;
/**
* 关联应用标识
*/
private Long appId;
/**
* 刊物序号
*/
private String serialNumber;
/**
* 是否加入书架
*/
private Boolean isSelect;
/**
* 宣传图
*/
private String adImg;
/**
* 是否是主编辑
*/
private Boolean isMainEditor;
/**
* 主编辑名称
*/
private String mainEditorName;
/**
* 主编辑头像
*/
private String mainEditorPic;
/**
* 书刊是否有编辑关联
*/
private Boolean isHaveAdviser;
/**
* 书刊是否有基金支持
*/
private Boolean isFundSupport;
/**
* 书刊是否有基金
*/
private Boolean isHaveFund;
/**
* 书籍扫描数
*/
private Long bookScanCount;
/**
* 书籍二维码数
*/
private Long bookQrCount;
/**
* 书刊读者数
*/
private Integer readerCount;
/**
* 书刊总收益
*/
private BigDecimal bookIncome;
/**
* 基金收益
*/
private BigDecimal fundMoney;
/**
* 基金列表
*/
private List<BookFundDto> bookFunds;
/**
* 出版类型
*/
private Integer agentType;
/**
* 基金支持开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
/**
* 基金支持结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
/**
* 二维码标识
*/
private Long sceneId;
/**
* 父模板标识
*/
private Long templeParentId;
/**
* 模板标识
*/
private Long templetId;
/**
* 模板名称
*/
private String templetName;
/**
* 浏览量
*/
private Long browseCounts;
/**
* 读者量
*/
private Long browserCounts;
/**
* 扫描量
*/
private Long scanCount;
/**
* 冻结状态
*/
private Integer FreezeStatus;
/**
* 图书总收益
*/
private BigDecimal income;
/**
* 编辑图书关联标识
*/
private Long bookAdviserId;
/**
* 图书是否关二维码联
*/
private Boolean relationQrcode;
/**
* 待审核数量
*/
private Long noAuditNum;
private String transferor;
// 二维码相关信息
private String qrcodeUrl;
/**
* 配置服务个数
*/
private Integer messageCount;
/**
* 类型名称
*/
private List<String> typeCodeNames;
/**
* 印码位置
*/
private String location;
/**
* 二维码名字
*/
private String sceneName;
/**
* 二维码导读字段
*/
private String qrRemark;
@ApiModelProperty("图书状态")
private Integer bookStatus;
public String getQrRemark() {
return qrRemark;
}
public void setQrRemark(String qrRemark) {
this.qrRemark = qrRemark;
}
public String getSceneName() {
return sceneName;
}
public void setSceneName(String sceneName) {
this.sceneName = sceneName;
}
public String getQrcodeUrl() {
return qrcodeUrl;
}
public void setQrcodeUrl(String qrcodeUrl) {
this.qrcodeUrl = qrcodeUrl;
}
public Integer getMessageCount() {
return messageCount;
}
public void setMessageCount(Integer messageCount) {
this.messageCount = messageCount;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getTransferor() { return transferor; }
public void setTransferor(String transferor) { this.transferor = transferor; }
public Long getNoAuditNum() {
return noAuditNum;
}
public void setNoAuditNum(Long noAuditNum) {
this.noAuditNum = noAuditNum;
}
public Integer getFreezeStatus() {
return FreezeStatus;
}
public void setFreezeStatus(Integer freezeStatus) {
FreezeStatus = freezeStatus;
}
public Long getAppId() {
return appId;
}
public void setAppId(Long appId) {
this.appId = appId;
}
public String getFirstSceneName() {
return firstSceneName;
}
public void setFirstSceneName(String firstSceneName) {
this.firstSceneName = firstSceneName;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getFirstScanDate() {
return firstScanDate;
}
public void setFirstScanDate(Date firstScanDate) {
this.firstScanDate = firstScanDate;
}
public String getTypeCode() {
return typeCode;
}
/**
*
*/
private static final long serialVersionUID = -162839217433038629L;
/**
* 书籍标识
*/
private Long bookId;
/**
* 类型编码
*/
private String typeCode;
/**
* 类型名称
*/
private String typeName;
/**
* 书籍ISBN码
*/
private String isbn;
/**
* 书籍名称
*/
private String bookName;
/**
* 书籍价格
*/
private String bookPrice;
/**
* 图书原名
*/
private String originName;
/**
* 简介
*/
private String remark;
/**
* 作者
*/
private String author;
/**
* 出版社
*/
private String publish;
/**
* 出版时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date publishDate;
/**
* 封面图
*/
private String coverImg;
/**
* 详情
*/
private String detail;
/**
* 主办单位
*/
private String sponsor;
/**
* 主管单位
*/
private String organizer;
/**
* CN
*/
private String cn;
/**
* 发行周期
*/
private String releaseCycle;
/**
* 期物刊数
*/
private String bookNum;
/**
* 栏目
*/
private String programa;
/**
* 邮发代号
*/
private String mailCode;
/**
* 地址
*/
private String address;
/**
* 电话
*/
private String telephone;
/**
* 邮箱
*/
private String mail;
/**
* 宗旨
*/
private String purpose;
/**
* 编辑标识
*/
private Long adviserId;
/**
* 编辑名称
*/
private String adviserName;
/**
* 渠道标识
*/
private Long channelId;
/**
* 渠道名称
*/
private String channelName;
/**
* 二维码数量
*/
private Integer qrcodeCount;
/**
* 应用数量
*/
private Integer appCount;
/**
* 作品数量
*/
private Integer productCount;
/**
* 最新二维码
*/
private String latestQrcode;
/**
* 应用列表
*/
private List<Object> apps;
/**
* 作品列表
*/
private List<Object> products;
/**
* 资源列表
*/
private List<Object> resourceFiles;
/**
* 第一次扫描时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date firstScanDate;
/**
* 首次来源二维码名称
*/
private String firstSceneName;
/**
* 期刊号
*/
private String issn;
/**
* 关联应用标识
*/
private Long appId;
/**
* 刊物序号
*/
private String serialNumber;
/**
* 是否加入书架
*/
private Boolean isSelect;
/**
* 宣传图
*/
private String adImg;
/**
* 是否是主编辑
*/
private Boolean isMainEditor;
/**
* 主编辑名称
*/
private String mainEditorName;
/**
* 主编辑头像
*/
private String mainEditorPic;
/**
* 书刊是否有编辑关联
*/
private Boolean isHaveAdviser;
/**
* 书刊是否有基金支持
*/
private Boolean isFundSupport;
/**
* 书刊是否有基金
*/
private Boolean isHaveFund;
/**
* 书籍扫描数
*/
private Long bookScanCount;
/**
* 书籍二维码数
*/
private Long bookQrCount;
/**
* 书刊读者数
*/
private Integer readerCount;
/**
* 书刊总收益
*/
private BigDecimal bookIncome;
/**
* 基金收益
*/
private BigDecimal fundMoney;
/**
* 基金列表
*/
private List<BookFundDto> bookFunds;
/**
* 出版类型
*/
private Integer agentType;
/**
* 基金支持开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
/**
* 基金支持结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
/**
* 二维码标识
*/
private Long sceneId;
/**
* 父模板标识
*/
private Long templeParentId;
/**
* 模板标识
*/
private Long templetId;
/**
* 模板名称
*/
private String templetName;
/**
* 浏览量
*/
private Long browseCounts;
/**
* 读者量
*/
private Long browserCounts;
/**
* 扫描量
*/
private Long scanCount;
/**
* 冻结状态
*/
private Integer FreezeStatus;
/**
* 图书总收益
*/
private BigDecimal income;
/**
* 编辑图书关联标识
*/
private Long bookAdviserId;
/**
* 图书是否关二维码联
*/
private Boolean relationQrcode;
/**
* 待审核数量
*/
private Long noAuditNum;
private String transferor;
// 二维码相关信息
private String qrcodeUrl;
/**
* 配置服务个数
*/
private Integer messageCount;
/**
* 类型名称
*/
private List<String> typeCodeNames;
/**
* 印码位置
*/
private String location;
/**
* 二维码名字
*/
private String sceneName;
/**
* 二维码导读字段
*/
private String qrRemark;
@ApiModelProperty("图书状态")
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() {
return qrRemark;
}
public void setQrRemark(String qrRemark) {
this.qrRemark = qrRemark;
}
public String getSceneName() {
return sceneName;
}
public void setSceneName(String sceneName) {
this.sceneName = sceneName;
}
public String getQrcodeUrl() {
return qrcodeUrl;
}
public void setQrcodeUrl(String qrcodeUrl) {
this.qrcodeUrl = qrcodeUrl;
}
public Integer getMessageCount() {
return messageCount;
}
public void setMessageCount(Integer messageCount) {
this.messageCount = messageCount;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getTransferor() {
return transferor;
}
public void setTransferor(String transferor) {
this.transferor = transferor;
}
public Long getNoAuditNum() {
return noAuditNum;
}
public void setNoAuditNum(Long noAuditNum) {
this.noAuditNum = noAuditNum;
}
public Integer getFreezeStatus() {
return FreezeStatus;
}
public void setFreezeStatus(Integer freezeStatus) {
FreezeStatus = freezeStatus;
}
public Long getAppId() {
return appId;
}
public void setAppId(Long appId) {
this.appId = appId;
}
public String getFirstSceneName() {
return firstSceneName;
}
public void setFirstSceneName(String firstSceneName) {
this.firstSceneName = firstSceneName;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getFirstScanDate() {
return firstScanDate;
}
public void setFirstScanDate(Date firstScanDate) {
this.firstScanDate = firstScanDate;
}
public String getTypeCode() {
return typeCode;
}
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
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 Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public String getChannelName() {
return channelName;
}
public void setChannelName(String channelName) {
this.channelName = channelName;
}
public List<Object> getProducts() {
return products;
}
public void setProducts(List<Object> products) {
this.products = products;
}
public Integer getQrcodeCount() {
return qrcodeCount;
}
public void setQrcodeCount(Integer qrcodeCount) {
this.qrcodeCount = qrcodeCount;
}
public Integer getAppCount() {
return appCount;
}
public void setAppCount(Integer appCount) {
this.appCount = appCount;
}
public Integer getProductCount() {
return productCount;
}
public void setProductCount(Integer productCount) {
this.productCount = productCount;
}
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 void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
public String getBookName() {
return bookName;
}
public String getTypeName() {
return typeName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public String getRemark() {
return remark;
}
public Long getAdviserId() {
return adviserId;
}
public void setRemark(String remark) {
this.remark = remark;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public String getAuthor() {
return author;
}
public String getAdviserName() {
return adviserName;
}
public void setAuthor(String author) {
this.author = author;
}
public void setAdviserName(String adviserName) {
this.adviserName = adviserName;
}
public String getPublish() {
return publish;
}
public Long getChannelId() {
return channelId;
}
public void setPublish(String publish) {
this.publish = publish;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getPublishDate() {
return publishDate;
}
public String getChannelName() {
return channelName;
}
public void setPublishDate(Date publishDate) {
this.publishDate = publishDate;
}
public void setChannelName(String channelName) {
this.channelName = channelName;
}
public String getCoverImg() {
return coverImg;
}
public List<Object> getProducts() {
return products;
}
public void setCoverImg(String coverImg) {
this.coverImg = coverImg;
}
public void setProducts(List<Object> products) {
this.products = products;
}
public String getDetail() {
return detail;
}
public Integer getQrcodeCount() {
return qrcodeCount;
}
public void setQrcodeCount(Integer qrcodeCount) {
this.qrcodeCount = qrcodeCount;
}
public Integer getAppCount() {
return appCount;
}
public void setAppCount(Integer appCount) {
this.appCount = appCount;
}
public Integer getProductCount() {
return productCount;
}
public void setProductCount(Integer productCount) {
this.productCount = productCount;
}
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 void setDetail(String detail) {
this.detail = detail;
}
public String getBookName() {
return bookName;
}
public String getSponsor() {
return sponsor;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public void setSponsor(String sponsor) {
this.sponsor = sponsor;
}
public String getRemark() {
return remark;
}
public String getOrganizer() {
return organizer;
}
public void setRemark(String remark) {
this.remark = remark;
}
public void setOrganizer(String organizer) {
this.organizer = organizer;
}
public String getAuthor() {
return author;
}
public String getCn() {
return cn;
}
public void setAuthor(String author) {
this.author = author;
}
public void setCn(String cn) {
this.cn = cn;
}
public String getPublish() {
return publish;
}
public String getReleaseCycle() {
return releaseCycle;
}
public void setPublish(String publish) {
this.publish = publish;
}
public void setReleaseCycle(String releaseCycle) {
this.releaseCycle = releaseCycle;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getPublishDate() {
return publishDate;
}
public String getBookNum() {
return bookNum;
}
public void setPublishDate(Date publishDate) {
this.publishDate = publishDate;
}
public void setBookNum(String bookNum) {
this.bookNum = bookNum;
}
public String getCoverImg() {
return coverImg;
}
public String getPrograma() {
return programa;
}
public void setCoverImg(String coverImg) {
this.coverImg = coverImg;
}
public void setPrograma(String programa) {
this.programa = programa;
}
public String getDetail() {
return detail;
}
public String getMailCode() {
return mailCode;
}
public void setDetail(String detail) {
this.detail = detail;
}
public void setMailCode(String mailCode) {
this.mailCode = mailCode;
}
public String getSponsor() {
return sponsor;
}
public String getAddress() {
return address;
}
public void setSponsor(String sponsor) {
this.sponsor = sponsor;
}
public void setAddress(String address) {
this.address = address;
}
public String getOrganizer() {
return organizer;
}
public String getTelephone() {
return telephone;
}
public void setOrganizer(String organizer) {
this.organizer = organizer;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getCn() {
return cn;
}
public String getMail() {
return mail;
}
public void setCn(String cn) {
this.cn = cn;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getReleaseCycle() {
return releaseCycle;
}
public String getPurpose() {
return purpose;
}
public void setReleaseCycle(String releaseCycle) {
this.releaseCycle = releaseCycle;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public String getBookNum() {
return bookNum;
}
public String getOriginName() {
return originName;
}
public void setBookNum(String bookNum) {
this.bookNum = bookNum;
}
public void setOriginName(String originName) {
this.originName = originName;
}
public String getPrograma() {
return programa;
}
public String getBookPrice() {
return bookPrice;
}
public void setPrograma(String programa) {
this.programa = programa;
}
public void setBookPrice(String bookPrice) {
this.bookPrice = bookPrice;
}
public String getMailCode() {
return mailCode;
}
public String getIssn() {
return issn;
}
public void setMailCode(String mailCode) {
this.mailCode = mailCode;
}
public void setIssn(String issn) {
this.issn = issn;
}
public String getAddress() {
return address;
}
public String getSerialNumber() {
return serialNumber;
}
public void setAddress(String address) {
this.address = address;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public String getTelephone() {
return telephone;
}
public Boolean getIsSelect() {
return isSelect;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public void setIsSelect(Boolean isSelect) {
this.isSelect = isSelect;
}
public String getMail() {
return mail;
}
public String getAdImg() {
return adImg;
}
public void setMail(String mail) {
this.mail = mail;
}
public void setAdImg(String adImg) {
this.adImg = adImg;
}
public String getPurpose() {
return purpose;
}
public String getLatestQrcode() {
return latestQrcode;
}
public void setPurpose(String purpose) {
this.purpose = purpose;
}
public void setLatestQrcode(String latestQrcode) {
this.latestQrcode = latestQrcode;
}
public String getOriginName() {
return originName;
}
public Boolean getIsMainEditor() {
return isMainEditor;
}
public void setOriginName(String originName) {
this.originName = originName;
}
public void setIsMainEditor(Boolean isMainEditor) {
this.isMainEditor = isMainEditor;
}
public String getBookPrice() {
return bookPrice;
}
public String getMainEditorName() {
return mainEditorName;
}
public void setBookPrice(String bookPrice) {
this.bookPrice = bookPrice;
}
public void setMainEditorName(String mainEditorName) {
this.mainEditorName = mainEditorName;
}
public String getIssn() {
return issn;
}
public String getMainEditorPic() {
return mainEditorPic;
}
public void setIssn(String issn) {
this.issn = issn;
}
public void setMainEditorPic(String mainEditorPic) {
this.mainEditorPic = mainEditorPic;
}
public String getSerialNumber() {
return serialNumber;
}
public Boolean getIsHaveAdviser() {
return isHaveAdviser;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public void setIsHaveAdviser(Boolean isHaveAdviser) {
this.isHaveAdviser = isHaveAdviser;
}
public Boolean getIsSelect() {
return isSelect;
}
public Long getBookScanCount() {
return bookScanCount;
}
public void setIsSelect(Boolean isSelect) {
this.isSelect = isSelect;
}
public void setBookScanCount(Long bookScanCount) {
this.bookScanCount = bookScanCount;
}
public String getAdImg() {
return adImg;
}
public Long getBookQrCount() {
return bookQrCount;
}
public void setAdImg(String adImg) {
this.adImg = adImg;
}
public void setBookQrCount(Long bookQrCount) {
this.bookQrCount = bookQrCount;
}
public String getLatestQrcode() {
return latestQrcode;
}
public Boolean getIsFundSupport() {
return isFundSupport;
}
public void setLatestQrcode(String latestQrcode) {
this.latestQrcode = latestQrcode;
}
public void setIsFundSupport(Boolean isFundSupport) {
this.isFundSupport = isFundSupport;
}
public Boolean getIsMainEditor() {
return isMainEditor;
}
public Integer getReaderCount() {
return readerCount;
}
public void setIsMainEditor(Boolean isMainEditor) {
this.isMainEditor = isMainEditor;
}
public void setReaderCount(Integer readerCount) {
this.readerCount = readerCount;
}
public String getMainEditorName() {
return mainEditorName;
}
public BigDecimal getBookIncome() {
return bookIncome;
}
public void setMainEditorName(String mainEditorName) {
this.mainEditorName = mainEditorName;
}
public void setBookIncome(BigDecimal bookIncome) {
this.bookIncome = bookIncome;
}
public String getMainEditorPic() {
return mainEditorPic;
}
public BigDecimal getFundMoney() {
return fundMoney;
}
public void setMainEditorPic(String mainEditorPic) {
this.mainEditorPic = mainEditorPic;
}
public void setFundMoney(BigDecimal fundMoney) {
this.fundMoney = fundMoney;
}
public Boolean getIsHaveAdviser() {
return isHaveAdviser;
}
public Boolean getIsHaveFund() {
return isHaveFund;
}
public void setIsHaveAdviser(Boolean isHaveAdviser) {
this.isHaveAdviser = isHaveAdviser;
}
public void setIsHaveFund(Boolean isHaveFund) {
this.isHaveFund = isHaveFund;
}
public Long getBookScanCount() {
return bookScanCount;
}
public List<BookFundDto> getBookFunds() {
return bookFunds;
}
public void setBookScanCount(Long bookScanCount) {
this.bookScanCount = bookScanCount;
}
public void setBookFunds(List<BookFundDto> bookFunds) {
this.bookFunds = bookFunds;
}
public Long getBookQrCount() {
return bookQrCount;
}
public Integer getAgentType() {
return agentType;
}
public void setBookQrCount(Long bookQrCount) {
this.bookQrCount = bookQrCount;
}
public void setAgentType(Integer agentType) {
this.agentType = agentType;
}
public Boolean getIsFundSupport() {
return isFundSupport;
}
public List<Object> getApps() {
return apps;
}
public void setIsFundSupport(Boolean isFundSupport) {
this.isFundSupport = isFundSupport;
}
public void setApps(List<Object> apps) {
this.apps = apps;
}
public Integer getReaderCount() {
return readerCount;
}
public List<Object> getResourceFiles() {
return resourceFiles;
}
public void setReaderCount(Integer readerCount) {
this.readerCount = readerCount;
}
public void setResourceFiles(List<Object> resourceFiles) {
this.resourceFiles = resourceFiles;
}
public BigDecimal getBookIncome() {
return bookIncome;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getEndTime() {
return endTime;
}
public void setBookIncome(BigDecimal bookIncome) {
this.bookIncome = bookIncome;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public BigDecimal getFundMoney() {
return fundMoney;
}
public Long getSceneId() {
return sceneId;
}
public void setFundMoney(BigDecimal fundMoney) {
this.fundMoney = fundMoney;
}
public void setSceneId(Long sceneId) {
this.sceneId = sceneId;
}
public Boolean getIsHaveFund() {
return isHaveFund;
}
public Long getTempletId() {
return templetId;
}
public void setIsHaveFund(Boolean isHaveFund) {
this.isHaveFund = isHaveFund;
}
public void setTempletId(Long templetId) {
this.templetId = templetId;
}
public List<BookFundDto> getBookFunds() {
return bookFunds;
}
public String getTempletName() {
return templetName;
}
public void setBookFunds(List<BookFundDto> bookFunds) {
this.bookFunds = bookFunds;
}
public void setTempletName(String templetName) {
this.templetName = templetName;
}
public Integer getAgentType() {
return agentType;
}
public Long getBrowseCounts() {
return browseCounts;
}
public void setAgentType(Integer agentType) {
this.agentType = agentType;
}
public void setBrowseCounts(Long browseCounts) {
this.browseCounts = browseCounts;
}
public List<Object> getApps() {
return apps;
}
public Long getBrowserCounts() {
return browserCounts;
}
public void setApps(List<Object> apps) {
this.apps = apps;
}
public void setBrowserCounts(Long browserCounts) {
this.browserCounts = browserCounts;
}
public List<Object> getResourceFiles() {
return resourceFiles;
}
public Long getScanCount() {
return scanCount;
}
public void setResourceFiles(List<Object> resourceFiles) {
this.resourceFiles = resourceFiles;
}
public void setScanCount(Long scanCount) {
this.scanCount = scanCount;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getEndTime() {
return endTime;
}
public BigDecimal getIncome() {
return income;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public Long getSceneId() {
return sceneId;
}
public void setSceneId(Long sceneId) {
this.sceneId = sceneId;
}
public Long getTempletId() {
return templetId;
}
public void setTempletId(Long templetId) {
this.templetId = templetId;
}
public String getTempletName() {
return templetName;
}
public void setTempletName(String templetName) {
this.templetName = templetName;
}
public Long getBrowseCounts() {
return browseCounts;
}
public void setBrowseCounts(Long browseCounts) {
this.browseCounts = browseCounts;
}
public Long getBrowserCounts() {
return browserCounts;
}
public void setBrowserCounts(Long browserCounts) {
this.browserCounts = browserCounts;
}
public Long getScanCount() {
return scanCount;
}
public void setScanCount(Long scanCount) {
this.scanCount = scanCount;
}
public BigDecimal getIncome() {
return income;
}
public void setIncome(BigDecimal income) {
this.income = income;
}
public Long getBookAdviserId() {
return bookAdviserId;
}
public void setBookAdviserId(Long bookAdviserId) {
this.bookAdviserId = bookAdviserId;
}
public Boolean getRelationQrcode() {
return relationQrcode;
}
public void setRelationQrcode(Boolean relationQrcode) {
this.relationQrcode = relationQrcode;
}
public Long getTempleParentId() {
return templeParentId;
}
public void setTempleParentId(Long templeParentId) {
this.templeParentId = templeParentId;
}
public List<String> getTypeCodeNames() {
return typeCodeNames;
}
public void setTypeCodeNames(List<String> typeCodeNames) {
this.typeCodeNames = typeCodeNames;
}
public Integer getBookStatus() {
return bookStatus;
}
public void setBookStatus(Integer bookStatus) {
this.bookStatus = bookStatus;
}
@Override
public String toString() {
return "BookDto{" +
"bookId=" + bookId +
", typeCode='" + typeCode + '\'' +
", typeName='" + typeName + '\'' +
", isbn='" + isbn + '\'' +
", bookName='" + bookName + '\'' +
", bookPrice='" + bookPrice + '\'' +
", originName='" + originName + '\'' +
", remark='" + remark + '\'' +
", author='" + author + '\'' +
", publish='" + publish + '\'' +
", publishDate=" + publishDate +
", coverImg='" + coverImg + '\'' +
", detail='" + detail + '\'' +
", sponsor='" + sponsor + '\'' +
", organizer='" + organizer + '\'' +
", cn='" + cn + '\'' +
", releaseCycle='" + releaseCycle + '\'' +
", bookNum='" + bookNum + '\'' +
", programa='" + programa + '\'' +
", mailCode='" + mailCode + '\'' +
", address='" + address + '\'' +
", telephone='" + telephone + '\'' +
", mail='" + mail + '\'' +
", purpose='" + purpose + '\'' +
", adviserId=" + adviserId +
", adviserName='" + adviserName + '\'' +
", channelId=" + channelId +
", channelName='" + channelName + '\'' +
", qrcodeCount=" + qrcodeCount +
", appCount=" + appCount +
", productCount=" + productCount +
", latestQrcode='" + latestQrcode + '\'' +
", apps=" + apps +
", products=" + products +
", resourceFiles=" + resourceFiles +
", firstScanDate=" + firstScanDate +
", firstSceneName='" + firstSceneName + '\'' +
", issn='" + issn + '\'' +
", appId=" + appId +
", serialNumber='" + serialNumber + '\'' +
", isSelect=" + isSelect +
", adImg='" + adImg + '\'' +
", isMainEditor=" + isMainEditor +
", mainEditorName='" + mainEditorName + '\'' +
", mainEditorPic='" + mainEditorPic + '\'' +
", isHaveAdviser=" + isHaveAdviser +
", isFundSupport=" + isFundSupport +
", isHaveFund=" + isHaveFund +
", bookScanCount=" + bookScanCount +
", bookQrCount=" + bookQrCount +
", readerCount=" + readerCount +
", bookIncome=" + bookIncome +
", fundMoney=" + fundMoney +
", bookFunds=" + bookFunds +
", agentType=" + agentType +
", startTime=" + startTime +
", endTime=" + endTime +
", sceneId=" + sceneId +
", templeParentId=" + templeParentId +
", templetId=" + templetId +
", templetName='" + templetName + '\'' +
", browseCounts=" + browseCounts +
", browserCounts=" + browserCounts +
", scanCount=" + scanCount +
", FreezeStatus=" + FreezeStatus +
", income=" + income +
", bookAdviserId=" + bookAdviserId +
", relationQrcode=" + relationQrcode +
", noAuditNum=" + noAuditNum +
", transferor='" + transferor + '\'' +
", qrcodeUrl='" + qrcodeUrl + '\'' +
", messageCount=" + messageCount +
", typeCodeNames=" + typeCodeNames +
", location='" + location + '\'' +
", sceneName='" + sceneName + '\'' +
", qrRemark='" + qrRemark + '\'' +
", bookStatus=" + bookStatus +
'}';
}
public void setIncome(BigDecimal income) {
this.income = income;
}
public Long getBookAdviserId() {
return bookAdviserId;
}
public void setBookAdviserId(Long bookAdviserId) {
this.bookAdviserId = bookAdviserId;
}
public Boolean getRelationQrcode() {
return relationQrcode;
}
public void setRelationQrcode(Boolean relationQrcode) {
this.relationQrcode = relationQrcode;
}
public Long getTempleParentId() {
return templeParentId;
}
public void setTempleParentId(Long templeParentId) {
this.templeParentId = templeParentId;
}
public List<String> getTypeCodeNames() {
return typeCodeNames;
}
public void setTypeCodeNames(List<String> typeCodeNames) {
this.typeCodeNames = typeCodeNames;
}
public Integer getBookStatus() {
return bookStatus;
}
public void setBookStatus(Integer 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
public String toString() {
return "BookDto{" +
"bookId=" + bookId +
", typeCode='" + typeCode + '\'' +
", typeName='" + typeName + '\'' +
", isbn='" + isbn + '\'' +
", bookName='" + bookName + '\'' +
", bookPrice='" + bookPrice + '\'' +
", originName='" + originName + '\'' +
", remark='" + remark + '\'' +
", author='" + author + '\'' +
", publish='" + publish + '\'' +
", publishDate=" + publishDate +
", coverImg='" + coverImg + '\'' +
", detail='" + detail + '\'' +
", sponsor='" + sponsor + '\'' +
", organizer='" + organizer + '\'' +
", cn='" + cn + '\'' +
", releaseCycle='" + releaseCycle + '\'' +
", bookNum='" + bookNum + '\'' +
", programa='" + programa + '\'' +
", mailCode='" + mailCode + '\'' +
", address='" + address + '\'' +
", telephone='" + telephone + '\'' +
", mail='" + mail + '\'' +
", purpose='" + purpose + '\'' +
", adviserId=" + adviserId +
", adviserName='" + adviserName + '\'' +
", channelId=" + channelId +
", channelName='" + channelName + '\'' +
", qrcodeCount=" + qrcodeCount +
", appCount=" + appCount +
", productCount=" + productCount +
", latestQrcode='" + latestQrcode + '\'' +
", apps=" + apps +
", products=" + products +
", resourceFiles=" + resourceFiles +
", firstScanDate=" + firstScanDate +
", firstSceneName='" + firstSceneName + '\'' +
", issn='" + issn + '\'' +
", appId=" + appId +
", serialNumber='" + serialNumber + '\'' +
", isSelect=" + isSelect +
", adImg='" + adImg + '\'' +
", isMainEditor=" + isMainEditor +
", mainEditorName='" + mainEditorName + '\'' +
", mainEditorPic='" + mainEditorPic + '\'' +
", isHaveAdviser=" + isHaveAdviser +
", isFundSupport=" + isFundSupport +
", isHaveFund=" + isHaveFund +
", bookScanCount=" + bookScanCount +
", bookQrCount=" + bookQrCount +
", readerCount=" + readerCount +
", bookIncome=" + bookIncome +
", fundMoney=" + fundMoney +
", bookFunds=" + bookFunds +
", agentType=" + agentType +
", startTime=" + startTime +
", endTime=" + endTime +
", sceneId=" + sceneId +
", templeParentId=" + templeParentId +
", templetId=" + templetId +
", templetName='" + templetName + '\'' +
", browseCounts=" + browseCounts +
", browserCounts=" + browserCounts +
", scanCount=" + scanCount +
", FreezeStatus=" + FreezeStatus +
", income=" + income +
", bookAdviserId=" + bookAdviserId +
", relationQrcode=" + relationQrcode +
", noAuditNum=" + noAuditNum +
", transferor='" + transferor + '\'' +
", qrcodeUrl='" + qrcodeUrl + '\'' +
", messageCount=" + messageCount +
", typeCodeNames=" + typeCodeNames +
", location='" + location + '\'' +
", sceneName='" + sceneName + '\'' +
", qrRemark='" + qrRemark + '\'' +
", 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.biz.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.advertising.biz.AdvertisingSpaceBiz;
import com.pcloud.book.advertising.dao.AdvertisingAdviserPermissionDao;
import com.pcloud.book.advertising.dao.AdvertisingAgentPermissionDao;
import com.pcloud.book.advertising.dao.AdvertisingClickRecordDao;
import com.pcloud.book.advertising.dao.AdvertisingDistributionBookDao;
import com.pcloud.book.advertising.dao.AdvertisingExposureRecordDao;
import com.pcloud.book.advertising.dao.AdvertisingSpaceDao;
import com.pcloud.book.advertising.dto.AdvertisingSpaceDTO;
import com.pcloud.book.advertising.dto.DistributionAppDTO;
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.book.advertising.enums.AdPositionEnum;
import com.pcloud.book.advertising.enums.AdSourceEnum;
import com.pcloud.book.advertising.enums.DistributionTypeEnum;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.set.BookSet;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.book.util.common.CommonUtils;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.resourcecenter.product.dto.Product4BookDTO;
/**
* Description 广告位业务逻辑层接口实现类
* @author PENG
* @date 2019/2/28
*/
@Component("advertisingSpaceBiz")
public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
@Autowired
private AdvertisingSpaceDao advertisingSpaceDao;
@Autowired
private AdviserConsr adviserConsr;
@Autowired
private AdvertisingDistributionBookDao advertisingDistributionBookDao;
@Autowired
private BookBiz bookBiz;
@Autowired
private AdvertisingAgentPermissionDao advertisingAgentPermissionDao;
@Autowired
private BookDao bookDao;
@Autowired
private BookSet bookSet;
@Autowired
private AdvertisingAdviserPermissionDao advertisingAdviserPermissionDao;
@Autowired
private QrcodeSceneService qrcodeSceneService;
@Autowired
private ChannelConsr channelConsr;
@Autowired
private AdvertisingExposureRecordDao advertisingExposureRecordDao;
@Autowired
private AdvertisingClickRecordDao advertisingClickRecordDao;
@Autowired
private ProductConsr productConsr;
@Autowired
private AppConsr appConsr;
/**
* 创建广告位
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ParamLog("创建广告位")
public Long create(AdvertisingSpace advertisingSpace) throws BizException {
if (null == advertisingSpace.getAdName() || null == advertisingSpace.getAdPosition()
|| null == advertisingSpace.getAdSource() || null == advertisingSpace.getAdLink()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
if (!AdPositionEnum.checkCodeExist(advertisingSpace.getAdPosition())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位置选择有误!");
}
if (!ArrayUtils.contains(AdSourceEnum.AD_SOURCE_GATHER, advertisingSpace.getAdSource())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告来源选择有误!");
}
advertisingSpace.setDistributionType(DistributionTypeEnum.SIGN_BOOK.value);
advertisingSpace.setIsOpen(true);
advertisingSpaceDao.insert(advertisingSpace);
return advertisingSpace.getId();
}
/**
* 修改广告位
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ParamLog(value = "修改广告位", isAfterReturn = false)
public void update(AdvertisingSpace advertisingSpace) throws BizException {
if (null == advertisingSpace.getId() || null == advertisingSpace.getAdName() || null == advertisingSpace.getAdPosition()
|| null == advertisingSpace.getAdSource() || null == advertisingSpace.getAdLink()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
if (!AdPositionEnum.checkCodeExist(advertisingSpace.getAdPosition())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位置选择有误!");
}
if (!ArrayUtils.contains(AdSourceEnum.AD_SOURCE_GATHER, advertisingSpace.getAdSource())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告来源选择有误!");
}
AdvertisingSpace space = advertisingSpaceDao.getById(advertisingSpace.getId());
if (null == space) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位不存在或已删除!");
}
advertisingSpaceDao.update(advertisingSpace);
}
/**
* 停用广告位
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ParamLog(value = "停用广告位", isAfterReturn = false)
public void stop(AdvertisingSpace advertisingSpace) throws BizException {
if (null == advertisingSpace.getId()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
AdvertisingSpace space = advertisingSpaceDao.getById(advertisingSpace.getId());
if (null == space) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位不存在或已删除!");
}
if (!space.getIsOpen()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位已停用!");
}
advertisingSpace.setIsOpen(false);
advertisingSpaceDao.update(advertisingSpace);
}
/**
* 删除广告位
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ParamLog(value = "删除广告位", isAfterReturn = false)
public void delete(AdvertisingSpace advertisingSpace) throws BizException {
if (null == advertisingSpace.getId()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
AdvertisingSpace space = advertisingSpaceDao.getById(advertisingSpace.getId());
if (null == space) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位不存在或已删除!");
}
if (DistributionTypeEnum.NO_SIGN_BOOK.value.equals(space.getDistributionType())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位不能删除!");
} else {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adId", advertisingSpace.getId());
Boolean hasBook = (Boolean) advertisingDistributionBookDao.getBy(paramMap, "checkAdSpaceHasBook");
if (null != hasBook && hasBook) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位不能删除!");
}
}
advertisingSpaceDao.deleteById(advertisingSpace.getId());
}
/**
* 获取广告位信息
*/
@Override
@ParamLog(value = "获取广告位信息")
public AdvertisingSpaceDTO get(Long adId) throws BizException {
return advertisingSpaceDao.getDTOById(adId);
}
/**
* 投放书刊
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ParamLog(value = "投放书刊", isAfterReturn = false)
public void distributeBook(AdvertisingDistributionBook book) throws BizException {
if (null == book.getAdId() || null == book.getDistributionType()
|| !ArrayUtils.contains(DistributionTypeEnum.DISTRIBUTION_TYPE_GATHER, book.getDistributionType())
|| (DistributionTypeEnum.SIGN_BOOK.value.equals(book.getDistributionType()) && (ListUtils.isEmpty(book.getBooks()) || null == book.getAdviserId()))) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
if (DistributionTypeEnum.NO_SIGN_BOOK.value.equals(book.getDistributionType())) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adId", book.getAdId());
AdvertisingSpaceDTO spaceDTO = (AdvertisingSpaceDTO) advertisingSpaceDao.getBy(paramMap, "getNoSignBookAd");
if (null != spaceDTO) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "只能创建一个不指定书刊的广告位!");
}
}
AdvertisingSpace space = new AdvertisingSpace();
space.setId(book.getAdId());
space.setDistributionType(book.getDistributionType());
advertisingSpaceDao.update(space);
if (DistributionTypeEnum.SIGN_BOOK.value.equals(book.getDistributionType())) {
boolean paramError = book.getBooks().stream().anyMatch(bookAdviser -> null == bookAdviser.getBookId() || null == bookAdviser.getChannelId());
if (paramError) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
List<Long> bookIds = book.getBooks().stream().map(BookAdviser::getBookId).collect(Collectors.toList());
List<Long> existIds = advertisingDistributionBookDao.checkBookIdExist(bookIds);
if (!ListUtils.isEmpty(existIds)) {
Long bookId = existIds.get(0);
BookDto bookDto = bookBiz.getBaseById(bookId);
throw new BookBizException(BookBizException.PARAM_IS_ERROR, StringUtil.addBracket(bookDto.getBookName()) + "等" + existIds.size() + "本书已投放广告位!");
}
List<AdvertisingDistributionBook> list = new ArrayList<>();
Long agentId = adviserConsr.getAgentIdByAdviser(book.getAdviserId());
for (BookAdviser bookAdviser : book.getBooks()) {
AdvertisingDistributionBook distributionBook = new AdvertisingDistributionBook();
distributionBook.setAdId(book.getAdId());
distributionBook.setBookId(bookAdviser.getBookId());
distributionBook.setChannelId(bookAdviser.getChannelId());
distributionBook.setAdviserId(book.getAdviserId());
distributionBook.setAgentId(agentId);
list.add(distributionBook);
}
advertisingDistributionBookDao.batchInsert(list);
}
}
/**
* 获取出版社书刊权限
*/
@Override
@ParamLog("获取出版社书刊权限")
public Boolean getAgentPermission(Long agentId) throws BizException {
AdvertisingAgentPermission permission = advertisingAgentPermissionDao.getByAgentId(agentId);
return null == permission ? true : permission.getIsOpen();
}
/**
* 设置出版社书刊权限
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ParamLog(value = "设置出版社书刊权限", isAfterReturn = false)
public void setAgentPermission(AdvertisingAgentPermission agentPermission) throws BizException {
if (null == agentPermission.getAgentId() || null == agentPermission.getIsOpen()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
AdvertisingAgentPermission permission = advertisingAgentPermissionDao.getByAgentId(agentPermission.getAgentId());
if (null == permission) {
advertisingAgentPermissionDao.insert(agentPermission);
} else {
agentPermission.setId(permission.getId());
advertisingAgentPermissionDao.update(agentPermission);
}
}
/**
* 设置编辑书刊权限
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ParamLog(value = "设置编辑书刊权限", isAfterReturn = false)
public void setAdviserPermission(AdvertisingAdviserPermission adviserPermission) throws BizException {
if (null == adviserPermission.getAdviserId() || null == adviserPermission.getIsOpen()
|| (!adviserPermission.getIsBatchOperation() && (null == adviserPermission.getBookId() || null == adviserPermission.getChannelId()))) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误!");
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adviserId", adviserPermission.getAdviserId());
if (!adviserPermission.getIsBatchOperation()) {
paramMap.put("bookId", adviserPermission.getBookId());
paramMap.put("channelId", adviserPermission.getChannelId());
AdvertisingAdviserPermission permission = (AdvertisingAdviserPermission) advertisingAdviserPermissionDao.getBy(paramMap, "getByAdviserId");
if (null == permission) {
advertisingAdviserPermissionDao.insert(adviserPermission);
} else {
adviserPermission.setId(permission.getId());
advertisingAdviserPermissionDao.update(adviserPermission);
}
} else {
// 删除编辑所有数据
advertisingAdviserPermissionDao.deleteByAdviserId(adviserPermission.getAdviserId());
List<BookDto> bookList = bookDao.listBookIdAndChannelId4Adviser(paramMap);
if (!ListUtils.isEmpty(bookList)) {
List<AdvertisingAdviserPermission> list = new ArrayList<>();
for (BookDto bookDto : bookList) {
AdvertisingAdviserPermission permission = new AdvertisingAdviserPermission();
permission.setAdviserId(adviserPermission.getAdviserId());
permission.setIsOpen(adviserPermission.getIsOpen());
permission.setBookId(bookDto.getBookId());
permission.setChannelId(bookDto.getChannelId());
list.add(permission);
}
advertisingAdviserPermissionDao.batchInsert(list);
}
}
}
/**
* 编辑端获取书刊列表
*/
@Override
public PageBean listBook4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException {
Long agentId = adviserConsr.getAgentIdByAdviser(adviserId);
paramMap.put("agentId", agentId);
PageBean pageBean = bookDao.listPage(pageParam, paramMap, "listBook4Adviser");
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(0, 0, new ArrayList<>());
}
// 填充渠道基础信息
bookSet.setChannelInfoList(pageBean.getRecordList());
return pageBean;
}
/**
* 平台端获取某编辑书刊列表
*/
@Override
public PageBean listBook4Platform(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException {
Long agentId = adviserConsr.getAgentIdByAdviser(adviserId);
paramMap.put("agentId", agentId);
PageBean pageBean = bookDao.listPage(pageParam, paramMap, "listBook4Platform");
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(0, 0, new ArrayList<>());
}
return pageBean;
}
/**
* 获取广告位投放书刊列表
*/
@Override
public PageBean distributionBookList(Long adId, String name, PageParam pageParam) throws BizException {
AdvertisingSpace space = advertisingSpaceDao.getById(adId);
if (null == space) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位不存在或已删除!");
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adId", adId);
paramMap.put("name", StringUtil.isEmpty(name) ? null : name);
PageBean pageBean;
if (DistributionTypeEnum.SIGN_BOOK.value.equals(space.getDistributionType())) {
pageBean = bookDao.listPage(pageParam, paramMap, "listBook4AdvertisingSpace");
} else {
pageBean = bookDao.listPage(pageParam, paramMap, "listBook4AdvertisingSpaceNoSignBook");
}
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(0, 0, new ArrayList<>());
}
// 设置编辑名称
bookSet.setAdviserName4BookDto(pageBean.getRecordList());
// 设置出版名称
bookSet.setAgentName4BookDto(pageBean.getRecordList());
// 填充渠道公众号信息
bookSet.setChannelOfficialAccountInfoList(pageBean.getRecordList());
for (Object object : pageBean.getRecordList()) {
BookDto bookDto = (BookDto) object;
if (!DistributionTypeEnum.SIGN_BOOK.value.equals(space.getDistributionType())) {
bookDto.setDistributionTime(space.getCreateTime());
}
// 曝光量
Long exposureNum = getExposureNumByBookId(adId, bookDto.getBookId(), bookDto.getAdviserId(), bookDto.getChannelId());
bookDto.setExposureNum(exposureNum);
// 点击量
Long clickNum = getClickNumByBookId(adId, bookDto.getBookId(), bookDto.getAdviserId(), bookDto.getChannelId());
bookDto.setClickNum(clickNum);
}
return pageBean;
}
/**
* 获取广告位投放作品/应用数据统计
*/
@Override
public PageBean distributionAppStatics(Long adId, PageParam pageParam) throws BizException {
AdvertisingSpace space = advertisingSpaceDao.getById(adId);
if (null == space) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "广告位不存在或已删除!");
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adId", adId);
PageBean pageBean = advertisingExposureRecordDao.listPage(pageParam, paramMap, "distributionAppStatics");
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(0, 0, new ArrayList<>());
}
List<Long> productIds = new ArrayList<>();
List<Long> appIds = new ArrayList<>();
for (Object object : pageBean.getRecordList()) {
DistributionAppDTO dto = (DistributionAppDTO) object;
if ("PRODUCT".equals(dto.getFromType())) {
productIds.add(dto.getFromId());
} else if ("APP".equals(dto.getFromType())) {
appIds.add(dto.getFromId());
}
}
Map<Long, Product4BookDTO> productMap = productConsr.getProBasesWithSceneByIds(productIds);
Map<Long, AppDto> appMap = appConsr.getBaseByIds(appIds);
for (Object object : pageBean.getRecordList()) {
DistributionAppDTO dto = (DistributionAppDTO) object;
if ("PRODUCT".equals(dto.getFromType()) && !MapUtils.isEmpty(productMap) && productMap.containsKey(dto.getFromId())) {
Product4BookDTO product4BookDTO = productMap.get(dto.getFromId());
dto.setTitle(product4BookDTO.getProductName());
dto.setSceneCode(product4BookDTO.getProductSceneCode());
dto.setSceneName(product4BookDTO.getProductSceneName());
dto.setCreateUser(product4BookDTO.getMerchantId());
dto.setCreateUserName(product4BookDTO.getMerchantName());
dto.setCreateRole(product4BookDTO.getIsSuperMerchant() ? "超级作者" : "普通作者");
} else if ("APP".equals(dto.getFromType()) && !MapUtils.isEmpty(appMap) && appMap.containsKey(dto.getFromId())) {
AppDto appDto = appMap.get(dto.getFromId());
dto.setTitle(appDto.getTitle());
dto.setSceneCode(appDto.getSceneCode());
dto.setSceneName(appDto.getSceneName());
dto.setCreateUser(appDto.getCreatedUser());
dto.setCreateUserName(appDto.getAdviserName());
dto.setCreateRole("编辑");
}
}
return pageBean;
}
/**
* 获取广告位投放时间统计
*/
@Override
@ParamLog("获取广告位投放时间统计")
public List<Object> distributionDateStatics(Long adId, Integer day) throws BizException {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adId", adId);
Date startTime = DateUtils.addDay(new Date(), -day);
Date endTime = DateUtils.addDay(new Date(), -1);
paramMap.put("collectDates", CommonUtils.collectLocalDates(startTime, endTime));
return advertisingExposureRecordDao.listBy(paramMap, "distributionDateStatics");
}
/**
* 获取书刊广告位曝光量
*/
private Long getExposureNumByBookId(Long adId, Long bookId, Long adviserId, Long channelId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adId", adId);
paramMap.put("bookId", bookId);
paramMap.put("adviserId", adviserId);
paramMap.put("channelId", channelId);
Long exposureNum = (Long) advertisingExposureRecordDao.getBy(paramMap, "getExposureNum");
return null == exposureNum ? 0L : exposureNum;
}
/**
* 获取书刊广告位点击量
*/
private Long getClickNumByBookId(Long adId, Long bookId, Long adviserId, Long channelId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adId", adId);
paramMap.put("bookId", bookId);
paramMap.put("adviserId", adviserId);
paramMap.put("channelId", channelId);
Long clickNum = (Long) advertisingClickRecordDao.getBy(paramMap, "getClickNum");
return null == clickNum ? 0L : clickNum;
}
/**
* 获取书刊广告位曝光量
*/
private Long getExposureNumByAdId(Long adId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adId", adId);
Long exposureNum = (Long) advertisingExposureRecordDao.getBy(paramMap, "getExposureNum");
return null == exposureNum ? 0L : exposureNum;
}
/**
* 获取书刊广告位点击量
*/
private Long getClickNumByAdId(Long adId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adId", adId);
Long clickNum = (Long) advertisingClickRecordDao.getBy(paramMap, "getClickNum");
return null == clickNum ? 0L : clickNum;
}
/**
* 获取广告位列表
*/
@Override
@ParamLog("获取广告位列表")
public PageBean list(String name, PageParam pageParam) throws BizException {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("name", StringUtil.isEmpty(name) ? null : name);
PageBean pageBean = advertisingSpaceDao.listPage(pageParam, paramMap, "list");
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(0, 0, new ArrayList<>());
}
// 填充投放书籍
for (Object object : pageBean.getRecordList()) {
AdvertisingSpaceDTO spaceDTO = (AdvertisingSpaceDTO) object;
if (null == spaceDTO) {
continue;
}
spaceDTO.setExposureNum(getExposureNumByAdId(spaceDTO.getId()));
spaceDTO.setClickNum(getClickNumByAdId(spaceDTO.getId()));
if (DistributionTypeEnum.SIGN_BOOK.value.equals(spaceDTO.getDistributionType())) {
List<AdvertisingDistributionBook> list = advertisingDistributionBookDao.getByAdId(spaceDTO.getId());
if (!ListUtils.isEmpty(list)) {
spaceDTO.setBookNum(list.size());
Long bookId = list.get(0).getBookId();
BookDto bookDto = bookBiz.getBaseById(bookId);
spaceDTO.setBookName(StringUtil.addBracket(bookDto.getBookName()));
} else {
spaceDTO.setBookNum(0);
}
}
}
return pageBean;
}
/**
* 客户端获取书刊配置的广告位信息
*/
@Override
@ParamLog("客户端获取书刊配置的广告位信息")
public AdvertisingSpaceDTO get4Wechat(Long sceneId, Long adviserId, Long channelId) throws BizException {
Long agentId = adviserConsr.getAgentIdByAdviser(adviserId);
Long bookId = ResponseHandleUtil.parseResponse(qrcodeSceneService.getBookId4SceneId(sceneId), Long.class);
if (null == agentId || null == bookId) {
return new AdvertisingSpaceDTO();
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("adviserId", adviserId);
paramMap.put("channelId", channelId);
paramMap.put("agentId", agentId);
Boolean bookIsOpen = (Boolean) advertisingAdviserPermissionDao.getBy(paramMap, "checkBookOpen");
if (null == bookIsOpen || !bookIsOpen) {
return new AdvertisingSpaceDTO();
}
AdvertisingSpaceDTO spaceDTO = (AdvertisingSpaceDTO) advertisingSpaceDao.getBy(paramMap, "getDTOByBookId");
if (null == spaceDTO) {
spaceDTO = (AdvertisingSpaceDTO) advertisingSpaceDao.getBy(paramMap, "getNoSignBookAd");
}
if (null != spaceDTO) {
spaceDTO.setBookId(bookId);
}
return spaceDTO;
}
/**
* 曝光量埋点
*/
@Override
@ParamLog(value = "曝光量埋点", isAfterReturn = false)
public void addExposureTrack(AdvertisingExposureRecord advertisingExposureRecord) throws BizException {
Long agentId = channelConsr.getParentId(advertisingExposureRecord.getChannelId());
advertisingExposureRecord.setAgentId(agentId);
advertisingExposureRecordDao.insert(advertisingExposureRecord);
}
/**
* 点击量埋点
*/
@Override
@ParamLog(value = "点击量埋点", isAfterReturn = false)
public void addClickTrack(AdvertisingClickRecord advertisingClickRecord) throws BizException {
Long agentId = channelConsr.getParentId(advertisingClickRecord.getChannelId());
advertisingClickRecord.setAgentId(agentId);
advertisingClickRecordDao.insert(advertisingClickRecord);
}
}
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};
}
package com.pcloud.book.advertising.facade;
import org.codehaus.jackson.JsonParseException;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
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.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
/**
* Description 广告位接口层接口
* @author PENG
* @date 2019/2/28
*/
@FeignClient(value = "pcloud-service-book", qualifier = "advertisingSpaceFacadeCloud", path = "book/v1.0/advertising")
@Api(description = "广告位接口层接口")
public interface AdvertisingSpaceFacade {
/**
* 创建广告位
* @param token 用户身份信息
* @param advertisingSpace 广告位实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "创建广告位", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "advertisingSpace", value = "广告位实体", required = false, dataType = "AdvertisingSpace", paramType = "body")
})
@RequestMapping(value = "create", method = RequestMethod.POST)
ResponseDto<?> create(@RequestHeader("token") String token, @RequestBody AdvertisingSpace advertisingSpace)
throws PermissionException, BizException, JsonParseException;
/**
* 修改广告位
* @param token 用户身份信息
* @param advertisingSpace 广告位实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "修改广告位", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "advertisingSpace", value = "广告位实体", required = false, dataType = "AdvertisingSpace", paramType = "body")
})
@RequestMapping(value = "update", method = RequestMethod.POST)
ResponseDto<?> update(@RequestHeader("token") String token, @RequestBody AdvertisingSpace advertisingSpace)
throws PermissionException, BizException, JsonParseException;
/**
* 获取广告位信息
* @param token 用户身份信息
* @param adId 广告位ID
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "修改广告位", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "adId", value = "广告位ID", required = false, dataType = "Long", paramType = "query")
})
@RequestMapping(value = "get", method = RequestMethod.GET)
ResponseDto<?> get(@RequestHeader("token") String token, @RequestParam(value = "adId", required = false) Long adId)
throws PermissionException, BizException, JsonParseException;
/**
* 停用广告位
* @param token 用户身份信息
* @param advertisingSpace 广告位实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "停用广告位", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "advertisingSpace", value = "广告位实体", required = false, dataType = "AdvertisingSpace", paramType = "body")
})
@RequestMapping(value = "stop", method = RequestMethod.POST)
ResponseDto<?> stop(@RequestHeader("token") String token, @RequestBody AdvertisingSpace advertisingSpace)
throws PermissionException, BizException, JsonParseException;
/**
* 删除广告位
* @param token 用户身份信息
* @param advertisingSpace 广告位实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "删除广告位", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "advertisingSpace", value = "广告位实体", required = false, dataType = "AdvertisingSpace", paramType = "body")
})
@RequestMapping(value = "delete", method = RequestMethod.POST)
ResponseDto<?> delete(@RequestHeader("token") String token, @RequestBody AdvertisingSpace advertisingSpace)
throws PermissionException, BizException, JsonParseException;
/**
* 投放书刊
* @param token 用户身份信息
* @param advertisingDistributionBook 广告位书刊实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "投放书刊", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "advertisingDistributionBook", value = "广告位书刊实体", required = false, dataType = "AdvertisingDistributionBook", paramType = "body")
})
@RequestMapping(value = "distributeBook", method = RequestMethod.POST)
ResponseDto<?> distributeBook(@RequestHeader("token") String token, @RequestBody AdvertisingDistributionBook advertisingDistributionBook)
throws PermissionException, BizException, JsonParseException;
/**
* 获取出版社书刊权限
* @param token 用户身份信息
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "获取出版社书刊权限", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "用户身份信息", required = false, dataType = "string", paramType = "header")
})
@RequestMapping(value = "getAgentPermission", method = RequestMethod.GET)
ResponseDto<?> getAgentPermission(@RequestHeader("token") String token)
throws PermissionException, BizException, JsonParseException;
/**
* 设置出版社书刊权限
* @param token 用户身份信息
* @param advertisingAgentPermission 广告位出版权限实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "设置出版社书刊权限", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "advertisingAgentPermission", value = "广告位出版权限实体", required = false, dataType = "AdvertisingAgentPermission", paramType = "body")
})
@RequestMapping(value = "setAgentPermission", method = RequestMethod.POST)
ResponseDto<?> setAgentPermission(@RequestHeader("token") String token, @RequestBody AdvertisingAgentPermission advertisingAgentPermission)
throws PermissionException, BizException, JsonParseException;
/**
* 设置编辑书刊权限
* @param token 用户身份信息
* @param advertisingAdviserPermission 广告位编辑权限实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "设置编辑书刊权限", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "advertisingAdviserPermission", value = "广告位编辑权限实体", required = false, dataType = "AdvertisingAdviserPermission", paramType = "body")
})
@RequestMapping(value = "setAdviserPermission", method = RequestMethod.POST)
ResponseDto<?> setAdviserPermission(@RequestHeader("token") String token, @RequestBody AdvertisingAdviserPermission advertisingAdviserPermission)
throws PermissionException, BizException, JsonParseException;
/**
* 编辑端获取书刊列表
* @param token 用户身份信息
* @param name 书籍名称
* @param currentPage 当前页
* @param numPerPage 每页条数
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "编辑端获取书刊列表", httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "name", value = "书籍名称", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "currentPage", value = "当前页", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "numPerPage", value = "每页条数", dataType = "int", paramType = "query")
})
@RequestMapping(value = "listBook4Adviser", method = RequestMethod.GET)
ResponseDto<?> listBook4Adviser(@RequestHeader("token") String token, @RequestParam(value = "name", required = false) String name,
@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "numPerPage", required = false) Integer numPerPage)
throws PermissionException, BizException, JsonParseException;
/**
* 平台端获取某编辑书刊列表
* @param token 用户身份信息
* @param adviserId 编辑ID
* @param name 书籍名称
* @param currentPage 当前页
* @param numPerPage 每页条数
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "平台端获取某编辑书刊列表", httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "adviserId", value = "编辑ID", dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "name", value = "书籍名称", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "currentPage", value = "当前页", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "numPerPage", value = "每页条数", dataType = "int", paramType = "query")
})
@RequestMapping(value = "listBook4Platform", method = RequestMethod.GET)
ResponseDto<?> listBook4Platform(@RequestHeader("token") String token, @RequestParam(value = "adviserId", required = false) Long adviserId,
@RequestParam(value = "name", required = false) String name, @RequestParam(value = "currentPage", required = false) Integer currentPage,
@RequestParam(value = "numPerPage", required = false) Integer numPerPage) throws PermissionException, BizException, JsonParseException;
/**
* 获取广告位列表
* @param token 用户身份信息
* @param name 广告位名称
* @param currentPage 当前页
* @param numPerPage 每页条数
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "获取广告位列表", httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "name", value = "广告位名称", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "currentPage", value = "当前页", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "numPerPage", value = "每页条数", dataType = "int", paramType = "query")
})
@RequestMapping(value = "list", method = RequestMethod.GET)
ResponseDto<?> list(@RequestHeader("token") String token, @RequestParam(value = "name", required = false) String name,
@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "numPerPage", required = false) Integer numPerPage)
throws PermissionException, BizException, JsonParseException;
/**
* 获取广告位投放书刊列表
* @param token 用户身份信息
* @param adId 广告位ID
* @param name 书刊名称
* @param currentPage 当前页
* @param numPerPage 每页条数
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "获取广告位投放书刊列表", httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "adId", value = "广告位ID", dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "name", value = "书刊名称", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "currentPage", value = "当前页", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "numPerPage", value = "每页条数", dataType = "int", paramType = "query")
})
@RequestMapping(value = "distributionBookList", method = RequestMethod.GET)
ResponseDto<?> distributionBookList(@RequestHeader("token") String token, @RequestParam(value = "adId", required = false) Long adId,
@RequestParam(value = "name", required = false) String name, @RequestParam(value = "currentPage", required = false) Integer currentPage,
@RequestParam(value = "numPerPage", required = false) Integer numPerPage) throws PermissionException, BizException, JsonParseException;
/**
* 获取广告位投放作品/应用数据统计
* @param token 用户身份信息
* @param adId 广告位ID
* @param currentPage 当前页
* @param numPerPage 每页条数
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "获取广告位投放作品/应用数据统计", httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "adId", value = "广告位ID", dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "currentPage", value = "当前页", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "numPerPage", value = "每页条数", dataType = "int", paramType = "query")
})
@RequestMapping(value = "distributionAppStatics", method = RequestMethod.GET)
ResponseDto<?> distributionAppStatics(@RequestHeader("token") String token, @RequestParam(value = "adId", required = false) Long adId,
@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "numPerPage", required = false) Integer numPerPage)
throws PermissionException, BizException, JsonParseException;
/**
* 获取广告位投放时间统计
* @param token 用户身份信息
* @param adId 广告位ID
* @param day 天数
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "获取广告位投放时间统计", httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "adId", value = "广告位ID", dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "day", value = "天数", dataType = "Long", paramType = "query")
})
@RequestMapping(value = "distributionDateStatics", method = RequestMethod.GET)
ResponseDto<?> distributionDateStatics(@RequestHeader("token") String token, @RequestParam(value = "adId", required = false) Long adId,
@RequestParam(value = "day", required = false) Integer day) throws PermissionException, BizException, JsonParseException;
/**
* 获取书刊配置的广告位信息
* @param userInfo 用户身份信息
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "获取书刊配置的广告位信息", httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "userInfo", value = "用户身份信息", dataType = "string", paramType = "header")
})
@RequestMapping(value = "get4Wechat", method = RequestMethod.GET)
ResponseDto<?> get4Wechat(@CookieValue("userInfo") String userInfo)
throws PermissionException, BizException, JsonParseException;
/**
* 曝光量埋点
* @param userInfo 用户身份信息
* @param advertisingExposureRecord 广告位曝光实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "曝光量埋点", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "userInfo", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "advertisingExposureRecord", value = "广告位曝光实体", required = false, dataType = "AdvertisingExposureRecord", paramType = "body")
})
@RequestMapping(value = "addExposureTrack", method = RequestMethod.POST)
ResponseDto<?> addExposureTrack(@CookieValue("userInfo") String userInfo, @RequestBody AdvertisingExposureRecord advertisingExposureRecord)
throws PermissionException, BizException, JsonParseException;
/**
* 点击量埋点
* @param userInfo 用户身份信息
* @param advertisingClickRecord 广告位点击实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation(value = "点击量埋点", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "userInfo", value = "用户身份信息", required = false, dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "advertisingClickRecord", value = "广告位点击实体", required = false, dataType = "AdvertisingClickRecord", paramType = "body")
})
@RequestMapping(value = "addClickTrack", method = RequestMethod.POST)
ResponseDto<?> addClickTrack(@CookieValue("userInfo") String userInfo, @RequestBody AdvertisingClickRecord advertisingClickRecord)
throws PermissionException, BizException, JsonParseException;
}
package com.pcloud.book.advertising.facade.impl;
import java.util.HashMap;
import java.util.Map;
import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
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 com.pcloud.book.advertising.biz.AdvertisingSpaceBiz;
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.book.advertising.facade.AdvertisingSpaceFacade;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
import com.pcloud.common.utils.string.StringUtil;
/**
* Description 广告位接口层接口实现类
* @author PENG
* @date 2019/2/28
*/
@RestController("advertisingSpaceFacade")
@RequestMapping("/advertising")
public class AdvertisingSpaceFacadeImpl implements AdvertisingSpaceFacade {
@Autowired
private AdvertisingSpaceBiz advertisingSpaceBiz;
/**
* 创建广告位
*/
@Override
@RequestMapping(value = "create", method = RequestMethod.POST)
public ResponseDto<?> create(@RequestHeader("token") String token, @RequestBody AdvertisingSpace advertisingSpace)
throws PermissionException, BizException, JsonParseException {
if (null == advertisingSpace) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
SessionUtil.getToken4Redis(token);
Map<String, Object> result = new HashMap<>();
result.put("adId", advertisingSpaceBiz.create(advertisingSpace));
return new ResponseDto<>(result);
}
/**
* 修改广告位
*/
@Override
@RequestMapping(value = "update", method = RequestMethod.POST)
public ResponseDto<?> update(@RequestHeader("token") String token, @RequestBody AdvertisingSpace advertisingSpace)
throws PermissionException, BizException, JsonParseException {
if (null == advertisingSpace) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
SessionUtil.getToken4Redis(token);
advertisingSpaceBiz.update(advertisingSpace);
return new ResponseDto<>();
}
/**
* 获取广告位信息
*/
@Override
@RequestMapping(value = "get", method = RequestMethod.GET)
public ResponseDto<?> get(@RequestHeader("token") String token, @RequestParam(value = "adId", required = false) Long adId)
throws PermissionException, BizException, JsonParseException {
if (null == adId) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(advertisingSpaceBiz.get(adId));
}
/**
* 停用广告位
*/
@Override
@RequestMapping(value = "stop", method = RequestMethod.POST)
public ResponseDto<?> stop(@RequestHeader("token") String token, @RequestBody AdvertisingSpace advertisingSpace)
throws PermissionException, BizException, JsonParseException {
if (null == advertisingSpace) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
SessionUtil.getToken4Redis(token);
advertisingSpaceBiz.stop(advertisingSpace);
return new ResponseDto<>();
}
/**
* 删除广告位
*/
@Override
@RequestMapping(value = "delete", method = RequestMethod.POST)
public ResponseDto<?> delete(@RequestHeader("token") String token, @RequestBody AdvertisingSpace advertisingSpace)
throws PermissionException, BizException, JsonParseException {
if (null == advertisingSpace) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
SessionUtil.getToken4Redis(token);
advertisingSpaceBiz.delete(advertisingSpace);
return new ResponseDto<>();
}
/**
* 投放书刊
*/
@Override
@RequestMapping(value = "distributeBook", method = RequestMethod.POST)
public ResponseDto<?> distributeBook(@RequestHeader("token") String token, @RequestBody AdvertisingDistributionBook advertisingDistributionBook)
throws PermissionException, BizException, JsonParseException {
if (null == advertisingDistributionBook) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
advertisingSpaceBiz.distributeBook(advertisingDistributionBook);
return new ResponseDto<>();
}
/**
* 获取出版社书刊权限
*/
@Override
@RequestMapping(value = "getAgentPermission", method = RequestMethod.GET)
public ResponseDto<?> getAgentPermission(@RequestHeader("token") String token)
throws PermissionException, BizException, JsonParseException {
Long agentId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
Map<String, Object> result = new HashMap<>();
result.put("isOpen", advertisingSpaceBiz.getAgentPermission(agentId));
return new ResponseDto<>(result);
}
/**
* 设置出版社书刊权限
*/
@Override
@RequestMapping(value = "setAgentPermission", method = RequestMethod.POST)
public ResponseDto<?> setAgentPermission(@RequestHeader("token") String token, @RequestBody AdvertisingAgentPermission advertisingAgentPermission)
throws PermissionException, BizException, JsonParseException {
if (null == advertisingAgentPermission) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
Long agentId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
advertisingAgentPermission.setAgentId(agentId);
advertisingSpaceBiz.setAgentPermission(advertisingAgentPermission);
return new ResponseDto<>();
}
/**
* 设置编辑书刊权限
*/
@Override
@RequestMapping(value = "setAdviserPermission", method = RequestMethod.POST)
public ResponseDto<?> setAdviserPermission(@RequestHeader("token") String token, @RequestBody AdvertisingAdviserPermission advertisingAdviserPermission)
throws PermissionException, BizException, JsonParseException {
if (null == advertisingAdviserPermission) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
advertisingAdviserPermission.setAdviserId(adviserId);
if (null == advertisingAdviserPermission.getIsBatchOperation()) {
advertisingAdviserPermission.setIsBatchOperation(false);
}
advertisingSpaceBiz.setAdviserPermission(advertisingAdviserPermission);
return new ResponseDto<>();
}
/**
* 编辑端获取书刊列表
*/
@Override
@RequestMapping(value = "listBook4Adviser", method = RequestMethod.GET)
public ResponseDto<?> listBook4Adviser(@RequestHeader("token") String token, @RequestParam(value = "name", required = false) String name,
@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "numPerPage", required = false) Integer numPerPage)
throws PermissionException, BizException, JsonParseException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
throw BookBizException.PAGE_PARAM_DELETION;
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adviserId", adviserId);
paramMap.put("name", StringUtil.isEmpty(name) ? null : name);
return new ResponseDto<>(advertisingSpaceBiz.listBook4Adviser(paramMap, new PageParam(currentPage, numPerPage), adviserId));
}
/**
* 平台端获取某编辑书刊列表
*/
@Override
@RequestMapping(value = "listBook4Platform", method = RequestMethod.GET)
public ResponseDto<?> listBook4Platform(@RequestHeader("token") String token, @RequestParam(value = "adviserId", required = false) Long adviserId,
@RequestParam(value = "name", required = false) String name, @RequestParam(value = "currentPage", required = false) Integer currentPage,
@RequestParam(value = "numPerPage", required = false) Integer numPerPage) throws PermissionException, BizException, JsonParseException {
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
throw BookBizException.PAGE_PARAM_DELETION;
}
if (null == adviserId) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
SessionUtil.getToken4Redis(token);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adviserId", adviserId);
paramMap.put("name", StringUtil.isEmpty(name) ? null : name);
return new ResponseDto<>(advertisingSpaceBiz.listBook4Platform(paramMap, new PageParam(currentPage, numPerPage), adviserId));
}
/**
* 获取广告位列表
*/
@Override
@RequestMapping(value = "list", method = RequestMethod.GET)
public ResponseDto<?> list(@RequestHeader("token") String token, @RequestParam(value = "name", required = false) String name,
@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "numPerPage", required = false) Integer numPerPage)
throws PermissionException, BizException, JsonParseException {
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
throw BookBizException.PAGE_PARAM_DELETION;
}
return new ResponseDto<>(advertisingSpaceBiz.list(name, new PageParam(currentPage, numPerPage)));
}
/**
* 获取广告位投放书刊列表
*/
@Override
@RequestMapping(value = "distributionBookList", method = RequestMethod.GET)
public ResponseDto<?> distributionBookList(@RequestHeader("token") String token, @RequestParam(value = "adId", required = false) Long adId,
@RequestParam(value = "name", required = false) String name, @RequestParam(value = "currentPage", required = false) Integer currentPage,
@RequestParam(value = "numPerPage", required = false) Integer numPerPage) throws PermissionException, BizException, JsonParseException {
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
throw BookBizException.PAGE_PARAM_DELETION;
}
if (null == adId) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(advertisingSpaceBiz.distributionBookList(adId, name, new PageParam(currentPage, numPerPage)));
}
/**
* 获取广告位投放作品/应用数据统计
*/
@Override
@RequestMapping(value = "distributionAppStatics", method = RequestMethod.GET)
public ResponseDto<?> distributionAppStatics(@RequestHeader("token") String token, @RequestParam(value = "adId", required = false) Long adId,
@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "numPerPage", required = false) Integer numPerPage)
throws PermissionException, BizException, JsonParseException {
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
throw BookBizException.PAGE_PARAM_DELETION;
}
if (null == adId) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(advertisingSpaceBiz.distributionAppStatics(adId, new PageParam(currentPage, numPerPage)));
}
/**
* 获取广告位投放时间统计
*/
@Override
@RequestMapping(value = "distributionDateStatics", method = RequestMethod.GET)
public ResponseDto<?> distributionDateStatics(@RequestHeader("token") String token, @RequestParam(value = "adId", required = false) Long adId,
@RequestParam(value = "day", required = false) Integer day) throws PermissionException, BizException, JsonParseException {
if (null == adId) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
SessionUtil.getToken4Redis(token);
if (null == day) {
day = 7;
}
return new ResponseDto<>(advertisingSpaceBiz.distributionDateStatics(adId, day));
}
/**
* 获取书刊配置的广告位信息
*/
@Override
@RequestMapping(value = "get4Wechat", method = RequestMethod.GET)
public ResponseDto<?> get4Wechat(@CookieValue("userInfo") String userInfo)
throws PermissionException, BizException, JsonParseException {
Long sceneId = Cookie.getId(userInfo, Cookie._SCENE_ID);
Long adviserId = Cookie.getId(userInfo, Cookie._ADVISER_ID);
Long channelId = Cookie.getId(userInfo, Cookie._CHANNEL_ID);
if (null == sceneId || null == adviserId || null == channelId) {
return new ResponseDto<>(new AdvertisingSpaceDTO());
}
return new ResponseDto<>(advertisingSpaceBiz.get4Wechat(sceneId, adviserId, channelId));
}
/**
* 曝光量埋点
*/
@Override
@RequestMapping(value = "addExposureTrack", method = RequestMethod.POST)
public ResponseDto<?> addExposureTrack(@CookieValue("userInfo") String userInfo, @RequestBody AdvertisingExposureRecord advertisingExposureRecord)
throws PermissionException, BizException, JsonParseException {
if (null == advertisingExposureRecord || null == advertisingExposureRecord.getAdId() || null == advertisingExposureRecord.getBookId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
Long sceneId = Cookie.getId(userInfo, Cookie._SCENE_ID);
Long adviserId = Cookie.getId(userInfo, Cookie._ADVISER_ID);
Long channelId = Cookie.getId(userInfo, Cookie._CHANNEL_ID);
Long officialAccountsId = Cookie.getId(userInfo, Cookie._OFFICIAL_ACCOUNTS_ID);
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
advertisingExposureRecord.setSceneId(sceneId);
advertisingExposureRecord.setAdviserId(adviserId);
advertisingExposureRecord.setChannelId(channelId);
advertisingExposureRecord.setOfficialAccountId(officialAccountsId);
advertisingExposureRecord.setWechatUserId(wechatUserId);
advertisingSpaceBiz.addExposureTrack(advertisingExposureRecord);
return new ResponseDto<>();
}
/**
* 点击量埋点
*/
@Override
@RequestMapping(value = "addClickTrack", method = RequestMethod.POST)
public ResponseDto<?> addClickTrack(@CookieValue("userInfo") String userInfo, @RequestBody AdvertisingClickRecord advertisingClickRecord)
throws PermissionException, BizException, JsonParseException {
if (null == advertisingClickRecord || null == advertisingClickRecord.getAdId() || null == advertisingClickRecord.getBookId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数有误!");
}
Long sceneId = Cookie.getId(userInfo, Cookie._SCENE_ID);
Long adviserId = Cookie.getId(userInfo, Cookie._ADVISER_ID);
Long channelId = Cookie.getId(userInfo, Cookie._CHANNEL_ID);
Long officialAccountsId = Cookie.getId(userInfo, Cookie._OFFICIAL_ACCOUNTS_ID);
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
advertisingClickRecord.setSceneId(sceneId);
advertisingClickRecord.setAdviserId(adviserId);
advertisingClickRecord.setChannelId(channelId);
advertisingClickRecord.setOfficialAccountId(officialAccountsId);
advertisingClickRecord.setWechatUserId(wechatUserId);
advertisingSpaceBiz.addClickTrack(advertisingClickRecord);
return new ResponseDto<>();
}
}
......@@ -3,15 +3,14 @@
*/
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.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.entity.Book;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
/**
* @描述:书籍数据访问层接口
* @作者:songx
......@@ -286,4 +285,10 @@ public interface BookDao extends BaseDao<Book> {
*/
List<BookInfo4AnlysicsDTO> getBookAnalysis(Map<String,Object> paramMap);
/**
* 获取编辑书刊ID和运营ID列表
* @param paramMap
* @return
*/
List<BookDto> listBookIdAndChannelId4Adviser(Map<String, Object> paramMap);
}
/**
*
*
*/
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.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dto.BookDto;
......@@ -10,11 +14,6 @@ import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.entity.Book;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @描述:书籍数据访问层实现类
......@@ -25,253 +24,257 @@ import java.util.Map;
@Repository("bookDao")
public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
/**
* 批量删除
*/
public Integer deleteByIds(List<Long> bookIds, Long deleteUserId) {
Map<String , Object> paramMap = new HashMap<String, Object>();
paramMap.put("bookIds", bookIds);
paramMap.put("lastModifiedUser", deleteUserId);
return super.getSqlSession().update(super.getStatement("deleteByIds"), paramMap);
}
/**
* 获取书籍基础信息
*/
@Override
public BookDto getBaseById(Long bookId) {
return super.getSqlSession().selectOne(super.getStatement("getBaseById"), bookId);
}
/**
* 根据ISBN获取图书信息
*/
@Override
public BookDto getByIsbnAndSnumContainsDelete(String isbn, String serialNumber) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("isbn", isbn);
paramMap.put("serialNumber", serialNumber);
return super.getSqlSession().selectOne(super.getStatement("getByIsbnAndSnumContainsDelete"), paramMap);
}
// /**
// * 根据ISBN获取图书信息
// */
// @Override
// public BookDto getByIsbn(String isbn) {
// return super.getSqlSession().selectOne(super.getStatement("selectByIsbn"), isbn);
// }
/**
* 获取单个书籍基础信息(包含统计信息)
*/
@Override
public BookDto getById(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("getById"), paramMap);
}
/**
* 批量获取书籍信息
*/
@Override
public Map<Long, BookDto> getMapByIds(List<Long> bookIds) {
return super.getSqlSession().selectMap(super.getStatement("getMapByIds"), bookIds, "bookId");
}
/**
* 批量获取书籍信息(书名 与书刊序号 封面图)
*/
@Override
public Map<Long, BookDto> listBaseMapByIds(List<Long> bookIds) {
return super.getSqlSession().selectMap(super.getStatement("listBaseMapByIds"), bookIds, "bookId");
}
@Override
public List<BookDto> listDetailByIds(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("listDetailByIds"),paramMap);
}
/**
* 根据名称获取ID
*/
@Override
public List<Long> getIdsByName(String bookName){
return super.getSqlSession().selectList(super.getStatement("getIdsByName"), bookName);
}
/**
* 根据名称获取ID
*/
@Override
public List<Long> getIdsByNameMap(Map<String, Object> paramMap){
return super.getSqlSession().selectList(super.getStatement("getIdsByNameMap"), paramMap);
}
/**
* 图书收益,获取书籍列表(编辑)
*/
@Override
public List<BookDto> getList4AdviserProfit(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("getList4AdviserProfit"), paramMap);
}
/**
* 根据刊物序号获取刊物信息
*/
@Override
public BookDto getBySerialNum(String serialNumber) {
return super.getSqlSession().selectOne(super.getStatement("getBySerialNum"), serialNumber);
}
/**
* 根据ISBN获取书刊信息(包含删除图书数据)
*/
@Override
public BookDto getByIsbn(String isbn) {
return super.getSqlSession().selectOne(super.getStatement("getByIsbn"), isbn);
}
/**
* 获取书籍详细信息(包含书籍关联二维码 商品 应用)
*/
@Override
public BookDto getDetailByIsbn(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("getDetailByIsbn"), paramMap);
}
/**
* 获取书刊列表
*/
@Override
public List<BookDto> getListPage4Platform(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("getListPage4Platform"), paramMap);
}
/**
* 获取书籍总数
*/
@Override
public int getAllBookCount() {
return super.getSqlSession().selectOne(super.getStatement("getAllBookCount"));
}
/**
* 条件查询获取书籍总数
*/
@Override
public int getBookCount4Platform(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("getBookCount4Platform"),paramMap);
}
/**
* 修改书籍封面图
*/
@Override
public void updateCoverImg(Book book) {
super.getSqlSession().update(this.getStatement("updateCoverImg"),book);
}
/**
* 获取应用关联图书
*/
@Override
public List<BookDto> listBookByAppId(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(this.getStatement("listBookByAppId"),paramMap);
}
/**
* 删除图书
*/
@Override
public Integer deleteBook(Long bookId, Long deleteUserId) {
Map<String , Long> paramMap = new HashMap<String, Long>();
paramMap.put("bookId", bookId);
paramMap.put("lastModifiedUser", deleteUserId);
return super.getSqlSession().update(this.getStatement("deleteBook"), paramMap);
}
/**
* 获取出版下除默认生成图书的所有图书总数
*/
@Override
public Integer getAllBookCount4Agent(Map<String, Object> param) {
return super.getSqlSession().selectOne(this.getStatement("getAllBookCount4Agent"), param);
}
/**
* 根据isbn获取图书信息
*/
@Override
public Map<Long, BookDto> listByIsbn(String isbn) {
return super.getSqlSession().selectMap(this.getStatement("listByIsbn"), isbn, "bookId");
}
/**
* 获取图书总数除RAYS现代纸书
*/
@Override
public Integer getAllBookCount4Platform(Map<String, Object> param) {
return super.getSqlSession().selectOne(this.getStatement("getAllBookCount4Platform"), param);
}
/**
* 获取编辑图书模板
*/
@Override
public Long getTempletId(Long adviserId, Long channelId, Long bookId) {
Map<String, Long> paramMap = new HashMap<>();
paramMap.put("adviserId", adviserId);
paramMap.put("channelId", channelId);
paramMap.put("bookId", bookId);
return super.getSqlSession().selectOne(this.getStatement("getTempletId"), paramMap);
}
/**
* 修改图书基本信息
*/
@Override
public void updateByAdviser(Book book) {
super.getSqlSession().update(this.getStatement("updateByAdviser"), book);
}
/**
* 根据图书isbn和序号获取图书基本信息(不包含删除图书)
*
* @param isbn
* @param serialNumber
* @return
*/
public BookDto getByIsbnAndSnum(String isbn, String serialNumber) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("isbn", isbn);
paramMap.put("serialNumber", serialNumber);
return super.getSqlSession().selectOne(this.getStatement("getByIsbnAndSnum"), paramMap);
}
@Override
public List<BookDto> getList4Adviser(Map<String, Object> param) {
return super.getSqlSession().selectList(this.getStatement("getListPage4Adviser"),param);
}
@Override
public void updateTimeById(Map<String, Object> param) {
super.getSqlSession().update(super.getStatement("updateTimeById"),param);
}
@Override
public void updateTimeByIds(Map<String, Object> param) {
super.getSqlSession().update(super.getStatement("updateTimeByIds"),param);
}
@Override
public List<BookInfoAnalysicsDTO> getBookInfoBy(Map<String, Object> param) {
return super.getSqlSession().selectList(this.getStatement("getBookInfoBy"),param);
}
@Override
public List<BookInfo4AnlysicsDTO> getBookAnalysis(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(this.getStatement("getBookAnalysis"),paramMap);
}
* 批量删除
*/
public Integer deleteByIds(List<Long> bookIds, Long deleteUserId) {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("bookIds", bookIds);
paramMap.put("lastModifiedUser", deleteUserId);
return super.getSqlSession().update(super.getStatement("deleteByIds"), paramMap);
}
/**
* 获取书籍基础信息
*/
@Override
public BookDto getBaseById(Long bookId) {
return super.getSqlSession().selectOne(super.getStatement("getBaseById"), bookId);
}
/**
* 根据ISBN获取图书信息
*/
@Override
public BookDto getByIsbnAndSnumContainsDelete(String isbn, String serialNumber) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("isbn", isbn);
paramMap.put("serialNumber", serialNumber);
return super.getSqlSession().selectOne(super.getStatement("getByIsbnAndSnumContainsDelete"), paramMap);
}
// /**
// * 根据ISBN获取图书信息
// */
// @Override
// public BookDto getByIsbn(String isbn) {
// return super.getSqlSession().selectOne(super.getStatement("selectByIsbn"), isbn);
// }
/**
* 获取单个书籍基础信息(包含统计信息)
*/
@Override
public BookDto getById(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("getById"), paramMap);
}
/**
* 批量获取书籍信息
*/
@Override
public Map<Long, BookDto> getMapByIds(List<Long> bookIds) {
return super.getSqlSession().selectMap(super.getStatement("getMapByIds"), bookIds, "bookId");
}
/**
* 批量获取书籍信息(书名 与书刊序号 封面图)
*/
@Override
public Map<Long, BookDto> listBaseMapByIds(List<Long> bookIds) {
return super.getSqlSession().selectMap(super.getStatement("listBaseMapByIds"), bookIds, "bookId");
}
@Override
public List<BookDto> listDetailByIds(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("listDetailByIds"), paramMap);
}
/**
* 根据名称获取ID
*/
@Override
public List<Long> getIdsByName(String bookName) {
return super.getSqlSession().selectList(super.getStatement("getIdsByName"), bookName);
}
/**
* 根据名称获取ID
*/
@Override
public List<Long> getIdsByNameMap(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("getIdsByNameMap"), paramMap);
}
/**
* 图书收益,获取书籍列表(编辑)
*/
@Override
public List<BookDto> getList4AdviserProfit(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("getList4AdviserProfit"), paramMap);
}
/**
* 根据刊物序号获取刊物信息
*/
@Override
public BookDto getBySerialNum(String serialNumber) {
return super.getSqlSession().selectOne(super.getStatement("getBySerialNum"), serialNumber);
}
/**
* 根据ISBN获取书刊信息(包含删除图书数据)
*/
@Override
public BookDto getByIsbn(String isbn) {
return super.getSqlSession().selectOne(super.getStatement("getByIsbn"), isbn);
}
/**
* 获取书籍详细信息(包含书籍关联二维码 商品 应用)
*/
@Override
public BookDto getDetailByIsbn(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("getDetailByIsbn"), paramMap);
}
/**
* 获取书刊列表
*/
@Override
public List<BookDto> getListPage4Platform(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("getListPage4Platform"), paramMap);
}
/**
* 获取书籍总数
*/
@Override
public int getAllBookCount() {
return super.getSqlSession().selectOne(super.getStatement("getAllBookCount"));
}
/**
* 条件查询获取书籍总数
*/
@Override
public int getBookCount4Platform(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("getBookCount4Platform"), paramMap);
}
/**
* 修改书籍封面图
*/
@Override
public void updateCoverImg(Book book) {
super.getSqlSession().update(this.getStatement("updateCoverImg"), book);
}
/**
* 获取应用关联图书
*/
@Override
public List<BookDto> listBookByAppId(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(this.getStatement("listBookByAppId"), paramMap);
}
/**
* 删除图书
*/
@Override
public Integer deleteBook(Long bookId, Long deleteUserId) {
Map<String, Long> paramMap = new HashMap<String, Long>();
paramMap.put("bookId", bookId);
paramMap.put("lastModifiedUser", deleteUserId);
return super.getSqlSession().update(this.getStatement("deleteBook"), paramMap);
}
/**
* 获取出版下除默认生成图书的所有图书总数
*/
@Override
public Integer getAllBookCount4Agent(Map<String, Object> param) {
return super.getSqlSession().selectOne(this.getStatement("getAllBookCount4Agent"), param);
}
/**
* 根据isbn获取图书信息
*/
@Override
public Map<Long, BookDto> listByIsbn(String isbn) {
return super.getSqlSession().selectMap(this.getStatement("listByIsbn"), isbn, "bookId");
}
/**
* 获取图书总数除RAYS现代纸书
*/
@Override
public Integer getAllBookCount4Platform(Map<String, Object> param) {
return super.getSqlSession().selectOne(this.getStatement("getAllBookCount4Platform"), param);
}
/**
* 获取编辑图书模板
*/
@Override
public Long getTempletId(Long adviserId, Long channelId, Long bookId) {
Map<String, Long> paramMap = new HashMap<>();
paramMap.put("adviserId", adviserId);
paramMap.put("channelId", channelId);
paramMap.put("bookId", bookId);
return super.getSqlSession().selectOne(this.getStatement("getTempletId"), paramMap);
}
/**
* 修改图书基本信息
*/
@Override
public void updateByAdviser(Book book) {
super.getSqlSession().update(this.getStatement("updateByAdviser"), book);
}
/**
* 根据图书isbn和序号获取图书基本信息(不包含删除图书)
* @param isbn
* @param serialNumber
* @return
*/
public BookDto getByIsbnAndSnum(String isbn, String serialNumber) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("isbn", isbn);
paramMap.put("serialNumber", serialNumber);
return super.getSqlSession().selectOne(this.getStatement("getByIsbnAndSnum"), paramMap);
}
@Override
public List<BookDto> getList4Adviser(Map<String, Object> param) {
return super.getSqlSession().selectList(this.getStatement("getListPage4Adviser"), param);
}
@Override
public void updateTimeById(Map<String, Object> param) {
super.getSqlSession().update(super.getStatement("updateTimeById"), param);
}
@Override
public void updateTimeByIds(Map<String, Object> param) {
super.getSqlSession().update(super.getStatement("updateTimeByIds"), param);
}
@Override
public List<BookInfoAnalysicsDTO> getBookInfoBy(Map<String, Object> param) {
return super.getSqlSession().selectList(this.getStatement("getBookInfoBy"), param);
}
@Override
public List<BookInfo4AnlysicsDTO> getBookAnalysis(Map<String, Object> 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);
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
/**
*
*
*/
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.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.vo.NoAuthBookVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
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
......@@ -22,107 +20,161 @@ import java.util.Map;
*/
public class BookTools {
/**
* 组装运营标识(去重)
*/
public static List<Long> listChannelIds4NoAuthBookVO(List<NoAuthBookVO> noAuthBookVOS) throws BizException {
Map<Long, Long> channelIdMap = new HashMap<>();
for (NoAuthBookVO noAuthBookVO : noAuthBookVOS) {
Long channelId = noAuthBookVO.getChannelId();
if (!channelIdMap.containsKey(channelId)) {
channelIdMap.put(channelId, channelId);
}
}
return Lists.newArrayList(channelIdMap.values());
}
/**
* 组装运营标识(去重)
*/
public static List<Long> listChannelIds4NoAuthBookVO(List<NoAuthBookVO> noAuthBookVOS) throws BizException {
Map<Long, Long> channelIdMap = new HashMap<>();
for (NoAuthBookVO noAuthBookVO : noAuthBookVOS) {
Long channelId = noAuthBookVO.getChannelId();
if (!channelIdMap.containsKey(channelId)) {
channelIdMap.put(channelId, channelId);
}
}
return Lists.newArrayList(channelIdMap.values());
}
/**
* 组装运营标识(去重)
*/
public static List<Long> listChannelIds(List<Object> objects) throws BizException {
Map<Long, Long> channelIdMap = new HashMap<>();
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long channelId = bookDto.getChannelId();
if (!channelIdMap.containsKey(channelId)) {
channelIdMap.put(channelId, channelId);
}
}
return Lists.newArrayList(channelIdMap.values());
}
/**
* 组装图书标识(去重)
*/
public static List<Long> listBookIds(List<Object> objects) throws BizException {
Map<Long, Long> bookIdMap = new HashMap<>();
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long bookId = bookDto.getBookId();
if (!bookIdMap.containsKey(bookId)) {
bookIdMap.put(bookId, bookId);
}
}
return Lists.newArrayList(bookIdMap.values());
}
/**
* 批量填充运营信息
*/
public static void setChannelNames(List<Object> objects, Map<Long, String> channelNameMap) throws BizException {
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long channelId = bookDto.getChannelId();
if (channelNameMap.containsKey(channelId)) {
bookDto.setChannelName(channelNameMap.get(channelId));
} else {
bookDto.setChannelName("");
}
}
}
/**
* 批量填充运营公众号信息
*/
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
* @return
*/
public static List<Long> listAdviserIds(List<Object> objects) {
Map<Long, Long> adviserIdMap = new HashMap<>();
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long adviserId = bookDto.getAdviserId();
if (!adviserIdMap.containsKey(adviserId)) {
adviserIdMap.put(adviserId, adviserId);
}
}
return Lists.newArrayList(adviserIdMap.values());
}
/**
* 组装运营标识(去重)
*/
public static List<Long> listChannelIds(List<Object> objects) throws BizException {
Map<Long, Long> channelIdMap = new HashMap<>();
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long channelId = bookDto.getChannelId();
if (!channelIdMap.containsKey(channelId)) {
channelIdMap.put(channelId, channelId);
}
}
return Lists.newArrayList(channelIdMap.values());
}
/**
* 组装图书标识(去重)
*/
public static List<Long> listBookIds(List<Object> objects) throws BizException {
Map<Long, Long> bookIdMap = new HashMap<>();
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long bookId = bookDto.getBookId();
if (!bookIdMap.containsKey(bookId)) {
bookIdMap.put(bookId, bookId);
}
}
return Lists.newArrayList(bookIdMap.values());
}
/**
* 批量填充运营信息
*/
public static void setChannelNames(List<Object> objects, Map<Long, String> channelNameMap) throws BizException {
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long channelId = bookDto.getChannelId();
if (channelNameMap.containsKey(channelId)) {
bookDto.setChannelName(channelNameMap.get(channelId));
} else {
bookDto.setChannelName("");
}
}
}
/**
* 组装出版标识(去重)
* @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
* @return
*/
public static List<Long> listAdviserIds(List<Object> objects) {
Map<Long, Long> adviserIdMap = new HashMap<>();
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long adviserId = bookDto.getAdviserId();
if (!adviserIdMap.containsKey(adviserId)) {
adviserIdMap.put(adviserId, adviserId);
}
}
return Lists.newArrayList(adviserIdMap.values());
}
/**
* 批量填充编辑名称
* @param objects
* @param adviserNameMap
*/
public static void setAdviserNames(List<Object> objects, Map<Long, String> adviserNameMap) {
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long adviserId = bookDto.getAdviserId();
if (adviserNameMap.containsKey(adviserId)) {
bookDto.setAdviserName(adviserNameMap.get(adviserId));
} else {
bookDto.setAdviserName("");
}
}
}
/**
* 批量填充编辑名称
* @param objects
* @param adviserNameMap
*/
public static void setAdviserNames(List<Object> objects, Map<Long, String> adviserNameMap) {
for (Object object : objects) {
BookDto bookDto = (BookDto) object;
Long adviserId = bookDto.getAdviserId();
if (adviserNameMap.containsKey(adviserId)) {
bookDto.setAdviserName(adviserNameMap.get(adviserId));
} else {
bookDto.setAdviserName("");
}
}
}
/**
* 批量填充出版名称
* @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) {
Long channelId = noAuthBookVO.getChannelId();
if (channelNameMap.containsKey(channelId)) {
noAuthBookVO.setChannelName(channelNameMap.get(channelId));
} else {
noAuthBookVO.setChannelName("");
}
}
}
public static void setChannelNames4NoAuthBookVO(List<NoAuthBookVO> noAuthBookVOS, Map<Long, String> channelNameMap) {
for (NoAuthBookVO noAuthBookVO : noAuthBookVOS) {
Long channelId = noAuthBookVO.getChannelId();
if (channelNameMap.containsKey(channelId)) {
noAuthBookVO.setChannelName(channelNameMap.get(channelId));
} else {
noAuthBookVO.setChannelName("");
}
}
}
}
......@@ -84,4 +84,28 @@ public class AppConsr {
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;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
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.service.ProductService;
......@@ -61,7 +62,7 @@ public class ProductConsr {
* 资源中心拉取商品基本信息
*/
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()) {
return null;
}
......@@ -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)
......
......@@ -3,17 +3,19 @@
*/
package com.pcloud.book.consumer.user;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.usercenter.party.agent.entity.Agent;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.common.dto.ResponseDto;
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.agent.service.AgentService;
/**
......@@ -73,4 +75,23 @@ public class AgentConsr {
}
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
......@@ -67,15 +67,15 @@
VALUES (
#{isbn, jdbcType=VARCHAR}, #{typeCode, jdbcType=VARCHAR}, #{bookName, jdbcType=VARCHAR}, #{bookPrice, jdbcType=VARCHAR},
#{remark, jdbcType=VARCHAR}, #{author, jdbcType=VARCHAR}, #{publish, jdbcType=VARCHAR}, #{publishDate, jdbcType=VARCHAR},
#{coverImg, jdbcType=VARCHAR}, #{detail, jdbcType=VARCHAR}, #{sponsor, jdbcType=VARCHAR}, #{organizer, jdbcType=VARCHAR},
#{cn, jdbcType=VARCHAR}, #{releaseCycle, jdbcType=VARCHAR}, #{bookNum, jdbcType=VARCHAR}, #{programa, jdbcType=VARCHAR},
#{mailCode, jdbcType=VARCHAR}, #{address, jdbcType=VARCHAR}, #{telephone, jdbcType=VARCHAR}, #{mail, jdbcType=VARCHAR},
#{purpose, jdbcType=VARCHAR}, #{originName, jdbcType=VARCHAR}, #{createdUser, jdbcType=BIGINT}, NOW(),
#{coverImg, jdbcType=VARCHAR}, #{detail, jdbcType=VARCHAR}, #{sponsor, jdbcType=VARCHAR}, #{organizer, jdbcType=VARCHAR},
#{cn, jdbcType=VARCHAR}, #{releaseCycle, jdbcType=VARCHAR}, #{bookNum, jdbcType=VARCHAR}, #{programa, jdbcType=VARCHAR},
#{mailCode, jdbcType=VARCHAR}, #{address, jdbcType=VARCHAR}, #{telephone, jdbcType=VARCHAR}, #{mail, jdbcType=VARCHAR},
#{purpose, jdbcType=VARCHAR}, #{originName, jdbcType=VARCHAR}, #{createdUser, jdbcType=BIGINT}, NOW(),
#{createdUser, jdbcType=BIGINT}, NOW(),#{issn, jdbcType=VARCHAR},#{serialNumber, jdbcType=VARCHAR},#{adImg, jdbcType=VARCHAR}
) ON
DUPLICATE KEY UPDATE IS_DELETE = 0
</insert>
<!-- 修改书籍信息-->
<update id="update" parameterType="book" flushCache="true">
UPDATE BOOK
......@@ -509,7 +509,237 @@
LIMIT ${num}
</if>
</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
......
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