Commit d1c9393d by lili

合并代码

parent bea9c93a
package com.pcloud.book.group.dto;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.pcloud.book.book.dto.BookDto;
/**
* 社群书群二维码DTO
* @author PENG
* @date 2019年4月17日11:31:16
*/
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class BookGroupDTO implements Serializable {
private static final long serialVersionUID = 7620868422261683212L;
/**
* book_group.id (唯一标识)
*/
private Long id;
/**
* book_group.book_id (书刊ID)
*/
private Long bookId;
/**
* book_group.channel_id (运营ID)
*/
private Long channelId;
/**
* book_group.group_qrcode_url (群二维码图片)
*/
private String groupQrcodeUrl;
/**
* book_group.group_qrcode_name (群二维码名称)
*/
private String groupQrcodeName;
/**
* book_group.pro_label_id (专业标签ID)
*/
private Long proLabelId;
/**
* 专业标签名称
*/
private String proLabelName;
/**
* book_group.dep_label_id (深度标签ID)
*/
private Long depLabelId;
/**
* 深度标签名称
*/
private String depLabelName;
/**
* book_group.pur_label_id (目的标签ID)
*/
private Long purLabelId;
/**
* 目的标签名称
*/
private String purLabelName;
/**
* 选择群页面标题
*/
private String joinTitle;
/**
* book_group.join_slogan (进群宣传语)
*/
private String joinSlogan;
/**
* book_group.personal_qrcode_url (个人二维码)
*/
private String personalQrcodeUrl;
/**
* book_group.product_id (商品ID)
*/
private Long productId;
/**
* book_group.create_user (创建人)
*/
private Long createUser;
/**
* book_group.create_time (创建时间)
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
/**
* book_group.update_time (修改时间)
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
/**
* book_group.is_delete (是否删除)
*/
private Boolean isDelete;
/**
* 书刊信息
*/
private BookDto bookInfo;
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 String getGroupQrcodeUrl() {
return groupQrcodeUrl;
}
public void setGroupQrcodeUrl(String groupQrcodeUrl) {
this.groupQrcodeUrl = groupQrcodeUrl;
}
public String getGroupQrcodeName() {
return groupQrcodeName;
}
public void setGroupQrcodeName(String groupQrcodeName) {
this.groupQrcodeName = groupQrcodeName;
}
public Long getProLabelId() {
return proLabelId;
}
public void setProLabelId(Long proLabelId) {
this.proLabelId = proLabelId;
}
public Long getDepLabelId() {
return depLabelId;
}
public void setDepLabelId(Long depLabelId) {
this.depLabelId = depLabelId;
}
public Long getPurLabelId() {
return purLabelId;
}
public void setPurLabelId(Long purLabelId) {
this.purLabelId = purLabelId;
}
public String getJoinTitle() {
return joinTitle;
}
public void setJoinTitle(String joinTitle) {
this.joinTitle = joinTitle;
}
public String getJoinSlogan() {
return joinSlogan;
}
public void setJoinSlogan(String joinSlogan) {
this.joinSlogan = joinSlogan;
}
public String getPersonalQrcodeUrl() {
return personalQrcodeUrl;
}
public void setPersonalQrcodeUrl(String personalQrcodeUrl) {
this.personalQrcodeUrl = personalQrcodeUrl;
}
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public Long getCreateUser() {
return createUser;
}
public void setCreateUser(Long createUser) {
this.createUser = createUser;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Boolean getIsDelete() {
return isDelete;
}
public void setIsDelete(Boolean isDelete) {
this.isDelete = isDelete;
}
public String getProLabelName() {
return proLabelName;
}
public void setProLabelName(String proLabelName) {
this.proLabelName = proLabelName;
}
public String getDepLabelName() {
return depLabelName;
}
public void setDepLabelName(String depLabelName) {
this.depLabelName = depLabelName;
}
public String getPurLabelName() {
return purLabelName;
}
public void setPurLabelName(String purLabelName) {
this.purLabelName = purLabelName;
}
public BookDto getBookInfo() {
return bookInfo;
}
public void setBookInfo(BookDto bookInfo) {
this.bookInfo = bookInfo;
}
@Override
public String toString() {
return "BookGroupDTO{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", groupQrcodeUrl='" + groupQrcodeUrl + '\'' +
", groupQrcodeName='" + groupQrcodeName + '\'' +
", proLabelId=" + proLabelId +
", proLabelName='" + proLabelName + '\'' +
", depLabelId=" + depLabelId +
", depLabelName='" + depLabelName + '\'' +
", purLabelId=" + purLabelId +
", purLabelName='" + purLabelName + '\'' +
", joinTitle='" + joinTitle + '\'' +
", joinSlogan='" + joinSlogan + '\'' +
", personalQrcodeUrl='" + personalQrcodeUrl + '\'' +
", productId=" + productId +
", createUser=" + createUser +
", createTime=" + createTime +
", updateTime=" + updateTime +
", isDelete=" + isDelete +
", bookInfo=" + bookInfo +
"} " + super.toString();
}
}
\ No newline at end of file
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/4/28 20:25
*/
public class GroupClassifyQrcodeDTO implements Serializable {
/**
* 图书标识
*/
private Long bookId;
/**
* 运营标识
*/
private Long channelId;
/**
* 社群码标识
*/
private Long bookGroupId;
/**
* 分类标识
*/
private Long classifyId;
/**
* 编辑标识
*/
private Long adviserId;
/**
* 分类二维码标识
*/
private Long groupQrcodeId;
/**
* 群二维码标识
*/
private Long weixinQrcodeId;
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 getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public Long getClassifyId() {
return classifyId;
}
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getGroupQrcodeId() {
return groupQrcodeId;
}
public void setGroupQrcodeId(Long groupQrcodeId) {
this.groupQrcodeId = groupQrcodeId;
}
public Long getWeixinQrcodeId() {
return weixinQrcodeId;
}
public void setWeixinQrcodeId(Long weixinQrcodeId) {
this.weixinQrcodeId = weixinQrcodeId;
}
@Override
public String toString() {
return "GroupClassifyQrcodeDTO{" +
"bookId=" + bookId +
", channelId=" + channelId +
", bookGroupId=" + bookGroupId +
", classifyId=" + classifyId +
", adviserId=" + adviserId +
", groupQrcodeId=" + groupQrcodeId +
", weixinQrcodeId=" + weixinQrcodeId +
'}';
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/5/10 14:47
*/
public class GroupQrcodeBaseDTO implements Serializable {
/**
* 微信号
*/
private String weixinGroupId;
/**
* 群名称
*/
private String groupName;
public String getWeixinGroupId() {
return weixinGroupId;
}
public void setWeixinGroupId(String weixinGroupId) {
this.weixinGroupId = weixinGroupId;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
@Override
public String toString() {
return "GroupQrcodeBaseDTO{" +
"weixinGroupId='" + weixinGroupId + '\'' +
", groupName='" + groupName + '\'' +
'}';
}
}
package com.pcloud.book.group.dto;
import io.swagger.annotations.ApiModelProperty;
/**
* @author lily
* @date 2019/5/10 20:11
*/
public class ProAssocGroupAndUserNumberDTO {
@ApiModelProperty("微信群数量")
private Integer groupCount;
@ApiModelProperty("进群人数")
private Integer userCount;
public Integer getGroupCount() {
return groupCount;
}
public void setGroupCount(Integer groupCount) {
this.groupCount = groupCount;
}
public Integer getUserCount() {
return userCount;
}
public void setUserCount(Integer userCount) {
this.userCount = userCount;
}
@Override
public String toString() {
return "ProAssocGroupAndUserNumberDTO{" +
"groupCount=" + groupCount +
", userCount=" + userCount +
'}';
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/4/2 14:44
*/
public class SyncWeixinGroupIdDTO implements Serializable {
/**
* 二维码标识
*/
private Long id;
/**
* 微信群id
*/
private String weixinGroupId;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getWeixinGroupId() {
return weixinGroupId;
}
public void setWeixinGroupId(String weixinGroupId) {
this.weixinGroupId = weixinGroupId;
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/3/5 9:49
*/
public class UpdateQrDTO implements Serializable {
/**
* 群二维码标识
*/
private Long id;
/**
* 二维码地址
*/
private String url;
/**
* 更新状态
*/
private Integer updateState;
private String requestUrl;
/**
* 机器人微信号
*/
private String robotWxId;
public String getRobotWxId() {
return robotWxId;
}
public void setRobotWxId(String robotWxId) {
this.robotWxId = robotWxId;
}
public String getRequestUrl() {
return requestUrl;
}
public void setRequestUrl(String requestUrl) {
this.requestUrl = requestUrl;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public Integer getUpdateState() {
return updateState;
}
public void setUpdateState(Integer updateState) {
this.updateState = updateState;
}
@Override
public String toString() {
return "UpdateQrDTO{" +
"id=" + id +
", url='" + url + '\'' +
", updateState=" + updateState +
", requestUrl='" + requestUrl + '\'' +
", robotWxId='" + robotWxId + '\'' +
'}';
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @author lily
* @date 2019/4/26 16:11
*/
@ApiModel
public class WeixinQrcodeCountDTO implements Serializable {
@ApiModelProperty("机器人标识")
private Integer robotId;
@ApiModelProperty("总数量")
private Integer totalCount;
@ApiModelProperty("使用次数")
private Integer useCount;
@ApiModelProperty("未使用次数")
private Integer notUseCount;
public Integer getRobotId() {
return robotId;
}
public void setRobotId(Integer robotId) {
this.robotId = robotId;
}
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public Integer getUseCount() {
return useCount;
}
public void setUseCount(Integer useCount) {
this.useCount = useCount;
}
public Integer getNotUseCount() {
return notUseCount;
}
public void setNotUseCount(Integer notUseCount) {
this.notUseCount = notUseCount;
}
@Override
public String toString() {
return "WeixinQrcodeCountDTO{" +
"robotId=" + robotId +
", totalCount=" + totalCount +
", useCount=" + useCount +
", notUseCount=" + notUseCount +
'}';
}
}
package com.pcloud.book.group.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @author lily
* @date 2019/4/17 16:13
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class WeixinQrcodeDTO implements Serializable {
@ApiModelProperty("二维码ID")
private Long id;
@ApiModelProperty("二维码URL")
private String qrcodeUrl;
@ApiModelProperty("微信群标识")
private String weixinGroupId;
@ApiModelProperty("机器人标识")
private Long robotId;
@ApiModelProperty("机器人微信标识")
private String robotWxId;
@ApiModelProperty("用户数")
private Integer userNumber;
public Integer getUserNumber() {
return userNumber;
}
public void setUserNumber(Integer userNumber) {
this.userNumber = userNumber;
}
public Long getRobotId() {
return robotId;
}
public void setRobotId(Long robotId) {
this.robotId = robotId;
}
public String getRobotWxId() {
return robotWxId;
}
public void setRobotWxId(String robotWxId) {
this.robotWxId = robotWxId;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getQrcodeUrl() {
return qrcodeUrl;
}
public void setQrcodeUrl(String qrcodeUrl) {
this.qrcodeUrl = qrcodeUrl;
}
public String getWeixinGroupId() {
return weixinGroupId;
}
public void setWeixinGroupId(String weixinGroupId) {
this.weixinGroupId = weixinGroupId;
}
@Override
public String toString() {
return "WeixinQrcodeDTO{" +
"id=" + id +
", qrcodeUrl='" + qrcodeUrl + '\'' +
", weixinGroupId='" + weixinGroupId + '\'' +
", robotId=" + robotId +
", robotWxId='" + robotWxId + '\'' +
", userNumber=" + userNumber +
'}';
}
}
package com.pcloud.book.group.service;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeBaseDTO;
import com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO;
import com.pcloud.common.dto.ResponseDto;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* @author lily
* @date 2019/4/28 20:20
*/
@FeignClient(value = "pcloud-service-book", qualifier = "bookGroupClassifyCloud", path = "book/v1.0/bookGroupClassifyService")
@Api(description = "微信群分类接口")
public interface BookGroupClassifyService {
@ApiOperation("根据微信群标识获取相关id")
@GetMapping("getClassifyQrcodeInfo")
ResponseEntity<ResponseDto<GroupClassifyQrcodeDTO>> getClassifyQrcodeInfo(@RequestParam("weixinGroupId") String weixinGroupId);
@ApiOperation("根据微信群标识获取相关id")
@PostMapping("listGroupQrcodeBaseInfo")
ResponseEntity<ResponseDto<Map<String, GroupQrcodeBaseDTO>>> listGroupQrcodeBaseInfo(@RequestBody List<String> weixinGroupIds);
@ApiOperation("获取商品关联群数量与人数")
@GetMapping("getProAssocGroupAndUserNumber")
ResponseEntity<ResponseDto<ProAssocGroupAndUserNumberDTO>> getProAssocGroupAndUserNumber(@RequestParam("productId") Long productId);
}
package com.pcloud.book.group.service;
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 com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* Description 社群书内部接口
* Created by PENG on 2019/5/14.
*/
@FeignClient(value = "pcloud-service-book", qualifier = "bookGroupServiceCloud", path = "book/v1.0/bookGroupService")
@Api(description = "社群书内部接口")
public interface BookGroupService {
@ApiOperation("获取社群书基本信息")
@RequestMapping(value = "getBookGroupInfo",method = RequestMethod.GET)
ResponseEntity<ResponseDto<BookGroupDTO>> getBookGroupInfo(@RequestParam("bookGroupId")Long bookGroupId) throws BizException;
}
package com.pcloud.book.group.service;
import com.pcloud.book.group.dto.SyncWeixinGroupIdDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
import com.pcloud.book.group.dto.WeixinQrcodeDTO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* @author lily
* @date 2019/4/19 15:57
*/
@FeignClient(value = "pcloud-service-book", qualifier = "weixinQrcodeServiceCloud", path = "book/v1.0/weixinQrcodeService")
@Api(description = "微信群二维码码接口")
public interface WeixinQrcodeService {
@ApiOperation("定时任务")
@GetMapping("tenQuartz")
void tenQuartz() throws BizException;
@ApiOperation("发起更新二维码请求")
@GetMapping("setUpdateQrUrl")
void setUpdateQrUrl() throws BizException;
@ApiOperation("更新二维码地址")
@GetMapping("updateQrUrl")
void updateQrUrl(UpdateQrDTO updateQrDTO) throws BizException;
@ApiOperation("针对出错的二维码发起更新二维码请求")
@GetMapping("setUpdateQr4Error")
void setUpdateQr4Error(List<Long> ids) throws BizException;
@ApiOperation("同步微信群id")
@PostMapping("syncWeixinGroupId")
void syncWeixinGroupId(@RequestBody SyncWeixinGroupIdDTO syncWeixinGroupIdDTO);
@ApiOperation("发送修改群名称请求")
@PostMapping("sendChangeGroupNameRequest")
void sendChangeGroupNameRequest(@RequestBody(required = false) List<Long> ids);
@ApiOperation("发送同步微信id的请求")
@PostMapping("sendSyncWeixinGroupIdRequest")
void sendSyncWeixinGroupIdRequest(@RequestBody List<Long> ids);
@ApiOperation("获取机器人二维码分配情况")
@PostMapping("listWeixinQrcodeCountByRobot")
ResponseEntity<ResponseDto<Map<Long, WeixinQrcodeCountDTO>>> listWeixinQrcodeCountByRobot(@RequestBody List<Long> robotIds);
@ApiOperation("获取一个二维码")
@GetMapping("getOneQrcode")
ResponseEntity<ResponseDto<WeixinQrcodeDTO>> getOneQrcode();
}
package com.pcloud.book.push.service;
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.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Map;
@FeignClient(value = "pcloud-service-book", qualifier = "pushServiceCloud", path = "book/v1.0/pushService")
@Api(description = "群发消息内部服务")
public interface PushService {
@ApiOperation("发送群消息")
@PostMapping("/sendGroupMessage")
void sendGroupMessage(@RequestBody Map<String, Object> map) throws BizException;
}
...@@ -146,19 +146,31 @@ ...@@ -146,19 +146,31 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-wechatgroup</artifactId>
<version>${pcloud-facade-wechatgroup.version}</version>
</dependency>
<dependency>
<groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-promotion</artifactId>
<version>${pcloud-facade-promotion.version}</version>
</dependency>
<dependency>
<groupId>fakepath</groupId> <groupId>fakepath</groupId>
<artifactId>jbarcode</artifactId> <artifactId>jbarcode</artifactId>
<version>0.2.8</version> <version>0.2.8</version>
</dependency> </dependency>
<!--spring-cloud相关-->
<dependency> <!--田指导发消息接口-->
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>com.dcg</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId> <artifactId>wxgroup-sdk</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<!--spring-cloud相关-->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
...@@ -175,10 +187,6 @@ ...@@ -175,10 +187,6 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!--其他--> <!--其他-->
<dependency> <dependency>
...@@ -192,8 +200,6 @@ ...@@ -192,8 +200,6 @@
<artifactId>javax.ws.rs-api</artifactId> <artifactId>javax.ws.rs-api</artifactId>
<version>2.1</version> <version>2.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId> <artifactId>spring-tx</artifactId>
...@@ -223,18 +229,6 @@ ...@@ -223,18 +229,6 @@
</dependency> </dependency>
</dependencies> </dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build> <build>
<finalName>pcloud-service-book</finalName> <finalName>pcloud-service-book</finalName>
<plugins> <plugins>
......
...@@ -4,6 +4,7 @@ import com.alibaba.druid.pool.DruidDataSource; ...@@ -4,6 +4,7 @@ import com.alibaba.druid.pool.DruidDataSource;
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 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;
...@@ -16,7 +17,11 @@ import org.springframework.context.annotation.Bean; ...@@ -16,7 +17,11 @@ 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;
import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.PropertySources;
import java.util.ArrayList;
import javax.sql.DataSource;
import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.builders.RequestHandlerSelectors;
...@@ -25,15 +30,12 @@ import springfox.documentation.spi.DocumentationType; ...@@ -25,15 +30,12 @@ import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import springfox.documentation.swagger2.annotations.EnableSwagger2;
import javax.sql.DataSource;
import java.util.ArrayList;
@SpringBootApplication @SpringBootApplication
@EnableAutoConfiguration @EnableAutoConfiguration
@ComponentScan("com.pcloud") @ComponentScan("com.pcloud")
@EnableEurekaClient @EnableEurekaClient
@EnableFeignClients("com.pcloud") @EnableFeignClients("com.pcloud")
@PropertySource({ "classpath:properties/book.properties", "classpath:public_system.properties" }) @PropertySource({"classpath:properties/book.properties", "classpath:public_system.properties"})
@Configuration @Configuration
@EnableSwagger2 @EnableSwagger2
public class BookApplication { public class BookApplication {
...@@ -71,43 +73,86 @@ public class BookApplication { ...@@ -71,43 +73,86 @@ public class BookApplication {
} }
@Bean @Bean
public Queue deleteVideoQueue(){ public Queue deleteVideoQueue() {
return RabbitMQFactory.queueBuilder(MQTopicConumer.DELETE_VIDEO); return RabbitMQFactory.queueBuilder(MQTopicConumer.DELETE_VIDEO);
} }
@Bean @Bean
public Binding deleteVideoBind(){ public Binding deleteVideoBind() {
return RabbitMQFactory.bindingExchange(deleteVideoQueue(), MQTopicProducer.DELETE_VIDEO); return RabbitMQFactory.bindingExchange(deleteVideoQueue(), MQTopicProducer.DELETE_VIDEO);
} }
@Bean @Bean
public Queue chooseDefaultChannelQueue(){ public Queue chooseDefaultChannelQueue() {
return RabbitMQFactory.queueBuilder(MQTopicConumer.CHOOSE_DEFAULT_CHANNEL); return RabbitMQFactory.queueBuilder(MQTopicConumer.CHOOSE_DEFAULT_CHANNEL);
} }
@Bean @Bean
public Binding chooseDefaultChannelBind(){ public Binding chooseDefaultChannelBind() {
return RabbitMQFactory.bindingExchange(chooseDefaultChannelQueue(), MQTopicProducer.CHOOSE_DEFAULT_CHANNEL); return RabbitMQFactory.bindingExchange(chooseDefaultChannelQueue(), MQTopicProducer.CHOOSE_DEFAULT_CHANNEL);
} }
@Bean @Bean
public Queue registerPartyQueue(){ public Queue registerPartyQueue() {
return RabbitMQFactory.queueBuilder(MQTopicConumer.REGISTER_PARTY); return RabbitMQFactory.queueBuilder(MQTopicConumer.REGISTER_PARTY);
} }
@Bean @Bean
public Binding registerPartyBind(){ public Binding registerPartyBind() {
return RabbitMQFactory.bindingExchange(registerPartyQueue(), MQTopicProducer.REGISTER_PARTY); return RabbitMQFactory.bindingExchange(registerPartyQueue(), MQTopicProducer.REGISTER_PARTY);
} }
@Bean @Bean
public Queue genuineQueue(){ public Queue genuineQueue() {
return RabbitMQFactory.queueBuilder(MQTopicConumer.GENUINE); return RabbitMQFactory.queueBuilder(MQTopicConumer.GENUINE);
} }
@Bean @Bean
public Binding genuineBind(){ public Binding genuineBind() {
return RabbitMQFactory.bindingExchange(genuineQueue(), MQTopicProducer.GENUINE); return RabbitMQFactory.bindingExchange(genuineQueue(), MQTopicProducer.GENUINE);
} }
@Bean
public Queue paymentQueue() {
return RabbitMQFactory.queueBuilder(MQTopicConumer.PAYMENT);
}
@Bean
public Binding paymentBind() {
return RabbitMQFactory.bindingExchange(paymentQueue(), MQTopicProducer.PAYMENT);
}
@Bean
public Queue addWXGroupQueue() {
return RabbitMQFactory.queueBuilder(MQTopicConumer.ADD_WXGROUP);
}
@Bean
public Binding addWXGroupBind() {
return RabbitMQFactory.bindingExchange(addWXGroupQueue(), MQTopicProducer.ADD_WXGROUP);
}
@Bean
public Queue wxGroupSendTextQueue() {
return RabbitMQFactory.queueBuilder(MQTopicConumer.WXGROUP_SEND_TEXT);
}
@Bean
public Binding wxGroupSendTextBind() {
return RabbitMQFactory.bindingExchange(wxGroupSendTextQueue(), MQTopicProducer.WXGROUP_SEND_TEXT);
}
@Bean
public Queue pushAddUserMessage() {
return RabbitMQFactory.queueBuilder(MQTopicConumer.PUSH_ADD_USER_MESSAGE);
}
@Bean
public Binding pushAddUserMessageBind() {
return RabbitMQFactory.bindingExchange(pushAddUserMessage(), MQTopicProducer.PUSH_ADD_USER_MESSAGE);
}
} }
...@@ -108,4 +108,29 @@ public class AppConsr { ...@@ -108,4 +108,29 @@ public class AppConsr {
return appDtos; return appDtos;
} }
/**
* 根据id获取应用基本信息
*
* @param appId 应用ID
* @return
*/
public AppDto getBaseById(Long appId) {
LOGGER.info("根据id获取应用基本信息[appService.getBaseById],参数列表[getBaseById]:" + appId);
AppDto appDto = null;
if (appId == null) {
return appDto;
}
try {
ResponseEntity<ResponseDto<AppDto>> appDtosEntity = appService.getBaseById(appId);
appDto = ResponseHandleUtil.parseResponse(appDtosEntity, AppDto.class);
} catch (BizException e) {
LOGGER.warn("根据id获取应用基本信息[appService.getBaseById]:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("根据id获取应用基本信息[appService.getBaseById]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_USER_ERROR, "根据id获取应用基本信息失败~!");
}
return appDto;
}
} }
...@@ -9,9 +9,12 @@ import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService; ...@@ -9,9 +9,12 @@ 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.AccountSettingDto;
import com.pcloud.channelcenter.wechat.dto.ListIsInBookParam; import com.pcloud.channelcenter.wechat.dto.ListIsInBookParam;
import com.pcloud.channelcenter.wechat.service.AccountSettingService;
import com.pcloud.channelcenter.wechat.service.MessageService; 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.core.constant.SystemCode;
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.ListUtils; import com.pcloud.common.utils.ListUtils;
...@@ -43,6 +46,8 @@ public class QrcodeSceneConsr { ...@@ -43,6 +46,8 @@ public class QrcodeSceneConsr {
private QrcodeSceneService qrcodeSceneService; private QrcodeSceneService qrcodeSceneService;
@Autowired @Autowired
private MessageService messageService; private MessageService messageService;
@Autowired
private AccountSettingService accountSettingService;
/** /**
* 删除书籍关联的二维码 * 删除书籍关联的二维码
...@@ -272,5 +277,15 @@ public class QrcodeSceneConsr { ...@@ -272,5 +277,15 @@ public class QrcodeSceneConsr {
return null; return null;
} }
@ParamLog(description = "获取公众号基本信息")
public AccountSettingDto getWechatInfo(Long channelId) throws BizException {
if (channelId == null) return null;
try {
return ResponseHandleUtil.parseResponse(accountSettingService.getWechat(channelId, SystemCode.channel.code), AccountSettingDto.class);
} catch (BizException e) {
LOGGER.error("【渠道(消)】 获取公众号基本信息,<ERROR>.[getById]:" + e.getMessage(), e);
}
return null;
}
} }
...@@ -4,16 +4,11 @@ ...@@ -4,16 +4,11 @@
package com.pcloud.book.consumer.message; package com.pcloud.book.consumer.message;
import java.util.Date; import java.util.Date;
import java.util.Map;
import com.pcloud.book.base.exception.BookBizException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.pcloud.common.core.biz.MessageBiz; import com.pcloud.common.core.biz.MessageBiz;
import com.pcloud.common.core.dto.SendMessageDto;
import com.pcloud.common.core.dto.SendNotifyDto; import com.pcloud.common.core.dto.SendNotifyDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
...@@ -34,13 +29,43 @@ public class MessageConsr { ...@@ -34,13 +29,43 @@ public class MessageConsr {
@Autowired @Autowired
private MessageBiz messageBiz; private MessageBiz messageBiz;
/** /**
* 发送站内信 * 发送站内信
*/ */
public void sendLetter(Long fromId, Long toId, String content, String sysCode, String typeCode, String resourceId, String fileName) public void sendLetter(Long fromId, Long toId, String content, String sysCode, String typeCode, String resourceId, String fileName)
throws BizException { throws BizException {
LOGGER.info("【站内信-消息(消)】发送站内信,<START>.[fromId]=" + fromId + ",[toId]=" + toId + ",[content]=" + content LOGGER.info("【站内信-消息(消)】发送站内信,<START>.[fromId]=" + fromId + ",[toId]=" + toId + ",[content]=" + content
+ ",[sysCode]=" + sysCode + ",[typeCode]=" + typeCode + ",[resourceId]=" + resourceId+ ",fileName="+fileName); + ",[sysCode]=" + sysCode + ",[typeCode]=" + typeCode + ",[resourceId]=" + resourceId + ",fileName=" + fileName);
if (fromId == null || toId == null || StringUtil.isEmpty(content) || StringUtil.isEmpty(sysCode)
|| StringUtil.isEmpty(typeCode) || resourceId == null) {
return;
}
// 组装参数
SendNotifyDto sendNotifyDto = new SendNotifyDto();
sendNotifyDto.setCreatedTime(new Date());
sendNotifyDto.setFromId(fromId);
sendNotifyDto.setToId(toId);
sendNotifyDto.setNotifyContent(content);
sendNotifyDto.setSystemCode(sysCode);
sendNotifyDto.setTypeCode(typeCode);
sendNotifyDto.setResourceId(resourceId);
sendNotifyDto.setFileName(fileName);
try {
messageBiz.sendLetter(sendNotifyDto);
} catch (Exception e) {
LOGGER.error("【站内信(消)】发送站内信.[sendLetter]:" + e.getMessage(), e);
}
LOGGER.info("【站内信(消)】发送站内信,<END>");
}
/**
* 发送站内信
*/
public void sendLetter(Long fromId, Long toId, String content, String sysCode, String typeCode, String resourceId, String fileName, String originType, String originId)
throws BizException {
LOGGER.info("【站内信-消息(消)】发送站内信,<START>.[fromId]=" + fromId + ",[toId]=" + toId + ",[content]=" + content
+ ",[sysCode]=" + sysCode + ",[typeCode]=" + typeCode + ",[resourceId]=" + resourceId + ",fileName=" + fileName);
if (fromId == null || toId == null || StringUtil.isEmpty(content) || StringUtil.isEmpty(sysCode) if (fromId == null || toId == null || StringUtil.isEmpty(content) || StringUtil.isEmpty(sysCode)
|| StringUtil.isEmpty(typeCode) || resourceId == null) { || StringUtil.isEmpty(typeCode) || resourceId == null) {
return; return;
...@@ -55,6 +80,8 @@ public class MessageConsr { ...@@ -55,6 +80,8 @@ public class MessageConsr {
sendNotifyDto.setTypeCode(typeCode); sendNotifyDto.setTypeCode(typeCode);
sendNotifyDto.setResourceId(resourceId); sendNotifyDto.setResourceId(resourceId);
sendNotifyDto.setFileName(fileName); sendNotifyDto.setFileName(fileName);
sendNotifyDto.setOriginType(originType);
sendNotifyDto.setOriginId(originId);
try { try {
messageBiz.sendLetter(sendNotifyDto); messageBiz.sendLetter(sendNotifyDto);
} catch (Exception e) { } catch (Exception e) {
......
package com.pcloud.book.consumer.promotion;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.promotion.fission.dto.UpdateQrDTO;
import com.pcloud.promotion.groupFission.service.GroupFissionService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component("promotionConsr")
public class PromotionConsr {
/**
* logger
*/
private static final Logger LOGGER = LoggerFactory.getLogger(PromotionConsr.class);
@Autowired
private GroupFissionService groupFissionService;
@ParamLog("获取备用二维码")
public String getSpareQr() throws BizException {
try {
return ResponseHandleUtil.parseResponse(groupFissionService.getSpareQr(), String.class);
} catch (Exception e) {
LOGGER.warn("获取备用二维码失败:" + e.getMessage(), e);
}
return "";
}
@ParamLog("同步更新二维码")
public void updateQrUrl(UpdateQrDTO updateQrDTO) throws BizException {
try {
groupFissionService.updateQrUrl(updateQrDTO);
} catch (Exception e) {
LOGGER.warn("同步更新二维码失败:" + e.getMessage(), e);
}
}
}
package com.pcloud.book.consumer.reader; package com.pcloud.book.consumer.reader;
import com.pcloud.common.core.aspect.ParamLog;
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 com.pcloud.readercenter.wechat.dto.WechatUserRobotDto;
import com.pcloud.readercenter.wechat.entity.WechatUser; import com.pcloud.readercenter.wechat.entity.WechatUser;
import com.pcloud.readercenter.wechat.service.WechatUserService; import com.pcloud.readercenter.wechat.service.WechatUserService;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -9,6 +11,8 @@ import org.slf4j.LoggerFactory; ...@@ -9,6 +11,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
/** /**
* @author lily * @author lily
* @date 2018/12/26 16:49 * @date 2018/12/26 16:49
...@@ -36,6 +40,21 @@ public class ReaderConsr { ...@@ -36,6 +40,21 @@ public class ReaderConsr {
} }
return null; return null;
} }
@ParamLog(value = "随机获取n个用户", isAfterReturn = false)
public List<WechatUserRobotDto> selectRobotsRandom(Integer number) throws BizException {
if (number == null) {
return null;
}
try {
return ResponseHandleUtil.parseListResponse(wechatUserService.selectRobotsRandom(number), WechatUserRobotDto.class);
} catch (Exception e) {
LOGGER.error("随机获取n个用户失败[wechatUserService.getWechatUserRand]:" + e.getMessage(), e);
}
return null;
}
} }
...@@ -142,5 +142,73 @@ public class ProductConsr { ...@@ -142,5 +142,73 @@ public class ProductConsr {
} }
} }
/**
* 资源中心拉取商品基本信息
*/
public ProductDto getProBaseById(Long productId) throws BizException {
LOGGER.info("【资源中心(消)】获取商品基本信息,<START>.[productId]=" + productId + "]");
if (productId == null) {
return null;
}
try {
return ResponseHandleUtil.parseResponse(productService.getProBaseById(productId), ProductDto.class);
} catch (BizException e) {
LOGGER.warn("【资源中心(消)】获取商品基本信息失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("【资源中心(消)】获取商品基本信息.[getProBasesByIds]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
} finally {
LOGGER.info("【资源中心(消)】获取商品基本信息,<END>");
}
}
/**
* 自动上架
*/
public Map<Long, String> productAutoOnShelves(Long channelId, List<Long> productIds) throws BizException {
LOGGER.info("【资源中心(消)】自动上架,<START>.[channelId]=" + channelId + " [productIds]=" + productIds + "]");
Map<Long, String> resultMap = new HashMap<>();
if (channelId == null || ListUtils.isEmpty(productIds)) {
LOGGER.info("【资源中心(消)】自动上架,参数为空");
return resultMap;
}
try {
resultMap = ResponseHandleUtil.parseMapResponse(productService.productAutoOnShelves(channelId, productIds), Long.class, String.class);
} catch (BizException e) {
LOGGER.warn("【资源中心(消)】自动上架:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("【资源中心(消)】自动上架.[productAutoOnShelves]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
} finally {
LOGGER.info("【资源中心(消)】自动上架,<END>");
}
return resultMap;
}
/**
* 判断是否是超级作者
*/
public Map<Long, Boolean> getIsSuperByProductIdList(List<Long> productIds) throws BizException {
LOGGER.info("【资源中心(消)】判断是否是超级作者,<START>. [productIds]=" + productIds + "]");
Map<Long, Boolean> resultMap = new HashMap<>();
if (ListUtils.isEmpty(productIds)) {
LOGGER.info("【资源中心(消)】判断是否是超级作者,参数为空");
return resultMap;
}
try {
resultMap = ResponseHandleUtil.parseMapResponse(productService.getIsSuperByProductIdList(productIds), Long.class, Boolean.class);
} catch (BizException e) {
LOGGER.warn("【资源中心(消)】判断是否是超级作者:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("【资源中心(消)】判断是否是超级作者.[getIsSuperByProductIdList]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
} finally {
LOGGER.info("【资源中心(消)】判断是否是超级作者,<END>");
}
return resultMap;
}
} }
package com.pcloud.book.consumer.settlement;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.settlementcenter.record.service.SettlementService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@Component("settlementConsr")
public class SettlementConsr {
/**
* logger
*/
private static final Logger LOGGER = LoggerFactory.getLogger(SettlementConsr.class);
@Autowired
private SettlementService settlementService;
@ParamLog(value = "获取收益", isBefore = false, isAfterReturn = false)
public Map<Long, BigDecimal> getWXGroupQrcodeIncomeByAdviser(List<Long> groupQrcodeIds, Long adviserId) throws BizException {
if (ListUtils.isEmpty(groupQrcodeIds) || adviserId == null) {
return null;
}
try {
return ResponseHandleUtil.parseMapResponse(settlementService.getWXGroupQrcodeIncomeByAdviser(groupQrcodeIds, adviserId), Long.class, BigDecimal.class);
} catch (Exception e) {
LOGGER.error("获取收益.[getWXGroupQrcodeIncomeByAdviser]:" + e.getMessage(), e);
}
return null;
}
}
package com.pcloud.book.consumer.trade;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.facade.tradecenter.dto.QrGroupBuyDetailDto;
import com.pcloud.facade.tradecenter.service.OrderFormService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* @Author:lili
* @Desr:交易调用
* @Date:2019/5/7 17:22
*/
@Component("tradeConsr")
public class TradeConsr {
/**
* logger
*/
private static final Logger LOGGER = LoggerFactory.getLogger(TradeConsr.class);
@Autowired
private OrderFormService orderFormService;
public Map<Long, QrGroupBuyDetailDto> getQrGroupSaleDetail(List<Long> qrcodeIds) throws BizException {
if (ListUtils.isEmpty(qrcodeIds)) {
return null;
}
try {
return ResponseHandleUtil.parseMapResponse(orderFormService.getQrGroupSaleDetail(qrcodeIds)
, Long.class, QrGroupBuyDetailDto.class);
} catch (Exception e) {
LOGGER.error("获取购买次数.[getQrGroupSaleDetail]:" + e.getMessage(), e);
}
return null;
}
}
package com.pcloud.book.consumer.wechatgroup;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
import com.pcloud.wechatgroup.group.service.GroupMemberService;
import com.pcloud.wechatgroup.message.dto.GroupChatCountDTO;
import com.pcloud.wechatgroup.message.service.MessageService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@Component("wechatGroupConsr")
public class WechatGroupConsr {
/**
* logger
*/
private static final Logger LOGGER = LoggerFactory.getLogger(ProductConsr.class);
@Autowired
private GroupMemberService groupMemberService;
@Autowired
private MessageService messageService;
/**
* 根据群号获取机器人微信号
*/
public String getRobotIdByGroupId(String groupId) throws BizException {
LOGGER.info("【根据群号获取机器人微信号,<START>.[groupId]=" + groupId + "]");
if (groupId == null) {
return null;
}
try {
return ResponseHandleUtil.parseResponse(groupMemberService.getRobotIdByGroupId(groupId), String.class);
} catch (BizException e) {
LOGGER.warn("根据群号获取机器人微信号失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("根据群号获取机器人微信号.[getRobotIdByGroupId]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
} finally {
LOGGER.info("【根据群号获取机器人微信号,<END>");
}
}
@ParamLog(value = "累计进群人数与今日进群人数", isBefore = false, isAfterReturn = false)
public Map<String, GroupMemberStatisDTO> listGroupMemberStatisInfo(List<String> weixinGroupIds) throws BizException {
if (ListUtils.isEmpty(weixinGroupIds)) {
return null;
}
try {
return ResponseHandleUtil.parseMapResponse(groupMemberService.mapGroupMemberStatisInfo(weixinGroupIds), String.class, GroupMemberStatisDTO.class);
} catch (Exception e) {
LOGGER.error("获取累计进群人数与今日进群人数.[listGroupMemberStatisInfo]:" + e.getMessage(), e);
}
return null;
}
@ParamLog(value = "活跃人数与总发言数", isBefore = false, isAfterReturn = false)
public Map<Long, GroupChatCountDTO> getChatCountByGroup(List<Long> groupQrcodeIds, Long bookGroupId) throws BizException {
if (ListUtils.isEmpty(groupQrcodeIds) || bookGroupId == null) {
return null;
}
try {
return ResponseHandleUtil.parseMapResponse(messageService.getChatCountByGroup(groupQrcodeIds, bookGroupId), Long.class, GroupChatCountDTO.class);
} catch (Exception e) {
LOGGER.error("获取活跃人数与总发言数.[getChatCountByGroup]:" + e.getMessage(), e);
}
return null;
}
@ParamLog(value = "获取退群率", isBefore = false, isAfterReturn = false)
public Map<String, BigDecimal> mapOutGroupRate(List<String> wxGroupIds) throws BizException {
if (ListUtils.isEmpty(wxGroupIds)) {
return null;
}
try {
return ResponseHandleUtil.parseMapResponse(groupMemberService.mapOutGroupRate(wxGroupIds), String.class, BigDecimal.class);
} catch (Exception e) {
LOGGER.error("获取退群率失败.[mapOutGroupRate]:" + e.getMessage(), e);
}
return null;
}
@ParamLog(value = "上传群二维码时根据群ID添加群管理员(群主,机器人等)")
public void addGroupManagers(String wxGroupId, String altId) throws BizException {
try {
groupMemberService.addGroupManagers(wxGroupId, altId);
} catch (Exception e) {
LOGGER.error("上传群二维码时根据群ID添加群管理员(群主,机器人等)失败.[addGroupManagers]:" + e.getMessage(), e);
}
}
@ParamLog(value = "获取所有机器人微信号")
public List<String> listAllRobotWxId() throws BizException {
try {
List<String> wxids = ResponseHandleUtil.parseListResponse(groupMemberService.listAllRobotWxId(), String.class);
return wxids;
} catch (Exception e) {
LOGGER.error("获取所有机器人微信号失败.[listAllRobotWxId]:" + e.getMessage(), e);
}
return null;
}
@ParamLog(value = "设置第一个关键词回复")
public void addFirstRobotReplyRecord(RobotReplyDTO robotReplyDTO) throws BizException {
try {
groupMemberService.addFirstRobotReplyRecord(robotReplyDTO);
} catch (Exception e) {
LOGGER.error("设置第一个关键词回复失败.[addFirstRobotReplyRecord]:" + e.getMessage(), e);
}
}
@ParamLog(value = "获取机器人信息")
public GroupRobotDTO getRobotInfoByWxUserId(String wxRobotId) throws BizException {
try {
return ResponseHandleUtil.parseResponse(groupMemberService.getRobotInfoByWxUserId(wxRobotId), GroupRobotDTO.class);
} catch (Exception e) {
LOGGER.error("获取机器人信息失败.[getRobotInfoByWxUserId]:" + e.getMessage(), e);
}
return null;
}
}
package com.pcloud.book.group.biz;
import com.pcloud.book.group.entity.BookClassifyBuyRecord;
/**
* @author lily
* @date 2019/4/19 11:27
*/
public interface BookClassifyBuyRecordBiz {
/**
* @Author:lili
* @Desr:新增购买记录
* @Date:2019/4/19 11:40
*/
void insertRecord(BookClassifyBuyRecord bookClassifyBuyRecord);
/**
* @Author:lili
* @Desr:校验用户是否购买
* @Date:2019/4/19 12:00
*/
Boolean checkUserBuy(Long wechatUserId, Long classifyId);
}
package com.pcloud.book.group.biz; package com.pcloud.book.group.biz;
import java.util.List;
import java.util.Map; import java.util.Map;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
...@@ -32,6 +35,14 @@ public interface BookGroupBiz { ...@@ -32,6 +35,14 @@ public interface BookGroupBiz {
/** /**
* 获取社群书群二维码信息 * 获取社群书群二维码信息
* @param bookGroupId 群二维码ID
* @return
* @throws BizException
*/
BookGroupDTO getBookGroupInfo4Wechat(Long bookGroupId) throws BizException;
/**
* 获取社群书群二维码信息
* @param bookId 书刊ID * @param bookId 书刊ID
* @param channelId 运营ID * @param channelId 运营ID
* @param adviserId 编辑ID * @param adviserId 编辑ID
...@@ -84,6 +95,14 @@ public interface BookGroupBiz { ...@@ -84,6 +95,14 @@ public interface BookGroupBiz {
PageBean listBookGroup4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException; PageBean listBookGroup4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException;
/** /**
* 获取社群书列表(编辑)
* @param paramMap 参数Map
* @return
* @throws BizException
*/
List<BookDto> listSimpleBookGroup4Adviser(Map<String, Object> paramMap) throws BizException;
/**
* 获取未创建社群码的书刊列表 * 获取未创建社群码的书刊列表
* @param paramMap 参数Map * @param paramMap 参数Map
* @param pageParam 分页参数 * @param pageParam 分页参数
...@@ -95,6 +114,13 @@ public interface BookGroupBiz { ...@@ -95,6 +114,13 @@ public interface BookGroupBiz {
/** /**
* @Author:lili * @Author:lili
* @Desr:获取群二维码名称以及商品id
* @Date:2019/4/18 9:57
*/
QrcodeNameAndProIdDTO getQrcodeNameAndProId(Long bookGroupId) throws BizException;
/**
* @Author:lili
* @Desr:获取排序方式 * @Desr:获取排序方式
* @Date:2019/4/19 14:57 * @Date:2019/4/19 14:57
*/ */
...@@ -106,4 +132,19 @@ public interface BookGroupBiz { ...@@ -106,4 +132,19 @@ public interface BookGroupBiz {
* @Date:2019/4/19 14:58 * @Date:2019/4/19 14:58
*/ */
void updateRankType(Long bookGroupId, Integer rankType) throws BizException; void updateRankType(Long bookGroupId, Integer rankType) throws BizException;
/**
* 编辑获取社群码总数量
* @param adviserId 编辑ID
* @return
* @throws BizException
*/
Map<String, Object> getTotalBookGroupCount(Long adviserId) throws BizException;
/**
* @Author:lili
* @Desr:获取备用二维码
* @Date:2019/5/13 15:09
*/
String getSpareQr(Long bookGroupId);
} }
package com.pcloud.book.group.biz;
import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import com.pcloud.book.group.dto.ClassifyDTO;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO;
import com.pcloud.book.group.dto.GroupQrcodeBaseDTO;
import com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO;
import com.pcloud.book.group.vo.AddClassifyVO;
import com.pcloud.book.group.vo.BookGroupQrcodeStatisticVO;
import com.pcloud.book.group.vo.ClassifyAndGroupCountVO;
import com.pcloud.book.group.vo.ClassifyAndUserCountVO;
import com.pcloud.book.group.vo.ClassifyNameVO;
import com.pcloud.book.group.vo.ClassifyVO;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
import com.pcloud.book.group.vo.GroupQrcodeVO;
import com.pcloud.book.group.vo.ListBookGroupQrcodeParamVO;
import com.pcloud.book.group.vo.ListClassify4WechatVO;
import com.pcloud.book.group.vo.ListClassifyVO;
import com.pcloud.book.group.vo.ListGroupQrParam;
import com.pcloud.book.group.vo.StatisticVO;
import com.pcloud.book.group.vo.UpdateClassifyVO;
import com.pcloud.book.group.vo.UpdateRankVO;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2019/4/16 21:02
*/
public interface BookGroupClassifyBiz {
/**
* @Author:lili
* @Desr:新增分类
* @Date:2019/4/17 15:53
*/
void addClassify(AddClassifyVO addClassifyVO, Long partyId);
/**
* @Author:lili
* @Desr:更新分类
* @Date:2019/4/17 15:53
*/
void updateClassify(UpdateClassifyVO updateClassifyVO, Long partyId);
/**
* @Author:lili
* @Desr:获取分类列表
* @Date:2019/4/17 15:53
*/
List<ListClassifyVO> listAllClassify(Long bookGroupId);
/**
* @Author:lili
* @Desr:删除群分类
* @Date:2019/4/17 15:57
*/
void deleteClassify(Long classifyId, Long partyId);
/**
* @Author:lili
* @Desr:获取群分类
* @Date:2019/4/18 9:53
*/
ClassifyVO getClassify(Long classifyId);
/**
* @Author:lili
* @Desr:根据规格对应分类信息
* @Date:2019/4/19 11:46
*/
ClassifyDTO getBaseInfoBySpecId(Long productSpecId);
/**
* @Author:lili
* @Desr:修改排序值
* @Date:2019/4/22 15:53
*/
void updateClassifyRank(UpdateRankVO updateRankVO, Long partyId);
/**
* @Author:lili
* @Desr:获取所有分类
* @Date:2019/4/22 16:01
*/
List<ClassifyNameVO> listClassify(Long bookGroupId);
/**
* @Author:lili
* @Desr:获取分类与群数量
* @Date:2019/4/25 18:03
*/
ClassifyAndGroupCountVO getClassifyAndGroupCount(Long bookGroupId);
/**
* @Author:lili
* @Desr:获取分类与群总人数
* @Date:2019/4/26 14:34
*/
ClassifyAndUserCountVO getClassifyAndUserCount(Long bookGroupId);
/**
* @Author:lili
* @Desr:获取分类社群码名称以及最大群数量
* @Date:2019/4/28 17:25
*/
GroupNameAndMaxSeqDTO getGroupNameAndMaxSeq(Long classifyId);
/**
* @Author:lili
* @Desr:获取分类二维码相关标识
* @Date:2019/4/28 20:32
*/
GroupClassifyQrcodeDTO getClassifyQrcodeInfo(String weixinGroupId);
/**
* @Author:lili
* @Desr:客户端获取分类信息
* @Date:2019/4/29 10:30
*/
List<ListClassify4WechatVO> listClassify4Wechat(Long bookGroupId, Long wechatUserId);
/**
* @Author:lili
* @Desr:客户端根据群分类获取二维码
* @Date:2019/4/29 17:21
*/
GroupQrcode4ClassifyVO getGroupQrcode4ClassifyWechat(Long classifyId, Long wechatUserId);
/**
* @Author:lili
* @Desr:获取编辑所有的群二维码
* @Date:2019/4/30 15:33
*/
PageBeanNew<GroupQrcodeVO> listGroupQrcodeByAdviser(ListGroupQrParam listGroupQrParam, Long adviserId);
/**
* @Author:lili
* @Desr:获取社群码统计数据(分类数,群总人数,群数量)
* @Date:2019/4/30 17:38
*/
Map<Long , BookGroupStatisticDTO> getBookGroupStatistic(List<Long> bookGroupIds);
/**
* @Author:lili
* @Desr:获取单个群统计
* @Date:2019/5/6 16:17
*/
PageBeanNew<BookGroupQrcodeStatisticVO> listBookGroupQrcodeStatistic(ListBookGroupQrcodeParamVO listBookGroupQrcodeParamVO, Long adviserId);
/**
* @Author:lili
* @Desr:单个群统计导出
* @Date:2019/5/6 17:26
*/
void bookGroupQrcodeStatisticExport(List<Long> classifyIds, Long bookGroupId, Long adviserId);
/**
* @Author:lili
* @Desr: 获取编辑的社群码统计数据
* @Date:2019/5/9 11:23
*/
StatisticVO getStatistic4Adviser(Long adviserId);
/**
* @Author:lili
* @Desr: 获取群二维码基本信息
* @Date:2019/5/10 14:50
*/
Map<String,GroupQrcodeBaseDTO> listGroupQrcodeBaseInfo(List<String> weixinGroupIds);
/**
* @Author:lili
* @Desr:获取商品关联群数量与人数
* @Date:2019/5/10 20:18
*/
ProAssocGroupAndUserNumberDTO getProAssocGroupAndUserNumber(Long productId);
}
package com.pcloud.book.group.biz;
import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2019/4/18 15:30
*/
public interface GroupQrcodeBiz {
/**
* @Author:lili
* @Desr:新增微信群二维码
* @Date:2019/4/17 17:44
*/
Long insert(GroupQrcode groupQrcode);
/**
* @Author:lili
* @Desr:根据分类删除微信群
* @Date:2019/4/18 11:55
*/
void deleteByClassifyId(Long classifyId);
/**
* @Author:lili
* @Desr:批量获取群数量与群总人数
* @Date:2019/4/18 20:08
*/
Map<Long, GroupAndUserNumberDTO> listGroupAndUserNumber(List<Long> classifyIds);
/**
* @Author:lili
* @Desr:获取分类下二维码
* @Date:2019/4/17 15:53
*/
PageBeanNew<ClassifyQrcodeVO> listQrcodeByClassify(ListQrcodeByClassifyParamVO listQrcodeByClassifyParamVO);
/**
* @Author:lili
* @Desr:修改微信群名称
* @Date:2019/4/1 11:22
*/
void modifyWechatGroupName(String wechatGroupName, Long id, Long updateUser);
/**
* @Author:lili
* @Desr:新增一个用户
* @Date:2019/4/28 14:45
*/
void addOneUser(String wechatGroupId, Integer memberCount);
/**
* @Author:lili
* @Desr:获取群二维码相关信息
* @Date:2019/4/29 14:46
*/
Map<Long,GroupQrcodeInfoDTO> listQrcodeInfoByIds(List<Long> groupQrcodeIds);
/**
* @Author:lili
* @Desr:获取群基本信息
* @Date:2019/5/6 16:12
*/
GroupQrcodeBaseInfoVO getBaseById(Long groupQrcodeId);
}
package com.pcloud.book.group.biz;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
import com.pcloud.book.group.dto.WeixinQrcodeDTO;
import com.pcloud.book.group.vo.QrStatisticsVO;
import com.pcloud.book.group.vo.WeixinQrcodeVO;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2019/4/17 16:10
*/
public interface WeixinQrcodeBiz {
/**
* @Author:lili
* @Desr:从二维码获取一个二维码
* @Date:2019/4/17 16:17
*/
WeixinQrcodeDTO getOneQrcode();
/**
* @Author:lili
* @Desr:发送不足100提醒邮件
* @Date:2019/4/1 11:22
*/
void sendMsgByQrCount();
/**
* @Author:lili
* @Desr:定时更新二维码
* @Date:2019/3/12 9:26
*/
void setUpdateQrUrlByQuartz();
/**
* @Author:lili
* @Desr:发送更新二维码地址请求
* @Date:2019/3/1 11:38
*/
void setUpdateQrUrl();
/**
* @Author:lili
* @Desr: 更新二维码地址
* @Date:2019/3/12 9:27
*/
void updateQrUrl(UpdateQrDTO updateQrDTO);
/**
* @Author:lili
* @Desr:处理有问题的二维码/或者未处理的二维码
* @Date:2019/3/12 9:27
*/
void setUpdateQr4Error(List<Long> ids);
/**
* @Author:lili
* @Desr:发送更新群名称请求
* @Date:2019/4/2 15:07
*/
void sendChangeGroupNameRequest(List<Long> ids);
/**
* @Author:lili
* @Desr:同步更新微信群id
* @Date:2019/4/3 11:07
*/
void syncWeixinGroupId(Long weixinQrcodeId, String weixinGroupId);
/**
* @Author:lili
* @Desr:发送同步微信id请求
* @Date:2019/4/15 9:43
*/
void sendSyncWeixinGroupIdRequest(List<Long> ids);
/**
* @Author:lili
* @Desr:新增二维码
* @Date:2019/4/26 15:36
*/
void addQrcode(WeixinQrcodeVO weixinQrcodeVO, Long partyId);
/**
* @Author:lili
* @Desr:获取机器人二维码分配情况
* @Date:2019/4/26 16:19
*/
Map<Long,WeixinQrcodeCountDTO> listWeixinQrcodeCountByRobot(List<Long> robotIds);
/**
* @Author:lili
* @Desr:更新使用状态
* @Date:2019/4/28 17:15
*/
void updateUseState(Long weixinQrcodeId, Integer useState);
/**
* 平台端二维码统计数据
*/
QrStatisticsVO getQrStatistics();
}
package com.pcloud.book.group.biz.impl;
import com.pcloud.book.group.biz.BookClassifyBuyRecordBiz;
import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.dao.BookClassifyBuyRecordDao;
import com.pcloud.book.group.dto.ClassifyDTO;
import com.pcloud.book.group.entity.BookClassifyBuyRecord;
import com.pcloud.common.core.aspect.ParamLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author lily
* @date 2019/4/19 11:28
*/
@Component("bookClassifyBuyRecordBiz")
public class BookClassifyBuyRecordBizImpl implements BookClassifyBuyRecordBiz {
@Autowired
private BookGroupClassifyBiz bookGroupClassifyBiz;
@Autowired
private BookClassifyBuyRecordDao bookClassifyBuyRecordDao;
@Override
@ParamLog("新增记录")
public void insertRecord(BookClassifyBuyRecord bookClassifyBuyRecord) {
//通过规格id拿对应信息
ClassifyDTO classifyDTO = bookGroupClassifyBiz.getBaseInfoBySpecId(bookClassifyBuyRecord.getProductSpecId());
if (classifyDTO == null) {
return;
}
bookClassifyBuyRecord.setBookId(classifyDTO.getBookId());
bookClassifyBuyRecord.setChannelId(classifyDTO.getChannelId());
bookClassifyBuyRecord.setClassifyId(classifyDTO.getId());
bookClassifyBuyRecord.setBookQrcodeId(classifyDTO.getBookGroupId());
bookClassifyBuyRecordDao.insert(bookClassifyBuyRecord);
}
@Override
@ParamLog("校验用户是否购买")
public Boolean checkUserBuy(Long wechatUserId, Long classifyId) {
return bookClassifyBuyRecordDao.checkUserBuy(wechatUserId, classifyId);
}
}
...@@ -8,6 +8,7 @@ import java.util.Map; ...@@ -8,6 +8,7 @@ import java.util.Map;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
...@@ -17,11 +18,15 @@ import com.pcloud.book.book.dto.BookDto; ...@@ -17,11 +18,15 @@ import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.set.BookSet; import com.pcloud.book.book.set.BookSet;
import com.pcloud.book.consumer.user.AdviserConsr; import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.group.biz.BookGroupBiz; import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.dao.BookGroupDao; import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.ProductTypeConstant; import com.pcloud.common.core.constant.ProductTypeConstant;
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.PageParam; import com.pcloud.common.page.PageParam;
...@@ -34,6 +39,8 @@ import com.pcloud.resourcecenter.product.dto.AddAppProductParamDTO; ...@@ -34,6 +39,8 @@ import com.pcloud.resourcecenter.product.dto.AddAppProductParamDTO;
import com.pcloud.resourcecenter.product.dto.UpdateAppProductParamDTO; import com.pcloud.resourcecenter.product.dto.UpdateAppProductParamDTO;
import com.pcloud.resourcecenter.product.entity.Product; import com.pcloud.resourcecenter.product.entity.Product;
import com.pcloud.resourcecenter.product.service.ProductService; import com.pcloud.resourcecenter.product.service.ProductService;
import com.pcloud.settlementcenter.record.service.SettlementService;
import com.pcloud.wechatgroup.group.service.GroupMemberService;
/** /**
* Description 社群书群二维码业务逻辑层接口实现类 * Description 社群书群二维码业务逻辑层接口实现类
...@@ -61,6 +68,12 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -61,6 +68,12 @@ public class BookGroupBizImpl implements BookGroupBiz {
private BookSet bookSet; private BookSet bookSet;
@Autowired @Autowired
private BookDao bookDao; private BookDao bookDao;
@Autowired
private SettlementService settlementService;
@Autowired
private BookGroupClassifyBiz bookGroupClassifyBiz;
@Autowired
private GroupMemberService groupMemberService;
/** /**
* 创建社群书时生成群二维码 * 创建社群书时生成群二维码
...@@ -116,6 +129,11 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -116,6 +129,11 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
} }
} }
BookDto bookDto = bookBiz.getBaseById(bookGroupDTO.getBookId());
if (null != bookDto) {
bookDto.setBookName(null != bookDto.getBookName() ? StringUtil.addBracket(bookDto.getBookName()) : null);
bookGroupDTO.setBookInfo(bookDto);
}
return bookGroupDTO; return bookGroupDTO;
} }
...@@ -123,6 +141,14 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -123,6 +141,14 @@ public class BookGroupBizImpl implements BookGroupBiz {
* 获取社群书群二维码信息 * 获取社群书群二维码信息
*/ */
@Override @Override
public BookGroupDTO getBookGroupInfo4Wechat(Long bookGroupId) throws BizException {
return bookGroupDao.getDTOById(bookGroupId);
}
/**
* 获取社群书群二维码信息
*/
@Override
public BookGroupDTO getBookGroupInfoByBookId(Long bookId, Long channelId, Long adviserId) throws BizException { public BookGroupDTO getBookGroupInfoByBookId(Long bookId, Long channelId, Long adviserId) throws BizException {
BookGroupDTO bookGroupDTO = bookGroupDao.getDTOByBookId(bookId, channelId, adviserId); BookGroupDTO bookGroupDTO = bookGroupDao.getDTOByBookId(bookId, channelId, adviserId);
if (null == bookGroupDTO) { if (null == bookGroupDTO) {
...@@ -158,6 +184,11 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -158,6 +184,11 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
} }
} }
BookDto bookDto = bookBiz.getBaseById(bookId);
if (null != bookDto) {
bookDto.setBookName(null != bookDto.getBookName() ? StringUtil.addBracket(bookDto.getBookName()) : null);
bookGroupDTO.setBookInfo(bookDto);
}
return bookGroupDTO; return bookGroupDTO;
} }
...@@ -233,6 +264,9 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -233,6 +264,9 @@ public class BookGroupBizImpl implements BookGroupBiz {
if (null != bookDto) { if (null != bookDto) {
result.put("bookName", StringUtil.addBracket(bookDto.getBookName())); result.put("bookName", StringUtil.addBracket(bookDto.getBookName()));
} }
result.put("isDelete", bookGroupDTO.getIsDelete());
} else {
result.put("isDelete", true);
} }
return result; return result;
} }
...@@ -249,19 +283,51 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -249,19 +283,51 @@ public class BookGroupBizImpl implements BookGroupBiz {
// 设置是否被冻结 // 设置是否被冻结
bookSet.setFreezeStatus(pageBean.getRecordList()); bookSet.setFreezeStatus(pageBean.getRecordList());
// 填充社群书数据 // 填充社群书数据
List<Long> bookGroupIds = new ArrayList<>();
pageBean.getRecordList().forEach(obj -> bookGroupIds.add(((BookDto) obj).getBookGroupId()));
ResponseEntity<ResponseDto<Map<Long, BigDecimal>>> responseEntity = settlementService.getWXGroupIncomeByAdviser(bookGroupIds, adviserId);
Map<Long, BigDecimal> incomeMap = ResponseHandleUtil.parseMap(responseEntity, Long.class, BigDecimal.class);
Map<Long, BookGroupStatisticDTO> statisMap = bookGroupClassifyBiz.getBookGroupStatistic(bookGroupIds);
Map<Long, Integer> scanMap = ResponseHandleUtil.parseMap(groupMemberService.getScanUserCountByGroup(bookGroupIds), Long.class, Integer.class);
for (Object object : pageBean.getRecordList()) { for (Object object : pageBean.getRecordList()) {
BookDto bookDto = (BookDto) object; BookDto bookDto = (BookDto) object;
bookDto.setGroupQrcodeLink(bookGroupQrcodeDomain + "/" + bookDto.getBookGroupId()); Long bookGroupId = bookDto.getBookGroupId();
bookDto.setScanCount(0L); bookDto.setGroupQrcodeLink(bookGroupQrcodeDomain + "/" + bookGroupId);
bookDto.setBookName(null != bookDto.getBookName() ? StringUtil.addBracket(bookDto.getBookName()) : null);
if (!MapUtils.isEmpty(statisMap) && statisMap.containsKey(bookGroupId)) {
BookGroupStatisticDTO dto = statisMap.get(bookGroupId);
bookDto.setClassifyCount(null != dto.getClassifyCount() ? dto.getClassifyCount().longValue() : 0L);
bookDto.setGroupCount(null != dto.getGroupNumber() ? dto.getGroupNumber().longValue() : 0L);
bookDto.setGroupPersonCount(null != dto.getUserNumber() ? dto.getUserNumber().longValue() : 0L);
} else {
bookDto.setClassifyCount(0L); bookDto.setClassifyCount(0L);
bookDto.setGroupPersonCount(0L); bookDto.setGroupPersonCount(0L);
bookDto.setGroupCount(0L); bookDto.setGroupCount(0L);
}
if (!MapUtils.isEmpty(scanMap) && scanMap.containsKey(bookGroupId)) {
bookDto.setScanCount(null != scanMap.get(bookGroupId) ? scanMap.get(bookGroupId).longValue() : 0L);
} else {
bookDto.setScanCount(0L);
}
if (!MapUtils.isEmpty(incomeMap) && incomeMap.containsKey(bookGroupId)) {
BigDecimal income = incomeMap.get(bookGroupId);
bookDto.setTotalIncome(null != income ? income.setScale(2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
} else {
bookDto.setTotalIncome(BigDecimal.ZERO); bookDto.setTotalIncome(BigDecimal.ZERO);
} }
}
return pageBean; return pageBean;
} }
/** /**
* 获取社群书列表(编辑)
*/
@Override
public List<BookDto> listSimpleBookGroup4Adviser(Map<String, Object> paramMap) throws BizException {
return bookDao.listSimpleBookGroup4Adviser(paramMap);
}
/**
* 获取未创建社群码的书刊列表 * 获取未创建社群码的书刊列表
*/ */
@Override @Override
...@@ -274,6 +340,12 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -274,6 +340,12 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
@Override @Override
@ParamLog("获取社群码名称以及商品标识")
public QrcodeNameAndProIdDTO getQrcodeNameAndProId(Long bookGroupId) throws BizException {
return bookGroupDao.getQrcodeNameAndProId(bookGroupId);
}
@Override
@ParamLog("获取排序类型") @ParamLog("获取排序类型")
public Integer getRankType(Long bookGroupId) throws BizException { public Integer getRankType(Long bookGroupId) throws BizException {
return bookGroupDao.getRankType(bookGroupId); return bookGroupDao.getRankType(bookGroupId);
...@@ -284,4 +356,20 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -284,4 +356,20 @@ public class BookGroupBizImpl implements BookGroupBiz {
public void updateRankType(Long bookGroupId, Integer rankType) throws BizException { public void updateRankType(Long bookGroupId, Integer rankType) throws BizException {
bookGroupDao.updateRankType(bookGroupId, rankType); bookGroupDao.updateRankType(bookGroupId, rankType);
} }
/**
* 编辑获取社群码总数量
*/
@Override
public Map<String, Object> getTotalBookGroupCount(Long adviserId) throws BizException {
Map<String, Object> result = new HashMap<>();
Integer bookGroupCount = bookGroupDao.getBookGroupCount(adviserId);
result.put("bookGroupCount", bookGroupCount);
return result;
}
@Override
public String getSpareQr(Long bookGroupId) {
return bookGroupDao.getSpareQr(bookGroupId);
}
} }
package com.pcloud.book.group.dao;
import com.pcloud.book.group.entity.BookClassifyBuyRecord;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @author lily
* @date 2019/4/19 11:55
*/
public interface BookClassifyBuyRecordDao extends BaseDao<BookClassifyBuyRecord> {
/**
* @Author:lili
* @Desr:校验用户是否购买
* @Date:2019/4/19 12:01
*/
Boolean checkUserBuy(Long wechatUserId, Long classifyId);
/**
* @Author:lili
* @Desr:校验用户是否购买
* @Date:2019/4/19 12:01
*/
List<Long> checkUsersBuy(List<Long> classifyIds, Long wechatUserId);
}
package com.pcloud.book.group.dao;
import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import com.pcloud.book.group.dto.ClassifyDTO;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO;
import com.pcloud.book.group.dto.GroupQrcodeBaseDTO;
import com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO;
import com.pcloud.book.group.entity.BookGroupClassify;
import com.pcloud.book.group.vo.BookGroupQrcodeStatisticVO;
import com.pcloud.book.group.vo.ClassifyNameVO;
import com.pcloud.book.group.vo.ClassifyVO;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
import com.pcloud.book.group.vo.ListClassify4WechatVO;
import com.pcloud.book.group.vo.ListClassifyVO;
import com.pcloud.book.group.vo.StatisticVO;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2019/4/17 11:20
*/
public interface BookGroupClassifyDao extends BaseDao<BookGroupClassify> {
/**
* @Author:lili
* @Desr:获取是否有该分类
* @Date:2019/4/17 17:57
*/
Boolean isHaveThisClassify(String classify, Long classifyId, Long bookGroupId);
/**
* @Author:lili
* @Desr:获取分类
* @Date:2019/4/18 10:19
*/
ClassifyVO getClassify(Long classifyId);
/**
* @Author:lili
* @Desr:获取分类
* @Date:2019/4/18 10:19
*/
ClassifyDTO getById(Long classifyId);
/**
* @Author:lili
* @Desr:更新规格标识
* @Date:2019/4/18 11:32
*/
void updateSpecId(Long id, Long productSpecId);
/**
* @Author:lili
* @Desr:删除分类
* @Date:2019/4/18 11:48
*/
void deleteClassify(Long classifyId, Long partyId);
/**
* @Author:lili
* @Desr:、获取分类个数
* @Date:2019/4/18 16:28
*/
Integer getClassifyCount(Long bookGroupId);
/**
* @Author:lili
* @Desr:获取所有分类列表
* @Date:2019/4/18 19:46
*/
List<ListClassifyVO> listAllClassifyByRank(Long bookGroupId);
/**
* @Author:lili
* @Desr:根据规格获取分类基本信息
* @Date:2019/4/19 11:48
*/
ClassifyDTO getBaseInfoBySpecId(Long productSpecId);
/**
* @Author:lili
* @Desr:获取分类列表(排序方式是群总人数)
* @Date:2019/4/19 15:13
*/
List<ListClassifyVO> listAllClassifyByUser(Long bookGroupId);
/**
* @Author:lili
* @Desr:更排序分类值
* @Date:2019/4/22 15:55
*/
void updateClassifyRank(BookGroupClassify bookGroupClassify);
/**
* @Author:lili
* @Desr:获取所有分类名称(排序值)
* @Date:2019/4/22 16:03
*/
List<ClassifyNameVO> listClassifyByRank(Long bookGroupId);
/**
* @Author:lili
* @Desr:获取所有分类名称(总人数)
* @Date:2019/4/22 16:03
*/
List<ClassifyNameVO> listClassifyByUser(Long bookGroupId);
/**
* @Author:lili
* @Desr:获取群数量
* @Date:2019/4/26 14:58
*/
Integer getGroupCount(Long bookGroupId);
/**
* @Author:lili
* @Desr:获取总用户数
* @Date:2019/4/26 15:02
*/
Integer getUserNumberCount(Long bookGroupId);
/**
* @Author:lili
* @Desr:获取分类社群码名称以及最大群数量
* @Date:2019/4/28 17:26
*/
GroupNameAndMaxSeqDTO getGroupNameAndMaxSeq(Long classifyId);
/**
* @Author:lili
* @Desr:获取分类二维码相关标识
* @Date:2019/4/28 20:32
*/
GroupClassifyQrcodeDTO getClassifyQrcodeInfo(String weixinGroupId);
/**
* @Author:lili
* @Desr:获取所有的分类
* @Date:2019/4/29 11:23
*/
List<ListClassify4WechatVO> listClassify4Wechat(Long bookGroupId, Integer rankType);
/**
* @Author:lili
* @Desr:客户端获取分类使用二维码
* @Date:2019/4/30 10:06
*/
GroupQrcode4ClassifyVO getClassifyQrcode(Long classifyId, Integer changeNumber);
/**
* @Author:lili
* @Desr:获取社群码统计数据(分类数,群总人数,群数量)
* @Date:2019/4/30 17:48
*/
Map<Long,BookGroupStatisticDTO> getBookGroupStatistic(List<Long> bookGroupIds);
/**
* @Author:lili
* @Desr:获取单个群统计数据
* @Date:2019/5/6 17:28
*/
List<BookGroupQrcodeStatisticVO> listBookGroupQrcodeStatistic(List<Long> classifyIds, Long bookGroupId);
/**
* @Author:lili
* @Desr:
* @Date:2019/5/9 11:25
*/
StatisticVO getStatistic4Adviser(Long adviserId);
/**
* @Author:lili
* @Desr:获取群二维码基本信息
* @Date:2019/5/10 14:51
*/
Map<String,GroupQrcodeBaseDTO> listGroupQrcodeBaseInfo(List<String> weixinGroupIds);
/**
* @Author:lili
* @Desr:获取商品关联群数量与人数
* @Date:2019/5/10 20:39
*/
ProAssocGroupAndUserNumberDTO getProAssocGroupAndUserNumber(Long productId);
/**
* @Author:lili
* @Desr:获取最大的排序值
* @Date:2019/5/14 15:52
*/
Integer getMaxRank(Long bookGroupId);
}
package com.pcloud.book.group.dao; package com.pcloud.book.group.dao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
...@@ -45,6 +46,20 @@ public interface BookGroupDao extends BaseDao<BookGroup> { ...@@ -45,6 +46,20 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
long recoverByBookId(Long bookId, Long channelId, Long adviserId); long recoverByBookId(Long bookId, Long channelId, Long adviserId);
/** /**
* 获取编辑社群书数量
* @param adviserId 编辑ID
* @return
*/
Integer getBookGroupCount(Long adviserId);
/**
* @Author:lili
* @Desr:获取群二维码名称与商品标识
* @Date:2019/4/18 9:58
*/
QrcodeNameAndProIdDTO getQrcodeNameAndProId(Long bookGroupId);
/**
* @Author:lili * @Author:lili
* @Desr:获取排序类型 * @Desr:获取排序类型
* @Date:2019/4/19 15:01 * @Date:2019/4/19 15:01
...@@ -57,4 +72,11 @@ public interface BookGroupDao extends BaseDao<BookGroup> { ...@@ -57,4 +72,11 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
* @Date:2019/4/19 15:01 * @Date:2019/4/19 15:01
*/ */
void updateRankType(Long bookGroupId, Integer rankType); void updateRankType(Long bookGroupId, Integer rankType);
/**
* @Author:lili
* @Desr:获取备用二维码
* @Date:2019/5/13 15:10
*/
String getSpareQr(Long bookGroupId);
} }
package com.pcloud.book.group.dao;
import com.pcloud.book.group.entity.BookQrcodeUser;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
import com.pcloud.common.core.dao.BaseDao;
/**
* @author lily
* @date 2019/4/30 11:17
*/
public interface BookQrcodeUserDao extends BaseDao<BookQrcodeUser> {
/**
* @Author:lili
* @Desr:获取用户配置的二维码
* @Date:2019/4/29 17:52
*/
GroupQrcode4ClassifyVO getUserQrcode(Long classifyId, Long wechatUserId);
}
package com.pcloud.book.group.dao;
import com.pcloud.book.group.dto.ChangeGroupNameDTO;
import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2019/4/17 16:38
*/
public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
/**
* @Author:lili
* @Desr:根据分类标识删除微信群
* @Date:2019/4/18 11:56
*/
void deleteByClassifyId(Long classifyId);
/**
* @Author:lili
* @Desr:批量获取群数量与群总人数
* @Date:2019/4/18 20:09
*/
Map<Long, GroupAndUserNumberDTO> listGroupAndUserNumber(List<Long> classifyIds);
/**
* @Author:lili
* @Desr: 修改群名称
* @Date:2019/4/19 15:53
*/
void modifyNameById(String wechatGroupName, Long id, Long updateUser);
/**
* @Author:lili
* @Desr:更新二维码url
* @Date:2019/3/11 20:47
*/
void updateQrUrl(UpdateQrDTO updateQrDTO);
/**
* @Author:lili
* @Desr:获取修改群信息
* @Date:2019/4/2 16:52
*/
List<ChangeGroupNameDTO> getWechatGroupInfo(List<Long> ids);
/**
* @Author:lili
* @Desr:同步微信群标识
* @Date:2019/4/3 11:14
*/
void syncWeixinGroupId(Long weixinQrcodeId, String weixinGroupId);
/**
* @Author:lili
* @Desr:更新用户数
* @Date:2019/4/28 14:50
*/
void updateUserNumber(String wechatGroupId, Integer memberCount);
/**
* @Author:lili
* @Desr: 获取分类二维码基本信息
* @Date:2019/4/28 15:31
*/
GroupQrcodeDTO getGroupQrcodeInfo(String weixinGroupId);
/**
* @Author:lili
* @Desr:更新群使用状态
* @Date:2019/4/28 16:57
*/
void updateUseState(Long id, Integer useState);
/**
* @Author:lili
* @Desr:修改二维码状态
* @Date:2019/4/28 17:20
*/
void changeQrcodeState(Long id, Integer qrcode_state);
/**
* @Author:lili
* @Desr:获取群二维码相关信息
* @Date:2019/4/29 14:48
*/
Map<Long,GroupQrcodeInfoDTO> listQrcodeInfoByIds(List<Long> groupQrcodeIds);
/**
* @Author:lili
* @Desr:获取群二维码基本信息
* @Date:2019/5/6 16:13
*/
GroupQrcodeBaseInfoVO getBaseById(Long groupQrcodeId);
/**
* @Author:lili
* @Desr:获取更新群名称的参数
* @Date:2019/5/7 18:14
*/
ChangeGroupNameDTO getUpdateGroupNameParam(Long id);
}
package com.pcloud.book.group.dao;
import com.pcloud.book.group.dto.SyncWeixinGroupIdRequestDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
import com.pcloud.book.group.dto.WeixinQrcodeDTO;
import com.pcloud.book.group.entity.WeixinQrcode;
import com.pcloud.book.group.vo.QrStatisticsVO;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2019/4/17 16:19
*/
public interface WeixinQrcodeDao extends BaseDao<WeixinQrcode> {
/**
* @Author:lili
* @Desr:获取一个微信群
* @Date:2019/3/12 18:04
*/
WeixinQrcodeDTO getOneWechatGroup();
/**
* @Author:lili
* @Desr:设置为已使用
* @Date:2019/3/12 18:11
*/
Integer setIsUseById(Long id);
/**
* @Author:lili
* @Desr:获取二维码统计数量
* @Date:2019/4/19 16:10
*/
QrStatisticsVO getQrStatistics();
/**
* @Author:lili
* @Desr:将处理中的二维码修改为处理失败
* @Date:2019/3/7 15:21
*/
void updateStatusToError();
/**
* @Author:lili
* @Desr:按时间顺序获取未更新的二维码
* @Date:2019/4/19 16:16
*/
List<UpdateQrDTO> getInitialQr(int currentPage, Integer numPerPage);
/**
* @Author:lili
* @Desr:设置未正在更新中
* @Date:2019/4/19 16:17
*/
void setOnUpdate(List<Long> qrIds);
/**
* @Author:lili
* @Desr:更新二维码图片地址
* @Date:2019/3/5 9:52
*/
void updateQrUrl(UpdateQrDTO updateQrDTO);
/**
* @Author:lili
* @Desr:获取所有正在处理的二维码数量
* @Date:2019/3/7 10:55
*/
Integer getQrOnHandleCount();
/**
* @Author:lili
* @Desr:获取正在处理的二维码
* @Date:2019/3/5 20:20
*/
List<UpdateQrDTO> getQrOnHandle(Integer currentPage, Integer numPerPage, List<Long> ids);
/**
* @Author:lili
* @Desr:更新微信群id
* @Date:2019/4/2 15:04
*/
void updateWeixinGroupId(Long weixinQrcodeId, String weixinGroupId);
/**
* @Author:lili
* @Desr: 获取没有微信群id的二维码
* @Date:2019/4/15 11:44
*/
List<SyncWeixinGroupIdRequestDTO> listNoIdQrcode(List<Long> ids);
/**
* @Author:lili
* @Desr:获取机器人对应二维码统计数据
* @Date:2019/4/26 16:43
*/
Map<Long,WeixinQrcodeCountDTO> listWeixinQrcodeCountByRobot(List<Long> robotIds);
/**
* @Author:lili
* @Desr:更新二维码使用状态
* @Date:2019/4/28 16:59
*/
void updateUseState(Long id, Integer useState);
/**
* @Author:lili
* @Desr:获取二维码总个数
* @Date:2019/5/7 11:50
*/
Integer getQrcodeCount();
/**
* @Author:lili
* @Desr:校验存在性
* @Date:2019/5/10 12:49
*/
Boolean checkExist(String weixinGroupId);
/**
* @Author:lili
* @Desr: 更新二维码状态
* @Date:2019/5/13 14:35
*/
void updateState(Long weixinQrcodeId, Integer updateState);
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.BookClassifyBuyRecordDao;
import com.pcloud.book.group.entity.BookClassifyBuyRecord;
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 2019/4/19 11:56
*/
@Component("bookClassifyBuyRecordDao")
public class BookClassifyBuyRecordDaoImpl extends BaseDaoImpl<BookClassifyBuyRecord> implements BookClassifyBuyRecordDao {
@Override
public Boolean checkUserBuy(Long wechatUserId, Long classifyId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId", wechatUserId);
paramMap.put("classifyId", classifyId);
return this.getSqlSession().selectOne(this.getStatement("checkUserBuy"), paramMap);
}
@Override
public List<Long> checkUsersBuy(List<Long> classifyId, Long wechatUserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId", wechatUserId);
paramMap.put("classifyIds", classifyId);
return this.getSqlSession().selectList(this.getStatement("checkUsersBuy"), paramMap);
}
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.BookGroupClassifyDao;
import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import com.pcloud.book.group.dto.ClassifyDTO;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO;
import com.pcloud.book.group.dto.GroupQrcodeBaseDTO;
import com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO;
import com.pcloud.book.group.entity.BookGroupClassify;
import com.pcloud.book.group.vo.BookGroupQrcodeStatisticVO;
import com.pcloud.book.group.vo.ClassifyNameVO;
import com.pcloud.book.group.vo.ClassifyVO;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
import com.pcloud.book.group.vo.ListClassify4WechatVO;
import com.pcloud.book.group.vo.ListClassifyVO;
import com.pcloud.book.group.vo.StatisticVO;
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 2019/4/17 11:21
*/
@Component("bookGroupClassifyDao")
public class BookGroupClassifyDaoImpl extends BaseDaoImpl<BookGroupClassify> implements BookGroupClassifyDao {
@Override
public Boolean isHaveThisClassify(String classify, Long classifyId, Long bookGroupId) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("classify", classify);
paramMap.put("bookGroupId", bookGroupId);
paramMap.put("classifyId", classifyId);
return this.getSqlSession().selectOne(this.getStatement("isHaveThisClassify"), paramMap);
}
@Override
public ClassifyVO getClassify(Long classifyId) {
return this.getSqlSession().selectOne(this.getStatement("getClassify"), classifyId);
}
@Override
public ClassifyDTO getById(Long classifyId) {
return this.getSqlSession().selectOne(this.getStatement("getById"), classifyId);
}
@Override
public void updateSpecId(Long id, Long productSpecId) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("id", id);
paramMap.put("productSpecId", productSpecId);
this.getSqlSession().update(this.getStatement("updateSpecId"), paramMap);
}
@Override
public void deleteClassify(Long classifyId, Long partyId) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("classifyId", classifyId);
paramMap.put("partyId", partyId);
this.getSqlSession().update(this.getStatement("deleteClassify"), paramMap);
}
@Override
public Integer getClassifyCount(Long bookGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getClassifyCount"), bookGroupId);
}
@Override
public List<ListClassifyVO> listAllClassifyByRank(Long bookGroupId) {
return this.getSqlSession().selectList(this.getStatement("listAllClassifyByRank"), bookGroupId);
}
@Override
public List<ListClassifyVO> listAllClassifyByUser(Long bookGroupId) {
return this.getSqlSession().selectList(this.getStatement("listAllClassifyByUser"), bookGroupId);
}
@Override
public void updateClassifyRank(BookGroupClassify bookGroupClassify) {
this.getSqlSession().update(this.getStatement("updateClassifyRank"), bookGroupClassify);
}
@Override
public List<ClassifyNameVO> listClassifyByRank(Long bookGroupId) {
return this.getSqlSession().selectList(this.getStatement("listClassifyByRank"), bookGroupId);
}
@Override
public List<ClassifyNameVO> listClassifyByUser(Long bookGroupId) {
return this.getSqlSession().selectList(this.getStatement("listClassifyByUser"), bookGroupId);
}
@Override
public Integer getGroupCount(Long bookGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getGroupCount"), bookGroupId);
}
@Override
public Integer getUserNumberCount(Long bookGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getUserNumberCount"), bookGroupId);
}
@Override
public GroupNameAndMaxSeqDTO getGroupNameAndMaxSeq(Long classifyId) {
return this.getSqlSession().selectOne(this.getStatement("getGroupNameAndMaxSeq"), classifyId);
}
@Override
public GroupClassifyQrcodeDTO getClassifyQrcodeInfo(String weixinGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getClassifyQrcodeInfo"), weixinGroupId);
}
@Override
public List<ListClassify4WechatVO> listClassify4Wechat(Long bookGroupId, Integer rankType) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("bookGroupId", bookGroupId);
paramMap.put("rankType", rankType);
return this.getSqlSession().selectList(this.getStatement("listClassify4Wechat"), paramMap);
}
@Override
public GroupQrcode4ClassifyVO getClassifyQrcode(Long classifyId, Integer changeNumber) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("classifyId", classifyId);
paramMap.put("changeNumber", changeNumber);
return this.getSqlSession().selectOne(this.getStatement("getClassifyQrcode"), paramMap);
}
@Override
public Map<Long, BookGroupStatisticDTO> getBookGroupStatistic(List<Long> bookGroupIds) {
return this.getSqlSession().selectMap(this.getStatement("getBookGroupStatistic"), bookGroupIds, "bookGroupId");
}
@Override
public List<BookGroupQrcodeStatisticVO> listBookGroupQrcodeStatistic(List<Long> classifyIds, Long bookGroupId) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("classifyIds", classifyIds);
paramMap.put("bookGroupId", bookGroupId);
return this.getSqlSession().selectList(this.getStatement("listBookGroupQrcodeStatistic"), paramMap);
}
@Override
public StatisticVO getStatistic4Adviser(Long adviserId) {
return this.getSqlSession().selectOne(this.getStatement("getStatistic4Adviser"), adviserId);
}
@Override
public Map<String, GroupQrcodeBaseDTO> listGroupQrcodeBaseInfo(List<String> weixinGroupIds) {
return this.getSqlSession().selectMap(this.getStatement("listGroupQrcodeBaseInfo"), weixinGroupIds, "weixinGroupId");
}
@Override
public ProAssocGroupAndUserNumberDTO getProAssocGroupAndUserNumber(Long productId) {
return this.getSqlSession().selectOne(this.getStatement("getProAssocGroupAndUserNumber"), productId);
}
@Override
public Integer getMaxRank(Long bookGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getMaxRank"), bookGroupId);
}
@Override
public ClassifyDTO getBaseInfoBySpecId(Long productSpecId) {
return this.getSqlSession().selectOne(this.getStatement("getBaseInfoBySpecId"), productSpecId);
}
}
...@@ -2,9 +2,12 @@ package com.pcloud.book.group.dao.impl; ...@@ -2,9 +2,12 @@ package com.pcloud.book.group.dao.impl;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.pcloud.book.group.dao.BookGroupDao; import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
...@@ -59,6 +62,19 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou ...@@ -59,6 +62,19 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
return super.getSqlSession().update(getStatement("recoverByBookId"), paramMap); return super.getSqlSession().update(getStatement("recoverByBookId"), paramMap);
} }
/**
* 获取编辑社群书数量
*/
@Override
public Integer getBookGroupCount(Long adviserId) {
return super.getSqlSession().selectOne(getStatement("getBookGroupCount"), adviserId);
}
@Override
public QrcodeNameAndProIdDTO getQrcodeNameAndProId(Long bookGroupId) {
return super.getSqlSession().selectOne(getStatement("getQrcodeNameAndProId"), bookGroupId);
}
@Override @Override
public Integer getRankType(Long bookGroupId) { public Integer getRankType(Long bookGroupId) {
return super.getSqlSession().selectOne(getStatement("getRankType"), bookGroupId); return super.getSqlSession().selectOne(getStatement("getRankType"), bookGroupId);
...@@ -71,4 +87,9 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou ...@@ -71,4 +87,9 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("rankType", rankType); paramMap.put("rankType", rankType);
super.getSqlSession().update(getStatement("updateRankType"), paramMap); super.getSqlSession().update(getStatement("updateRankType"), paramMap);
} }
@Override
public String getSpareQr(Long bookGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getSpareQr"), bookGroupId);
}
} }
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.BookQrcodeUserDao;
import com.pcloud.book.group.entity.BookQrcodeUser;
import com.pcloud.book.group.vo.GroupQrcode4ClassifyVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* @author lily
* @date 2019/4/30 11:18
*/
@Component("bookQrcodeUserDao")
public class BookQrcodeUserDaoImpl extends BaseDaoImpl<BookQrcodeUser> implements BookQrcodeUserDao {
@Override
public GroupQrcode4ClassifyVO getUserQrcode(Long classifyId, Long wechatUserId) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("classifyId", classifyId);
paramMap.put("wechatUserId", wechatUserId);
return this.getSqlSession().selectOne(this.getStatement("getUserQrcode"), paramMap);
}
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.ChangeGroupNameDTO;
import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
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 2019/4/17 16:38
*/
@Component("groupQrcodeDao")
public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements GroupQrcodeDao {
@Override
public void deleteByClassifyId(Long classifyId) {
this.getSqlSession().update(this.getStatement("deleteByClassifyId"), classifyId);
}
@Override
public Map<Long, GroupAndUserNumberDTO> listGroupAndUserNumber(List<Long> classifyIds) {
return this.getSqlSession().selectMap(this.getStatement("listGroupAndUserNumber"), classifyIds, "classifyId");
}
@Override
public void modifyNameById(String wechatGroupName, Long id, Long updateUser) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("id", id);
paramMap.put("wechatGroupName", wechatGroupName);
paramMap.put("updateUser", updateUser);
this.getSqlSession().update(this.getStatement("modifyNameById"), paramMap);
}
@Override
public void updateQrUrl(UpdateQrDTO updateQrDTO) {
this.getSqlSession().update(this.getStatement("updateQrUrl"), updateQrDTO);
}
@Override
public List<ChangeGroupNameDTO> getWechatGroupInfo(List<Long> ids) {
return this.getSqlSession().selectList(this.getStatement("getWechatGroupInfo"), ids);
}
@Override
public void syncWeixinGroupId(Long weixinQrcodeId, String weixinGroupId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("weixinQrcodeId", weixinQrcodeId);
paramMap.put("weixinGroupId", weixinGroupId);
this.getSqlSession().update(this.getStatement("syncWeixinGroupId"), paramMap);
}
@Override
public void updateUserNumber(String wechatGroupId, Integer memberCount) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("memberCount", memberCount);
paramMap.put("weixinGroupId", wechatGroupId);
this.getSqlSession().update(this.getStatement("updateUserNumber"), paramMap);
}
@Override
public GroupQrcodeDTO getGroupQrcodeInfo(String weixinGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getGroupQrcodeInfo"), weixinGroupId);
}
@Override
public void updateUseState(Long id, Integer useState) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("id", id);
paramMap.put("useState", useState);
this.getSqlSession().update(this.getStatement("updateUseState"), paramMap);
}
@Override
public void changeQrcodeState(Long id, Integer qrcodeState) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("id", id);
paramMap.put("qrcodeState", qrcodeState);
this.getSqlSession().update(this.getStatement("changeQrcodeState"), paramMap);
}
@Override
public Map<Long, GroupQrcodeInfoDTO> listQrcodeInfoByIds(List<Long> groupQrcodeIds) {
return this.getSqlSession().selectMap(this.getStatement("listQrcodeInfoByIds"), groupQrcodeIds, "id");
}
@Override
public GroupQrcodeBaseInfoVO getBaseById(Long groupQrcodeId) {
return this.getSqlSession().selectOne(this.getStatement("getBaseById"), groupQrcodeId);
}
@Override
public ChangeGroupNameDTO getUpdateGroupNameParam(Long id) {
return this.getSqlSession().selectOne(this.getStatement("getUpdateGroupNameParam"), id);
}
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.WeixinQrcodeDao;
import com.pcloud.book.group.dto.SyncWeixinGroupIdRequestDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
import com.pcloud.book.group.dto.WeixinQrcodeDTO;
import com.pcloud.book.group.entity.WeixinQrcode;
import com.pcloud.book.group.vo.QrStatisticsVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import com.pcloud.common.utils.DateUtils;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author lily
* @date 2019/4/17 16:22
*/
@Component("WeixinQrcodeDao")
public class WeixinQrcodeDaoImpl extends BaseDaoImpl<WeixinQrcode> implements WeixinQrcodeDao {
@Override
public WeixinQrcodeDTO getOneWechatGroup() {
return this.getSqlSession().selectOne(this.getStatement("getOneWechatGroup"));
}
@Override
public Integer setIsUseById(Long id) {
return this.getSqlSession().update(this.getStatement("setIsUseById"), id);
}
@Override
public QrStatisticsVO getQrStatistics() {
return this.getSqlSession().selectOne(this.getStatement("getQrStatistics"));
}
@Override
public void updateStatusToError() {
this.getSqlSession().update(this.getStatement("updateStatusToError"));
}
@Override
public List<UpdateQrDTO> getInitialQr(int currentPage, Integer numPerPage) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("currentPage", currentPage);
paramMap.put("numPerPage", numPerPage);
return this.getSqlSession().selectList(this.getStatement("getInitialQr"), paramMap);
}
@Override
public void setOnUpdate(List<Long> qrIds) {
this.getSqlSession().update(this.getStatement("setOnUpdate"), qrIds);
}
@Override
public void updateQrUrl(UpdateQrDTO updateQrDTO) {
this.getSqlSession().update(this.getStatement("updateQrUrl"), updateQrDTO);
}
@Override
public Integer getQrOnHandleCount() {
return this.getSqlSession().selectOne(this.getStatement("getQrOnHandleCount"));
}
@Override
public List<UpdateQrDTO> getQrOnHandle(Integer currentPage, Integer numPerPage, List<Long> ids) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("currentPage", currentPage);
paramMap.put("numPerPage", numPerPage);
paramMap.put("ids", ids);
return this.getSqlSession().selectList(this.getStatement("getQrOnHandle"), paramMap);
}
@Override
public void updateWeixinGroupId(Long weixinQrcodeId, String weixinGroupId) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("weixinQrcodeId", weixinQrcodeId);
paramMap.put("weixinGroupId", weixinGroupId);
this.getSqlSession().update(this.getStatement("updateWeixinGroupId"), paramMap);
}
@Override
public List<SyncWeixinGroupIdRequestDTO> listNoIdQrcode(List<Long> ids) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("ids", ids);
return this.getSqlSession().selectList(this.getStatement("listNoIdQrcode"), paramMap);
}
@Override
public Map<Long, WeixinQrcodeCountDTO> listWeixinQrcodeCountByRobot(List<Long> robotIds) {
return this.getSqlSession().selectMap(this.getStatement("listWeixinQrcodeCountByRobot"), robotIds, "robotId");
}
@Override
public void updateUseState(Long id, Integer useState) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("useState", useState);
paramMap.put("id", id);
this.getSqlSession().update(this.getStatement("updateUseState"), paramMap);
}
@Override
public Integer getQrcodeCount() {
return this.getSqlSession().selectOne(this.getStatement("getQrcodeCount"));
}
@Override
public Boolean checkExist(String weixinGroupId) {
return this.getSqlSession().selectOne(this.getStatement("checkExist"), weixinGroupId);
}
@Override
public void updateState(Long weixinQrcodeId, Integer updateState) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("updateState", updateState);
paramMap.put("weixinQrcodeId", weixinQrcodeId);
this.getSqlSession().update(this.getStatement("updateState"), paramMap);
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AdGroupQrcodeDTO implements Serializable {
private static final long serialVersionUID = 3234046973249447114L;
/**
* 群二维码标识
*/
private Long groupQrcodeId;
/**
* 分类标识
*/
private Long classifyId;
/**
* 微信群名称
*/
private String groupQrcodeName;
/**
* 书刊ID
*/
private Long bookId;
/**
* 书刊名称
*/
private String bookName;
/**
* ISBN
*/
private String isbn;
/**
* 分类名称
*/
private String classify;
/**
* 运营ID
*/
private Long channelId;
/**
* 编辑ID
*/
private Long adviserId;
/**
* 编辑名称
*/
private String adviserName;
/**
* 出版社ID
*/
private Long agentId;
/**
* 出版社名称
*/
private String agentName;
/**
* 曝光量
*/
private Long exposureNum;
/**
* 点击量
*/
private Long clickNum;
/**
* 广告位数量
*/
private Long advertisingSpaceNum;
/**
* 点击率
*/
private BigDecimal clickRate;
/**
* 累计收益
*/
private BigDecimal totalIncome;
/**
* 是否开启广告位权限
*/
private Boolean isOpen;
/**
* 投放时间
*/
private Date distributionTime;
public Long getGroupQrcodeId() {
return groupQrcodeId;
}
public void setGroupQrcodeId(Long groupQrcodeId) {
this.groupQrcodeId = groupQrcodeId;
}
public Long getClassifyId() {
return classifyId;
}
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
public String getGroupQrcodeName() {
return groupQrcodeName;
}
public void setGroupQrcodeName(String groupQrcodeName) {
this.groupQrcodeName = groupQrcodeName;
}
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 getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getClassify() {
return classify;
}
public void setClassify(String classify) {
this.classify = classify;
}
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 getAdviserName() {
return adviserName;
}
public void setAdviserName(String adviserName) {
this.adviserName = adviserName;
}
public Long getAgentId() {
return agentId;
}
public void setAgentId(Long agentId) {
this.agentId = agentId;
}
public String getAgentName() {
return agentName;
}
public void setAgentName(String agentName) {
this.agentName = agentName;
}
public Long getExposureNum() {
return exposureNum;
}
public void setExposureNum(Long exposureNum) {
this.exposureNum = exposureNum;
}
public Long getClickNum() {
return clickNum;
}
public void setClickNum(Long clickNum) {
this.clickNum = clickNum;
}
public Long getAdvertisingSpaceNum() {
return advertisingSpaceNum;
}
public void setAdvertisingSpaceNum(Long advertisingSpaceNum) {
this.advertisingSpaceNum = advertisingSpaceNum;
}
public BigDecimal getClickRate() {
return clickRate;
}
public void setClickRate(BigDecimal clickRate) {
this.clickRate = clickRate;
}
public BigDecimal getTotalIncome() {
return totalIncome;
}
public void setTotalIncome(BigDecimal totalIncome) {
this.totalIncome = totalIncome;
}
public Boolean getIsOpen() {
return isOpen;
}
public void setIsOpen(Boolean isOpen) {
this.isOpen = isOpen;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getDistributionTime() {
return distributionTime;
}
public void setDistributionTime(Date distributionTime) {
this.distributionTime = distributionTime;
}
@Override
public String toString() {
return "AdGroupQrcodeDTO{" +
"groupQrcodeId=" + groupQrcodeId +
", classifyId=" + classifyId +
", groupQrcodeName='" + groupQrcodeName + '\'' +
", bookId=" + bookId +
", bookName='" + bookName + '\'' +
", isbn='" + isbn + '\'' +
", classify='" + classify + '\'' +
", channelId=" + channelId +
", adviserId=" + adviserId +
", adviserName='" + adviserName + '\'' +
", agentId=" + agentId +
", agentName='" + agentName + '\'' +
", exposureNum=" + exposureNum +
", clickNum=" + clickNum +
", advertisingSpaceNum=" + advertisingSpaceNum +
", clickRate=" + clickRate +
", totalIncome=" + totalIncome +
", isOpen=" + isOpen +
", distributionTime=" + distributionTime +
'}';
}
}
...@@ -2,6 +2,7 @@ package com.pcloud.book.group.dto; ...@@ -2,6 +2,7 @@ package com.pcloud.book.group.dto;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.common.dto.BaseDto; import com.pcloud.common.dto.BaseDto;
/** /**
...@@ -110,6 +111,11 @@ public class BookGroupDTO extends BaseDto { ...@@ -110,6 +111,11 @@ public class BookGroupDTO extends BaseDto {
*/ */
private Boolean isDelete; private Boolean isDelete;
/**
* 书刊信息
*/
private BookDto bookInfo;
public Long getId() { public Long getId() {
return id; return id;
} }
...@@ -264,6 +270,14 @@ public class BookGroupDTO extends BaseDto { ...@@ -264,6 +270,14 @@ public class BookGroupDTO extends BaseDto {
this.purLabelName = purLabelName; this.purLabelName = purLabelName;
} }
public BookDto getBookInfo() {
return bookInfo;
}
public void setBookInfo(BookDto bookInfo) {
this.bookInfo = bookInfo;
}
@Override @Override
public String toString() { public String toString() {
return "BookGroupDTO{" + return "BookGroupDTO{" +
...@@ -286,6 +300,7 @@ public class BookGroupDTO extends BaseDto { ...@@ -286,6 +300,7 @@ public class BookGroupDTO extends BaseDto {
", createTime=" + createTime + ", createTime=" + createTime +
", updateTime=" + updateTime + ", updateTime=" + updateTime +
", isDelete=" + isDelete + ", isDelete=" + isDelete +
", bookInfo=" + bookInfo +
"} " + super.toString(); "} " + super.toString();
} }
} }
\ No newline at end of file
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/4/30 17:34
*/
public class BookGroupStatisticDTO implements Serializable {
/**
* 社群码标识
*/
private Long bookGroupId;
/**
* 分类数量
*/
private Integer classifyCount;
/**
* 群数量
*/
private Integer groupNumber;
/**
* 用户数量
*/
private Integer userNumber;
public Long getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public Integer getClassifyCount() {
return classifyCount;
}
public void setClassifyCount(Integer classifyCount) {
this.classifyCount = classifyCount;
}
public Integer getGroupNumber() {
return groupNumber;
}
public void setGroupNumber(Integer groupNumber) {
this.groupNumber = groupNumber;
}
public Integer getUserNumber() {
return userNumber;
}
public void setUserNumber(Integer userNumber) {
this.userNumber = userNumber;
}
@Override
public String toString() {
return "BookGroupStatisticDTO{" +
"bookGroupId=" + bookGroupId +
", classifyCount=" + classifyCount +
", groupNumber=" + groupNumber +
", userNumber=" + userNumber +
'}';
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/4/2 15:33
*/
public class ChangeGroupNameDTO implements Serializable {
/**
* 群二维码标识
*/
private Long id;
/**
* 群名称
*/
private String wxGroupName;
/**
* 群微信标识
*/
private String wxGroupId;
/**
* 群二维码
*/
private String url;
/**
* 请求地址
*/
private String requestUrl;
/**
* 机器人微信标识
*/
private String robotWxId;
public String getRequestUrl() {
return requestUrl;
}
public void setRequestUrl(String requestUrl) {
this.requestUrl = requestUrl;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getWxGroupName() {
return wxGroupName;
}
public void setWxGroupName(String wxGroupName) {
this.wxGroupName = wxGroupName;
}
public String getWxGroupId() {
return wxGroupId;
}
public void setWxGroupId(String wxGroupId) {
this.wxGroupId = wxGroupId;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getRobotWxId() {
return robotWxId;
}
public void setRobotWxId(String robotWxId) {
this.robotWxId = robotWxId;
}
@Override
public String toString() {
return "ChangeGroupNameDTO{" +
"id=" + id +
", wxGroupName='" + wxGroupName + '\'' +
", wxGroupId='" + wxGroupId + '\'' +
", url='" + url + '\'' +
", requestUrl='" + requestUrl + '\'' +
", robotWxId='" + robotWxId + '\'' +
'}';
}
}
package com.pcloud.book.group.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModel;
/**
* @author lily
* @date 2019/4/17 14:17
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ClassifyDTO implements Serializable {
/**
* 群标签标识
*/
private Long id;
/**
* 图书标识
*/
private Long bookId;
/**
* 运营标识
*/
private Long channelId;
/**
* 社群二维码标识
*/
private Long bookGroupId;
/**
* 分类
*/
private String classify;
/**
* 分类介绍
*/
private String classifyIntroduce;
/**
* 价格
*/
private BigDecimal price;
/**
* 商品标识
*/
private Long productId;
/**
* 规格标识
*/
private Long productSpecId;
/**
* 换群人数
*/
private Integer changeNumber;
/**
* 排序
*/
private Integer rank;
public Integer getRank() {
return rank;
}
public void setRank(Integer rank) {
this.rank = rank;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getClassify() {
return classify;
}
public void setClassify(String classify) {
this.classify = classify;
}
public String getClassifyIntroduce() {
return classifyIntroduce;
}
public void setClassifyIntroduce(String classifyIntroduce) {
this.classifyIntroduce = classifyIntroduce;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Integer getChangeNumber() {
return changeNumber;
}
public void setChangeNumber(Integer changeNumber) {
this.changeNumber = changeNumber;
}
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 getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public Long getProductSpecId() {
return productSpecId;
}
public void setProductSpecId(Long productSpecId) {
this.productSpecId = productSpecId;
}
@Override
public String toString() {
return "ClassifyDTO{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", bookGroupId=" + bookGroupId +
", classify='" + classify + '\'' +
", classifyIntroduce='" + classifyIntroduce + '\'' +
", price=" + price +
", productId=" + productId +
", productSpecId=" + productSpecId +
", changeNumber=" + changeNumber +
", rank=" + rank +
'}';
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @author lily
* @date 2019/3/4 15:58
*/
@ApiModel
public class GroupAndUserNumberDTO implements Serializable {
@ApiModelProperty("分类标识")
private Long classifyId;
@ApiModelProperty("微信群数量")
private Integer groupCount;
@ApiModelProperty("进群人数")
private Integer userCount;
public Long getClassifyId() {
return classifyId;
}
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
public Integer getGroupCount() {
return groupCount;
}
public void setGroupCount(Integer groupCount) {
this.groupCount = groupCount;
}
public Integer getUserCount() {
return userCount;
}
public void setUserCount(Integer userCount) {
this.userCount = userCount;
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/4/28 17:22
*/
public class GroupNameAndMaxSeqDTO implements Serializable {
/**
* 社群码名称
*/
private String groupQrcodeName;
/**
* 分类标识
*/
private Long classifyId;
/**
* 最大序号
*/
private Integer maxSeq;
/**
* 分类
*/
private String classify;
/**
* 创建人
*/
private Long createUser;
public Long getClassifyId() {
return classifyId;
}
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
public Integer getMaxSeq() {
return maxSeq;
}
public void setMaxSeq(Integer maxSeq) {
this.maxSeq = maxSeq;
}
public String getClassify() {
return classify;
}
public void setClassify(String classify) {
this.classify = classify;
}
public String getGroupQrcodeName() {
return groupQrcodeName;
}
public void setGroupQrcodeName(String groupQrcodeName) {
this.groupQrcodeName = groupQrcodeName;
}
public Long getCreateUser() {
return createUser;
}
public void setCreateUser(Long createUser) {
this.createUser = createUser;
}
@Override
public String toString() {
return "GroupNameAndMaxSeqDTO{" +
"groupQrcodeName='" + groupQrcodeName + '\'' +
", classifyId=" + classifyId +
", maxSeq=" + maxSeq +
", classify='" + classify + '\'' +
", createUser=" + createUser +
'}';
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/4/28 15:02
*/
public class GroupQrcodeDTO implements Serializable {
/**
* 分类二维码标识
*/
private Long id;
/**
* 分类标识
*/
private Long classifyId;
/**
* 微信二维码标识
*/
private Long weixinQrcodeId;
/**
* 微信群标识
*/
private Long weixinGroupId;
/**
* 限制人数
*/
private Integer changeNumber;
/**
* 二维码状态
*/
private Integer qrcodeState;
/**
* 使用状态
*/
private Integer useState;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getWeixinQrcodeId() {
return weixinQrcodeId;
}
public void setWeixinQrcodeId(Long weixinQrcodeId) {
this.weixinQrcodeId = weixinQrcodeId;
}
public Integer getChangeNumber() {
return changeNumber;
}
public void setChangeNumber(Integer changeNumber) {
this.changeNumber = changeNumber;
}
public Integer getQrcodeState() {
return qrcodeState;
}
public void setQrcodeState(Integer qrcodeState) {
this.qrcodeState = qrcodeState;
}
public Integer getUseState() {
return useState;
}
public void setUseState(Integer useState) {
this.useState = useState;
}
public Long getWeixinGroupId() {
return weixinGroupId;
}
public void setWeixinGroupId(Long weixinGroupId) {
this.weixinGroupId = weixinGroupId;
}
public Long getClassifyId() {
return classifyId;
}
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
@Override
public String toString() {
return "GroupQrcodeDTO{" +
"id=" + id +
", classifyId=" + classifyId +
", weixinQrcodeId=" + weixinQrcodeId +
", weixinGroupId=" + weixinGroupId +
", changeNumber=" + changeNumber +
", qrcodeState=" + qrcodeState +
", useState=" + useState +
'}';
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/4/29 14:41
*/
public class GroupQrcodeInfoDTO implements Serializable {
private Long id;
private Integer groupSeq;
private Integer userNumber;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getGroupSeq() {
return groupSeq;
}
public void setGroupSeq(Integer groupSeq) {
this.groupSeq = groupSeq;
}
public Integer getUserNumber() {
return userNumber;
}
public void setUserNumber(Integer userNumber) {
this.userNumber = userNumber;
}
@Override
public String toString() {
return "GroupQrcodeInfoDTO{" +
"id=" + id +
", groupSeq=" + groupSeq +
", userNumber=" + userNumber +
'}';
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/5/8 21:48
*/
public class PushAddUserMessageDTO implements Serializable {
private String weixinGroupId;
private Long time;
public String getWeixinGroupId() {
return weixinGroupId;
}
public void setWeixinGroupId(String weixinGroupId) {
this.weixinGroupId = weixinGroupId;
}
public Long getTime() {
return time;
}
public void setTime(Long time) {
this.time = time;
}
@Override
public String toString() {
return "PushAddUserMessageDTO{" +
"weixinGroupId='" + weixinGroupId + '\'' +
", time=" + time +
'}';
}
}
package com.pcloud.book.group.dto;
/**
* @author lily
* @date 2019/4/18 9:54
*/
public class QrcodeNameAndProIdDTO {
private Long bookGroupId;
/**
* 群名称
*/
private String groupQrcodeName;
/**
* 商品标识
*/
private Long productId;
public Long getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public String getGroupQrcodeName() {
return groupQrcodeName;
}
public void setGroupQrcodeName(String groupQrcodeName) {
this.groupQrcodeName = groupQrcodeName;
}
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
@Override
public String toString() {
return "QrcodeNameAndProIdDTO{" +
"bookGroupId=" + bookGroupId +
", groupQrcodeName='" + groupQrcodeName + '\'' +
", productId=" + productId +
'}';
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* @author lily
* @date 2019/4/15 11:40
*/
public class SyncWeixinGroupIdRequestDTO implements Serializable {
/**
* 群二维码标识
*/
private Long id;
/**
* 群二维码
*/
private String url;
/**
* 机器人微信号
*/
private String robotWxId;
/**
* 请求地址
*/
private String requestUrl;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getRequestUrl() {
return requestUrl;
}
public void setRequestUrl(String requestUrl) {
this.requestUrl = requestUrl;
}
public String getRobotWxId() {
return robotWxId;
}
public void setRobotWxId(String robotWxId) {
this.robotWxId = robotWxId;
}
@Override
public String toString() {
return "SyncWeixinGroupIdRequestDTO{" +
"id=" + id +
", url='" + url + '\'' +
", robotWxId='" + robotWxId + '\'' +
", requestUrl='" + requestUrl + '\'' +
'}';
}
}
package com.pcloud.book.group.entity;
import com.pcloud.common.entity.BaseEntity;
import java.math.BigDecimal;
/**
* @author lily
* @date 2019/4/19 11:32
*/
public class BookClassifyBuyRecord extends BaseEntity {
private Long bookId;
private Long channelId;
private Long bookQrcodeId;
private Long productId;
private Long wechatUserId;
private Long productSpecId;
private Long classifyId;
private Long id;
private BigDecimal price;
private String orderNumber;
public Long getBookQrcodeId() {
return bookQrcodeId;
}
public void setBookQrcodeId(Long bookQrcodeId) {
this.bookQrcodeId = bookQrcodeId;
}
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 getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public Long getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId;
}
public Long getProductSpecId() {
return productSpecId;
}
public void setProductSpecId(Long productSpecId) {
this.productSpecId = productSpecId;
}
public Long getClassifyId() {
return classifyId;
}
public void setClassifyId(Long classifyId) {
this.classifyId = classifyId;
}
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
@Override
public String toString() {
return "BookClassifyBuyRecord{" +
"bookId=" + bookId +
", channelId=" + channelId +
", bookQrcodeId=" + bookQrcodeId +
", productId=" + productId +
", wechatUserId=" + wechatUserId +
", productSpecId=" + productSpecId +
", classifyId=" + classifyId +
", id=" + id +
", price=" + price +
", orderNumber='" + orderNumber + '\'' +
'}';
}
}
package com.pcloud.book.group.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author 戴兴
* @description TODO
* @date 2019/3/2 14:12
*/
public class BookGroupClassify extends BaseEntity {
private static final long serialVersionUID = 6793085343129702487L;
/**
* 群标签标识
*/
private Long id;
/**
* 图书标识
*/
private Long bookId;
/**
* 运营标识
*/
private Long channelId;
/**
* 社群二维码标识
*/
private Long bookGroupId;
/**
* 分类
*/
private String classify;
/**
* 分类介绍
*/
private String classifyIntroduce;
/**
* 价格
*/
private BigDecimal price;
/**
* 商品标识
*/
private Long productId;
/**
* 规格标识
*/
private Long productSpecId;
/**
* 换群人数
*/
private Integer changeNumber;
/**
* 排序
*/
private Integer rank;
/**
* 创建人
*/
private Long createUser;
/**
* 修改用户
*/
private Long updateUser;
private Integer isDelete;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date updateTime;
@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 getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public String getClassify() {
return classify;
}
public void setClassify(String classify) {
this.classify = classify;
}
public String getClassifyIntroduce() {
return classifyIntroduce;
}
public void setClassifyIntroduce(String classifyIntroduce) {
this.classifyIntroduce = classifyIntroduce;
}
public Integer getRank() {
return rank;
}
public void setRank(Integer rank) {
this.rank = rank;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public Long getProductSpecId() {
return productSpecId;
}
public void setProductSpecId(Long productSpecId) {
this.productSpecId = productSpecId;
}
public Integer getChangeNumber() {
return changeNumber;
}
public void setChangeNumber(Integer changeNumber) {
this.changeNumber = changeNumber;
}
public Long getCreateUser() {
return createUser;
}
public void setCreateUser(Long createUser) {
this.createUser = createUser;
}
public Long getUpdateUser() {
return updateUser;
}
public void setUpdateUser(Long updateUser) {
this.updateUser = updateUser;
}
public Integer getIsDelete() {
return isDelete;
}
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public Date getUpdateTime() {
return updateTime;
}
@Override
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
@Override
public String toString() {
return "BookGroupClassify{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", bookGroupId=" + bookGroupId +
", classify='" + classify + '\'' +
", classifyIntroduce='" + classifyIntroduce + '\'' +
", price=" + price +
", productId=" + productId +
", productSpecId=" + productSpecId +
", changeNumber=" + changeNumber +
", rank=" + rank +
", createUser=" + createUser +
", updateUser=" + updateUser +
", isDelete=" + isDelete +
", createTime=" + createTime +
", updateTime=" + updateTime +
'}';
}
}
\ No newline at end of file
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