Commit b25f4680 by 郑勇

feat: [1009365] 抖音魔方项目(邹慕白图书)

parent 3b86e1cc
...@@ -349,4 +349,10 @@ public interface BookService { ...@@ -349,4 +349,10 @@ public interface BookService {
*/ */
@PostMapping("getServeListWithBookId") @PostMapping("getServeListWithBookId")
ResponseEntity<ResponseDto<Map<Long,List<ListBookResourceDto>>>> getServeListWithBookId (@RequestBody List<Long> sceneIds); ResponseEntity<ResponseDto<Map<Long,List<ListBookResourceDto>>>> getServeListWithBookId (@RequestBody List<Long> sceneIds);
/**
* 获取魔方书刊列表
*/
@GetMapping("getMoFangBookIds")
ResponseEntity<ResponseDto<List<Long>>> getMoFangBookIds (@RequestParam(value = "mofangId") Long mofangId);
} }
...@@ -19,6 +19,8 @@ import com.pcloud.common.page.PageBean; ...@@ -19,6 +19,8 @@ import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -841,11 +843,19 @@ public interface BookBiz { ...@@ -841,11 +843,19 @@ public interface BookBiz {
/** /**
* 查询魔方书刊 * 查询魔方书刊
*/ */
PageBeanNew<MoFangBookDto> listMoFangBook(String keyWords,Integer currentPage,Integer numPerPage); PageBeanNew<MoFangBookDto> listMoFangBook(String keyWords, Integer currentPage, Integer numPerPage, Integer type);
/** /**
* 魔方二维码 * 魔方二维码
*/ */
Map<Long,String> listMoFangScene(); Map<Long,String> listMoFangScene();
/**
* 导入魔方邹慕白数据
*/
void importZouMuBai(MultipartFile multipartFile);
MoFangSceneVO getMoFangScene(Long sceneId);
List<Long> getMoFangBookIds(Long mofangId);
} }
...@@ -3,16 +3,11 @@ ...@@ -3,16 +3,11 @@
*/ */
package com.pcloud.book.book.biz.impl; package com.pcloud.book.book.biz.impl;
import cn.hutool.core.bean.BeanUtil;
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.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.analysisengine.qrcode.dto.BookScanStatistics4OfficialAccountsDTO; import com.pcloud.analysisengine.qrcode.dto.BookScanStatistics4OfficialAccountsDTO;
import com.pcloud.analysisengine.qrcode.dto.BookScanStatistics4OfficialAccountsReqDTO; import com.pcloud.analysisengine.qrcode.dto.BookScanStatistics4OfficialAccountsReqDTO;
import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto; import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto;
...@@ -81,7 +76,6 @@ import com.pcloud.book.book.dto.EditionAnalysisResultVO; ...@@ -81,7 +76,6 @@ import com.pcloud.book.book.dto.EditionAnalysisResultVO;
import com.pcloud.book.book.dto.EditionAnalysisVO; import com.pcloud.book.book.dto.EditionAnalysisVO;
import com.pcloud.book.book.dto.ErpBookApprovalDTO; import com.pcloud.book.book.dto.ErpBookApprovalDTO;
import com.pcloud.book.book.dto.MapResourceTotalCountDTO; import com.pcloud.book.book.dto.MapResourceTotalCountDTO;
import com.pcloud.book.book.vo.MoFangBookDto;
import com.pcloud.book.book.dto.MoFangSceneDto; import com.pcloud.book.book.dto.MoFangSceneDto;
import com.pcloud.book.book.dto.ProjectOrderSheetDTO; import com.pcloud.book.book.dto.ProjectOrderSheetDTO;
import com.pcloud.book.book.dto.ProjectRelateVO; import com.pcloud.book.book.dto.ProjectRelateVO;
...@@ -96,6 +90,7 @@ import com.pcloud.book.book.entity.BookLabel; ...@@ -96,6 +90,7 @@ import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.book.entity.BookLink; import com.pcloud.book.book.entity.BookLink;
import com.pcloud.book.book.entity.BookSerialNumber; import com.pcloud.book.book.entity.BookSerialNumber;
import com.pcloud.book.book.entity.EditionRecord; import com.pcloud.book.book.entity.EditionRecord;
import com.pcloud.book.book.entity.MofangZmb;
import com.pcloud.book.book.entity.NoviceGuideDelete; import com.pcloud.book.book.entity.NoviceGuideDelete;
import com.pcloud.book.book.entity.QrcodeSceneErp; import com.pcloud.book.book.entity.QrcodeSceneErp;
import com.pcloud.book.book.entity.SeriesBook; import com.pcloud.book.book.entity.SeriesBook;
...@@ -111,7 +106,10 @@ import com.pcloud.book.book.vo.BookResourceNumDTO; ...@@ -111,7 +106,10 @@ import com.pcloud.book.book.vo.BookResourceNumDTO;
import com.pcloud.book.book.vo.BookSaleVO; import com.pcloud.book.book.vo.BookSaleVO;
import com.pcloud.book.book.vo.ListNoAuthBookParam; import com.pcloud.book.book.vo.ListNoAuthBookParam;
import com.pcloud.book.book.vo.ListNoAuthGroupBookParam; import com.pcloud.book.book.vo.ListNoAuthGroupBookParam;
import com.pcloud.book.book.vo.MoFangBookDto;
import com.pcloud.book.book.vo.MoFangSceneVO;
import com.pcloud.book.book.vo.SearchBookVO; import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.book.book.vo.ZouMuBaiVO;
import com.pcloud.book.book.vo.request.BookInfo4ScanCountRequestVO; import com.pcloud.book.book.vo.request.BookInfo4ScanCountRequestVO;
import com.pcloud.book.book.vo.request.BookQualifyInfoVO; import com.pcloud.book.book.vo.request.BookQualifyInfoVO;
import com.pcloud.book.book.vo.request.BookSearchParamVO; import com.pcloud.book.book.vo.request.BookSearchParamVO;
...@@ -202,6 +200,7 @@ import com.pcloud.resourcecenter.product.dto.SpecificationDto; ...@@ -202,6 +200,7 @@ import com.pcloud.resourcecenter.product.dto.SpecificationDto;
import com.pcloud.universe.commons.paging.Pagination; import com.pcloud.universe.commons.paging.Pagination;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto; import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.usercenter.party.agent.dto.SaleAgentDTO; import com.pcloud.usercenter.party.agent.dto.SaleAgentDTO;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -213,6 +212,7 @@ import org.springframework.dao.DuplicateKeyException; ...@@ -213,6 +212,7 @@ import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -240,6 +240,14 @@ import java.util.function.Function; ...@@ -240,6 +240,14 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import cn.hutool.core.bean.BeanUtil;
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.json.JSONUtil;
import cn.hutool.poi.excel.ExcelReader;
import static com.pcloud.book.util.common.ThreadPoolUtils.REMOTE_CALL_POOL; import static com.pcloud.book.util.common.ThreadPoolUtils.REMOTE_CALL_POOL;
/** /**
...@@ -4781,40 +4789,89 @@ public class BookBizImpl implements BookBiz { ...@@ -4781,40 +4789,89 @@ public class BookBizImpl implements BookBiz {
} }
@Override @Override
public PageBeanNew<MoFangBookDto> listMoFangBook(String keyWords, Integer currentPage, Integer numPerPage) { public PageBeanNew<MoFangBookDto> listMoFangBook(String keyWords, Integer currentPage, Integer numPerPage, Integer type) {
type = null == type ? 1 : type;
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("keyWords",keyWords); paramMap.put("keyWords",keyWords);
paramMap.put("type",type);
PageBeanNew<MoFangBookDto> listPageNew = bookDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "listMoFangBook"); PageBeanNew<MoFangBookDto> listPageNew = bookDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "listMoFangBook");
if (listPageNew == null || ListUtils.isEmpty(listPageNew.getRecordList())) { if (listPageNew == null || ListUtils.isEmpty(listPageNew.getRecordList())) {
return new PageBeanNew<>(currentPage,numPerPage,null==listPageNew ? 0 : listPageNew.getTotalCount(),new ArrayList<>()); return new PageBeanNew<>(currentPage,numPerPage,null==listPageNew ? 0 : listPageNew.getTotalCount(),new ArrayList<>());
} }
//填充书刊下面的rays码 //填充书刊下面的rays码
fillSceneInfo(listPageNew.getRecordList()); fillSceneInfo(listPageNew.getRecordList(),type);
return listPageNew; return listPageNew;
} }
private void fillSceneInfo(List<MoFangBookDto> list) { private void fillSceneInfo(List<MoFangBookDto> list,Integer type) {
List<Long> bookIds = list.stream().map(a -> a.getBookId()).collect(Collectors.toList()); if(type==1) {
dealXy(list);
}
if(type==3){
dealZmb(list);
}
}
/**
* 邹慕白
* @param list
*/
private void dealZmb(List<MoFangBookDto> list) {
List<Long> bookIds = new ArrayList<>();
Map<Long, List<Long>> zmbBookMap = new HashMap<>();
List<Long> mofangIds = list.stream().map(a -> a.getId()).collect(Collectors.toList());
List<MofangZmb> zmbBook = bookDao.getZmbBook(mofangIds);
if (CollUtil.isNotEmpty(zmbBook)) {
zmbBookMap = zmbBook.stream().collect(Collectors.groupingBy(a -> a.getMofangId(), Collectors.mapping(a -> a.getBookId(), Collectors.toList())));
bookIds = zmbBook.stream().map(a -> a.getBookId()).distinct().collect(Collectors.toList());
}
Map<Long, List<QrcodeSceneDto>> sceneMap = channelConsr.listRaysCode(bookIds); Map<Long, List<QrcodeSceneDto>> sceneMap = channelConsr.listRaysCode(bookIds);
for (MoFangBookDto dto : list) { for (MoFangBookDto dto : list) {
if(CollUtil.isNotEmpty(sceneMap) && null!=dto.getBookId() && sceneMap.containsKey(dto.getBookId())){ if (CollUtil.isNotEmpty(zmbBookMap) && null != dto.getId() && zmbBookMap.containsKey(dto.getId())) {
List<QrcodeSceneDto> qrcodeSceneDtos = sceneMap.get(dto.getBookId()); List<Long> zmbBookIds = zmbBookMap.get(dto.getId());
if(CollUtil.isNotEmpty(qrcodeSceneDtos)){ List<QrcodeSceneDto> qrcodeSceneDtos = new ArrayList<>();
for (QrcodeSceneDto sceneDto : qrcodeSceneDtos) { for (Long zmbBookId : zmbBookIds) {
if(StrUtil.isNotBlank(sceneDto.getUrl())){ if (CollUtil.isNotEmpty(sceneMap.get(zmbBookId))) {
if(sceneDto.getUrl().contains("?")){ qrcodeSceneDtos.addAll(sceneMap.get(zmbBookId));
sceneDto.setUrl(sceneDto.getUrl() + "&douyin=1");
}else{
sceneDto.setUrl(sceneDto.getUrl() + "?douyin=1");
}
}
} }
} }
dealUrl(qrcodeSceneDtos);
dto.setSceneList(qrcodeSceneDtos); dto.setSceneList(qrcodeSceneDtos);
} }
} }
} }
/**
* 北教小雨
* @param list
*/
private void dealXy(List<MoFangBookDto> list) {
List<Long> bookIds = list.stream().map(a -> a.getBookId()).collect(Collectors.toList());
Map<Long, List<QrcodeSceneDto>> sceneMap = channelConsr.listRaysCode(bookIds);
for (MoFangBookDto dto : list) {
if (CollUtil.isNotEmpty(sceneMap) && null != dto.getBookId() && sceneMap.containsKey(dto.getBookId())) {
List<QrcodeSceneDto> qrcodeSceneDtos = sceneMap.get(dto.getBookId());
dealUrl(qrcodeSceneDtos);
dto.setSceneList(qrcodeSceneDtos);
}
}
}
private void dealUrl(List<QrcodeSceneDto> qrcodeSceneDtos) {
if(CollUtil.isNotEmpty(qrcodeSceneDtos)){
for (QrcodeSceneDto sceneDto : qrcodeSceneDtos) {
if(StrUtil.isNotBlank(sceneDto.getUrl())){
if(sceneDto.getUrl().contains("?")){
sceneDto.setUrl(sceneDto.getUrl() + "&douyin=1");
}else{
sceneDto.setUrl(sceneDto.getUrl() + "?douyin=1");
}
}
}
}
}
@Override @Override
public Map<Long, String> listMoFangScene() { public Map<Long, String> listMoFangScene() {
List<MoFangSceneDto> list = bookDao.listMoFangScene(); List<MoFangSceneDto> list = bookDao.listMoFangScene();
...@@ -4823,4 +4880,50 @@ public class BookBizImpl implements BookBiz { ...@@ -4823,4 +4880,50 @@ public class BookBizImpl implements BookBiz {
} }
return list.stream().collect(Collectors.toMap(a->a.getSceneId(),a->a.getLinkUrl(),(v1,v2)->v2)); return list.stream().collect(Collectors.toMap(a->a.getSceneId(),a->a.getLinkUrl(),(v1,v2)->v2));
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void importZouMuBai(MultipartFile multipartFile) {
List<ZouMuBaiVO> configs = null;
try {
ExcelReader reader = cn.hutool.poi.excel.ExcelUtil.getReader(multipartFile.getInputStream());
reader.addHeaderAlias("书名","bookName");
reader.addHeaderAlias("封面URL","coverImg");
reader.addHeaderAlias("bookid","bookIds");
configs = reader.readAll(ZouMuBaiVO.class);
} catch (Exception e) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"数据格式填写有误,请按照模板填写!");
}
for (ZouMuBaiVO config : configs) {
config.setType(3);
bookDao.insertMofangBook(config);
String[] split = config.getBookIds().trim().split(",");
List<MofangZmb> zmbList = new ArrayList<>();
Arrays.stream(split).forEach(e->{
MofangZmb build = MofangZmb.builder().mofangId(config.getId()).bookId(Long.valueOf(e)).build();
zmbList.add(build);
});
bookDao.insertMofangZmb(zmbList);
}
}
@Override
public MoFangSceneVO getMoFangScene(Long sceneId) {
return bookDao.getMoFangScene(sceneId);
}
@Override
public List<Long> getMoFangBookIds(Long mofangId) {
MoFangBookDto mofangBook = bookDao.getMoFangBookById(mofangId);
if(null==mofangBook){
return new ArrayList<>();
}
if(null!=mofangBook.getType() && mofangBook.getType()==3){
return bookDao.getZmbBookIds(mofangId);
}
if(null!=mofangBook.getBookId()){
return CollUtil.toList(mofangBook.getBookId());
}
return new ArrayList<>();
}
} }
...@@ -9,9 +9,13 @@ import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO; ...@@ -9,9 +9,13 @@ import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO; import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.dto.MoFangSceneDto; import com.pcloud.book.book.dto.MoFangSceneDto;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.MofangZmb;
import com.pcloud.book.book.vo.BookSaleVO; import com.pcloud.book.book.vo.BookSaleVO;
import com.pcloud.book.book.vo.MoFangBookDto;
import com.pcloud.book.book.vo.MoFangSceneVO;
import com.pcloud.book.book.vo.SearchBookVO; import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.book.book.dto.BookUniqueNumberDTO; import com.pcloud.book.book.dto.BookUniqueNumberDTO;
import com.pcloud.book.book.vo.ZouMuBaiVO;
import com.pcloud.book.es.entity.ESBookAndAdviser; import com.pcloud.book.es.entity.ESBookAndAdviser;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
...@@ -399,4 +403,16 @@ public interface BookDao extends BaseDao<Book> { ...@@ -399,4 +403,16 @@ public interface BookDao extends BaseDao<Book> {
Integer getListPage4AdviserCount(Map<String, Object> paramMap); Integer getListPage4AdviserCount(Map<String, Object> paramMap);
List<MoFangSceneDto> listMoFangScene(); List<MoFangSceneDto> listMoFangScene();
void insertMofangBook(ZouMuBaiVO vo);
void insertMofangZmb(List<MofangZmb> zmbList);
List<MofangZmb> getZmbBook(List<Long> mofangIds);
MoFangSceneVO getMoFangScene(Long sceneId);
MoFangBookDto getMoFangBookById(Long mofangId);
List<Long> getZmbBookIds(Long mofangId);
} }
...@@ -12,9 +12,13 @@ import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO; ...@@ -12,9 +12,13 @@ import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO; import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.dto.MoFangSceneDto; import com.pcloud.book.book.dto.MoFangSceneDto;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.MofangZmb;
import com.pcloud.book.book.vo.BookSaleVO; import com.pcloud.book.book.vo.BookSaleVO;
import com.pcloud.book.book.vo.MoFangBookDto;
import com.pcloud.book.book.vo.MoFangSceneVO;
import com.pcloud.book.book.vo.SearchBookVO; import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.book.book.dto.BookUniqueNumberDTO; import com.pcloud.book.book.dto.BookUniqueNumberDTO;
import com.pcloud.book.book.vo.ZouMuBaiVO;
import com.pcloud.book.es.entity.ESBookAndAdviser; import com.pcloud.book.es.entity.ESBookAndAdviser;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
...@@ -506,4 +510,42 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao { ...@@ -506,4 +510,42 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
public List<MoFangSceneDto> listMoFangScene() { public List<MoFangSceneDto> listMoFangScene() {
return getSessionTemplate().selectList(getStatement("listMoFangScene")); return getSessionTemplate().selectList(getStatement("listMoFangScene"));
} }
@Override
public void insertMofangBook(ZouMuBaiVO vo) {
getSessionTemplate().insert(getStatement("insertMofangBook"),vo);
}
@Override
public void insertMofangZmb(List<MofangZmb> list) {
getSessionTemplate().insert(getStatement("insertMofangZmb"),list);
}
@Override
public List<MofangZmb> getZmbBook(List<Long> mofangIds) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("mofangIds", mofangIds);
return getSessionTemplate().selectList(getStatement("getZmbBook"), paramMap);
}
@Override
public MoFangSceneVO getMoFangScene(Long sceneId) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("sceneId", sceneId);
return getSessionTemplate().selectOne(getStatement("getMoFangScene"), paramMap);
}
@Override
public MoFangBookDto getMoFangBookById(Long mofangId) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("mofangId", mofangId);
return getSessionTemplate().selectOne(getStatement("getMoFangBookById"), paramMap);
}
@Override
public List<Long> getZmbBookIds(Long mofangId) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("mofangId", mofangId);
return getSessionTemplate().selectList(getStatement("getZmbBookIds"), paramMap);
}
} }
package com.pcloud.book.book.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ClassName com.pcloud.book.book.entity.MofangZmb
* @Author David
* @Description
* @Date 2023/1/5 11:09
* @Version 1.0
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MofangZmb {
private Long id;
private Long mofangId;
private Long bookId;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}
...@@ -50,6 +50,7 @@ import com.pcloud.wechatgroup.message.enums.IsSystem; ...@@ -50,6 +50,7 @@ import com.pcloud.wechatgroup.message.enums.IsSystem;
import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -60,6 +61,8 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -60,6 +61,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -1548,10 +1551,11 @@ public class BookFacadeImpl implements BookFacade { ...@@ -1548,10 +1551,11 @@ public class BookFacadeImpl implements BookFacade {
*/ */
@RequestMapping(value = "listMoFangBook", method = RequestMethod.GET) @RequestMapping(value = "listMoFangBook", method = RequestMethod.GET)
public ResponseDto<?> listMoFangBook(@RequestParam(value = "keyWords", required = false) String keyWords, public ResponseDto<?> listMoFangBook(@RequestParam(value = "keyWords", required = false) String keyWords,
@RequestParam(value = "type", required = false) Integer type,
@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "currentPage", required = false) Integer currentPage,
@RequestParam(value = "numPerPage", required = false) Integer numPerPage) @RequestParam(value = "numPerPage", required = false) Integer numPerPage)
throws BizException, PermissionException { throws BizException, PermissionException {
return new ResponseDto<>(bookBiz.listMoFangBook(keyWords, currentPage, numPerPage)); return new ResponseDto<>(bookBiz.listMoFangBook(keyWords, currentPage, numPerPage,type));
} }
/** /**
...@@ -1563,4 +1567,29 @@ public class BookFacadeImpl implements BookFacade { ...@@ -1563,4 +1567,29 @@ public class BookFacadeImpl implements BookFacade {
return new ResponseDto<>(bookBiz.listMoFangScene()); return new ResponseDto<>(bookBiz.listMoFangScene());
} }
/**
* 导入魔方邹慕白数据
*/
@RequestMapping(value = "importZouMuBai", method = RequestMethod.POST)
public void importZouMuBai(MultipartHttpServletRequest request) throws Exception {
List<MultipartFile> files = request.getFiles("file");
if (files.size() == 0) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "上传内容为空!");
}
MultipartFile multipartFile = files.get(0);
if (multipartFile == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "数据包内容为空!");
}
bookBiz.importZouMuBai(multipartFile);
}
/**
* 魔方二维码
*/
@RequestMapping(value = "getMoFangScene", method = RequestMethod.GET)
public ResponseDto<?> getMoFangScene(@RequestParam(value = "sceneId") Long sceneId)
throws BizException, PermissionException {
return new ResponseDto<>(bookBiz.getMoFangScene(sceneId));
}
} }
...@@ -330,4 +330,10 @@ public class BookServiceImpl implements BookService { ...@@ -330,4 +330,10 @@ public class BookServiceImpl implements BookService {
public ResponseEntity<ResponseDto<Map<Long, List<ListBookResourceDto>>>> getServeListWithBookId(@RequestBody List<Long> sceneIds) { public ResponseEntity<ResponseDto<Map<Long, List<ListBookResourceDto>>>> getServeListWithBookId(@RequestBody List<Long> sceneIds) {
return ResponseHandleUtil.toResponse(resourcePageBiz.getServeListWithBookId(sceneIds)); return ResponseHandleUtil.toResponse(resourcePageBiz.getServeListWithBookId(sceneIds));
} }
@Override
@GetMapping("getMoFangBookIds")
public ResponseEntity<ResponseDto<List<Long>>> getMoFangBookIds(@RequestParam(value = "mofangId") Long mofangId) {
return ResponseHandleUtil.toResponse(bookBiz.getMoFangBookIds(mofangId));
}
} }
...@@ -47,4 +47,8 @@ public class MoFangBookDto extends BaseDto { ...@@ -47,4 +47,8 @@ public class MoFangBookDto extends BaseDto {
* rays码列表 * rays码列表
*/ */
private List<QrcodeSceneDto> sceneList; private List<QrcodeSceneDto> sceneList;
private Integer type;
private Long id;
} }
/**
*
*/
package com.pcloud.book.book.vo;
import lombok.Data;
/**
* 魔方书刊
*/
@Data
public class MoFangSceneVO {
private Long sceneId;
private String linkUrl;
private Integer type;
}
package com.pcloud.book.book.vo;
import lombok.Data;
/**
* 邹慕白书刊
*/
@Data
public class ZouMuBaiVO {
private Long id;
private String bookName;
private String coverImg;
private String bookIds;
private Integer type;
}
\ No newline at end of file
...@@ -3441,16 +3441,21 @@ ...@@ -3441,16 +3441,21 @@
<select id="listMoFangBook" parameterType="map" resultType="com.pcloud.book.book.vo.MoFangBookDto"> <select id="listMoFangBook" parameterType="map" resultType="com.pcloud.book.book.vo.MoFangBookDto">
select select
id id,
book_id bookId, book_id bookId,
resource_count resourceCount, resource_count resourceCount,
jump_url jumpUrl, jump_url jumpUrl,
book_name bookName, book_name bookName,
cover_img coverImg cover_img coverImg,
type type
from mofang_book from mofang_book
where 1=1 where 1=1
<if test="keyWords !=null and keyWords!=''"> <if test="keyWords !=null and keyWords!=''">
and book_name like concat('%',#{keyWords},'%') and book_name like concat('%',#{keyWords},'%')
</if> </if>
<if test="type !=null">
and type = #{type}
</if>
</select> </select>
<select id="listMoFangScene" resultType="com.pcloud.book.book.dto.MoFangSceneDto"> <select id="listMoFangScene" resultType="com.pcloud.book.book.dto.MoFangSceneDto">
...@@ -3459,4 +3464,56 @@ ...@@ -3459,4 +3464,56 @@
link_url linkUrl link_url linkUrl
from mofang_scene from mofang_scene
</select> </select>
<insert id="insertMofangBook" parameterType="com.pcloud.book.book.vo.ZouMuBaiVO" useGeneratedKeys="true" keyProperty="id" >
insert into
mofang_book (book_name,cover_img,type,create_time,update_time)
values
(#{bookName}, #{coverImg}, #{type}, now(), now())
</insert>
<insert id="insertMofangZmb" parameterType="java.util.List">
insert into
mofang_zmb (mofang_id,book_id,create_time,update_time)
values
<foreach collection="list" index="index" item="item" separator=",">
(#{item.mofangId}, #{item.bookId}, now(), now())
</foreach>
</insert>
<select id="getZmbBook" parameterType="map" resultType="com.pcloud.book.book.entity.MofangZmb">
select
mofang_id mofangId,
book_id bookId
from mofang_zmb
where mofang_id in
<foreach collection="mofangIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="getMoFangScene" parameterType="map" resultType="com.pcloud.book.book.vo.MoFangSceneVO">
select
scene_id sceneId,
link_url linkUrl,
type type
from mofang_scene
where scene_id=#{sceneId}
limit 1
</select>
<select id="getMoFangBookById" parameterType="map" resultType="com.pcloud.book.book.vo.MoFangBookDto">
select
book_id bookId,
type type
from mofang_book
where id = #{mofangId}
</select>
<select id="getZmbBookIds" parameterType="map" resultType="Long">
select
book_id
from mofang_zmb
where mofang_id = #{mofangId}
</select>
</mapper> </mapper>
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