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 { ...@@ -244,4 +244,11 @@ public interface BookService {
@RequestMapping(value = "/getBaseAndAuthStatus", method = RequestMethod.GET) @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) ResponseEntity<ResponseDto<BookInfoAndAuthStatusDTO>> getBaseAndAuthStatus(@RequestParam(value = "bookId") Long bookId, @RequestParam(value = "channelId") Long channelId,@RequestParam(value = "adviserId") Long adviserId)
throws BizException; 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; ...@@ -21,14 +21,8 @@ import com.pcloud.book.advertising.dao.AdvertisingPlanGroupDao;
import com.pcloud.book.advertising.dao.AdvertisingPutDao; import com.pcloud.book.advertising.dao.AdvertisingPutDao;
import com.pcloud.book.advertising.dao.AdvertisingSettlementMethodDao; import com.pcloud.book.advertising.dao.AdvertisingSettlementMethodDao;
import com.pcloud.book.advertising.dao.AdvertisingSpaceDao; import com.pcloud.book.advertising.dao.AdvertisingSpaceDao;
import com.pcloud.book.advertising.dto.AdvertisingDistributionDTO; import com.pcloud.book.advertising.dto.*;
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.entity.AdvertisingAdviserPermission; import com.pcloud.book.advertising.entity.AdvertisingAdviserPermission;
import com.pcloud.book.advertising.entity.AdvertisingAgentPermission; import com.pcloud.book.advertising.entity.AdvertisingAgentPermission;
import com.pcloud.book.advertising.entity.AdvertisingBrowseRecord; import com.pcloud.book.advertising.entity.AdvertisingBrowseRecord;
...@@ -930,20 +924,39 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz { ...@@ -930,20 +924,39 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
advertisingAdviserPermissionDao.update(adviserPermission); advertisingAdviserPermissionDao.update(adviserPermission);
} }
} else { } else {
// 删除编辑所有数据 if (!ListUtils.isEmpty(adviserPermission.getBookAndChannelDTOS())) {
advertisingAdviserPermissionDao.deleteByAdviserId(adviserPermission.getAdviserId()); //一个一个更新
List<BookDto> bookList = bookDao.listBookIdAndChannelId4Adviser(paramMap); for (BookAndChannelDTO bookAndChannelDTO : adviserPermission.getBookAndChannelDTOS()) {
if (!ListUtils.isEmpty(bookList)) { if (bookAndChannelDTO != null && bookAndChannelDTO.getBookId() != null && bookAndChannelDTO.getChannelId() != null) {
List<AdvertisingAdviserPermission> list = new ArrayList<>(); paramMap.put("bookId", bookAndChannelDTO.getBookId());
for (BookDto bookDto : bookList) { paramMap.put("channelId", bookAndChannelDTO.getChannelId());
AdvertisingAdviserPermission permission = new AdvertisingAdviserPermission(); AdvertisingAdviserPermission permission = (AdvertisingAdviserPermission) advertisingAdviserPermissionDao.getBy(paramMap, "getByAdviserId");
permission.setAdviserId(adviserPermission.getAdviserId()); if (null == permission) {
permission.setIsOpen(adviserPermission.getIsOpen()); adviserPermission.setBookId(bookAndChannelDTO.getBookId());
permission.setBookId(bookDto.getBookId()); adviserPermission.setChannelId(bookAndChannelDTO.getChannelId());
permission.setChannelId(bookDto.getChannelId()); advertisingAdviserPermissionDao.insert(adviserPermission);
list.add(permission); } 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; package com.pcloud.book.advertising.entity;
import java.util.Date; import java.util.Date;
import java.util.List;
import com.pcloud.book.advertising.dto.BookAndChannelDTO;
import com.pcloud.common.entity.BaseEntity; import com.pcloud.common.entity.BaseEntity;
/** /**
...@@ -50,6 +53,11 @@ public class AdvertisingAdviserPermission extends BaseEntity { ...@@ -50,6 +53,11 @@ public class AdvertisingAdviserPermission extends BaseEntity {
*/ */
private Boolean isBatchOperation; private Boolean isBatchOperation;
/**
* bookId和channelId集合
*/
private List<BookAndChannelDTO> bookAndChannelDTOS;
@Override @Override
public Long getId() { public Long getId() {
return id; return id;
...@@ -120,6 +128,14 @@ public class AdvertisingAdviserPermission extends BaseEntity { ...@@ -120,6 +128,14 @@ public class AdvertisingAdviserPermission extends BaseEntity {
this.isBatchOperation = isBatchOperation; this.isBatchOperation = isBatchOperation;
} }
public List<BookAndChannelDTO> getBookAndChannelDTOS() {
return bookAndChannelDTOS;
}
public void setBookAndChannelDTOS(List<BookAndChannelDTO> bookAndChannelDTOS) {
this.bookAndChannelDTOS = bookAndChannelDTOS;
}
@Override @Override
public String toString() { public String toString() {
return "AdvertisingAdviserPermission{" + return "AdvertisingAdviserPermission{" +
...@@ -128,9 +144,10 @@ public class AdvertisingAdviserPermission extends BaseEntity { ...@@ -128,9 +144,10 @@ public class AdvertisingAdviserPermission extends BaseEntity {
", bookId=" + bookId + ", bookId=" + bookId +
", channelId=" + channelId + ", channelId=" + channelId +
", isOpen=" + isOpen + ", isOpen=" + isOpen +
", isBatchOperation=" + isBatchOperation +
", createTime=" + createTime + ", createTime=" + createTime +
", updateTime=" + updateTime + ", updateTime=" + updateTime +
", isBatchOperation=" + isBatchOperation +
", bookAndChannelDTOS=" + bookAndChannelDTOS +
"} " + super.toString(); "} " + super.toString();
} }
} }
\ No newline at end of file
...@@ -562,4 +562,9 @@ public interface BookBiz { ...@@ -562,4 +562,9 @@ public interface BookBiz {
* 获取图书基本信息与授权状态 * 获取图书基本信息与授权状态
*/ */
BookInfoAndAuthStatusDTO getBaseAndAuthStatus(Long bookId, Long channelId, Long adviserId); 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 { ...@@ -1713,4 +1713,31 @@ public class BookBizImpl implements BookBiz {
bookInfoAndAuthStatusDTO.setIsDelete(bookAdviser == null ? BookStatusEnum.BookDeleteStatus.DELETE.value : bookAdviser.getIsDelete()); bookInfoAndAuthStatusDTO.setIsDelete(bookAdviser == null ? BookStatusEnum.BookDeleteStatus.DELETE.value : bookAdviser.getIsDelete());
return bookInfoAndAuthStatusDTO; 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> { ...@@ -305,4 +305,9 @@ public interface BookDao extends BaseDao<Book> {
* @return * @return
*/ */
List<BookDto> listBookGroup4Adviser(Map<String, Object> paramMap); 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 { ...@@ -290,4 +290,9 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
public List<BookDto> listBookGroup4Adviser(Map<String, Object> paramMap) { public List<BookDto> listBookGroup4Adviser(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(getStatement("listBookGroup4Adviser"),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; ...@@ -14,6 +14,7 @@ import com.pcloud.book.book.service.BookService;
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.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -190,4 +191,14 @@ public class BookServiceImpl implements BookService { ...@@ -190,4 +191,14 @@ public class BookServiceImpl implements BookService {
@RequestParam("adviserId") Long adviserId) throws BizException { @RequestParam("adviserId") Long adviserId) throws BizException {
return ResponseHandleUtil.toResponse(bookBiz.getBaseAndAuthStatus(bookId, channelId, adviserId)); 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 @@ ...@@ -1679,6 +1679,20 @@
A.LAST_MODIFIED_DATE DESC , A.BOOK_ADVISER_ID DESC A.LAST_MODIFIED_DATE DESC , A.BOOK_ADVISER_ID DESC
</select> </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 id="listNoAuthGroupBook" resultType="noAuthBookVO" parameterType="map">
SELECT SELECT
A.book_id AS bookId, 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