Commit e82c7e06 by 郑永强

feat: [1004927] 运维人员内网新增书

parent d929d580
......@@ -820,9 +820,35 @@ public class BookDto extends BaseDto {
*/
private List<String> erpNumbers;
/**
* 创建人(ERP运维人员)
*/
private Integer uploadUserId;
/**
* 创建人名称(ERP运维人员)
*/
private String uploadUserName;
//是否开启手机号登录
private Integer bookPhoneAuth;
public Integer getUploadUserId() {
return uploadUserId;
}
public void setUploadUserId(Integer uploadUserId) {
this.uploadUserId = uploadUserId;
}
public String getUploadUserName() {
return uploadUserName;
}
public void setUploadUserName(String uploadUserName) {
this.uploadUserName = uploadUserName;
}
public Integer getBookPhoneAuth() {
return bookPhoneAuth;
}
......
package com.pcloud.book.book.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class ProjectRelateVO {
private Long orderSheetId;
private Long projectId;
private Long raysBookId;
......@@ -13,4 +18,13 @@ public class ProjectRelateVO {
private Long raysChannelId;
private String coverImg;
private Integer uploadUserId;
private String serveType;
@ApiModelProperty("bookId/sceneId")
private List<Long> serveIds;
}
package com.pcloud.book.book.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProjectUploaderDTO {
private Integer id;
private Long projectId;
private Integer uploadUserId;
private String uploadUserName;
@ApiModelProperty("服务类型-BOOK/QRCODE")
private String serveType;
@ApiModelProperty("bookId/qrcodeSceneId")
private Long serveId;
}
......@@ -5,8 +5,6 @@ package com.pcloud.book.book.entity;
import com.pcloud.common.entity.BaseEntity;
import java.util.List;
/**
* @描述:书籍实体
* @作者:songx
......@@ -274,10 +272,36 @@ public class Book extends BaseEntity {
private String erpNumber;
/**
* ERP-运维人员
*/
private Integer uploadUserId;
/**
* 类型
*/
private String serveType;
/**
* 强制更新
*/
private Integer forceUpdateSerialNumber;
public String getServeType() {
return serveType;
}
public void setServeType(String serveType) {
this.serveType = serveType;
}
public Integer getUploadUserId() {
return uploadUserId;
}
public void setUploadUserId(Integer uploadUserId) {
this.uploadUserId = uploadUserId;
}
public Long getThirdTempletId() {
return thirdTempletId;
}
......
......@@ -666,7 +666,7 @@ public interface BookBiz {
BookDto getBaseById4Erp(Long bookId,Long channelId,Long adviserId);
List<BookGroupDTO> getQrcode4Erp(Long bookId, Long channelId, Long adviserId);
List<BookGroupDTO> getQrcode4Erp(Long bookId, Long channelId, Long adviserId, Long projectId);
PageBeanNew<QrcodeServeDto> getQrcodeDetail4Erp(Long sceneId, Long bookGroupId, Long channelId, Integer currentPage, Integer numPerPage);
......@@ -790,5 +790,10 @@ public interface BookBiz {
*/
void syncRelateDataToRays(SyncRelateDataToRaysVO vo);
/**
* 更新封面
*/
void updateCoverImg(SyncRelateDataToRaysVO vo);
boolean checkIsBookId(Long isbnNumber);
}
......@@ -8,7 +8,6 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
......@@ -740,6 +739,8 @@ public class BookBizImpl implements BookBiz {
bookSet.setOpenRobotProcess(new ArrayList<>(Arrays.asList(bookDto)));
// 尝试加载ERP单号
bookSet.setErpNumbers(bookDto);
// 尝试加载创建人(ERP运维人员)
bookSet.setUploadUserId(bookDto);
return bookDto;
}
......@@ -1690,16 +1691,40 @@ public class BookBizImpl implements BookBiz {
}
// 调用erp接口进行关联
ProjectRelateVO vo = new ProjectRelateVO();
vo.setOrderSheetId(dto.getId());
vo.setProjectId(dto.getProjectId());
vo.setRaysBookId(book.getBookId());
vo.setServeIds(CollUtil.toList(book.getBookId()));
vo.setRaysAdviserId(book.getCreatedUser());
vo.setRaysChannelId(book.getChannelId());
vo.setCoverImg(book.getCoverImg());
vo.setUploadUserId(book.getUploadUserId());
vo.setServeType(book.getServeType());
Integer changeCount = erpConsr.relateRaysBook(vo);
if(changeCount == null && changeCount <= 0){
LOGGER.info("relationBook4Erp:关联ERP项目可能未成功;book:" + book);
}
}
/**
* 更新关联书刊信息
*/
private void updateRelationBook(Book book){
if(book == null || book.getBookId() == null || book.getLastModifiedUser() == null || book.getChannelId() == null
|| !"BOOK".equalsIgnoreCase(book.getServeType()) || book.getUploadUserId() == null){
return;
}
// 调用erp接口进行关联
ProjectRelateVO vo = new ProjectRelateVO();
vo.setRaysBookId(book.getBookId());
vo.setServeIds(CollUtil.toList(book.getBookId()));
vo.setRaysAdviserId(book.getLastModifiedUser());
vo.setRaysChannelId(book.getChannelId());
vo.setCoverImg(book.getCoverImg());
vo.setUploadUserId(book.getUploadUserId());
vo.setServeType(book.getServeType());
erpConsr.updateRelationBook(vo);
}
/**
* 修改图书与图书类型
......@@ -1727,6 +1752,8 @@ public class BookBizImpl implements BookBiz {
LOGGER.info("修改图书基本信息与类型[END]");
//更新超级搜索es
searchProducer.updateBook(book);
// 更新ERP运维人员、封面图
this.updateRelationBook(book);
}
/**
......@@ -2758,11 +2785,15 @@ public class BookBizImpl implements BookBiz {
if (!MapUtils.isEmpty(agentNameMap) && agentNameMap.containsKey(agentId)) {
bookDto.setAgentName(agentNameMap.get(agentId));
}
ProjectUploaderDTO projectUploadUser = erpConsr.getProjectUploadUser(bookId);
bookDto.setUploadUserName(projectUploadUser == null ? null : projectUploadUser.getUploadUserName());
} else {
// 从redis获取书籍信息
bookDto = bookCache.getBookToRedis(bookId);
if (null == bookDto) {
bookDto = bookDao.getBaseById(bookId);
ProjectUploaderDTO projectUploadUser = erpConsr.getProjectUploadUser(bookId);
bookDto.setUploadUserName(projectUploadUser == null ? null : projectUploadUser.getUploadUserName());
// 将数据存入redis
bookCache.setBookToRedis(bookDto);
}
......@@ -3101,7 +3132,7 @@ public class BookBizImpl implements BookBiz {
}
@Override
public List<BookGroupDTO> getQrcode4Erp(Long bookId, Long channelId, Long adviserId) {
public List<BookGroupDTO> getQrcode4Erp(Long bookId, Long channelId, Long adviserId, Long projectId) {
if(bookId == null || channelId == null || adviserId == null){
return null;
}
......@@ -3122,9 +3153,24 @@ public class BookBizImpl implements BookBiz {
this.mergeQrcodeData(qrcodeSceneDtos, bookGroupList);
// 填充书刊标签
this.setBookGroupLabel(bookGroupList);
// 设置创建人(ERP运维人员)
this.setProjectUploadUser(bookGroupList, projectId);
return bookGroupList;
}
private void setProjectUploadUser(List<BookGroupDTO> bookGroupList, Long projectId) {
if(CollUtil.isEmpty(bookGroupList) || projectId == null){
return;
}
Map<Long, String> uploadMap = erpConsr.getQrcodeUploadUserByProjectId(projectId);
for (BookGroupDTO bookGroupDTO : bookGroupList) {
if(bookGroupDTO.getSceneId() == null){
continue;
}
bookGroupDTO.setUploadUserName(uploadMap.get(bookGroupDTO.getSceneId()));
}
}
private void mergeQrcodeData(List<QrcodeSceneDto> qrcodeSceneDtos, List<BookGroupDTO> bookGroupList) {
BookGroupDTO tempBookGroupDTO;
for (QrcodeSceneDto qrcodeSceneDto : qrcodeSceneDtos) {
......@@ -4297,6 +4343,19 @@ public class BookBizImpl implements BookBiz {
}
@Override
public void updateCoverImg(SyncRelateDataToRaysVO vo){
if(vo == null || vo.getBookId() == null || StrUtil.isBlank(vo.getCoverImg())){
throw new BizException(BizException.PARAM_DELETION.getCode(), "参数不能为空");
}
BookDto bookDto = this.getBaseById(vo.getBookId());
Book book = new Book();
book.setBookId(vo.getBookId().longValue());
book.setCoverImg(vo.getCoverImg());
book.setLastModifiedUser(bookDto.getLastModifiedUser());
this.updateCoverImg(book);
}
@Override
public boolean checkIsBookId(Long isbnNumber) {
return bookDao.checkIsBookId(isbnNumber);
}
......
......@@ -1231,8 +1231,9 @@ public class BookFacadeImpl implements BookFacade {
@GetMapping("getQrcode4Erp")
public ResponseDto<?> getQrcode4Erp(@RequestParam(value = "bookId") Long bookId,
@RequestParam(value = "channelId") Long channelId,
@RequestParam(value = "adviserId") Long adviserId ) {
return new ResponseDto<>(bookBiz.getQrcode4Erp(bookId, channelId, adviserId));
@RequestParam(value = "adviserId") Long adviserId,
@RequestParam(value = "projectId", required = false) Long projectId) {
return new ResponseDto<>(bookBiz.getQrcode4Erp(bookId, channelId, adviserId, projectId));
}
@ApiOperation("获取二维码下的应用作品(ERP)")
......@@ -1387,4 +1388,11 @@ public class BookFacadeImpl implements BookFacade {
bookBiz.syncRelateDataToRays(vo);
return new ResponseDto<>();
}
@ApiOperation("更新封面")
@PostMapping("updateCoverImg4Erp")
public ResponseDto<?> updateCoverImg4Erp(@RequestBody SyncRelateDataToRaysVO vo) {
bookBiz.updateCoverImg(vo);
return new ResponseDto<>();
}
}
......@@ -29,6 +29,7 @@ import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.dto.BookProductDto;
import com.pcloud.book.book.dto.BookResourceDto;
import com.pcloud.book.book.dto.BookTypeDto;
import com.pcloud.book.book.dto.ProjectUploaderDTO;
import com.pcloud.book.book.entity.BookDefendant;
import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.book.tools.BookTools;
......@@ -2047,4 +2048,16 @@ public class BookSet {
List<String> erpNumbers = erpConsr.getErpNumbers(bookDto.getBookId(), bookDto.getChannelId(), bookDto.getAdviserId());
bookDto.setErpNumbers(erpNumbers);
}
public void setUploadUserId(BookDto bookDto){
if(bookDto == null || bookDto.getBookId() == null || bookDto.getChannelId() == null || bookDto.getAdviserId() == null){
return;
}
ProjectUploaderDTO projectUploadUser = erpConsr.getProjectUploadUser(bookDto.getBookId());
if(projectUploadUser == null){
return;
}
bookDto.setUploadUserId(projectUploadUser.getUploadUserId());
bookDto.setUploadUserName(projectUploadUser.getUploadUserName());
}
}
......@@ -11,6 +11,7 @@ import com.pcloud.book.book.dto.ErpBookApprovalDTO;
import com.pcloud.book.book.dto.ErpBookInfoDTO;
import com.pcloud.book.book.dto.ProjectOrderSheetDTO;
import com.pcloud.book.book.dto.ProjectRelateVO;
import com.pcloud.book.book.dto.ProjectUploaderDTO;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
......@@ -326,4 +327,55 @@ public class ErpConsr {
throw new BookBizException(BookBizException.INVOKE_CONTENT_ERROR, "关联RAYS书刊失败~!");
}
}
@ParamLog("更新RAYS书刊关联的尽调单信息")
public void updateRelationBook(ProjectRelateVO vo) throws BizException {
try {
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
HttpResponse response = HttpUtils.doPost(domain, "/erp/project4Third/updateRelationBook", "POST", headers, new HashMap<>(), JSONObject.toJSONString(vo));
String entityString = EntityUtils.toString(response.getEntity());
JSONObject jsonObject = JSONObject.parseObject(entityString);
if(jsonObject.getInteger("errCode") != 0){
throw new BizException(jsonObject.getString("message"));
}
} catch (Exception e){
LOGGER.error("关联RAYS书刊[project4Third.relateRaysBook]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_CONTENT_ERROR, "关联RAYS书刊失败~!");
}
}
public ProjectUploaderDTO getProjectUploadUser(Long bookId) {
Map<String, String> querys = new HashMap<>();
querys.put("bookId", bookId.toString());
try {
HttpResponse response = HttpUtils.doGet(domain, "/erp/project4Third/getProjectUploadUser", "GET", new HashMap<>(), querys);
String entityString = EntityUtils.toString(response.getEntity());
JSONObject jsonObject = JSONObject.parseObject(entityString);
if(jsonObject.getInteger("errCode") != 0){
throw new BizException(jsonObject.getString("message"));
}
return JSONObject.parseObject(jsonObject.getString("data"), ProjectUploaderDTO.class);
} catch (Exception e){
LOGGER.error("根据isbn获取erp书刊信息[project4Third.getByErpNumber]:" + e.getMessage(), e);
}
return null;
}
public Map<Long, String> getQrcodeUploadUserByProjectId(Long projectId) {
Map<String, String> querys = new HashMap<>();
querys.put("projectId", projectId.toString());
try {
HttpResponse response = HttpUtils.doGet(domain, "/erp/project4Third/getQrcodeUploadUserByProjectId", "GET", new HashMap<>(), querys);
String entityString = EntityUtils.toString(response.getEntity());
JSONObject jsonObject = JSONObject.parseObject(entityString);
if(jsonObject.getInteger("errCode") != 0){
throw new BizException(jsonObject.getString("message"));
}
return JSONObject.parseObject(jsonObject.getString("data"), new TypeReference<Map<Long, String>>(){});
} catch (Exception e){
LOGGER.error("根据isbn获取erp书刊信息[project4Third.getByErpNumber]:" + e.getMessage(), e);
}
return new HashMap<>();
}
}
......@@ -354,6 +354,19 @@ public class BookGroupDTO extends BaseDto {
*/
private String entranceContent;
/**
* 创建人(ERP运维人员)
*/
private String uploadUserName;
public String getUploadUserName() {
return uploadUserName;
}
public void setUploadUserName(String uploadUserName) {
this.uploadUserName = uploadUserName;
}
public String getEntranceTitle() {
return entranceTitle;
}
......
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