Commit 7caddf92 by lili

版权保护

parent 25a98322
...@@ -48,15 +48,5 @@ ...@@ -48,15 +48,5 @@
<artifactId>springfox-swagger-ui</artifactId> <artifactId>springfox-swagger-ui</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies> </dependencies>
</project> </project>
package com.pcloud.book.base.enums;
/**
* 图书版权保护状态状态
*/
public enum BookStatusEnum {
/**
* 保护中
*/
PROTECT(1),
/**
* 否
*/
NO_SET(0);
/**
* 值
*/
public final Integer value;
/**
* 构造
*
* @param value
*/
BookStatusEnum(Integer value) {
this.value = value;
}
/**
* 验证方式
*/
public enum AuthCodeTypeEnum{
/**
* 授权码
*/
BY_CODE(0),
/**
* 授权金
*/
BY_PAY(1);
public final Integer value;
/**
* 构造
*
* @param value
*/
AuthCodeTypeEnum(Integer value) {
this.value = value;
}
}
/**
* 验证码状态值
*/
public enum CodeUseTypeEnum{
/**
* 已经被使用
*/
HAVE_USE(0),
/**
* 正确
*/
RIGHT(1),
/**
* 不正确
*/
NOT_RIGHT(2);
public final Integer value;
/**
* 构造
*
* @param value
*/
CodeUseTypeEnum(Integer value) {
this.value = value;
}
}
public enum BookDeleteStatus{
/**
* 已删除
*/
DELETE(1),
/**
* 未删除
*/
NOT_DELETE(0);
public final Integer value;
/**
* 构造
*
* @param value
*/
BookDeleteStatus(Integer value) {
this.value = value;
}
}
}
...@@ -100,4 +100,16 @@ public class BookConstant { ...@@ -100,4 +100,16 @@ public class BookConstant {
* 副编辑 * 副编辑
*/ */
public static final Integer NOT_MAIN_EDITOR = 0; public static final Integer NOT_MAIN_EDITOR = 0;
/**
* 7天
*/
public static final Long SEVEN = 7L;
/**
* 15天
*/
public static final Long FIFTEEN = 15L;
/**
* 30天
*/
public static final Long THIRTY = 30L;
} }
package com.pcloud.book.book.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
/**
* @author lily
* @date 2018/12/4 11:11
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BookAuthServeStatusParam implements Serializable {
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("服务标识")
private List<Long> serveIds;
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
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 List<Long> getServeIds() {
return serveIds;
}
public void setServeIds(List<Long> serveIds) {
this.serveIds = serveIds;
}
@Override
public String toString() {
return "BookAuthServeStatusParam{" +
"channelId=" + channelId +
", bookId=" + bookId +
", adviserId=" + adviserId +
", serveIds=" + serveIds +
'}';
}
}
package com.pcloud.book.book.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author lily
* @date 2018/12/5 20:51
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BookInfoAndAuthStatusDTO implements Serializable {
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("图书名称")
private String bookName;
@ApiModelProperty("封面图")
private String coverImg;
@ApiModelProperty("图书状态")
private Integer bookStatus;
@ApiModelProperty("出版社")
private String publish;
@ApiModelProperty("是否删除")
private Integer isDelete;
public Integer getIsDelete() {
return isDelete;
}
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getCoverImg() {
return coverImg;
}
public void setCoverImg(String coverImg) {
this.coverImg = coverImg;
}
public Integer getBookStatus() {
return bookStatus;
}
public void setBookStatus(Integer bookStatus) {
this.bookStatus = bookStatus;
}
public String getPublish() {
return publish;
}
public void setPublish(String publish) {
this.publish = publish;
}
@Override
public String toString() {
return "BookInfoAndAuthStatusDTO{" +
"bookId=" + bookId +
", bookName='" + bookName + '\'' +
", coverImg='" + coverImg + '\'' +
", bookStatus=" + bookStatus +
", publish='" + publish + '\'' +
", isDelete=" + isDelete +
'}';
}
}
...@@ -8,6 +8,7 @@ import com.pcloud.book.book.dto.BookDetialDTO; ...@@ -8,6 +8,7 @@ import com.pcloud.book.book.dto.BookDetialDTO;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO; import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO; import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.dto.BookInfoAndAuthStatusDTO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -238,4 +239,9 @@ public interface BookService { ...@@ -238,4 +239,9 @@ public interface BookService {
@ApiImplicitParam(name = "monthDate", value = "数据统计时间", dataType = "String", paramType = "query")}) @ApiImplicitParam(name = "monthDate", value = "数据统计时间", dataType = "String", paramType = "query")})
@RequestMapping(value = "/getBookAnalysis", method = RequestMethod.POST) @RequestMapping(value = "/getBookAnalysis", method = RequestMethod.POST)
public ResponseEntity<ResponseDto<Map<Long,BookInfo4AnlysicsDTO>>> getBookAnalysis(@RequestBody List<Long> bookIds, @RequestParam(value = "monthDate",required = false) String monthDate)throws BizException; public ResponseEntity<ResponseDto<Map<Long,BookInfo4AnlysicsDTO>>> getBookAnalysis(@RequestBody List<Long> bookIds, @RequestParam(value = "monthDate",required = false) String monthDate)throws BizException;
@ApiOperation(value = "获取书籍信息", httpMethod = "GET")
@RequestMapping(value = "/getBaseAndAuthStatus", method = RequestMethod.GET)
ResponseEntity<ResponseDto<BookInfoAndAuthStatusDTO>> getBaseAndAuthStatus(@RequestParam(value = "bookId") Long bookId, @RequestParam(value = "channelId") Long channelId,@RequestParam(value = "adviserId") Long adviserId)
throws BizException;
} }
package com.pcloud.book.copyright.service;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import java.math.BigDecimal;
/**
* @author lily
* @date 2018/12/4 16:23
*/
@FeignClient(value = "pcloud-service-book", qualifier = "bookAuthInfoServiceCloud", path = "book/v1.0/bookAuthInfoService")
@Api(description = "图书版权开启信息")
public interface BookAuthInfoService {
@ApiOperation(value = "获取图书授权金价格", httpMethod = "GET")
@RequestMapping(value = "/getBookAuthPrice", method = RequestMethod.GET)
ResponseEntity<ResponseDto<BigDecimal>> getBookAuthPrice(@RequestParam("bookId") Long bookId, @RequestParam("channelId")Long channelId, @RequestParam("adviserId")Long adviserId)
throws BizException;
}
package com.pcloud.book.copyright.service;
import com.pcloud.book.book.dto.BookAuthServeStatusParam;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.Map;
/**
* @author lily
* @date 2018/12/4 11:01
*/
@FeignClient(value = "pcloud-service-book", qualifier = "bookAuthServeServiceCloud", path = "book/v1.0/bookAuthServeService")
@Api(description = "图书开启版权服务")
public interface BookAuthServeService {
@ApiOperation(value = "批量获取应用是否开启版权保护", httpMethod = "POST")
@RequestMapping(value = "/listIsOpen4ServeIds", method = RequestMethod.POST)
ResponseEntity<ResponseDto<Map<String, Boolean>>> listIsOpen4ServeIds(@RequestBody BookAuthServeStatusParam bookAuthServeStatusParam)
throws BizException;
}
...@@ -50,248 +50,92 @@ ...@@ -50,248 +50,92 @@
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-tradecenter</artifactId>
<version>${pcloud-facade-tradecenter.version}</version>
</dependency>
<dependency>
<groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-usercenter</artifactId> <artifactId>pcloud-facade-usercenter</artifactId>
<version>${pcloud-facade-usercenter.version}</version> <version>${pcloud-facade-usercenter.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-resourcecenter</artifactId> <artifactId>pcloud-facade-resourcecenter</artifactId>
<version>${pcloud-facade-resourcecenter.version}</version> <version>${pcloud-facade-resourcecenter.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-channelcenter</artifactId> <artifactId>pcloud-facade-channelcenter</artifactId>
<version>${pcloud-facade-channelcenter.version}</version> <version>${pcloud-facade-channelcenter.version}</version>
<exclusions> </dependency>
<exclusion>
<artifactId>pcloud-common</artifactId> <dependency>
<groupId>com.pcloud.common</groupId> <groupId>com.pcloud.facade</groupId>
</exclusion> <artifactId>pcloud-facade-tradecenter</artifactId>
</exclusions> <version>${pcloud-facade-tradecenter.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-comment</artifactId> <artifactId>pcloud-facade-comment</artifactId>
<version>${pcloud-facade-comment.version}</version> <version>${pcloud-facade-comment.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-message</artifactId> <artifactId>pcloud-facade-message</artifactId>
<version>${pcloud-facade-message.version}</version> <version>${pcloud-facade-message.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-quartz</artifactId> <artifactId>pcloud-facade-quartz</artifactId>
<version>${pcloud-facade-quartz.version}</version> <version>${pcloud-facade-quartz.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-analysisengine</artifactId> <artifactId>pcloud-facade-analysisengine</artifactId>
<version>${pcloud-facade-analysisengine.version}</version> <version>${pcloud-facade-analysisengine.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-commoncenter</artifactId> <artifactId>pcloud-facade-commoncenter</artifactId>
<version>${pcloud-facade-commoncenter.version}</version> <version>${pcloud-facade-commoncenter.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-pretestapp</artifactId>
<version>${pcloud-facade-pretestapp.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-tutorapp</artifactId>
<version>${pcloud-facade-tutorapp.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-questionnair</artifactId>
<version>${pcloud-facade-questionnair.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-bookcard</artifactId> <artifactId>pcloud-facade-voicemessage</artifactId>
<version>${pcloud-facade-bookcard.version}</version> <version>${pcloud-facade-voicemessage.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-settlementcenter</artifactId> <artifactId>pcloud-facade-settlementcenter</artifactId>
<version>${pcloud-facade-settlement.version}</version> <version>${pcloud-facade-settlement.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-voicemessage</artifactId>
<version>${pcloud-facade-voicemessage.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-appcenter</artifactId> <artifactId>pcloud-facade-appcenter</artifactId>
<version>${pcloud-facade-appcenter.version}</version> <version>${pcloud-facade-appcenter.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-raystask</artifactId> <artifactId>pcloud-facade-raystask</artifactId>
<version>${pcloud-facade-raystask.version}</version> <version>${pcloud-facade-raystask.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-contentcenter</artifactId> <artifactId>pcloud-facade-contentcenter</artifactId>
<version>${pcloud-facade-contentcenter.version}</version> <version>${pcloud-facade-contentcenter.version}</version>
<exclusions>
<exclusion>
<artifactId>pcloud-common</artifactId>
<groupId>com.pcloud.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<!--dubbo相关依赖-->
<dependency> <dependency>
<groupId>org.javassist</groupId> <groupId>fakepath</groupId>
<artifactId>javassist</artifactId> <artifactId>jbarcode</artifactId>
<version>0.2.8</version>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
</dependency>
<dependency>
<groupId>com.esotericsoftware.kryo</groupId>
<artifactId>kryo</artifactId>
</dependency>
<dependency>
<groupId>de.javakaffee</groupId>
<artifactId>kryo-serializers</artifactId>
</dependency>
<!--spring-cloud相关--> <!--spring-cloud相关-->
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
......
package com.pcloud.book; package com.pcloud.book;
import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSource;
import com.pcloud.book.copyright.biz.BookAuthOrderBiz;
import com.pcloud.book.mq.config.MQTopicConumer; import com.pcloud.book.mq.config.MQTopicConumer;
import com.pcloud.common.core.constant.MQTopicProducer; import com.pcloud.common.core.constant.MQTopicProducer;
import com.pcloud.common.core.mq.RabbitMQFactory; import com.pcloud.common.core.mq.RabbitMQFactory;
import com.pcloud.facade.tradecenter.entity.Genuine;
import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.Queue; import org.springframework.amqp.core.Queue;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -12,6 +14,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; ...@@ -12,6 +14,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients; import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -26,6 +29,7 @@ import springfox.documentation.spring.web.plugins.Docket; ...@@ -26,6 +29,7 @@ import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
@SpringBootApplication @SpringBootApplication
...@@ -101,4 +105,13 @@ public class BookApplication { ...@@ -101,4 +105,13 @@ public class BookApplication {
return RabbitMQFactory.bindingExchange(registerPartyQueue(), MQTopicProducer.REGISTER_PARTY); return RabbitMQFactory.bindingExchange(registerPartyQueue(), MQTopicProducer.REGISTER_PARTY);
} }
@Bean
public Queue genuineQueue(){
return RabbitMQFactory.queueBuilder(MQTopicConumer.GENUINE);
}
@Bean
public Binding genuineBind(){
return RabbitMQFactory.bindingExchange(genuineQueue(), MQTopicProducer.GENUINE);
}
} }
...@@ -55,6 +55,11 @@ public interface BookAdviserBiz { ...@@ -55,6 +55,11 @@ public interface BookAdviserBiz {
public BookAdviserDto getByAdviser(BookAdviser bookAdviser) throws BizException; public BookAdviserDto getByAdviser(BookAdviser bookAdviser) throws BizException;
/** /**
* 获取编辑和书籍的关系
*/
BookAdviserDto getBase(Long bookId, Long channelId, Long adviserId) throws BizException;
/**
* 统计编辑推广的图书总数 * 统计编辑推广的图书总数
* *
* @param adviserIds 编辑标识列表 * @param adviserIds 编辑标识列表
......
...@@ -9,8 +9,9 @@ import com.pcloud.book.book.dto.BookDetialDTO; ...@@ -9,8 +9,9 @@ import com.pcloud.book.book.dto.BookDetialDTO;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO; import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO; import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.dto.BookInfoAndAuthStatusDTO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.vo.BookAnalysic4PCVO; import com.pcloud.book.book.vo.ListNoAuthBookParam;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -527,4 +528,16 @@ public interface BookBiz { ...@@ -527,4 +528,16 @@ public interface BookBiz {
* @throws BizException * @throws BizException
*/ */
PageBean getListPage4PC(PageParam pageParam,String name)throws BizException; PageBean getListPage4PC(PageParam pageParam,String name)throws BizException;
/**
* 获取未设置授权信息图书
* @param listNoAuthBookParam
* @return
*/
PageBeanNew listNoAuthBook(ListNoAuthBookParam listNoAuthBookParam, Long adviserId);
/**
* 获取图书基本信息与授权状态
*/
BookInfoAndAuthStatusDTO getBaseAndAuthStatus(Long bookId, Long channelId, Long adviserId);
} }
...@@ -237,6 +237,15 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -237,6 +237,15 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
/** /**
* 获取编辑设置的书籍推广信息
*/
@Override
public BookAdviserDto getBase(Long bookId, Long channelId, Long adviserId) throws BizException {
return bookAdviserDao.getBase(bookId, channelId, adviserId);
}
/**
* 获取编辑设置的书籍推广信息(包含删除或未删除的) * 获取编辑设置的书籍推广信息(包含删除或未删除的)
*/ */
private BookAdviserDto getByAdviserContainsDelete(BookAdviser bookAdviser) throws BizException { private BookAdviserDto getByAdviserContainsDelete(BookAdviser bookAdviser) throws BizException {
......
...@@ -8,6 +8,7 @@ import com.google.common.collect.Maps; ...@@ -8,6 +8,7 @@ import com.google.common.collect.Maps;
import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto; import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto;
import com.pcloud.appcenter.base.exception.AppBizException; import com.pcloud.appcenter.base.exception.AppBizException;
import com.pcloud.book.base.enums.BookFreezeEnum; import com.pcloud.book.base.enums.BookFreezeEnum;
import com.pcloud.book.base.enums.BookStatusEnum;
import com.pcloud.book.base.enums.BookTypeEnum; import com.pcloud.book.base.enums.BookTypeEnum;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookAdviserBiz; import com.pcloud.book.book.biz.BookAdviserBiz;
...@@ -20,6 +21,7 @@ import com.pcloud.book.book.biz.BookResourceBiz; ...@@ -20,6 +21,7 @@ import com.pcloud.book.book.biz.BookResourceBiz;
import com.pcloud.book.book.cache.BookCache; import com.pcloud.book.book.cache.BookCache;
import com.pcloud.book.book.constant.BookConstant; import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.dao.BookDao; import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dto.BookAdviserDto;
import com.pcloud.book.book.dto.BookAdviserUpdateTimeDTO; import com.pcloud.book.book.dto.BookAdviserUpdateTimeDTO;
import com.pcloud.book.book.dto.BookAssocCount; import com.pcloud.book.book.dto.BookAssocCount;
import com.pcloud.book.book.dto.BookCoverImgUpdateDTO; import com.pcloud.book.book.dto.BookCoverImgUpdateDTO;
...@@ -29,9 +31,11 @@ import com.pcloud.book.book.dto.BookFreezeDto; ...@@ -29,9 +31,11 @@ import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.dto.BookFundDto; import com.pcloud.book.book.dto.BookFundDto;
import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO; import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO; import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.dto.BookInfoAndAuthStatusDTO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookAdviser; import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.set.BookSet; import com.pcloud.book.book.set.BookSet;
import com.pcloud.book.book.vo.ListNoAuthBookParam;
import com.pcloud.book.consumer.analysisengine.SceneRecordConsr; import com.pcloud.book.consumer.analysisengine.SceneRecordConsr;
import com.pcloud.book.consumer.app.AssistTempletConsr; import com.pcloud.book.consumer.app.AssistTempletConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr; import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
...@@ -41,6 +45,8 @@ import com.pcloud.book.consumer.user.AdviserConsr; ...@@ -41,6 +45,8 @@ import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.user.AgentConsr; import com.pcloud.book.consumer.user.AgentConsr;
import com.pcloud.book.consumer.user.ChannelConsr; import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.book.consumer.user.PartyConsr; import com.pcloud.book.consumer.user.PartyConsr;
import com.pcloud.book.copyright.biz.BookAuthInfoBiz;
import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.book.mq.producer.BookMQProducer; import com.pcloud.book.mq.producer.BookMQProducer;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.AgentTypeEnum; import com.pcloud.common.core.constant.AgentTypeEnum;
...@@ -55,6 +61,7 @@ import com.pcloud.common.utils.string.StringUtil; ...@@ -55,6 +61,7 @@ import com.pcloud.common.utils.string.StringUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -120,8 +127,11 @@ public class BookBizImpl implements BookBiz { ...@@ -120,8 +127,11 @@ public class BookBizImpl implements BookBiz {
@Autowired @Autowired
private BookMQProducer bookMQProducer; private BookMQProducer bookMQProducer;
@Autowired @Autowired
private BookAuthInfoBiz bookAuthInfoBiz;
@Autowired
private MainLineConsr mainLineConsr; private MainLineConsr mainLineConsr;
/** /**
* 创建书籍,同时建立与编辑的推广关系 * 创建书籍,同时建立与编辑的推广关系
*/ */
...@@ -1384,6 +1394,7 @@ public class BookBizImpl implements BookBiz { ...@@ -1384,6 +1394,7 @@ public class BookBizImpl implements BookBiz {
return bookDto; return bookDto;
} }
/** /**
* 修改图书与图书类型 * 修改图书与图书类型
* @param book * @param book
...@@ -1554,4 +1565,51 @@ public class BookBizImpl implements BookBiz { ...@@ -1554,4 +1565,51 @@ public class BookBizImpl implements BookBiz {
} }
return bookDao.listPage(pageParam,paramMap,"getBookBaseInfo"); return bookDao.listPage(pageParam,paramMap,"getBookBaseInfo");
} }
@Override
@ParamLog("未设置版权保护的图书")
public PageBeanNew listNoAuthBook(ListNoAuthBookParam listNoAuthBookParam, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adviserId", adviserId);
paramMap.put("isMainEditor", listNoAuthBookParam.getIsMainEditor());
paramMap.put("isFundSupport", listNoAuthBookParam.getIsFundSupport());
paramMap.put("channelId", listNoAuthBookParam.getChannelId());
paramMap.put("name", listNoAuthBookParam.getName() != null && "".equals(listNoAuthBookParam.getName().trim()) ? null : listNoAuthBookParam.getName());
paramMap.put("typeCode", listNoAuthBookParam.getTypeCode() != null && "".equals(listNoAuthBookParam.getTypeCode().trim()) ? null : listNoAuthBookParam.getTypeCode());
paramMap.put("templetId", listNoAuthBookParam.getTempletId());
if(null != listNoAuthBookParam.getTempletId()){
List<Long> ids = assistTempletConsr.getChildIdListByParentId(listNoAuthBookParam.getTempletId());
if(!ListUtils.isEmpty(ids)){
paramMap.put("templeIds",ids);
}
}
PageParam pageParam = new PageParam(listNoAuthBookParam.getCurrentPage(), listNoAuthBookParam.getNumPerPage());
PageBeanNew pageBean = bookDao.listPageNew(pageParam, paramMap, "listNoAuthBook");
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBeanNew(listNoAuthBookParam.getCurrentPage(), listNoAuthBookParam.getNumPerPage(), new ArrayList<>());
}
//设置类型名称
bookSet.setTempletNames(pageBean.getRecordList());
//设置运营平台名称
bookSet.setChannelName(pageBean.getRecordList());
return pageBean;
}
@Override
@ParamLog("获取图书基本信息与授权状态")
public BookInfoAndAuthStatusDTO getBaseAndAuthStatus(Long bookId, Long channelId, Long adviserId) {
BookDto book = getBaseById(bookId);
if(book == null )return null;
//获取编辑是否删除这本书
BookAdviserDto bookAdviser = bookAdviserBiz.getBase(bookId, channelId, adviserId);
BookInfoAndAuthStatusDTO bookInfoAndAuthStatusDTO = new BookInfoAndAuthStatusDTO();
BeanUtils.copyProperties(book, bookInfoAndAuthStatusDTO);
//获取授权状态
BookAuthInfoVO infoByBook = bookAuthInfoBiz.getInfoByBook(bookId, channelId, adviserId);
if(infoByBook != null){
BeanUtils.copyProperties(infoByBook, bookInfoAndAuthStatusDTO);
}
bookInfoAndAuthStatusDTO.setIsDelete(bookAdviser == null ? BookStatusEnum.BookDeleteStatus.DELETE.value : bookAdviser.getIsDelete());
return bookInfoAndAuthStatusDTO;
}
} }
...@@ -230,4 +230,6 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> { ...@@ -230,4 +230,6 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
* @return * @return
*/ */
Integer getCount4BookAdviser(Long bookId); Integer getCount4BookAdviser(Long bookId);
BookAdviserDto getBase(Long bookId, Long channelId, Long adviserId);
} }
...@@ -213,4 +213,13 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book ...@@ -213,4 +213,13 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
public Integer getCount4BookAdviser(Long bookId) { public Integer getCount4BookAdviser(Long bookId) {
return super.getSqlSession().selectOne(this.getStatement("getCount4BookAdviser"), bookId); return super.getSqlSession().selectOne(this.getStatement("getCount4BookAdviser"), bookId);
} }
@Override
public BookAdviserDto getBase(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId",bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
return super.getSqlSession().selectOne(this.getStatement("getBase"), paramMap);
}
} }
...@@ -6,9 +6,11 @@ package com.pcloud.book.book.facade; ...@@ -6,9 +6,11 @@ package com.pcloud.book.book.facade;
import com.pcloud.book.book.dto.BookAssocCount; import com.pcloud.book.book.dto.BookAssocCount;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.vo.ListNoAuthBookParam;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
...@@ -519,4 +521,9 @@ public interface BookFacade { ...@@ -519,4 +521,9 @@ public interface BookFacade {
"currentPage") Integer currentPage, @RequestParam(value = "numPerPage") "currentPage") Integer currentPage, @RequestParam(value = "numPerPage")
Integer numPerPage, @RequestParam(value = "channelId") Long channelId) throws Integer numPerPage, @RequestParam(value = "channelId") Long channelId) throws
PermissionException, JsonParseException, BizException; PermissionException, JsonParseException, BizException;
@RequestMapping(value = "listNoAuthBook", method = RequestMethod.POST)
@ApiOperation(value = "获取未设置正版授权的图书", httpMethod = "POST")
ResponseDto<PageBeanNew> listNoAuthBook(@RequestHeader("token") String token,
@RequestBody ListNoAuthBookParam listNoAuthBookParam) throws PermissionException;
} }
...@@ -11,7 +11,7 @@ import com.pcloud.book.book.dto.BookAssocCount; ...@@ -11,7 +11,7 @@ import com.pcloud.book.book.dto.BookAssocCount;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.facade.BookFacade; import com.pcloud.book.book.facade.BookFacade;
import com.pcloud.book.book.vo.BookAnalysic4PCVO; import com.pcloud.book.book.vo.ListNoAuthBookParam;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
...@@ -23,11 +23,9 @@ import com.pcloud.common.permission.PermissionException; ...@@ -23,11 +23,9 @@ import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.SessionUtil; import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie; import com.pcloud.common.utils.cookie.Cookie;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -729,4 +727,13 @@ public class BookFacadeImpl implements BookFacade { ...@@ -729,4 +727,13 @@ public class BookFacadeImpl implements BookFacade {
return new ResponseDto<PageBean>(null == pageBean ? new PageBean():pageBean); return new ResponseDto<PageBean>(null == pageBean ? new PageBean():pageBean);
} }
@Override
@RequestMapping(value = "listNoAuthBook", method = RequestMethod.POST)
public ResponseDto<PageBeanNew> listNoAuthBook(@RequestHeader("token") String token,
@RequestBody ListNoAuthBookParam listNoAuthBookParam)
throws BizException, PermissionException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
PageBeanNew pageBeanNew = bookBiz.listNoAuthBook(listNoAuthBookParam, adviserId);
return new ResponseDto<PageBeanNew>(null == pageBeanNew ? new PageBeanNew():pageBeanNew);
}
} }
...@@ -9,12 +9,14 @@ import com.pcloud.book.book.dto.BookDetialDTO; ...@@ -9,12 +9,14 @@ import com.pcloud.book.book.dto.BookDetialDTO;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO; import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO; import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.dto.BookInfoAndAuthStatusDTO;
import com.pcloud.book.book.service.BookService; import com.pcloud.book.book.service.BookService;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -180,4 +182,12 @@ public class BookServiceImpl implements BookService { ...@@ -180,4 +182,12 @@ public class BookServiceImpl implements BookService {
monthDate) throws BizException { monthDate) throws BizException {
return ResponseHandleUtil.toResponse(bookBiz.getBookAnalysis(bookIds,monthDate)); return ResponseHandleUtil.toResponse(bookBiz.getBookAnalysis(bookIds,monthDate));
} }
@Override
@GetMapping("getBaseAndAuthStatus")
public ResponseEntity<ResponseDto<BookInfoAndAuthStatusDTO>> getBaseAndAuthStatus
(@RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId,
@RequestParam("adviserId") Long adviserId) throws BizException {
return ResponseHandleUtil.toResponse(bookBiz.getBaseAndAuthStatus(bookId, channelId, adviserId));
}
} }
...@@ -44,6 +44,7 @@ import com.pcloud.book.consumer.user.BookcaseConsr; ...@@ -44,6 +44,7 @@ import com.pcloud.book.consumer.user.BookcaseConsr;
import com.pcloud.book.consumer.user.ChannelConsr; import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.book.consumer.user.PartyConsr; import com.pcloud.book.consumer.user.PartyConsr;
import com.pcloud.book.consumer.voicemessage.MerchantVideoConsr; import com.pcloud.book.consumer.voicemessage.MerchantVideoConsr;
import com.pcloud.book.book.vo.NoAuthBookVO;
import com.pcloud.channelcenter.base.constants.MessageFromTypeEnum; import com.pcloud.channelcenter.base.constants.MessageFromTypeEnum;
import com.pcloud.channelcenter.qrcode.dto.QrcodeLocationDto; import com.pcloud.channelcenter.qrcode.dto.QrcodeLocationDto;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO; import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO;
...@@ -1494,4 +1495,44 @@ public class BookSet { ...@@ -1494,4 +1495,44 @@ public class BookSet {
LOGGER.info("设置父模板标识.setTempleParentId.<END>.[bookDto]:"+bookDto); LOGGER.info("设置父模板标识.setTempleParentId.<END>.[bookDto]:"+bookDto);
} }
/**
* 设置模板名称
*
*/
public void setTempletNames(List<NoAuthBookVO> noAuthBookVOs) {
if (ListUtils.isEmpty(noAuthBookVOs)) {
return;
}
List<Long> templetIds = new ArrayList<Long>();
for (NoAuthBookVO noAuthBookVO : noAuthBookVOs) {
if (noAuthBookVO.getTempletId() != null) {
templetIds.add(noAuthBookVO.getTempletId());
}
}
Map<Long, AssistTempletDTO> assistTempletIds = assistTempletConsr.mapByIds(templetIds);
if (!MapUtils.isEmpty(assistTempletIds)) {
for (NoAuthBookVO noAuthBookVO : noAuthBookVOs) {
if (noAuthBookVO.getTempletId() != null) {
AssistTempletDTO assistTempletDTO = assistTempletIds.get(noAuthBookVO.getTempletId());
if (assistTempletDTO != null) {
noAuthBookVO.setTempletName(assistTempletDTO.getTempletName());
}
}
}
}
LOGGER.info("设置模板名称【END】");
}
public void setChannelName(List<NoAuthBookVO> noAuthBookVOS) {
// 组装运营标识(去重)
List<Long> channelIds = BookTools.listChannelIds4NoAuthBookVO(noAuthBookVOS);
// 从用户中心批量获取渠道名称
Map<Long, String> channelNameMap = channelConsr.getNamesByIdList(channelIds);
if (MapUtils.isEmpty(channelNameMap)) {
return;
}
// 批量填充运营信息
BookTools.setChannelNames4NoAuthBookVO(noAuthBookVOS, channelNameMap);
}
} }
...@@ -5,6 +5,7 @@ package com.pcloud.book.book.tools; ...@@ -5,6 +5,7 @@ package com.pcloud.book.book.tools;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.vo.NoAuthBookVO;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import java.text.ParseException; import java.text.ParseException;
...@@ -24,6 +25,20 @@ public class BookTools { ...@@ -24,6 +25,20 @@ 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> listChannelIds(List<Object> objects) throws BizException { public static List<Long> listChannelIds(List<Object> objects) throws BizException {
Map<Long, Long> channelIdMap = new HashMap<>(); Map<Long, Long> channelIdMap = new HashMap<>();
for (Object object : objects) { for (Object object : objects) {
...@@ -100,21 +115,14 @@ public class BookTools { ...@@ -100,21 +115,14 @@ public class BookTools {
} }
} }
public static void setChannelNames4NoAuthBookVO(List<NoAuthBookVO> noAuthBookVOS, Map<Long,String> channelNameMap) {
public static boolean isValidDate(String str,String dateFormater) { for (NoAuthBookVO noAuthBookVO : noAuthBookVOS) {
boolean convertSuccess=true; Long channelId = noAuthBookVO.getChannelId();
// 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写; if (channelNameMap.containsKey(channelId)) {
SimpleDateFormat format = new SimpleDateFormat(dateFormater); noAuthBookVO.setChannelName(channelNameMap.get(channelId));
try { } else {
// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01 noAuthBookVO.setChannelName("");
format.setLenient(false); }
format.parse(str); }
} catch (ParseException e) {
// e.printStackTrace();
// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
convertSuccess=false;
}
return convertSuccess;
} }
} }
package com.pcloud.book.book.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author lily
* @date 2018/12/3 20:35
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ListNoAuthBookParam implements Serializable {
@ApiModelProperty("isbn/issn/图书名称")
private String name;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("图书类型标识")
private Long templetId;
@ApiModelProperty("当前页")
private Integer currentPage;
@ApiModelProperty("每页条数")
private Integer numPerPage;
@ApiModelProperty("是否主编辑")
private Long isMainEditor;
@ApiModelProperty("是否基金支持")
private Long isFundSupport;
@ApiModelProperty("类型")
private String typeCode;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getTempletId() {
return templetId;
}
public void setTempletId(Long templetId) {
this.templetId = templetId;
}
public Integer getCurrentPage() {
return currentPage;
}
public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
public Integer getNumPerPage() {
return numPerPage;
}
public void setNumPerPage(Integer numPerPage) {
this.numPerPage = numPerPage;
}
public Long getIsMainEditor() {
return isMainEditor;
}
public void setIsMainEditor(Long isMainEditor) {
this.isMainEditor = isMainEditor;
}
public Long getIsFundSupport() {
return isFundSupport;
}
public void setIsFundSupport(Long isFundSupport) {
this.isFundSupport = isFundSupport;
}
public String getTypeCode() {
return typeCode;
}
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
@Override
public String toString() {
return "ListNoAuthBookParamVO{" +
"name='" + name + '\'' +
", channelId=" + channelId +
", templetId=" + templetId +
", currentPage=" + currentPage +
", numPerPage=" + numPerPage +
", isMainEditor=" + isMainEditor +
", isFundSupport=" + isFundSupport +
", typeCode='" + typeCode + '\'' +
'}';
}
}
package com.pcloud.book.book.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author lily
* @date 2018/12/3 21:24
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class NoAuthBookVO implements Serializable {
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("运营名称")
private String channelName;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("图书名称")
private String bookName;
@ApiModelProperty("封面图")
private String coverImg;
@ApiModelProperty("isbn")
private String isbn;
@ApiModelProperty("编号")
private String serialNumber;
@ApiModelProperty("图书类型标识")
private Long templetId;
@ApiModelProperty("图书类型名称")
private String templetName;
@ApiModelProperty("类型编码")
private String typeCode;
@ApiModelProperty("类型名称")
private String typeName;
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getCoverImg() {
return coverImg;
}
public void setCoverImg(String coverImg) {
this.coverImg = coverImg;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
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 String getChannelName() {
return channelName;
}
public void setChannelName(String channelName) {
this.channelName = channelName;
}
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;
}
@Override
public String toString() {
return "NoAuthBookVO{" +
"bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", bookName='" + bookName + '\'' +
", coverImg='" + coverImg + '\'' +
", isbn='" + isbn + '\'' +
", serialNumber='" + serialNumber + '\'' +
", templetId=" + templetId +
", templetName='" + templetName + '\'' +
'}';
}
}
...@@ -5,10 +5,13 @@ package com.pcloud.book.consumer.channel; ...@@ -5,10 +5,13 @@ package com.pcloud.book.consumer.channel;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.channelcenter.qrcode.dto.DefaultTempletQrcode; import com.pcloud.channelcenter.qrcode.dto.DefaultTempletQrcode;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService; import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO; import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrVO; import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocQRcountRequestVO; import com.pcloud.channelcenter.qrcode.vo.BookAssocQRcountRequestVO;
import com.pcloud.channelcenter.wechat.dto.ListIsInBookParam;
import com.pcloud.channelcenter.wechat.service.MessageService;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
...@@ -39,6 +42,8 @@ public class QrcodeSceneConsr { ...@@ -39,6 +42,8 @@ public class QrcodeSceneConsr {
@Autowired @Autowired
private QrcodeSceneService qrcodeSceneService; private QrcodeSceneService qrcodeSceneService;
@Autowired
private MessageService messageService;
/** /**
* 删除书籍关联的二维码 * 删除书籍关联的二维码
...@@ -132,25 +137,6 @@ public class QrcodeSceneConsr { ...@@ -132,25 +137,6 @@ public class QrcodeSceneConsr {
} }
/** /**
* 图书关联二维码
*/
public Long relationQr(Long bookId, Long sceneId, Long adviserId) throws BizException {
LOGGER.info(
"【二维码-渠道(消)】 图书关联二维码,<START>.[bookId]=" + bookId + ",[sceneId]=" + sceneId + "adviserId=" + adviserId);
try {
qrcodeSceneService.relationQr(bookId, sceneId, adviserId);
} catch (BizException e) {
LOGGER.warn("【二维码-渠道(消)】 图书关联二维码:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("【二维码-渠道(消)】 图书关联二维码,<ERROR>.[create]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_CHANNEL_ERROR, "图书关联二维码失败~!");
}
LOGGER.info("【二维码-渠道(消)】 图书关联二维码,<END>");
return sceneId;
}
/**
* 根据图书删除二维码 * 根据图书删除二维码
*/ */
public void deleteByBook(Long bookId, Long channelId, Long adviserId) throws BizException { public void deleteByBook(Long bookId, Long channelId, Long adviserId) throws BizException {
...@@ -257,16 +243,35 @@ public class QrcodeSceneConsr { ...@@ -257,16 +243,35 @@ public class QrcodeSceneConsr {
return count; return count;
} }
@ParamLog(description = "批量获取图书关联二维码个数")
public Map<String,Long> getBookQRCountByMap(List<BookAssocQRcountRequestVO> bookAssocQRcountRequestVOS,String monthDate)throws BizException{ @ParamLog(description = "获取二维码基本信息")
Map<String,Long> countMap = null; public QrcodeSceneDto getById(Long sceneId) throws BizException {
if(sceneId == null) return null;
try { try {
countMap = ResponseHandleUtil.parseMapResponse(qrcodeSceneService.bookAssosQrcountList(bookAssocQRcountRequestVOS,monthDate),String.class,Long.class); return ResponseHandleUtil.parseResponse(qrcodeSceneService.getById(sceneId), QrcodeSceneDto.class);
} catch (BizException e) { } catch (BizException e) {
LOGGER.error("【二维码-渠道(消)】 批量获取图书关联二维码个数[qrcodeSceneService.bookAssosQrcountList],<ERROR>.[create]:" + e.getMessage(), LOGGER.error("【二维码-渠道(消)】 获取二维码基本信息失败,<ERROR>.[getById]:" + e.getMessage(),
e); e);
} }
return countMap; return null;
}
public Map<String, Boolean> listIsInBook(Long bookId, Long channelId, Long adviserId, List<Long> serveIds) throws BizException {
if (bookId == null || channelId == null || adviserId == null || ListUtils.isEmpty(serveIds)) return null;
try {
ListIsInBookParam listIsInBookParam = new ListIsInBookParam();
listIsInBookParam.setAdviserId(adviserId);
listIsInBookParam.setBookId(bookId);
listIsInBookParam.setChannelId(channelId);
listIsInBookParam.setServeIds(serveIds);
return ResponseHandleUtil.parseMap(messageService.listIsInBook(listIsInBookParam), String.class, Boolean.class);
} catch (BizException e) {
LOGGER.error("【二维码-渠道(消)】获取是否是图书下的服务失败,<ERROR>.[listIsInBook]:" + e.getMessage(),
e);
} }
return null;
}
} }
...@@ -59,4 +59,24 @@ public class TemplateConsr { ...@@ -59,4 +59,24 @@ public class TemplateConsr {
LOGGER.info("【模板消息(消)】发送模板消息topic(管理公众号),<END>"); LOGGER.info("【模板消息(消)】发送模板消息topic(管理公众号),<END>");
} }
public void sendOperate(String SceneCode, Long sendPartyId, Long wechatUserId, String url,
Map<String, String> temParam, String sendType, boolean isApp) throws BizException {
// 组装参数对象
TemplateMessageDto templateMessageDto = new TemplateMessageDto();
templateMessageDto.setSceneCode(SceneCode);
templateMessageDto.setSendPartyId(sendPartyId);
templateMessageDto.setSendPartyRole(WechatCode.CHANNEL.value);
templateMessageDto.setUrl(url);
templateMessageDto.setTemParam(temParam);
templateMessageDto.setSendType(sendType);
templateMessageDto.setWechatUserId(wechatUserId);
templateMessageDto.setIsApp(isApp);
try {
templateQueueBiz.sendMessageQueue(templateMessageDto);
} catch (Exception e) {
LOGGER.error("【模板消息(消)】发送模板消息topic(运营号),<ERROR>.[sendMessageQueue]:" + e.getMessage(), e);
}
LOGGER.info("【模板消息(消)】发送模板消息topic(运营号),<END>");
}
} }
package com.pcloud.book.copyright.biz;
import com.pcloud.book.copyright.entity.BookAuthCode;
import com.pcloud.book.copyright.vo.CheckCodeParam;
import com.pcloud.book.copyright.vo.CheckIsAuthServeParam;
import java.util.List;
/**
* @author lily
* @date 2018/12/4 19:11
*/
public interface BookAuthCodeBiz {
/**
* 批量插入授权码
* @param bookAuthCodes
*/
void insert(List<BookAuthCode> bookAuthCodes);
/**
* 获取最大批次号
*/
Integer getMaxBatchNum(Long bookId, Long channelId, Long adviserId);
/**
* 校验验证码
*/
Integer checkCode(CheckCodeParam checkCodeParam, Long channelId, Long wechatUserId);
/**
* 校验该服务是否需要校验
* @return
*/
Boolean checkServe(CheckIsAuthServeParam checkIsAuthServeParam, Long channelId, Long wechatUserId);
}
package com.pcloud.book.copyright.biz;
import com.pcloud.book.copyright.vo.BookAuthInfoAndServesVO;
import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.book.copyright.vo.BookAuthInfoWechatVO;
import com.pcloud.book.copyright.vo.GetAuthInfoParam;
import com.pcloud.book.copyright.vo.ListHaveAuthBookParam;
import com.pcloud.book.copyright.vo.SetAuthStatusParam;
import com.pcloud.book.copyright.vo.SetAuthOpenParam;
import com.pcloud.book.copyright.vo.SetLocationDescVO;
import com.pcloud.common.page.PageBeanNew;
import java.math.BigDecimal;
/**
* @author lily
* @date 2018/12/3 11:39
*/
public interface BookAuthInfoBiz {
/**
* 设置图书版权开启
*/
void setBookAuthOpen(SetAuthOpenParam setAuthOpenParam, Long adviserId);
/**
* 设置图书版权状态
*/
void setAuthStatus(SetAuthStatusParam setAuthStatusParam, Long adviserId);
/**
* 设置图书位置描述
*/
void setBookLocationDesc(SetLocationDescVO setLocationDesc, Long adviserId);
/**
* 是否有正版授权图书
*/
Boolean getIsHaveAuthBook(Long adviserId);
/**
* 获取图书正版授权基本信息
*/
BookAuthInfoVO getInfoByBook(Long bookId, Long channelId, Long adviserId);
/**
* 获取图书正版授权基本信息
*/
BookAuthInfoAndServesVO getInfoAndServesByBook(Long bookId, Long channelId, Long adviserId);
/**
* 获取设置够正版授权图书信息
* @return
*/
PageBeanNew listHaveSetAuthBook(ListHaveAuthBookParam listHaveAuthBookParam, Long adviserId);
/**
* 获取正版授权金价格
*/
BigDecimal getBookAuthPrice(Long bookId, Long channelId, Long adviserId);
/**
* 获取图书授权信息
*/
BookAuthInfoWechatVO getInfoByBook4Wechat(GetAuthInfoParam getAuthInfoParam, Long channelId);
/**
* 获取图书授权基本信息
*/
BookAuthInfoVO getAuthBookInfo(Long bookId, Long channelId, Long adviserId, Long sceneId);
}
package com.pcloud.book.copyright.biz;
import com.pcloud.facade.tradecenter.entity.Genuine;
/**
* @author lily
* @date 2018/12/5 10:34
*/
public interface BookAuthOrderBiz {
/**
* 新增授权金购买订单
*/
void insertOrder(Genuine genuine);
}
package com.pcloud.book.copyright.biz;
import com.pcloud.book.copyright.vo.ServeVO;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2018/12/3 12:02
*/
public interface BookAuthServeBiz {
/**
* 设置图书授权服务
*/
void setBookAuthServes(List<ServeVO> serves, Long adviserId, Long bookId, Long channelId);
/**
* 服务是否开启版权保护
* @return
*/
Map<String, Boolean> isSetServeAuth(Long bookId, Long channelId, Long adviserId, List<Long> serveIds) ;
/**
* 获取图书配置得服务
* @return
*/
List<ServeVO> listServesByBook(Long bookId, Long channelId, Long adviserId);
/**
* 校验服务是否需要授权
* @return
*/
Boolean checkIsNeedAuth(Long bookId, Long channelId, Long adviserId, Long serveId, String serveType);
}
package com.pcloud.book.copyright.biz;
import com.pcloud.book.copyright.entity.BookAuthUser;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
import java.util.List;
/**
* @author lily
* @date 2018/12/4 15:54
*/
public interface BookAuthUserBiz {
/**
* 获取授权用户数量
*/
BookAuthCodeUserVO getAuthUserCount(Long bookId, Long channelId, Long adviserId);
/**
* 最近30天趋势图
*/
List<ThirtyDayCountVO> listThirtyDay(Long bookId, Long channelId, Long adviserId);
/**
* 最近6个月趋势图
*/
List<SixMonthCountVO> listSixMonth(Long bookId, Long channelId, Long adviserId);
/**
* 新增用户授权记录
*/
void insert(BookAuthUser bookAuthUser);
/**
* 校验用户是否已经授权
*/
Boolean checkIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId);
}
package com.pcloud.book.copyright.biz;
import com.pcloud.book.copyright.entity.BookExportRecord;
/**
* @author lily
* @date 2018/12/4 19:14
*/
public interface BookExportRecordBiz {
/**
* 新增到处记录
*/
void insertRecord(BookExportRecord bookExportRecord);
}
package com.pcloud.book.copyright.biz.impl;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.copyright.biz.BookAuthCodeBiz;
import com.pcloud.book.copyright.biz.BookAuthInfoBiz;
import com.pcloud.book.copyright.biz.BookAuthServeBiz;
import com.pcloud.book.copyright.biz.BookAuthUserBiz;
import com.pcloud.book.base.enums.BookStatusEnum;
import com.pcloud.book.copyright.dao.BookAuthCodeDao;
import com.pcloud.book.copyright.entity.BookAuthCode;
import com.pcloud.book.copyright.entity.BookAuthUser;
import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.book.copyright.vo.CheckCodeParam;
import com.pcloud.book.copyright.vo.CheckIsAuthServeParam;
import com.pcloud.common.core.aspect.ParamLog;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2018/12/4 19:11
*/
@Component("bookAuthCodeBiz")
public class BookAuthCodeBizImpl implements BookAuthCodeBiz {
@Autowired
private BookAuthCodeDao bookAuthCodeDao;
@Autowired
private BookAuthUserBiz bookAuthUserBiz;
@Autowired
private BookAuthInfoBiz bookAuthInfoBiz;
@Autowired
private BookAuthServeBiz bookAuthServeBiz;
@Autowired
private QrcodeSceneConsr qrcodeSceneConsr;
@Override
@ParamLog(value = "批量插入授权码",isBefore = false)
public void insert(List<BookAuthCode> bookAuthCodes) {
int insertLength = bookAuthCodes.size();
int i = 0;
while (insertLength > 5000) {
bookAuthCodeDao.insert(bookAuthCodes.subList(i, i + 5000));
i = i + 5000;
insertLength = insertLength - 5000;
}
if (insertLength > 0) {
bookAuthCodeDao.insert(bookAuthCodes.subList(i, i + insertLength));
}
}
@Override
public Integer getMaxBatchNum(Long bookId, Long channelId, Long adviserId) {
Integer batchNum = bookAuthCodeDao.getMaxBatchNum(bookId, channelId, adviserId);
return batchNum;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer checkCode(CheckCodeParam checkCodeParam, Long channelId, Long wechatUserId) {
String code = checkCodeParam.getCode();
if (StringUtils.isEmpty(code) || code.length() != 15) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "此码错误,请重新验证");
}
BookAuthInfoVO authBookInfo = bookAuthInfoBiz.getAuthBookInfo(checkCodeParam.getBookId(), channelId, checkCodeParam.getAdviserId(), checkCodeParam.getSceneId());
if (authBookInfo == null || BookStatusEnum.NO_SET.value.equals(authBookInfo.getBookStatus())) {
return BookStatusEnum.CodeUseTypeEnum.RIGHT.value;
}
Long bookId = authBookInfo.getBookId();
Long adviserId = authBookInfo.getAdviserId();
//校验用户是否已经授权过
Boolean isHaveAuth = bookAuthUserBiz.checkIsHaveAuth(bookId, channelId, adviserId, wechatUserId);
if (isHaveAuth) {
return BookStatusEnum.CodeUseTypeEnum.RIGHT.value;
}
Boolean isHaveCode = bookAuthCodeDao.getIsHaveCode(bookId, channelId, adviserId, code);
Integer count = bookAuthCodeDao.updateUseCount(bookId, channelId, adviserId, code, authBookInfo.getCodeUseCount());
if (count < 1 && isHaveCode) {
return BookStatusEnum.CodeUseTypeEnum.HAVE_USE.value;
} else if (count < 1 && !isHaveCode) {
return BookStatusEnum.CodeUseTypeEnum.NOT_RIGHT.value;
} else {
//新增一条校验成功记录
addUserRecord(bookId, channelId, adviserId, wechatUserId);
return BookStatusEnum.CodeUseTypeEnum.RIGHT.value;
}
}
@Override
@ParamLog("校验服务是否需要验证")
public Boolean checkServe(CheckIsAuthServeParam checkIsAuthServeParam, Long channelId, Long wechatUserId) {
Long serveId = checkIsAuthServeParam.getServeId();
String serveType = checkIsAuthServeParam.getServeType();
if(serveId == null || serveType == null){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "请选择要进入的服务");
}
//校验图书是否开启保护
BookAuthInfoVO authBookInfo = bookAuthInfoBiz.getAuthBookInfo(checkIsAuthServeParam.getBookId(), channelId, checkIsAuthServeParam.getAdviserId(), checkIsAuthServeParam.getSceneId());
if(authBookInfo == null || BookStatusEnum.NO_SET.value.equals(authBookInfo.getBookStatus())){
return false;
}
Long bookId = authBookInfo.getBookId();
Long adviserId = authBookInfo.getAdviserId();
List<Long> serveIds = new ArrayList<>();
serveIds.add(serveId);
Map<String, Boolean> isHaveServe = qrcodeSceneConsr.listIsInBook(bookId, channelId, adviserId, serveIds);
if(isHaveServe == null) return false;
//校验服务是否需要授权
Boolean isNeedAuth = bookAuthServeBiz.checkIsNeedAuth(bookId, channelId, adviserId, serveId, serveType);
if(!isNeedAuth){
return false;
}
//校验用户是否已经授权过
Boolean isHaveAuth = bookAuthUserBiz.checkIsHaveAuth(bookId, channelId, adviserId, wechatUserId);
if(isHaveAuth){
return false;
}else{
return true;
}
}
@ParamLog("新增一条授权成功记录")
private void addUserRecord(Long bookId, Long channelId, Long adviserId, Long wechatUserId) {
BookAuthUser bookAuthUser = new BookAuthUser();
bookAuthUser.setBookId(bookId);
bookAuthUser.setChannelId(channelId);
bookAuthUser.setAdviserId(adviserId);
bookAuthUser.setWechatUserId(wechatUserId);
bookAuthUser.setAuthCode(BookStatusEnum.AuthCodeTypeEnum.BY_CODE.value);
bookAuthUserBiz.insert(bookAuthUser);
}
}
package com.pcloud.book.copyright.biz.impl;
import com.pcloud.book.base.enums.BookStatusEnum;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.consumer.message.TemplateConsr;
import com.pcloud.book.copyright.biz.BookAuthOrderBiz;
import com.pcloud.book.copyright.biz.BookAuthUserBiz;
import com.pcloud.book.copyright.dao.BookAuthOrderDao;
import com.pcloud.book.copyright.entity.BookAuthOrder;
import com.pcloud.book.copyright.entity.BookAuthUser;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.SceneCode;
import com.pcloud.common.core.constant.SendType;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.facade.tradecenter.entity.Genuine;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
/**
* @author lily
* @date 2018/12/5 10:35
*/
@Component("bookAuthOrderBiz")
public class BookAuthOrderBizImpl implements BookAuthOrderBiz {
@Autowired
private BookAuthOrderDao bookAuthOrderDao;
@Autowired
private BookAuthUserBiz bookAuthUserBiz;
@Autowired
private TemplateConsr templateConsr;
@Autowired
private BookBiz bookBiz;
@Override
@ParamLog("新增授权金购买订单")
@Transactional(rollbackFor = Exception.class)
public void insertOrder(Genuine genuine) {
if (genuine == null) return;
BookAuthOrder bookAuthOrder = new BookAuthOrder();
BeanUtils.copyProperties(genuine, bookAuthOrder);
bookAuthOrder.setMoney(genuine.getMoney());
bookAuthOrder.setAccountSettingId(genuine.getOfficialAccountId());
bookAuthOrder.setOrderNum(genuine.getOrderFormMainId().toString());
bookAuthOrderDao.insert(bookAuthOrder);
//新增用户授权记录
BookAuthUser bookAuthUser = new BookAuthUser();
BeanUtils.copyProperties(bookAuthOrder, bookAuthUser);
bookAuthUser.setAuthCode(BookStatusEnum.AuthCodeTypeEnum.BY_PAY.value);
bookAuthUserBiz.insert(bookAuthUser);
BookDto bookDto = bookBiz.getBaseById(genuine.getBookId());
//发送模板消息
Map<String, String> paramMap = new HashMap<>();
paramMap.put("first", "正版授权成功");
paramMap.put("orderMoneySum", genuine.getMoney() == null ? "" : genuine.getMoney().toString());
paramMap.put("orderProductName", bookDto == null ? "" : StringUtil.addBracket(bookDto.getBookName()) + "正版授权费");
paramMap.put("Remark", "支持正版图书,享受专属资源");
String url = "/C" + genuine.getChannelId() + "/qrcode/" + genuine.getSceneId() + "?adviserId=" + genuine.getAdviserId() + "&sceneId=" + genuine.getSceneId() + "&source_type=QRCODE";
templateConsr.sendOperate(SceneCode.PAY_SUCCESS_SCENE.value, genuine.getChannelId(), genuine.getWechatUserId(), url, paramMap, SendType.SEND_BY_WECHAT_USER_ID.value, false);
}
}
package com.pcloud.book.copyright.biz.impl;
import com.pcloud.book.copyright.biz.BookAuthServeBiz;
import com.pcloud.book.copyright.dao.BookAuthServeDao;
import com.pcloud.book.copyright.dto.ServeDTO;
import com.pcloud.book.copyright.entity.BookAuthServe;
import com.pcloud.book.copyright.vo.ServeVO;
import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.ListUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2018/12/3 12:02
*/
@Component("bookAuthServeBiz")
public class BookAuthServeBizImpl implements BookAuthServeBiz {
@Autowired
private BookAuthServeDao bookAuthServeDao;
@Override
@ParamLog("设置图书授权服务")
public void setBookAuthServes(List<ServeVO> serves, Long bookId, Long channelId, Long adviserId) {
if(bookId == null || channelId == null || adviserId == null) {
throw new ChannelBizException(ChannelBizException._ERROR, "图书不存在");
}
deleteServesByBook(bookId, channelId, adviserId);
if(!ListUtils.isEmpty(serves)){
List<BookAuthServe> bookAuthServes = changeToBookAuthServe(serves, bookId, channelId, adviserId);
bookAuthServeDao.insert(bookAuthServes);
}
}
/**
* 是否设置应用授权 return key : typeCode_serveId
*/
@ParamLog("是否设置应用授权")
public Map<String, Boolean> isSetServeAuth(Long bookId, Long channelId, Long adviserId, List<Long> serveIds) {
if (bookId == null || channelId == null || adviserId == null || ListUtils.isEmpty(serveIds)) {
return null;
}
List<ServeDTO> serveDTOS = bookAuthServeDao.isSetServeAuth(bookId, channelId, adviserId, serveIds);
if (ListUtils.isEmpty(serveDTOS)) {
return null;
}
Map<String, Boolean> isSetServesMap = new HashMap<>();
for (ServeDTO serveDTO : serveDTOS) {
isSetServesMap.put(serveDTO.getServeType() + serveDTO.getServeId(), true);
}
return isSetServesMap;
}
@Override
public List<ServeVO> listServesByBook(Long bookId, Long channelId, Long adviserId) {
return bookAuthServeDao.listServesByBook(bookId, channelId, adviserId);
}
@Override
public Boolean checkIsNeedAuth(Long bookId, Long channelId, Long adviserId, Long serveId, String serveType) {
return bookAuthServeDao.checkIsNeedAuth(bookId, channelId, adviserId,serveId,serveType);
}
private List<BookAuthServe> changeToBookAuthServe(List<ServeVO> serves, Long bookId, Long channelId, Long adviserId) {
List<BookAuthServe> bookAuthServes = new ArrayList<>();
for (ServeVO serveVO : serves){
BookAuthServe bookAuthServe = new BookAuthServe();
bookAuthServe.setBookId(bookId);
bookAuthServe.setChannelId(channelId);
bookAuthServe.setAdviserId(adviserId);
BeanUtils.copyProperties(serveVO, bookAuthServe);
bookAuthServes.add(bookAuthServe);
}
return bookAuthServes;
}
@ParamLog("删除图书授权服务")
private void deleteServesByBook(Long bookId, Long channelId, Long adviserId){
if (bookId == null || channelId == null || adviserId == null) {
throw new ChannelBizException(ChannelBizException._ERROR, "图书不存在");
}
List<Long> ids = bookAuthServeDao.selectNeedDelete(bookId, channelId, adviserId);
if(ListUtils.isEmpty(ids)) return;
bookAuthServeDao.deleteServes(ids);
}
}
package com.pcloud.book.copyright.biz.impl;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.copyright.biz.BookAuthUserBiz;
import com.pcloud.book.base.enums.BookStatusEnum;
import com.pcloud.book.copyright.dao.BookAuthUserDao;
import com.pcloud.book.copyright.dto.DateDTO;
import com.pcloud.book.copyright.entity.BookAuthUser;
import com.pcloud.book.copyright.tools.CopyrightTools;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2018/12/4 15:54
*/
@Component("bookAuthUserBiz")
public class BookAuthUserBizImpl implements BookAuthUserBiz {
@Autowired
private BookAuthUserDao bookAuthUserDao;
@ParamLog("获取授权用户数量")
@Override
public BookAuthCodeUserVO getAuthUserCount(Long bookId, Long channelId, Long adviserId) {
if (bookId == null || channelId == null || adviserId == null) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "图书不存在");
}
BookAuthCodeUserVO bookAuthCodeUserVO = bookAuthUserDao.getAuthUserCount(bookId, channelId, adviserId);
if (bookAuthCodeUserVO != null) {
bookAuthCodeUserVO.setCodeUserCount(bookAuthCodeUserVO.getTotalCount() - bookAuthCodeUserVO.getPayUserCount());
} else {
bookAuthCodeUserVO = new BookAuthCodeUserVO();
bookAuthCodeUserVO.setCodeUserCount(0);
bookAuthCodeUserVO.setPayUserCount(0);
}
return bookAuthCodeUserVO;
}
@Override
public List<ThirtyDayCountVO> listThirtyDay(Long bookId, Long channelId, Long adviserId) {
DateDTO date = CopyrightTools.getDateByType(30L);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("startDate", date.getStartTime());
paramMap.put("endDate", date.getEndTime());
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
List<ThirtyDayCountVO> thirtyDayCountVOS = bookAuthUserDao.listThirtyDay(paramMap);
setZoreRecord(thirtyDayCountVOS, date.getStartTime(), date.getEndTime());
return thirtyDayCountVOS;
}
/**
* 填充0
*/
public void setZoreRecord(List<ThirtyDayCountVO> thirtyDayCountVOS, String startDate, String endDate) {
// 计算开始时间和结束时间相差多少天,含当天所以要+1
int dateDiff = (int) (DateUtils.getDateDiff(startDate, endDate) + 1);
List<String> dates = DateUtils.getLastDays(endDate, dateDiff);
for (String date : dates) {
boolean bool = false;
for (ThirtyDayCountVO thirtyDayCountVO : thirtyDayCountVOS) {
if (date.equals(thirtyDayCountVO.getDate())) {
bool = true;
thirtyDayCountVO.setCodeUserCount(thirtyDayCountVO.getTotalCount()-thirtyDayCountVO.getPayUserCount());
}
}
if (!bool) {
ThirtyDayCountVO thirtyDayCountVO = new ThirtyDayCountVO();
thirtyDayCountVO.setDate(date);
thirtyDayCountVO.setCodeUserCount(0);
thirtyDayCountVO.setPayUserCount(0);
thirtyDayCountVOS.add(thirtyDayCountVO);
}
}
thirtyDayCountVOS
.sort((ThirtyDayCountVO dto1, ThirtyDayCountVO dto2) -> dto1.getDate().compareTo(dto2.getDate()));
}
@Override
public List<SixMonthCountVO> listSixMonth(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
paramMap.put("months", CopyrightTools.getLast6Months());
List<SixMonthCountVO> sixMonthCountVOS = bookAuthUserDao.listSixMonth(paramMap);
setZoreRecord(sixMonthCountVOS);
return sixMonthCountVOS;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void insert(BookAuthUser bookAuthUser) {
bookAuthUser.setMonths(new SimpleDateFormat("yyyy-MM").format(new Date()));
bookAuthUserDao.insert(bookAuthUser);
}
@Override
@ParamLog("校验用户是否已经授权")
public Boolean checkIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId) {
return bookAuthUserDao.getIsHaveAuth(bookId, channelId, adviserId, wechatUserId);
}
/**
* 设置最近6月为空得书
*/
private void setZoreRecord(List<SixMonthCountVO> sixMonthCountVOS) {
List<String> last6Months = CopyrightTools.getLast6Months();
for (String month : last6Months) {
boolean bool = false;
for (SixMonthCountVO sixMonthCountVO : sixMonthCountVOS) {
if (month.equals(sixMonthCountVO.getDate())) {
bool = true;
sixMonthCountVO.setCodeUserCount(sixMonthCountVO.getTotalCount() - sixMonthCountVO.getPayUserCount());
}
}
if (!bool) {
SixMonthCountVO sixMonthCountVO = new SixMonthCountVO();
sixMonthCountVO.setDate(month);
sixMonthCountVO.setCodeUserCount(0);
sixMonthCountVO.setPayUserCount(0);
sixMonthCountVO.setTotalCount(0);
sixMonthCountVOS.add(sixMonthCountVO);
}
}
sixMonthCountVOS
.sort((SixMonthCountVO dto1, SixMonthCountVO dto2) -> dto1.getDate().compareTo(dto2.getDate()));
}
}
package com.pcloud.book.copyright.biz.impl;
import com.pcloud.book.copyright.biz.BookExportRecordBiz;
import com.pcloud.book.copyright.dao.BookExportRecordDao;
import com.pcloud.book.copyright.entity.BookExportRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author lily
* @date 2018/12/4 19:14
*/
@Component("bookExportRecordBiz")
public class BookExportRecordBizImpl implements BookExportRecordBiz {
@Autowired
private BookExportRecordDao bookExportRecordDao;
@Override
public void insertRecord(BookExportRecord bookExportRecord) {
bookExportRecordDao.insert(bookExportRecord);
}
}
package com.pcloud.book.copyright.constants;
import com.pcloud.common.constant.CacheConstant;
/**
* @author lily
* @date 2018/12/5 21:08
*/
public class CopyrightConstants {
public static final String BOOK_AUTH_INFO = CacheConstant.BOOK + "BOOK_AUTH_INFO";
}
package com.pcloud.book.copyright.dao;
import com.pcloud.book.copyright.entity.BookAuthCode;
import com.pcloud.common.core.dao.BaseDao;
/**
* @author lily
* @date 2018/12/4 19:31
*/
public interface BookAuthCodeDao extends BaseDao<BookAuthCode> {
/**
* 获取最大批次号
*/
Integer getMaxBatchNum(Long bookId, Long channelId, Long adviserId);
/**
* 更新使用次数
*/
Integer updateUseCount(Long bookId, Long channelId, Long adviserId, String code, Integer codeUseCount);
/**
* 获取码数量
*/
Boolean getIsHaveCode(Long bookId, Long channelId, Long adviserId, String code);
}
package com.pcloud.book.copyright.dao;
import com.pcloud.book.copyright.entity.BookAuthInfo;
import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.common.core.dao.BaseDao;
/**
* @author lily
* @date 2018/12/3 15:17
*/
public interface BookAuthInfoDao extends BaseDao<BookAuthInfo> {
/**
* 获取是否有受保护图书
* @param adviserId 编辑标识
* @return
*/
Boolean getIsHaveAuthBook(Long adviserId);
/**
* 更新印码位置描述
*/
void updateLocationDesc(BookAuthInfo bookAuthInfo);
/**
* 获取图书正版授权信息
*/
BookAuthInfoVO getInfoByBook(Long bookId, Long channelId, Long adviserId);
/**
* 更新图书版权状态
*/
void updateBookStatus(Long id, Integer bookStatus, Long adviserId);
/**
* 更新图书版权基本信息
*/
void updateBaseInfo(BookAuthInfo bookAuthInfo);
}
package com.pcloud.book.copyright.dao;
import com.pcloud.book.copyright.entity.BookAuthOrder;
import com.pcloud.common.core.dao.BaseDao;
/**
* @author lily
* @date 2018/12/5 10:36
*/
public interface BookAuthOrderDao extends BaseDao<BookAuthOrder> {
}
package com.pcloud.book.copyright.dao;
import com.pcloud.book.copyright.dto.ServeDTO;
import com.pcloud.book.copyright.entity.BookAuthServe;
import com.pcloud.book.copyright.vo.ServeVO;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @author lily
* @date 2018/12/3 14:17
*/
public interface BookAuthServeDao extends BaseDao<BookAuthServe> {
/**
* 删除授权服务
*/
void deleteServes(List<Long> ids);
/**
* 是否设置授权应用
* @return
*/
List<ServeDTO> isSetServeAuth(Long bookId, Long channelId, Long adviserId, List<Long> serveIds);
/**
* 加入正版授权得服务
*/
List<ServeVO> listServesByBook(Long bookId, Long channelId, Long adviserId);
/**
* 校验服务是否需要授权
*/
Boolean checkIsNeedAuth(Long bookId, Long channelId, Long adviserId, Long serveId, String serveType);
/**
* 获取需要删除的数据
*/
List<Long> selectNeedDelete(Long bookId, Long channelId, Long adviserId);
}
package com.pcloud.book.copyright.dao;
import com.pcloud.book.copyright.entity.BookAuthUser;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2018/12/4 15:56
*/
public interface BookAuthUserDao extends BaseDao<BookAuthUser> {
/**
* 获取授权用户总数
*/
BookAuthCodeUserVO getAuthUserCount(Long bookId, Long channelId, Long adviserId);
/**
* 30天趋势图
*/
List<ThirtyDayCountVO> listThirtyDay(Map<String,Object> paramMap);
/**
* 6个月趋势图
* @return
*/
List<SixMonthCountVO> listSixMonth(Map<String,Object> paramMap);
/**
* 校验是否已经授权
*/
Boolean getIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId);
}
package com.pcloud.book.copyright.dao;
import com.pcloud.book.copyright.entity.BookExportRecord;
import com.pcloud.common.core.dao.BaseDao;
/**
* @author lily
* @date 2018/12/4 19:20
*/
public interface BookExportRecordDao extends BaseDao<BookExportRecord> {
}
package com.pcloud.book.copyright.dao.impl;
import com.pcloud.book.copyright.dao.BookAuthCodeDao;
import com.pcloud.book.copyright.entity.BookAuthCode;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* @author lily
* @date 2018/12/4 19:32
*/
@Component("bookAuthCodeDao")
public class BookAuthCodeDaoImpl extends BaseDaoImpl<BookAuthCode> implements BookAuthCodeDao {
@Override
public Integer getMaxBatchNum(Long bookId, Long channelId, Long adviserId) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("bookId",bookId);
paramMap.put("channelId",channelId);
paramMap.put("adviserId",adviserId);
return this.getSqlSession().selectOne(this.getStatement("getMaxBatchNum"), paramMap);
}
@Override
public Integer updateUseCount(Long bookId, Long channelId, Long adviserId, String code, Integer codeUseCount) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("bookId",bookId);
paramMap.put("channelId",channelId);
paramMap.put("adviserId",adviserId);
paramMap.put("codeUseCount",codeUseCount);
paramMap.put("code",code);
return this.getSqlSession().update(this.getStatement("updateUseCount"), paramMap);
}
@Override
public Boolean getIsHaveCode(Long bookId, Long channelId, Long adviserId, String code) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("bookId",bookId);
paramMap.put("channelId",channelId);
paramMap.put("adviserId",adviserId);
paramMap.put("code",code);
return this.getSqlSession().selectOne(this.getStatement("getIsHaveCode"), paramMap);
}
}
package com.pcloud.book.copyright.dao.impl;
import com.pcloud.book.base.enums.BookStatusEnum;
import com.pcloud.book.copyright.dao.BookAuthInfoDao;
import com.pcloud.book.copyright.entity.BookAuthInfo;
import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @author lily
* @date 2018/12/3 15:19
*/
@Component("bookAuthInfoDao")
public class BookAuthInfoDaoImpl extends BaseDaoImpl<BookAuthInfo> implements BookAuthInfoDao {
@Override
public Boolean getIsHaveAuthBook(Long adviserId) {
return this.getSqlSession().selectOne(this.getStatement("getIsHaveAuthBook"), adviserId);
}
@Override
public void updateLocationDesc(BookAuthInfo bookAuthInfo) {
this.getSqlSession().update(this.getStatement("updateLocationDesc"), bookAuthInfo);
}
@Override
public BookAuthInfoVO getInfoByBook(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
return this.getSqlSession().selectOne(this.getStatement("getInfoByBook"), paramMap);
}
@Override
public void updateBookStatus(Long id, Integer bookStatus, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("id", id);
paramMap.put("bookStatus", bookStatus);
paramMap.put("adviserId", adviserId);
if(BookStatusEnum.PROTECT.value.equals(bookStatus)){
paramMap.put("openTime", new Date());
}else{
paramMap.put("closeTime", new Date());
}
this.getSqlSession().update(this.getStatement("updateBookStatus"), paramMap);
}
@Override
public void updateBaseInfo(BookAuthInfo bookAuthInfo) {
this.getSqlSession().update(this.getStatement("updateBaseInfo"), bookAuthInfo);
}
}
package com.pcloud.book.copyright.dao.impl;
import com.pcloud.book.copyright.dao.BookAuthOrderDao;
import com.pcloud.book.copyright.entity.BookAuthOrder;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
/**
* @author lily
* @date 2018/12/5 10:36
*/
@Component("bookAuthOrderDao")
public class BookAuthOrderDaoImpl extends BaseDaoImpl<BookAuthOrder> implements BookAuthOrderDao {
}
package com.pcloud.book.copyright.dao.impl;
import com.pcloud.book.copyright.dao.BookAuthServeDao;
import com.pcloud.book.copyright.dto.ServeDTO;
import com.pcloud.book.copyright.entity.BookAuthServe;
import com.pcloud.book.copyright.vo.ServeVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2018/12/3 14:18
*/
@Component("bookAuthServeDao")
public class BookAuthServeDaoImpl extends BaseDaoImpl<BookAuthServe> implements BookAuthServeDao {
@Override
public void deleteServes(List<Long> ids){
this.getSqlSession().update(this.getStatement("deleteServes"), ids);
}
@Override
public List<ServeDTO> isSetServeAuth(Long bookId, Long channelId, Long adviserId, List<Long> serveIds) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
paramMap.put("serveIds", serveIds);
return this.getSqlSession().selectList(this.getStatement("isSetServeAuth"), paramMap);
}
@Override
public List<ServeVO> listServesByBook(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
return this.getSqlSession().selectList(this.getStatement("listServesByBook"), paramMap);
}
@Override
public Boolean checkIsNeedAuth(Long bookId, Long channelId, Long adviserId, Long serveId, String serveType) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
paramMap.put("serveId", serveId);
paramMap.put("serveType", serveType);
return this.getSqlSession().selectOne(this.getStatement("checkIsNeedAuth"), paramMap);
}
@Override
public List<Long> selectNeedDelete(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
return this.getSqlSession().selectList(this.getStatement("selectNeedDelete"), paramMap);
}
}
package com.pcloud.book.copyright.dao.impl;
import com.pcloud.book.copyright.dao.BookAuthUserDao;
import com.pcloud.book.copyright.entity.BookAuthUser;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2018/12/4 15:56
*/
@Component("bookAuthUserDao")
public class BookAuthUserDaoImpl extends BaseDaoImpl<BookAuthUser> implements BookAuthUserDao {
/**
* 根据类型获取授权用户总数
*/
@Override
public BookAuthCodeUserVO getAuthUserCount(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId",adviserId);
return this.getSqlSession().selectOne(this.getStatement("getAuthUserCount"), paramMap);
}
@Override
public List<ThirtyDayCountVO> listThirtyDay(Map<String, Object> paramMap) {
return this.getSqlSession().selectList(this.getStatement("listThirtyDay"), paramMap);
}
@Override
public List<SixMonthCountVO> listSixMonth(Map<String, Object> paramMap) {
return this.getSqlSession().selectList(this.getStatement("listSixMonth"), paramMap);
}
@Override
public Boolean getIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId",adviserId);
paramMap.put("wechatUserId",wechatUserId);
return this.getSqlSession().selectOne(this.getStatement("getIsHaveAuth"), paramMap);
}
}
package com.pcloud.book.copyright.dao.impl;
import com.pcloud.book.copyright.dao.BookExportRecordDao;
import com.pcloud.book.copyright.entity.BookExportRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
/**
* @author lily
* @date 2018/12/4 19:20
*/
@Component("bookExportRecordDao")
public class BookExportRecordDaoImpl extends BaseDaoImpl<BookExportRecord> implements BookExportRecordDao {
}
package com.pcloud.book.copyright.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author lily
* @date 2018/12/4 16:51
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel
public class BarCodeDTO implements Serializable {
@ApiModelProperty("条形码值")
private String code;
@ApiModelProperty("条形码url")
private String barCodeUrl;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getBarCodeUrl() {
return barCodeUrl;
}
public void setBarCodeUrl(String barCodeUrl) {
this.barCodeUrl = barCodeUrl;
}
@Override
public String toString() {
return "BarCodeDTO{" +
"code='" + code + '\'' +
", barCodeUrl='" + barCodeUrl + '\'' +
'}';
}
}
package com.pcloud.book.copyright.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2018/8/9 15:13
*/
public class DateDTO implements Serializable {
private static final long serialVersionUID = -7592950104968253033L;
private String startTime;
private String endTime;
private String type;
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
return "DateDto{" +
"startTime='" + startTime + '\'' +
", endTime='" + endTime + '\'' +
", type='" + type + '\'' +
'}';
}
}
package com.pcloud.book.copyright.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author lily
* @date 2018/12/3 16:18
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ServeDTO implements Serializable {
@ApiModelProperty("服务标识")
private Long serveId;
@ApiModelProperty("服务类型")
private String serveType;
public Long getServeId() {
return serveId;
}
public void setServeId(Long serveId) {
this.serveId = serveId;
}
public String getServeType() {
return serveType;
}
public void setServeType(String serveType) {
this.serveType = serveType;
}
@Override
public String toString() {
return "SeverDTO{" +
"serveId=" + serveId +
", serveType='" + serveType + '\'' +
'}';
}
}
package com.pcloud.book.copyright.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
/**
* @author lily
* @date 2018/12/3 11:02
*/
@ApiModel
public class BookAuthCode extends BaseEntity {
private Long id;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("授权码")
private String authCode;
@ApiModelProperty("批次号")
private String batchNum;
@ApiModelProperty("完整授权码")
private String fullCode;
@ApiModelProperty("使用次数")
private Integer useCount;
@ApiModelProperty("创建人")
private Long createdUser;
@ApiModelProperty("创建时间")
private Date createdDate;
@ApiModelProperty("最后修改人")
private Long lastModifiedUser;
@ApiModelProperty("最后修改时间")
private Date lastModifiedDate;
public String getFullCode() {
return fullCode;
}
public void setFullCode(String fullCode) {
this.fullCode = fullCode;
}
@Override
public Long getId() {
return id;
}
public String getBatchNum() {
return batchNum;
}
public void setBatchNum(String batchNum) {
this.batchNum = batchNum;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public String getAuthCode() {
return authCode;
}
public void setAuthCode(String authCode) {
this.authCode = authCode;
}
public Integer getUseCount() {
return useCount;
}
public void setUseCount(Integer useCount) {
this.useCount = useCount;
}
public Long getCreatedUser() {
return createdUser;
}
public void setCreatedUser(Long createdUser) {
this.createdUser = createdUser;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Long getLastModifiedUser() {
return lastModifiedUser;
}
public void setLastModifiedUser(Long lastModifiedUser) {
this.lastModifiedUser = lastModifiedUser;
}
public Date getLastModifiedDate() {
return lastModifiedDate;
}
public void setLastModifiedDate(Date lastModifiedDate) {
this.lastModifiedDate = lastModifiedDate;
}
@Override
public String toString() {
return "BookAuthCode{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", authCode='" + authCode + '\'' +
", batchNum='" + batchNum + '\'' +
", fullCode='" + fullCode + '\'' +
", useCount=" + useCount +
", createdUser=" + createdUser +
", createdDate=" + createdDate +
", lastModifiedUser=" + lastModifiedUser +
", lastModifiedDate=" + lastModifiedDate +
'}';
}
}
package com.pcloud.book.copyright.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author lily
* @date 2018/12/3 11:14
*/
@ApiModel
public class BookAuthInfo extends BaseEntity {
@ApiModelProperty("图书授权信息标识")
private Long id;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("价格")
private BigDecimal price;
@ApiModelProperty("编码可使用次数")
private Integer codeUseCount;
@ApiModelProperty("购买链接地址")
private String buyUrl;
@ApiModelProperty("图书状态")
private Integer bookStatus;
@ApiModelProperty("位置描述")
private String locationDesc;
@ApiModelProperty("验证类型")
private Integer checkType;
@ApiModelProperty("创建人")
private Long createdUser;
@ApiModelProperty("创建时间")
private Date createdDate;
@ApiModelProperty("最后修改人")
private Long lastModifiedUser;
@ApiModelProperty("最后修改时间")
private Date lastModifiedDate;
@ApiModelProperty("最近开启时间")
private Date openTime;
@ApiModelProperty("最近关闭时间")
private Date closeTime;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Integer getCodeUseCount() {
return codeUseCount;
}
public void setCodeUseCount(Integer codeUseCount) {
this.codeUseCount = codeUseCount;
}
public String getBuyUrl() {
return buyUrl;
}
public void setBuyUrl(String buyUrl) {
this.buyUrl = buyUrl;
}
public Integer getBookStatus() {
return bookStatus;
}
public void setBookStatus(Integer bookStatus) {
this.bookStatus = bookStatus;
}
public String getLocationDesc() {
return locationDesc;
}
public void setLocationDesc(String locationDesc) {
this.locationDesc = locationDesc;
}
public Long getCreatedUser() {
return createdUser;
}
public void setCreatedUser(Long createdUser) {
this.createdUser = createdUser;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Long getLastModifiedUser() {
return lastModifiedUser;
}
public void setLastModifiedUser(Long lastModifiedUser) {
this.lastModifiedUser = lastModifiedUser;
}
public Date getLastModifiedDate() {
return lastModifiedDate;
}
public void setLastModifiedDate(Date lastModifiedDate) {
this.lastModifiedDate = lastModifiedDate;
}
public Integer getCheckType() {
return checkType;
}
public void setCheckType(Integer checkType) {
this.checkType = checkType;
}
public Date getOpenTime() {
return openTime;
}
public void setOpenTime(Date openTime) {
this.openTime = openTime;
}
public Date getCloseTime() {
return closeTime;
}
public void setCloseTime(Date closeTime) {
this.closeTime = closeTime;
}
@Override
public String toString() {
return "BookAuthInfo{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", price=" + price +
", codeUseCount=" + codeUseCount +
", buyUrl='" + buyUrl + '\'' +
", bookStatus=" + bookStatus +
", locationDesc='" + locationDesc + '\'' +
", checkType=" + checkType +
", createdUser=" + createdUser +
", createdDate=" + createdDate +
", lastModifiedUser=" + lastModifiedUser +
", lastModifiedDate=" + lastModifiedDate +
", openTime=" + openTime +
", closeTime=" + closeTime +
'}';
}
}
package com.pcloud.book.copyright.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author lily
* @date 2018/12/5 10:37
*/
public class BookAuthOrder extends BaseEntity {
@ApiModelProperty("图书授权金购买")
private Long id;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("价格")
private BigDecimal money;
@ApiModelProperty("公众号标识")
private Long accountSettingId;
@ApiModelProperty("订单编号")
private String orderNum;
@ApiModelProperty("微信用户标识")
private Long wechatUserId;
@ApiModelProperty("支付方式")
private Integer paymentSource;
@ApiModelProperty("创建人")
private Long createdUser;
@ApiModelProperty("创建时间")
private Date createdDate;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public BigDecimal getMoney() {
return money;
}
public void setMoney(BigDecimal money) {
this.money = money;
}
public Long getAccountSettingId() {
return accountSettingId;
}
public void setAccountSettingId(Long accountSettingId) {
this.accountSettingId = accountSettingId;
}
public String getOrderNum() {
return orderNum;
}
public void setOrderNum(String orderNum) {
this.orderNum = orderNum;
}
public Long getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId;
}
public Long getCreatedUser() {
return createdUser;
}
public void setCreatedUser(Long createdUser) {
this.createdUser = createdUser;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Integer getPaymentSource() {
return paymentSource;
}
public void setPaymentSource(Integer paymentSource) {
this.paymentSource = paymentSource;
}
@Override
public String toString() {
return "BookAuthOrder{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", money=" + money +
", accountSettingId=" + accountSettingId +
", orderNum='" + orderNum + '\'' +
", wechatUserId=" + wechatUserId +
", paymentSource=" + paymentSource +
", createdUser=" + createdUser +
", createdDate=" + createdDate +
'}';
}
}
package com.pcloud.book.copyright.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
/**
* @author lily
* @date 2018/12/3 11:08
*/
@ApiModel
public class BookAuthServe extends BaseEntity {
private Long id;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("服务标识")
private Long serveId;
@ApiModelProperty("服务类型")
private String serveType;
@ApiModelProperty("创建人")
private Long createdUser;
@ApiModelProperty("创建时间")
private Date createdDate;
@ApiModelProperty("最后修改人")
private Long lastModifiedUser;
@ApiModelProperty("最后修改时间")
private Date lastModifiedDate;
@ApiModelProperty("是否删除")
private Integer isDelete;
public Integer getIsDelete() {
return isDelete;
}
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getServeId() {
return serveId;
}
public void setServeId(Long serveId) {
this.serveId = serveId;
}
public String getServeType() {
return serveType;
}
public void setServeType(String serveType) {
this.serveType = serveType;
}
public Long getCreatedUser() {
return createdUser;
}
public void setCreatedUser(Long createdUser) {
this.createdUser = createdUser;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Long getLastModifiedUser() {
return lastModifiedUser;
}
public void setLastModifiedUser(Long lastModifiedUser) {
this.lastModifiedUser = lastModifiedUser;
}
public Date getLastModifiedDate() {
return lastModifiedDate;
}
public void setLastModifiedDate(Date lastModifiedDate) {
this.lastModifiedDate = lastModifiedDate;
}
@Override
public String toString() {
return "BookAuthServe{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", serveId=" + serveId +
", serveType='" + serveType + '\'' +
", createdUser=" + createdUser +
", createdDate=" + createdDate +
", lastModifiedUser=" + lastModifiedUser +
", lastModifiedDate=" + lastModifiedDate +
'}';
}
}
package com.pcloud.book.copyright.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
/**
* @author lily
* @date 2018/12/3 11:11
*/
@ApiModel
public class BookAuthUser extends BaseEntity {
@ApiModelProperty("图书授权用户标识")
private Long id;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("微信用户标识")
private Long wechatUserId;
@ApiModelProperty("是否授权码进来用户(0 授权码 1 授权金购买")
private Integer isAuthCode;
@ApiModelProperty("月份")
private String months;
@ApiModelProperty("创建时间带时分秒")
private Date createdTime;
@ApiModelProperty("创建人")
private Long createdUser;
@ApiModelProperty("创建时间不带时分秒")
private Date createdDate;
@ApiModelProperty("最后修改人")
private Long lastModifiedUser;
@ApiModelProperty("最后修改时间")
private Date lastModifiedDate;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId;
}
public String getMonths() {
return months;
}
public void setMonths(String months) {
this.months = months;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public Long getCreatedUser() {
return createdUser;
}
public void setCreatedUser(Long createdUser) {
this.createdUser = createdUser;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public Long getLastModifiedUser() {
return lastModifiedUser;
}
public void setLastModifiedUser(Long lastModifiedUser) {
this.lastModifiedUser = lastModifiedUser;
}
public Date getLastModifiedDate() {
return lastModifiedDate;
}
public void setLastModifiedDate(Date lastModifiedDate) {
this.lastModifiedDate = lastModifiedDate;
}
public Integer getAuthCode() {
return isAuthCode;
}
public void setAuthCode(Integer authCode) {
isAuthCode = authCode;
}
@Override
public String toString() {
return "BookAuthUser{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", wechatUserId=" + wechatUserId +
", isAuthCode=" + isAuthCode +
", months='" + months + '\'' +
", createdTime=" + createdTime +
", createdUser=" + createdUser +
", createdDate=" + createdDate +
", lastModifiedUser=" + lastModifiedUser +
", lastModifiedDate=" + lastModifiedDate +
'}';
}
}
package com.pcloud.book.copyright.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
/**
* @author lily
* @date 2018/12/4 19:21
*/
@ApiModel
public class BookExportRecord extends BaseEntity {
private Long id;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("批次号")
private String batchNum;
@ApiModelProperty("下载地址")
private String downloadUrl;
@ApiModelProperty("创建人")
private Long createdUser;
@ApiModelProperty("创建时间不带时分秒")
private Date createdDate;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public String getBatchNum() {
return batchNum;
}
public void setBatchNum(String batchNum) {
this.batchNum = batchNum;
}
public String getDownloadUrl() {
return downloadUrl;
}
public void setDownloadUrl(String downloadUrl) {
this.downloadUrl = downloadUrl;
}
public Long getCreatedUser() {
return createdUser;
}
public void setCreatedUser(Long createdUser) {
this.createdUser = createdUser;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
@Override
public String toString() {
return "BookExportRecord{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", batchNum='" + batchNum + '\'' +
", downloadUrl='" + downloadUrl + '\'' +
", createdUser=" + createdUser +
", createdDate=" + createdDate +
'}';
}
}
package com.pcloud.book.copyright.facade;
import com.pcloud.book.copyright.vo.CheckCodeParam;
import com.pcloud.book.copyright.vo.CheckIsAuthServeParam;
import com.pcloud.book.copyright.vo.CodeUseStatusVO;
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.ApiOperation;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* @author lily
* @date 2018/11/29 16:58
*/
@Api(description = "授权码")
public interface BookAuthCodeFacade {
@ApiOperation(value = "校验授权码", httpMethod = "POST")
@RequestMapping(value = "checkCode", method = RequestMethod.POST)
ResponseDto<CodeUseStatusVO> checkCode(@CookieValue("userInfo") String userInfo, @RequestBody CheckCodeParam checkCodeParam)
throws PermissionException, BizException;
@ApiOperation(value = "校验服务是否需要验证", httpMethod = "POST")
@RequestMapping(value = "checkServe", method = RequestMethod.POST)
ResponseDto<Boolean> checkServe(@CookieValue("userInfo") String userInfo, @RequestBody CheckIsAuthServeParam checkIsAuthServeParam)
throws PermissionException, BizException;
}
package com.pcloud.book.copyright.facade;
import com.pcloud.book.copyright.vo.BookAuthInfoAndServesVO;
import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.book.copyright.vo.BookAuthInfoWechatVO;
import com.pcloud.book.copyright.vo.GetAuthInfoParam;
import com.pcloud.book.copyright.vo.ListHaveAuthBookParam;
import com.pcloud.book.copyright.vo.SetAuthStatusParam;
import com.pcloud.book.copyright.vo.SetAuthOpenParam;
import com.pcloud.book.copyright.vo.SetLocationDescVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;
/**
* @author lily
* @date 2018/12/3 10:55
*/
@Api(description = "图书授权信息")
public interface BookAuthInfoFacade {
@ApiOperation(value = "设置图书版权开启", httpMethod = "POST")
@RequestMapping(value = "setBookAuthOpen", method = RequestMethod.POST)
ResponseDto<?> setBookAuthOpen(@RequestHeader("token") String token, @RequestBody SetAuthOpenParam setAuthOpenParam)
throws PermissionException, BizException;
@ApiOperation(value = "设置图书版权状态", httpMethod = "POST")
@RequestMapping(value = "setAuthStatus", method = RequestMethod.POST)
ResponseDto<?> setAuthStatus(@RequestHeader("token") String token, @RequestBody SetAuthStatusParam setAuthStatusParam)
throws PermissionException, BizException;
@ApiOperation(value = "设置位置描述", httpMethod = "POST")
@RequestMapping(value = "setBookLocationDesc", method = RequestMethod.POST)
ResponseDto<?> setBookLocationDesc(@RequestHeader("token") String token, @RequestBody SetLocationDescVO setLocationDesc)
throws PermissionException, BizException;
@ApiOperation(value = "获取是否有正版授权书", httpMethod = "GET")
@RequestMapping(value = "getIsHaveAuthBook", method = RequestMethod.GET)
ResponseDto<Boolean> getIsHaveAuthBook(@RequestHeader("token") String token)
throws PermissionException, BizException;
@ApiOperation(value = "获取正版授权信息", httpMethod = "GET")
@RequestMapping(value = "getInfoByBook", method = RequestMethod.GET)
ResponseDto<BookAuthInfoVO> getInfoByBook(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId)
throws PermissionException, BizException;
@ApiOperation(value = "获取正版授权信息(客户端)", httpMethod = "POST")
@RequestMapping(value = "getInfoByBook4Wechat", method = RequestMethod.POST)
ResponseDto<BookAuthInfoWechatVO> getInfoByBook4Wechat(@CookieValue("userInfo") String userInfo, @RequestBody GetAuthInfoParam getAuthInfoParam)
throws PermissionException, BizException;
@ApiOperation(value = "获取正版授权信息", httpMethod = "GET")
@RequestMapping(value = "getInfoAndServesByBook", method = RequestMethod.GET)
ResponseDto<BookAuthInfoAndServesVO> getInfoAndServesByBook(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId)
throws PermissionException, BizException;
@ApiOperation(value = "获取设置过的正版图书信息", httpMethod = "POST")
@RequestMapping(value = "listHaveSetAuthBook", method = RequestMethod.POST)
ResponseDto<PageBeanNew> listHaveSetAuthBook(@RequestHeader("token") String token, @RequestBody ListHaveAuthBookParam listHaveAuthBookParam)
throws PermissionException, BizException;
}
package com.pcloud.book.copyright.facade;
import io.swagger.annotations.Api;
/**
* @author lily
* @date 2018/12/3 11:00
*/
@Api(description = "图书授权服务信息")
public interface BookAuthServeFacade {
}
package com.pcloud.book.copyright.facade;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
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.ApiOperation;
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 java.util.List;
/**
* @author lily
* @date 2018/12/3 10:59
*/
@Api(description = "版权验证用户")
public interface BookAuthUserFacade {
@ApiOperation(value = "获取正版授权总人数", httpMethod = "GET")
@RequestMapping(value = "getAuthUserCount", method = RequestMethod.GET)
ResponseDto<BookAuthCodeUserVO> getAuthUserCount(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId)
throws PermissionException, BizException;
@ApiOperation(value = "获取30天趋势图", httpMethod = "GET")
@RequestMapping(value = "listThirtyDay", method = RequestMethod.GET)
ResponseDto<List<ThirtyDayCountVO>> listThirtyDay(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId)
throws PermissionException, BizException;
@ApiOperation(value = "6个月趋势图", httpMethod = "GET")
@RequestMapping(value = "listSixMonth", method = RequestMethod.GET)
ResponseDto<List<SixMonthCountVO>> listSixMonth(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId)
throws PermissionException, BizException;
}
package com.pcloud.book.copyright.facade.impl;
import com.pcloud.book.copyright.biz.BookAuthCodeBiz;
import com.pcloud.book.copyright.facade.BookAuthCodeFacade;
import com.pcloud.book.copyright.vo.CheckCodeParam;
import com.pcloud.book.copyright.vo.CheckIsAuthServeParam;
import com.pcloud.book.copyright.vo.CodeUseStatusVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.cookie.Cookie;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* @author lily
* @date 2018/11/29 16:59
*/
@RequestMapping("bookAuthCode")
@RestController("bookAuthCodeFacade")
public class BookAuthCodeFacadeImpl implements BookAuthCodeFacade {
@Autowired
private BookAuthCodeBiz bookAuthCodeBiz;
@Override
@RequestMapping(value = "checkCode", method = RequestMethod.POST)
public ResponseDto<CodeUseStatusVO> checkCode(@CookieValue("userInfo") String userInfo, @RequestBody CheckCodeParam checkCodeParam) throws PermissionException, BizException {
Long channelId = checkCodeParam.getChannelId();
if(channelId == null){
channelId = Cookie.getId(userInfo, Cookie._CHANNEL_ID);
}
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
Integer codeUseStatus = bookAuthCodeBiz.checkCode(checkCodeParam, channelId, wechatUserId);
CodeUseStatusVO codeUseStatusVO = new CodeUseStatusVO();
codeUseStatusVO.setCodeUseStatus(codeUseStatus);
return new ResponseDto<>(codeUseStatusVO);
}
@Override
@PostMapping("checkServe")
public ResponseDto<Boolean> checkServe(@CookieValue("userInfo") String userInfo, @RequestBody CheckIsAuthServeParam checkIsAuthServeParam) throws PermissionException, BizException {
Long channelId = checkIsAuthServeParam.getChannelId();
if(channelId == null){
channelId = Cookie.getId(userInfo, Cookie._CHANNEL_ID);
}
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
Boolean code = bookAuthCodeBiz.checkServe(checkIsAuthServeParam, channelId, wechatUserId);
return new ResponseDto<>(code == null ? false : code);
}
}
package com.pcloud.book.copyright.facade.impl;
import com.pcloud.book.copyright.biz.BookAuthInfoBiz;
import com.pcloud.book.copyright.facade.BookAuthInfoFacade;
import com.pcloud.book.copyright.vo.BookAuthInfoAndServesVO;
import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.book.copyright.vo.BookAuthInfoWechatVO;
import com.pcloud.book.copyright.vo.GetAuthInfoParam;
import com.pcloud.book.copyright.vo.ListHaveAuthBookParam;
import com.pcloud.book.copyright.vo.SetAuthStatusParam;
import com.pcloud.book.copyright.vo.SetAuthOpenParam;
import com.pcloud.book.copyright.vo.SetLocationDescVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @author lily
* @date 2018/12/3 10:58
*/
@RequestMapping("bookAuthInfo")
@RestController("bookAuthInfoFacade")
public class BookAuthInfoFacadeImpl implements BookAuthInfoFacade {
@Autowired
private BookAuthInfoBiz bookAuthInfoBiz;
@Override
@PostMapping("setBookAuthOpen")
public ResponseDto<?> setBookAuthOpen(@RequestHeader("token") String token, @RequestBody SetAuthOpenParam setAuthOpenParam) throws PermissionException, BizException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
bookAuthInfoBiz.setBookAuthOpen(setAuthOpenParam, adviserId);
return new ResponseDto<>();
}
@Override
@PostMapping("setAuthStatus")
public ResponseDto<?> setAuthStatus(@RequestHeader("token") String token, @RequestBody SetAuthStatusParam setAuthStatusParam) throws PermissionException, BizException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
bookAuthInfoBiz.setAuthStatus(setAuthStatusParam, adviserId);
return new ResponseDto<>();
}
@Override
@PostMapping("setBookLocationDesc")
public ResponseDto<?> setBookLocationDesc(@RequestHeader("token") String token, @RequestBody SetLocationDescVO setLocationDesc) throws PermissionException, BizException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
bookAuthInfoBiz.setBookLocationDesc(setLocationDesc, adviserId);
return new ResponseDto<>();
}
@Override
@GetMapping("getIsHaveAuthBook")
public ResponseDto<Boolean> getIsHaveAuthBook(@RequestHeader("token") String token) throws PermissionException, BizException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
Boolean isHaveBook = bookAuthInfoBiz.getIsHaveAuthBook(adviserId);
return new ResponseDto<>(isHaveBook);
}
@Override
@GetMapping("getInfoByBook")
public ResponseDto<BookAuthInfoVO> getInfoByBook(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId) throws PermissionException, BizException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
BookAuthInfoVO bookAuthInfoVO = bookAuthInfoBiz.getInfoByBook(bookId, channelId, adviserId);
return new ResponseDto<>(bookAuthInfoVO);
}
@Override
@PostMapping("getInfoByBook4Wechat")
public ResponseDto<BookAuthInfoWechatVO> getInfoByBook4Wechat(@CookieValue("userInfo") String userInfo, @RequestBody GetAuthInfoParam getAuthInfoParam) throws PermissionException, BizException {
Long channelId = Cookie.getId(userInfo, Cookie._CHANNEL_ID);
BookAuthInfoWechatVO bookAuthInfoVO = bookAuthInfoBiz.getInfoByBook4Wechat(getAuthInfoParam, channelId);
return new ResponseDto<>(bookAuthInfoVO);
}
@Override
@GetMapping("getInfoAndServesByBook")
public ResponseDto<BookAuthInfoAndServesVO> getInfoAndServesByBook(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId) throws PermissionException, BizException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
BookAuthInfoAndServesVO bookAuthInfoAndServesVO = bookAuthInfoBiz.getInfoAndServesByBook(bookId, channelId, adviserId);
return new ResponseDto<>(bookAuthInfoAndServesVO);
}
@Override
@PostMapping("listHaveSetAuthBook")
public ResponseDto<PageBeanNew> listHaveSetAuthBook(@RequestHeader("token") String token, @RequestBody ListHaveAuthBookParam listHaveAuthBookParam)
throws PermissionException, BizException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
PageBeanNew pageBeanNew = bookAuthInfoBiz.listHaveSetAuthBook(listHaveAuthBookParam, adviserId) ;
return new ResponseDto<>(pageBeanNew);
}
}
package com.pcloud.book.copyright.facade.impl;
import com.pcloud.book.copyright.biz.BookAuthServeBiz;
import com.pcloud.book.copyright.facade.BookAuthServeFacade;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author lily
* @date 2018/12/3 11:01
*/
@RequestMapping("bookAuthServe")
@RestController("bookAuthServeFacade")
public class BookAuthServeFacadeImpl implements BookAuthServeFacade {
@Autowired
private BookAuthServeBiz bookAuthServeBiz;
}
package com.pcloud.book.copyright.facade.impl;
import com.pcloud.book.copyright.biz.BookAuthUserBiz;
import com.pcloud.book.copyright.facade.BookAuthUserFacade;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
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 java.util.List;
/**
* @author lily
* @date 2018/12/3 10:59
*/
@RequestMapping("bookAuthUser")
@RestController("bookAuthUserFacade")
public class BookAuthUserFacadeImpl implements BookAuthUserFacade {
@Autowired
private BookAuthUserBiz bookAuthUserBiz;
@Override
@ApiOperation(value = "获取正版授权总人数", httpMethod = "GET")
@RequestMapping(value = "getAuthUserCount", method = RequestMethod.GET)
public ResponseDto<BookAuthCodeUserVO> getAuthUserCount(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId) throws PermissionException, BizException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
BookAuthCodeUserVO bookAuthCodeUserVO = bookAuthUserBiz.getAuthUserCount(bookId, channelId, adviserId);
return new ResponseDto<>(bookAuthCodeUserVO);
}
@Override
@RequestMapping(value = "listThirtyDay", method = RequestMethod.GET)
public ResponseDto<List<ThirtyDayCountVO>> listThirtyDay(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId) throws PermissionException, BizException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
List<ThirtyDayCountVO> thirtyDayCountVOS = bookAuthUserBiz.listThirtyDay(bookId, channelId, adviserId);
return new ResponseDto<>(thirtyDayCountVOS);
}
@Override
@RequestMapping(value = "listSixMonth", method = RequestMethod.GET)
public ResponseDto<List<SixMonthCountVO>> listSixMonth(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId)
throws PermissionException, BizException{
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
List<SixMonthCountVO> sixMonthCountVOS = bookAuthUserBiz.listSixMonth(bookId, channelId, adviserId);
return new ResponseDto<>(sixMonthCountVOS);
}
}
package com.pcloud.book.copyright.service.impl;
import com.pcloud.book.copyright.biz.BookAuthInfoBiz;
import com.pcloud.book.copyright.service.BookAuthInfoService;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ResponseHandleUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
/**
* @author lily
* @date 2018/12/4 16:26
*/
@RestController("bookAuthInfoService")
@RequestMapping("bookAuthInfoService")
public class BookAuthInfoServiceImpl implements BookAuthInfoService {
@Autowired
private BookAuthInfoBiz bookAuthInfoBiz;
@Override
@RequestMapping(value = "/getBookAuthPrice", method = RequestMethod.GET)
public ResponseEntity<ResponseDto<BigDecimal>> getBookAuthPrice(@RequestParam("bookId") Long bookId,
@RequestParam("channelId")Long channelId, @RequestParam("adviserId")Long adviserId) throws BizException {
return ResponseHandleUtil.toResponse(bookAuthInfoBiz.getBookAuthPrice(bookId, channelId, adviserId));
}
}
package com.pcloud.book.copyright.service.impl;
import com.pcloud.book.book.dto.BookAuthServeStatusParam;
import com.pcloud.book.copyright.biz.BookAuthServeBiz;
import com.pcloud.book.copyright.entity.BookAuthServe;
import com.pcloud.book.copyright.service.BookAuthServeService;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ResponseHandleUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* @author lily
* @date 2018/12/4 11:16
*/
@RestController("bookAuthServeService")
@RequestMapping("bookAuthServeService")
public class BookAuthServeServiceImpl implements BookAuthServeService {
@Autowired
private BookAuthServeBiz bookAuthServeBiz;
@Override
@PostMapping("listIsOpen4ServeIds")
public ResponseEntity<ResponseDto<Map<String, Boolean>>> listIsOpen4ServeIds(@RequestBody BookAuthServeStatusParam bookAuthServeStatusParam) throws BizException {
Map<String, Boolean> isOpen4ServeIds = null;
if(bookAuthServeStatusParam != null) {
isOpen4ServeIds = bookAuthServeBiz.isSetServeAuth(bookAuthServeStatusParam.getBookId(), bookAuthServeStatusParam.getChannelId(), bookAuthServeStatusParam.getAdviserId(), bookAuthServeStatusParam.getServeIds());
}
return ResponseHandleUtil.toResponse(isOpen4ServeIds);
}
}
package com.pcloud.book.copyright.tools;
import com.pcloud.book.BookApplication;
import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.copyright.dto.DateDTO;
import com.pcloud.channelcenter.base.constants.ChannelConstants;
import com.pcloud.common.entity.UploadResultInfo;
import com.pcloud.common.enums.ImageTypeEnum;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.exceptions.FileException;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.UUIDUitl;
import com.pcloud.common.utils.aliyun.OssUtils;
import org.jbarcode.JBarcode;
import org.jbarcode.encode.Code128Encoder;
import org.jbarcode.paint.BaseLineTextPainter;
import org.jbarcode.paint.EAN13TextPainter;
import org.jbarcode.paint.WidthCodedPainter;
import org.springframework.boot.SpringApplication;
import org.springframework.stereotype.Component;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
/**
* @author lily
* @date 2018/12/4 16:37
*/
@Component("copyrightTools")
public class CopyrightTools {
private static String[] chars = new String[]{"a", "b", "c", "d", "e", "f",
"g", "h", "i", "j", "k", "m", "n", "o", "p", "q", "r", "s",
"t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H",
"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z"};
public static String generateShortUuid() {
StringBuffer shortBuffer = new StringBuffer();
String uuid = UUID.randomUUID().toString().replace("-", "");
for (int i = 0; i < 11; i++) {
String str = uuid.substring(i * 2, i * 2 + 2);
int x = Integer.parseInt(str, 16);
shortBuffer.append(chars[x % 0x3C]);
}
return shortBuffer.toString().toLowerCase();
}
public static void main(String[] args) {
long time = System.currentTimeMillis();
System.out.println(createShortUuidByCount(100000));
long time1 = System.currentTimeMillis();
System.out.println(time1-time);
}
/**
* 生成count位非重复的数
*
* @return
*/
public static List<String> createShortUuidByCount(Integer count) {
Map<String, String> numbers = new HashMap<>();
Set<String> numSet = numbers.keySet();
while (numSet.size() < count) {
String uuid = generateShortUuid();
numbers.put(uuid, uuid);
}
return new ArrayList<>(numbers.keySet());
}
public static String generateBarCode128Local(String strBarCode, String dimension, String barheight) {
try {
BufferedImage bi = null;
JBarcode productBarcode = new JBarcode(Code128Encoder.getInstance(), WidthCodedPainter.getInstance(), EAN13TextPainter.getInstance());
productBarcode.setXDimension(Double.valueOf(dimension));
productBarcode.setBarHeight(Double.valueOf(barheight));
productBarcode.setWideRatio(Double.valueOf(30.0D));
productBarcode.setShowText(true);
productBarcode.setTextPainter(BaseLineTextPainter.getInstance());
bi = productBarcode.createBarcode(strBarCode);
String imageUrl = uploadImage(bi);
// File file = new File("BARCODE" + strBarCode + ".jpg");
// ImageIO.write(bi, ImageTypeEnum.JPG.value, file);
return imageUrl;
} catch (Exception var7) {
var7.printStackTrace();
return "encodeError";
}
}
public static String uploadImage(BufferedImage image) throws BizException {
UploadResultInfo uploadResultInfo = null;
try {
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, ImageTypeEnum.JPG.value, os);
uploadResultInfo = OssUtils.uploadFileByte(os.toByteArray(), UUIDUitl.taskName(), ImageTypeEnum.JPG.value);
os.close();
return uploadResultInfo == null ? null : uploadResultInfo.getUrl();
} catch (Exception e) {
throw new FileException(FileException.FILE_UPLOAD_FAILURE, "上传条形码失败");
}
}
/**
* 获取开始与结束时间
*/
public static DateDTO getDateByType(Long days) {
DateDTO dateDTO = new DateDTO();
if (BookConstant.SEVEN.equals(days)) {
dateDTO.setStartTime(DateUtils.getLongDateStr(DateUtils.getDayStartTime(DateUtils.addDay(new Date(), -7))));
dateDTO.setEndTime(DateUtils.getLongDateStr(DateUtils.getDayEndTime(DateUtils.addDay(new Date(), -1))));
} else if (BookConstant.FIFTEEN.equals(days)) {
dateDTO.setStartTime(DateUtils.getLongDateStr(DateUtils.getDayStartTime(DateUtils.addDay(new Date(), -15))));
dateDTO.setEndTime(DateUtils.getLongDateStr(DateUtils.getDayEndTime(DateUtils.addDay(new Date(), -1))));
} else if (BookConstant.THIRTY.equals(days)) {
dateDTO.setStartTime(DateUtils.getLongDateStr(DateUtils.getDayStartTime(DateUtils.addDay(new Date(), -29))));
dateDTO.setEndTime(DateUtils.getLongDateStr(DateUtils.getDayEndTime(new Date())));
}
return dateDTO;
}
public static List<String> getLast6Months() {
DecimalFormat df = new DecimalFormat("00");
List<String> last6Months = new ArrayList<>(6);
Calendar cal = Calendar.getInstance();
for (int i = 1; i < 7; i++) {
last6Months.add(cal.get(Calendar.YEAR) + "-" + df.format(cal.get(Calendar.MONTH)+1)) ;
// 逐次往前推1个月
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) - 1);
}
return last6Months;
}
}
package com.pcloud.book.copyright.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author lily
* @date 2018/12/4 15:49
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BookAuthCodeUserVO implements Serializable {
@ApiModelProperty("授权码认证用户")
private Integer codeUserCount;
@ApiModelProperty("支付授权金用户")
private Integer payUserCount;
@ApiModelProperty("总使用数")
private Integer totalCount;
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public Integer getCodeUserCount() {
return codeUserCount;
}
public void setCodeUserCount(Integer codeUserCount) {
this.codeUserCount = codeUserCount;
}
public Integer getPayUserCount() {
return payUserCount;
}
public void setPayUserCount(Integer payUserCount) {
this.payUserCount = payUserCount;
}
@Override
public String toString() {
return "BookAuthCodeUserVO{" +
"codeUserCount=" + codeUserCount +
", payUserCount=" + payUserCount +
", totalCount=" + totalCount +
'}';
}
}
package com.pcloud.book.copyright.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @author lily
* @date 2018/12/4 11:50
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BookAuthInfoAndServesVO implements Serializable {
@ApiModelProperty("图书授权信息标识")
private Long id;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("价格")
private BigDecimal price;
@ApiModelProperty("编码可使用次数")
private Integer codeUseCount;
@ApiModelProperty("购买链接地址")
private String buyUrl;
@ApiModelProperty("图书状态")
private Integer bookStatus;
@ApiModelProperty("验证类型")
private Integer checkType;
@ApiModelProperty("位置描述")
private String locationDesc;
@ApiModelProperty("服务")
private List<ServeVO> serves;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Integer getCodeUseCount() {
return codeUseCount;
}
public void setCodeUseCount(Integer codeUseCount) {
this.codeUseCount = codeUseCount;
}
public String getBuyUrl() {
return buyUrl;
}
public void setBuyUrl(String buyUrl) {
this.buyUrl = buyUrl;
}
public Integer getBookStatus() {
return bookStatus;
}
public void setBookStatus(Integer bookStatus) {
this.bookStatus = bookStatus;
}
public Integer getCheckType() {
return checkType;
}
public void setCheckType(Integer checkType) {
this.checkType = checkType;
}
public String getLocationDesc() {
return locationDesc;
}
public void setLocationDesc(String locationDesc) {
this.locationDesc = locationDesc;
}
public List<ServeVO> getServes() {
return serves;
}
public void setServes(List<ServeVO> serves) {
this.serves = serves;
}
@Override
public String toString() {
return "BookAuthInfoAndServesVO{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", price=" + price +
", codeUseCount=" + codeUseCount +
", buyUrl='" + buyUrl + '\'' +
", bookStatus=" + bookStatus +
", checkType=" + checkType +
", locationDesc='" + locationDesc + '\'' +
", serves=" + serves +
'}';
}
}
package com.pcloud.book.copyright.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author lily
* @date 2018/12/4 11:50
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BookAuthInfoVO implements Serializable {
@ApiModelProperty("图书授权信息标识")
private Long id;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("价格")
private BigDecimal price;
@ApiModelProperty("编码可使用次数")
private Integer codeUseCount;
@ApiModelProperty("购买链接地址")
private String buyUrl;
@ApiModelProperty("图书状态")
private Integer bookStatus;
@ApiModelProperty("验证类型")
private Integer checkType;
@ApiModelProperty("位置描述")
private String locationDesc;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Integer getCodeUseCount() {
return codeUseCount;
}
public void setCodeUseCount(Integer codeUseCount) {
this.codeUseCount = codeUseCount;
}
public String getBuyUrl() {
return buyUrl;
}
public void setBuyUrl(String buyUrl) {
this.buyUrl = buyUrl;
}
public Integer getBookStatus() {
return bookStatus;
}
public void setBookStatus(Integer bookStatus) {
this.bookStatus = bookStatus;
}
public Integer getCheckType() {
return checkType;
}
public void setCheckType(Integer checkType) {
this.checkType = checkType;
}
public String getLocationDesc() {
return locationDesc;
}
public void setLocationDesc(String locationDesc) {
this.locationDesc = locationDesc;
}
@Override
public String toString() {
return "BookAuthInfoVO{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", price=" + price +
", codeUseCount=" + codeUseCount +
", buyUrl='" + buyUrl + '\'' +
", bookStatus=" + bookStatus +
", checkType=" + checkType +
", locationDesc='" + locationDesc + '\'' +
'}';
}
}
package com.pcloud.book.copyright.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author lily
* @date 2018/12/4 11:50
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BookAuthInfoWechatVO implements Serializable {
@ApiModelProperty("图书授权信息标识")
private Long id;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("价格")
private BigDecimal price;
@ApiModelProperty("编码可使用次数")
private Integer codeUseCount;
@ApiModelProperty("购买链接地址")
private String buyUrl;
@ApiModelProperty("图书状态")
private Integer bookStatus;
@ApiModelProperty("验证类型")
private Integer checkType;
@ApiModelProperty("位置描述")
private String locationDesc;
@ApiModelProperty("图书名称")
private String bookName;
@ApiModelProperty("coverImg")
private String coverImg;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Integer getCodeUseCount() {
return codeUseCount;
}
public void setCodeUseCount(Integer codeUseCount) {
this.codeUseCount = codeUseCount;
}
public String getBuyUrl() {
return buyUrl;
}
public void setBuyUrl(String buyUrl) {
this.buyUrl = buyUrl;
}
public Integer getBookStatus() {
return bookStatus;
}
public void setBookStatus(Integer bookStatus) {
this.bookStatus = bookStatus;
}
public Integer getCheckType() {
return checkType;
}
public void setCheckType(Integer checkType) {
this.checkType = checkType;
}
public String getLocationDesc() {
return locationDesc;
}
public void setLocationDesc(String locationDesc) {
this.locationDesc = locationDesc;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getCoverImg() {
return coverImg;
}
public void setCoverImg(String coverImg) {
this.coverImg = coverImg;
}
@Override
public String toString() {
return "BookAuthInfoWechatVO{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", price=" + price +
", codeUseCount=" + codeUseCount +
", buyUrl='" + buyUrl + '\'' +
", bookStatus=" + bookStatus +
", checkType=" + checkType +
", locationDesc='" + locationDesc + '\'' +
", bookName='" + bookName + '\'' +
", coverImg='" + coverImg + '\'' +
'}';
}
}
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