Commit 71ca6064 by 高鹏

Merge branch 'rsy-feat-1001514' into 'master'

营销活动整体优化

See merge request rays/pcloud-book!144
parents 61765155 1691339b
......@@ -244,4 +244,11 @@ public interface BookService {
@RequestMapping(value = "/getBaseAndAuthStatus", method = RequestMethod.GET)
ResponseEntity<ResponseDto<BookInfoAndAuthStatusDTO>> getBaseAndAuthStatus(@RequestParam(value = "bookId") Long bookId, @RequestParam(value = "channelId") Long channelId,@RequestParam(value = "adviserId") Long adviserId)
throws BizException;
@ApiOperation("根据书名或isbn编号查询书")
@RequestMapping(value = "/getIdsByNameOrISBN", method = RequestMethod.GET)
ResponseEntity<ResponseDto<List<Long>>> getIdsByNameOrISBN(
@RequestParam(value = "keyword") String keyword,
@RequestParam(value = "adviserId") Long adviserId
) throws BizException;
}
......@@ -21,14 +21,8 @@ import com.pcloud.book.advertising.dao.AdvertisingPlanGroupDao;
import com.pcloud.book.advertising.dao.AdvertisingPutDao;
import com.pcloud.book.advertising.dao.AdvertisingSettlementMethodDao;
import com.pcloud.book.advertising.dao.AdvertisingSpaceDao;
import com.pcloud.book.advertising.dto.AdvertisingDistributionDTO;
import com.pcloud.book.advertising.dto.AdvertisingMasterDTO;
import com.pcloud.book.advertising.dto.AdvertisingSettlementMethodDTO;
import com.pcloud.book.advertising.dto.AdvertisingSpaceDTO;
import com.pcloud.book.advertising.dto.QrcodeAdvertisingSpaceCountDTO;
import com.pcloud.book.advertising.dto.WechatGroupClickUserDTO;
import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO;
import com.pcloud.book.advertising.dto.*;
import com.pcloud.book.advertising.entity.AdvertisingAdviserPermission;
import com.pcloud.book.advertising.entity.AdvertisingAgentPermission;
import com.pcloud.book.advertising.entity.AdvertisingBrowseRecord;
......@@ -930,20 +924,39 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
advertisingAdviserPermissionDao.update(adviserPermission);
}
} else {
// 删除编辑所有数据
advertisingAdviserPermissionDao.deleteByAdviserId(adviserPermission.getAdviserId());
List<BookDto> bookList = bookDao.listBookIdAndChannelId4Adviser(paramMap);
if (!ListUtils.isEmpty(bookList)) {
List<AdvertisingAdviserPermission> list = new ArrayList<>();
for (BookDto bookDto : bookList) {
AdvertisingAdviserPermission permission = new AdvertisingAdviserPermission();
permission.setAdviserId(adviserPermission.getAdviserId());
permission.setIsOpen(adviserPermission.getIsOpen());
permission.setBookId(bookDto.getBookId());
permission.setChannelId(bookDto.getChannelId());
list.add(permission);
if (!ListUtils.isEmpty(adviserPermission.getBookAndChannelDTOS())) {
//一个一个更新
for (BookAndChannelDTO bookAndChannelDTO : adviserPermission.getBookAndChannelDTOS()) {
if (bookAndChannelDTO != null && bookAndChannelDTO.getBookId() != null && bookAndChannelDTO.getChannelId() != null) {
paramMap.put("bookId", bookAndChannelDTO.getBookId());
paramMap.put("channelId", bookAndChannelDTO.getChannelId());
AdvertisingAdviserPermission permission = (AdvertisingAdviserPermission) advertisingAdviserPermissionDao.getBy(paramMap, "getByAdviserId");
if (null == permission) {
adviserPermission.setBookId(bookAndChannelDTO.getBookId());
adviserPermission.setChannelId(bookAndChannelDTO.getChannelId());
advertisingAdviserPermissionDao.insert(adviserPermission);
} else {
adviserPermission.setId(permission.getId());
advertisingAdviserPermissionDao.update(adviserPermission);
}
}
}
} else {
// 删除编辑所有数据
advertisingAdviserPermissionDao.deleteByAdviserId(adviserPermission.getAdviserId());
List<BookDto> bookList = bookDao.listBookIdAndChannelId4Adviser(paramMap);
if (!ListUtils.isEmpty(bookList)) {
List<AdvertisingAdviserPermission> list = new ArrayList<>();
for (BookDto bookDto : bookList) {
AdvertisingAdviserPermission permission = new AdvertisingAdviserPermission();
permission.setAdviserId(adviserPermission.getAdviserId());
permission.setIsOpen(adviserPermission.getIsOpen());
permission.setBookId(bookDto.getBookId());
permission.setChannelId(bookDto.getChannelId());
list.add(permission);
}
advertisingAdviserPermissionDao.batchInsert(list);
}
advertisingAdviserPermissionDao.batchInsert(list);
}
}
}
......
package com.pcloud.book.advertising.dto;
import java.io.Serializable;
/**
* @Description
* @Author ruansiyuan
* @Date 2019/8/19 9:49
**/
public class BookAndChannelDTO implements Serializable {
private Long bookId;
private Long channelId;
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;
}
}
package com.pcloud.book.advertising.entity;
import java.util.Date;
import java.util.List;
import com.pcloud.book.advertising.dto.BookAndChannelDTO;
import com.pcloud.common.entity.BaseEntity;
/**
......@@ -50,6 +53,11 @@ public class AdvertisingAdviserPermission extends BaseEntity {
*/
private Boolean isBatchOperation;
/**
* bookId和channelId集合
*/
private List<BookAndChannelDTO> bookAndChannelDTOS;
@Override
public Long getId() {
return id;
......@@ -120,6 +128,14 @@ public class AdvertisingAdviserPermission extends BaseEntity {
this.isBatchOperation = isBatchOperation;
}
public List<BookAndChannelDTO> getBookAndChannelDTOS() {
return bookAndChannelDTOS;
}
public void setBookAndChannelDTOS(List<BookAndChannelDTO> bookAndChannelDTOS) {
this.bookAndChannelDTOS = bookAndChannelDTOS;
}
@Override
public String toString() {
return "AdvertisingAdviserPermission{" +
......@@ -128,9 +144,10 @@ public class AdvertisingAdviserPermission extends BaseEntity {
", bookId=" + bookId +
", channelId=" + channelId +
", isOpen=" + isOpen +
", isBatchOperation=" + isBatchOperation +
", createTime=" + createTime +
", updateTime=" + updateTime +
", isBatchOperation=" + isBatchOperation +
", bookAndChannelDTOS=" + bookAndChannelDTOS +
"} " + super.toString();
}
}
\ No newline at end of file
......@@ -562,4 +562,9 @@ public interface BookBiz {
* 获取图书基本信息与授权状态
*/
BookInfoAndAuthStatusDTO getBaseAndAuthStatus(Long bookId, Long channelId, Long adviserId);
/**
* 根据书名或ISBN编号获取书id集合
*/
List<Long> getIdsByNameOrISBN(String keyword, Long adviserId);
}
......@@ -1713,4 +1713,31 @@ public class BookBizImpl implements BookBiz {
bookInfoAndAuthStatusDTO.setIsDelete(bookAdviser == null ? BookStatusEnum.BookDeleteStatus.DELETE.value : bookAdviser.getIsDelete());
return bookInfoAndAuthStatusDTO;
}
@ParamLog("根据书名或ISBN编号获取书id集合")
@Override
public List<Long> getIdsByNameOrISBN(String keyword, Long adviserId) {
LOGGER.info("【书籍顾问】根据书名或ISBN编号获取书id集合,<START>.[keyword|adviserId]=" + keyword + "|" + adviserId);
if (StringUtil.isEmpty(keyword)) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "请输入关键词");
}
if (adviserId == null) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "请输入编辑ID");
}
List<Long> bookIds ;
try {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("keyword", keyword);
paramMap.put("adviserId", adviserId);
bookIds = bookDao.getIdsByNameOrISBN(paramMap);
if (bookIds == null) {
bookIds = Lists.newArrayList();
}
} catch (Exception e) {
LOGGER.error("【书籍-顾问】根据书名或ISBN编号获取书id集合,<ERROR>.[getIdsByNameOrISBN]:" + e.getMessage(), e);
throw BizException.DB_SELECT_IS_FAIL;
}
LOGGER.info("【书籍顾问】根据书名或ISBN编号获取书id集合,<END>");
return bookIds;
}
}
......@@ -305,4 +305,9 @@ public interface BookDao extends BaseDao<Book> {
* @return
*/
List<BookDto> listBookGroup4Adviser(Map<String, Object> paramMap);
/**
* 根据书名或ISBN获取书id
*/
List<Long> getIdsByNameOrISBN(Map<String,Object> paramMap);
}
......@@ -290,4 +290,9 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
public List<BookDto> listBookGroup4Adviser(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(getStatement("listBookGroup4Adviser"),paramMap);
}
@Override
public List<Long> getIdsByNameOrISBN(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("getIdsByNameOrISBN"), paramMap);
}
}
......@@ -14,6 +14,7 @@ import com.pcloud.book.book.service.BookService;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ResponseHandleUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -190,4 +191,14 @@ public class BookServiceImpl implements BookService {
@RequestParam("adviserId") Long adviserId) throws BizException {
return ResponseHandleUtil.toResponse(bookBiz.getBaseAndAuthStatus(bookId, channelId, adviserId));
}
@ApiOperation("根据书名或isbn编号查询书")
@RequestMapping(value = "/getIdsByNameOrISBN", method = RequestMethod.GET)
@Override
public ResponseEntity<ResponseDto<List<Long>>> getIdsByNameOrISBN(
@RequestParam(value = "keyword") String keyword,
@RequestParam(value = "adviserId") Long adviserId
) throws BizException {
return ResponseHandleUtil.toResponse(bookBiz.getIdsByNameOrISBN(keyword, adviserId));
}
}
......@@ -1679,6 +1679,20 @@
A.LAST_MODIFIED_DATE DESC , A.BOOK_ADVISER_ID DESC
</select>
<!-- 根据名称或ISBN获取ID -->
<select id="getIdsByNameOrISBN" resultType="long" parameterType="map">
SELECT
A.BOOK_ID
FROM
BOOK_ADVISER A
INNER JOIN
BOOK B
ON
A.BOOK_ID = B.BOOK_ID AND A.ADVISER_ID = #{adviserId} AND A.IS_DELETE = 0 AND B.IS_DELETE = 0
WHERE
B.BOOK_NAME LIKE CONCAT('%',#{keyword},'%') or B.ISBN LIKE CONCAT('%',#{keyword},'%')
</select>
<select id="listNoAuthGroupBook" resultType="noAuthBookVO" parameterType="map">
SELECT
A.book_id AS bookId,
......
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