Commit 2b6937de by 高鹏

Merge branch 'feat-erp' into 'master'

erp相关接口

See merge request rays/pcloud-book!334
parents 11889d3f adf63f0f
package com.pcloud.book.group.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
/**
* 社群书群二维码DTO
* @author PENG
* @date 2019年4月17日11:31:16
*/
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class ErpBookGroupDTO implements Serializable {
private static final long serialVersionUID = 435665846873683212L;
/**
* 唯一标识
*/
private Long id;
/**
* 二维码图片
*/
private String groupQrcodeUrl;
/**
* 创建状态
*/
private String createState;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getGroupQrcodeUrl() {
return groupQrcodeUrl;
}
public void setGroupQrcodeUrl(String groupQrcodeUrl) {
this.groupQrcodeUrl = groupQrcodeUrl;
}
public String getCreateState() {
return createState;
}
public void setCreateState(String createState) {
this.createState = createState;
}
@Override
public String toString() {
return "ErpBookGroupDTO{" +
"id=" + id +
", groupQrcodeUrl='" + groupQrcodeUrl + '\'' +
", createState='" + createState + '\'' +
'}';
}
}
\ No newline at end of file
package com.pcloud.book.group.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ErpGroupQrcodeDTO implements Serializable {
private static final long serialVersionUID = 3234046973249447114L;
/**
* 社群码名称
*/
private String groupQrcodeName;
/**
* 书刊ID
*/
private Long bookId;
/**
* 运营ID
*/
private Long channelId;
/**
* 编辑ID
*/
private Long adviserId;
/**
* 添加方式
*/
private Integer addType;
/**
* 进群方式
*/
private Integer joinGroupType;
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 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 Integer getAddType() {
return addType;
}
public void setAddType(Integer addType) {
this.addType = addType;
}
public Integer getJoinGroupType() {
return joinGroupType;
}
public void setJoinGroupType(Integer joinGroupType) {
this.joinGroupType = joinGroupType;
}
@Override
public String toString() {
return "ErpGroupQrcodeDTO{" +
"bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", addType=" + addType +
", joinGroupType=" + joinGroupType +
'}';
}
}
......@@ -4,6 +4,8 @@ import com.pcloud.book.group.dto.AltAndCountDTO;
import com.pcloud.book.group.dto.BookGroupCountDTO;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO;
import com.pcloud.book.group.dto.ErpBookGroupDTO;
import com.pcloud.book.group.dto.ErpGroupQrcodeDTO;
import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupUseDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO;
......@@ -202,6 +204,10 @@ public interface BookGroupService {
@GetMapping("getLatestCipherBookGroup")
ResponseEntity<ResponseDto<Long>> getLatestCipherBookGroup(@RequestParam("altId") String altId, @RequestParam("wxUserId") String wxUserId);
@ApiOperation("ERP创建社群二维码")
@PostMapping("createGroupQrcode4Erp")
ResponseEntity<ResponseDto<ErpBookGroupDTO>> createGroupQrcode4Erp(@RequestBody ErpGroupQrcodeDTO erpGroupQrcodeDTO);
@ApiOperation("根据用户和社群书id获取个人号信息")
@GetMapping("getSelfRobotBookGroupInfoByUser")
ResponseEntity<ResponseDto<SelfRobotBookGroupDTO>> getSelfRobotBookGroupInfoByUser(@RequestParam("wxUserId") String wxUserId, @RequestParam("bookGroupId") Long bookGroupId);
......
......@@ -7,7 +7,9 @@ import com.pcloud.book.base.dto.CountDto;
import com.pcloud.book.book.dto.*;
import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.vo.ErpAdviserBookVO;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
import java.util.Map;
......@@ -186,4 +188,5 @@ public interface BookAdviserBiz {
void refactorData(Long parentId,Long originTempletId, Long secondTempletId);
PageBeanNew<ErpAdviserBookVO> listAdviserBook4Erp(String isbn, String uniqueNumber, String adviserName, Integer currentPage, Integer numPerPage);
}
......@@ -20,6 +20,7 @@ import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.set.BookSet;
import com.pcloud.book.book.vo.ErpAdviserBookVO;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.message.TemplateConsr;
import com.pcloud.book.consumer.raystask.MainLineConsr;
......@@ -34,6 +35,8 @@ import com.pcloud.common.core.constant.SceneCode;
import com.pcloud.common.core.constant.SendType;
import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.string.StringUtil;
......@@ -49,10 +52,12 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @描述:编辑管理书籍逻辑层接口实现类
......@@ -769,4 +774,32 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
LOGGER.info("refactorData effect rows : {}",effectRows);
LOGGER.info("end refactorData");
}
@Override
@ParamLog("获取编辑书刊列表(ERP项目用)")
public PageBeanNew<ErpAdviserBookVO> listAdviserBook4Erp(String isbn, String uniqueNumber, String adviserName, Integer currentPage, Integer numPerPage) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("isbn", isbn);
paramMap.put("uniqueNumber", uniqueNumber);
if(!StringUtil.isEmpty(adviserName)) {
List<Long> adviserIds = adviserConsr.getAdviserIdsByName(adviserName);
if(CollectionUtils.isEmpty(adviserIds)) {
return new PageBeanNew<>(currentPage, numPerPage, new ArrayList<>());
}
paramMap.put("adviserIds", adviserIds);
}
PageBeanNew<ErpAdviserBookVO> pageBeanNew = bookAdviserDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "listAdviserBook4Erp");
List<ErpAdviserBookVO> bookVOS = pageBeanNew.getRecordList();
if(!CollectionUtils.isEmpty(bookVOS)) {
List<Long> adviserIds = bookVOS.stream().filter(s -> s.getAdviserId() != null).map(ErpAdviserBookVO::getAdviserId).distinct().collect(Collectors.toList());
Map<Long, String> adviserNameMap = adviserConsr.getNames(adviserIds);
for (ErpAdviserBookVO bookVO : bookVOS) {
Long adviserId = bookVO.getAdviserId();
if(adviserId != null && adviserNameMap.containsKey(adviserId)) {
bookVO.setAdviserName(adviserNameMap.get(adviserId));
}
}
}
return pageBeanNew;
}
}
......@@ -185,4 +185,18 @@ public interface BookAdviserFacade {
@RequestMapping(value = "getAdviserBookCount", method = RequestMethod.GET)
ResponseDto<CountDto> getAdviserBookCount(@RequestHeader("token") String token)
throws PermissionException, JsonParseException, BizException;
@ApiOperation(value = "获取编辑书刊列表(ERP项目用)", httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "String", paramType = "header"),
@ApiImplicitParam(name = "isbn", value = "isbn", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "uniqueNumber", value = "uniqueNumber", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "adviserName", value = "adviserName", dataType = "string", paramType = "query")})
@RequestMapping(value = "listAdviserBook4Erp", method = RequestMethod.GET)
ResponseDto<?> listAdviserBook4Erp(@RequestHeader("token") String token,
@RequestParam(value = "isbn", required = false) String isbn,
@RequestParam(value = "uniqueNumber", required = false) String uniqueNumber,
@RequestParam(value = "adviserName", required = false) String adviserName,
@RequestParam(value = "currentPage") Integer currentPage,
@RequestParam(value = "numPerPage") Integer numPerPage)
throws PermissionException, JsonParseException, BizException;
}
......@@ -164,4 +164,20 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade {
CountDto countDto = bookAdviserBiz.getAdviserBookCount(adviserId);
return new ResponseDto<>(countDto);
}
/**
* 获取编辑书刊列表(ERP项目用)
*/
@Override
@RequestMapping(value = "listAdviserBook4Erp", method = RequestMethod.GET)
public ResponseDto<?> listAdviserBook4Erp(@RequestHeader("token") String token,
@RequestParam(value = "isbn", required = false) String isbn,
@RequestParam(value = "uniqueNumber", required = false) String uniqueNumber,
@RequestParam(value = "adviserName", required = false) String adviserName,
@RequestParam(value = "currentPage") Integer currentPage,
@RequestParam(value = "numPerPage") Integer numPerPage)
throws PermissionException, JsonParseException, BizException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(bookAdviserBiz.listAdviserBook4Erp(isbn, uniqueNumber, adviserName, currentPage, numPerPage));
}
}
package com.pcloud.book.book.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author lily
* @date 2018/12/3 21:24
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class ErpAdviserBookVO implements Serializable {
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("渠道标识")
private Long channelId;
@ApiModelProperty("图书名称")
private String bookName;
@ApiModelProperty("封面图")
private String coverImg;
@ApiModelProperty("isbn")
private String isbn;
@ApiModelProperty("编号")
private String uniqueNumber;
@ApiModelProperty("编辑名称")
private String adviserName;
}
......@@ -6,6 +6,7 @@ package com.pcloud.book.consumer.user;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.usercenter.party.adviser.entity.Adviser;
import com.pcloud.usercenter.party.adviser.service.AdviserService;
......@@ -15,6 +16,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -179,4 +181,25 @@ public class AdviserConsr {
}
/**
* 根据名称获取编辑标识列表
* @param adviserName
* @return
*/
public List<Long> getAdviserIdsByName(String adviserName) {
LOGGER.info("【顾问用户(消)】根据名称获取编辑标识列表,<START>.[adviserName]=" + adviserName);
List<Long> adviserIds = new ArrayList<>();
if (StringUtil.isEmpty(adviserName)) {
return adviserIds;
}
try {
adviserIds = ResponseHandleUtil
.parseListResponse(adviserService.getAdviserIdsByName(adviserName), Long.class);
} catch (Exception e) {
LOGGER.error("【顾问用户(消)】根据名称获取编辑标识列表.[getAdviserIdsByName]:" + e.getMessage(), e);
}
return adviserIds;
}
}
\ No newline at end of file
......@@ -12,6 +12,8 @@ import com.pcloud.book.group.dto.BookGroupStatisticsDTO;
import com.pcloud.book.group.dto.ChangeQrCodeTypeDto;
import com.pcloud.book.group.dto.ClassifyKeywordDTO;
import com.pcloud.book.group.dto.CountAndTimeDTO;
import com.pcloud.book.group.dto.ErpBookGroupDTO;
import com.pcloud.book.group.dto.ErpGroupQrcodeDTO;
import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupStoreMyPayDto;
import com.pcloud.book.group.dto.GroupUseDTO;
......@@ -740,6 +742,12 @@ public interface BookGroupBiz {
List<ListKeywordVO> getClassifyKeywordStatistic(Long classifyId);
/**
* ERP创建社群二维码
*/
ErpBookGroupDTO createGroupQrcode4Erp(ErpGroupQrcodeDTO erpGroupQrcodeDTO);
/**
* 新增微信用户和rays系统用户关联关系
*/
void createWxWechatUserCorrelation(Long wechatUserId, WxWechatUserCorrelation wxWechatUserCorrelation);
......
......@@ -52,6 +52,8 @@ import com.pcloud.book.group.dto.ClassifyKeywordDTO;
import com.pcloud.book.group.dto.ClickClassifyDTO;
import com.pcloud.book.group.dto.CountAndTimeDTO;
import com.pcloud.book.group.dto.DayCountDTO;
import com.pcloud.book.group.dto.ErpBookGroupDTO;
import com.pcloud.book.group.dto.ErpGroupQrcodeDTO;
import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupStoreMyPayDto;
import com.pcloud.book.group.dto.GroupUseDTO;
......@@ -4075,6 +4077,39 @@ public class BookGroupBizImpl implements BookGroupBiz {
return resultDtos;
}
@Override
@ParamLog("ERP创建社群二维码")
public ErpBookGroupDTO createGroupQrcode4Erp(ErpGroupQrcodeDTO erpGroupQrcodeDTO) {
ErpBookGroupDTO bookGroupDTO = new ErpBookGroupDTO();
Long bookId = erpGroupQrcodeDTO.getBookId();
Long channelId = erpGroupQrcodeDTO.getChannelId();
Long adviserId = erpGroupQrcodeDTO.getAdviserId();
Integer addType = erpGroupQrcodeDTO.getAddType();
Integer joinGroupType = erpGroupQrcodeDTO.getJoinGroupType();
BookGroupDTO dto = bookGroupDao.getDTOByBookId(bookId, channelId, adviserId);
if (null != dto) {
bookGroupDTO.setCreateState("exist");
return bookGroupDTO;
}
BookGroup bookGroup = this.createBookGroupAfterCreateBook(bookId, channelId, adviserId, addType, null, joinGroupType);
bookGroup.setGroupQrcodeName(erpGroupQrcodeDTO.getGroupQrcodeName());
bookGroup.setIsInviteGroup(true);
if (JoinGroupTypeEnum.ROBOT.getCode().equals(joinGroupType)) {
bookGroup.setAddFriendGuide("我是学习助手,请添加我为好友,我将为你提供本书配套资源服务");
bookGroup.setCustomerServiceName("学习助手");
} else {
bookGroup.setJoinSlogan("请选择你喜欢的群分类,我们会根据你的选择,推荐进入对应的微信群,方便你与相同兴趣的群友交流");
bookGroup.setJoinTitle("选择你想加入的微信群");
}
bookGroupDao.update(bookGroup);
bookGroupDTO.setId(bookGroup.getId());
bookGroupDTO.setGroupQrcodeUrl(bookGroup.getGroupQrcodeUrl());
bookGroupDTO.setCreateState("success");
return bookGroupDTO;
}
@ParamLog("填充资源配置名称和链接")
private void fillBookGroupServe(List<BookGroupDTO> bookGroupDTOList) {
if (ListUtils.isEmpty(bookGroupDTOList)){
......
......@@ -6,6 +6,8 @@ import com.pcloud.book.group.dto.AltAndCountDTO;
import com.pcloud.book.group.dto.BookGroupCountDTO;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO;
import com.pcloud.book.group.dto.ErpBookGroupDTO;
import com.pcloud.book.group.dto.ErpGroupQrcodeDTO;
import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupUseDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO;
......@@ -345,6 +347,10 @@ public class BookGroupServiceImpl implements BookGroupService {
return ResponseHandleUtil.toResponse(bookGroupId);
}
@PostMapping("createGroupQrcode4Erp")
public ResponseEntity<ResponseDto<ErpBookGroupDTO>> createGroupQrcode4Erp(@RequestBody ErpGroupQrcodeDTO erpGroupQrcodeDTO) {
return ResponseHandleUtil.toResponse(bookGroupBiz.createGroupQrcode4Erp(erpGroupQrcodeDTO));
}
@ApiOperation("根据用户和社群书id获取个人号信息")
@GetMapping("getSelfRobotBookGroupInfoByUser")
......
......@@ -561,4 +561,36 @@
TEMPLET_ID = #{originTempletId}
</update>
<select id="listAdviserBook4Erp" parameterType="map" resultType="erpAdviserBookVO">
SELECT
ba.BOOK_ID bookId,
ba.ADVISER_ID adviserId,
ba.channel_id channelId,
b.BOOK_NAME bookName,
b.COVER_IMG coverImg,
b.ISBN isbn,
CONCAT('BK', ba.BOOK_ID) uniqueNumber
FROM
`book_adviser` ba
LEFT JOIN book b ON ba.BOOK_ID = b.BOOK_ID
WHERE
ba.IS_DELETE = 0
AND b.IS_DELETE = 0
<if test="isbn != null">
AND b.ISBN LIKE CONCAT('%', #{isbn}, '%')
</if>
<if test="uniqueNumber != null">
AND CONCAT('BK', ba.BOOK_ID) LIKE CONCAT('%', #{uniqueNumber}, '%')
</if>
<if test="adviserIds != null and adviserIds.size() > 0">
AND ba.ADVISER_ID IN
<foreach collection="adviserIds" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
GROUP BY
ba.BOOK_ADVISER_ID
ORDER BY
ba.CREATED_DATE DESC
</select>
</mapper>
\ 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