Commit 09102442 by 阮思源

新增资源配置接口

parent a35aa3c4
......@@ -15,6 +15,7 @@ import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.vo.FriendsVO;
import com.pcloud.book.group.vo.GroupIncomeStaticParamVO;
import com.pcloud.book.group.vo.GroupScanTrendParamVO;
......@@ -398,4 +399,27 @@ public interface BookGroupBiz {
* @return
*/
PageBeanNew<FriendsVO> listPageFriendsStatistic(Long bookGroupId, Integer currentPage, Integer numPerPage);
/**
* 批量新增资源配置
*
* @param partyId
* @param bookGroupServes
*/
void batchAddBookGroupServe(Long partyId, List<BookGroupServe> bookGroupServes);
/**
* 删除资源配置
*
* @param id
*/
void deleteBookGroupServe(Long id);
/**
* 获取资源配置集合
*
* @param bookGroupId
* @return
*/
List<BookGroupServe> getBookGroupServeList(Long bookGroupId);
}
......@@ -29,6 +29,7 @@ import com.pcloud.book.group.dao.AppClickRecordDao;
import com.pcloud.book.group.dao.AppTouchRecordDao;
import com.pcloud.book.group.dao.BookGroupClassifyDao;
import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dao.BookGroupServeDao;
import com.pcloud.book.group.dao.JoinGroupCipherDao;
import com.pcloud.book.group.dao.TempletRelevanceDao;
import com.pcloud.book.group.dao.WeixinQrcodeDao;
......@@ -51,10 +52,12 @@ import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import com.pcloud.book.group.dto.StatisticsIncomeDto;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.JoinGroupCipher;
import com.pcloud.book.group.entity.TempletRelevance;
import com.pcloud.book.group.enums.CipherTypeEnum;
import com.pcloud.book.group.enums.LargTempletEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.ClassifyAndGroupCountVO;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.FriendsVO;
......@@ -74,6 +77,7 @@ import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.biz.MessageBiz;
import com.pcloud.common.core.constant.ProductTypeConstant;
......@@ -95,6 +99,7 @@ import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.UUIDUitl;
import com.pcloud.common.utils.export.excel.ExcelExportor;
import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.common.utils.zip.CompressUtils;
import com.pcloud.facade.tradecenter.dto.ClassifyPayDetailDto;
......@@ -219,6 +224,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
private BookConsr bookConsr;
@Autowired
private GroupQrcodeBiz groupQrcodeBiz;
@Autowired
private BookGroupServeDao bookGroupServeDao;
......@@ -2037,5 +2044,102 @@ public class BookGroupBizImpl implements BookGroupBiz {
return pageBeanNew;
}
@ParamLog("批量新增资源配置")
@Transactional(rollbackFor = Exception.class)
@Override
public void batchAddBookGroupServe(Long partyId, List<BookGroupServe> bookGroupServes) {
if (ListUtils.isEmpty(bookGroupServes)) {
return;
}
for (BookGroupServe bookGroupServe : bookGroupServes) {
if (bookGroupServe == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数不能为空!");
}
if (bookGroupServe.getBookGroupId() == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数社群书id不能为空!");
}
if (bookGroupServe.getServeId() == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数应用或作品id不能为空!");
}
if (StringUtil.isEmpty(bookGroupServe.getServeUrl())){
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "链接不能为空!");
}
if (!("PRODUCT".equals(bookGroupServe.getServeType()) || "APP".equals(bookGroupServe.getServeType()))) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数应用或作品类型有误(APP或PRODUCT)!");
}
}
Long bookGroupId=bookGroupServes.get(0).getBookGroupId();
BookGroupDTO dto = bookGroupDao.getDTOById(bookGroupId);
if (dto==null){
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数错误!");
}
AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(dto.getChannelId());
for (BookGroupServe bookGroupServe : bookGroupServes) {
// 处理链接地址
String endUrl = bookGroupServe.getServeUrl() + "&book_group_id=" + bookGroupId;
String linkUrl = SendWeixinRequestTools.splitUrl(accountSettingDto, endUrl);
//转短链
String resultUrl=UrlUtils.getShortUrl4Own(linkUrl);
bookGroupServe.setShortUrl(resultUrl);
bookGroupServe.setCreateUser(partyId);
}
bookGroupServeDao.batchInsert(bookGroupServes);
}
@ParamLog("删除资源配置")
@Transactional(rollbackFor = Exception.class)
@Override
public void deleteBookGroupServe(Long id) {
if (id==null){
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数错误!");
}
bookGroupServeDao.deleteById(id);
}
@ParamLog("获取资源配置集合")
@Override
public List<BookGroupServe> getBookGroupServeList(Long bookGroupId) {
if (bookGroupId == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数不能为空!");
}
List<BookGroupServe> list = bookGroupServeDao.getListByBookGroupId(bookGroupId);
if (ListUtils.isEmpty(list)) {
return new ArrayList<>();
}
List<Long> productIds = new ArrayList<>();
List<Long> appIds = new ArrayList<>();
for (BookGroupServe bookGroupServe : list) {
if ("PRODUCT".equals(bookGroupServe.getServeType())) {
productIds.add(bookGroupServe.getServeId());
}
if ("APP".equals(bookGroupServe.getServeType())) {
appIds.add(bookGroupServe.getServeId());
}
}
Map<Long, ProductDto> productDtoMap = new HashMap<>();
Map<Long, AppDto> appDtoMap = new HashMap<>();
if (!ListUtils.isEmpty(productIds)) {
productDtoMap = productConsr.getProBasesByIds(productIds);
}
if (!ListUtils.isEmpty(appIds)) {
appDtoMap = appConsr.mapByIds(appIds);
}
for (BookGroupServe bookGroupServe : list) {
if ("PRODUCT".equals(bookGroupServe.getServeType())) {
ProductDto productDto = productDtoMap.get(bookGroupServe.getServeId());
if (productDto != null) {
bookGroupServe.setServeName(productDto.getProductName());
}
}
if ("APP".equals(bookGroupServe.getServeType())) {
AppDto appDto = appDtoMap.get(bookGroupServe.getServeId());
if (appDto != null) {
bookGroupServe.setServeName(appDto.getTitle());
}
}
}
return list;
}
}
package com.pcloud.book.group.dao;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface BookGroupServeDao extends BaseDao<BookGroupServe> {
Integer batchInsert(List<BookGroupServe> bookGroupServes);
List<BookGroupServe> getListByBookGroupId(Long bookGroupId);
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.BookGroupServeDao;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Description
* @Author ruansiyuan
* @Date 2019/9/23 15:39
**/
@Component("bookGroupServeDao")
public class BookGroupServeDaoImpl extends BaseDaoImpl<BookGroupServe> implements BookGroupServeDao {
@Override
public Integer batchInsert(List<BookGroupServe> list) {
return super.getSqlSession().insert(getStatement("batchInsert"), list);
}
@Override
public List<BookGroupServe> getListByBookGroupId(Long bookGroupId) {
return super.getSqlSession().selectList(getStatement("getListByBookGroupId"), bookGroupId);
}
}
package com.pcloud.book.group.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
/**
* @Description
* @Author ruansiyuan
* @Date 2019/9/23 15:35
**/
public class BookGroupServe extends BaseEntity {
private static final long serialVersionUID = 7725930392678110441L;
@ApiModelProperty("作品或应用id")
private Long serveId;
@ApiModelProperty("类型;APP应用,PRODUCT作品")
private Long serveType;
@ApiModelProperty("链接")
private String serveUrl;
@ApiModelProperty("短链")
private String shortUrl;
@ApiModelProperty("社群书id")
private Long bookGroupId;
@ApiModelProperty("创建人")
private Long createUser;
@ApiModelProperty("应用或作品名称")
private String serveName;
public Long getServeId() {
return serveId;
}
public void setServeId(Long serveId) {
this.serveId = serveId;
}
public Long getServeType() {
return serveType;
}
public void setServeType(Long serveType) {
this.serveType = serveType;
}
public String getServeUrl() {
return serveUrl;
}
public void setServeUrl(String serveUrl) {
this.serveUrl = serveUrl;
}
public String getShortUrl() {
return shortUrl;
}
public void setShortUrl(String shortUrl) {
this.shortUrl = shortUrl;
}
public Long getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public Long getCreateUser() {
return createUser;
}
public void setCreateUser(Long createUser) {
this.createUser = createUser;
}
public String getServeName() {
return serveName;
}
public void setServeName(String serveName) {
this.serveName = serveName;
}
@Override
public String toString() {
return "BookGroupServe{" +
"serveId=" + serveId +
", serveType=" + serveType +
", serveUrl='" + serveUrl + '\'' +
", shortUrl='" + shortUrl + '\'' +
", bookGroupId=" + bookGroupId +
", createUser=" + createUser +
", serveName='" + serveName + '\'' +
"} " + super.toString();
}
}
......@@ -2,6 +2,7 @@ package com.pcloud.book.group.facade;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupClassify;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.vo.FriendsVO;
import com.pcloud.book.group.vo.GroupIncomeStaticParamVO;
import com.pcloud.book.group.vo.GroupScanTrendParamVO;
......@@ -388,4 +389,25 @@ public interface BookGroupFacade {
@RequestParam(value = "currentPage", required = true) Integer currentPage,
@RequestParam(value = "numPerPage", required = true) Integer numPerPage) throws BizException, PermissionException;
@ApiOperation("批量新增资源配置")
@PostMapping("batchAddBookGroupServe")
ResponseDto<?> batchAddBookGroupServe(
@RequestHeader("token") String token,
@RequestBody List<BookGroupServe> bookGroupServes
) throws BizException, PermissionException, JsonParseException;
@ApiOperation("删除资源配置")
@GetMapping("deleteBookGroupServe")
ResponseDto<?> deleteBookGroupServe(
@RequestHeader("token") String token,
@RequestParam("id") Long id
) throws BizException, PermissionException, JsonParseException;
@ApiOperation("获取资源配置集合")
@GetMapping("getBookGroupServeList")
ResponseDto<?> getBookGroupServeList(
@RequestHeader("token") String token,
@RequestParam("bookGroupId") Long bookGroupId
) throws BizException, PermissionException, JsonParseException;
}
......@@ -6,6 +6,7 @@ import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.dto.GroupStoreMyPayDto;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupClassify;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.facade.BookGroupFacade;
import com.pcloud.book.group.vo.FriendsVO;
import com.pcloud.book.group.vo.GroupIncomeStaticParamVO;
......@@ -538,4 +539,40 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
PageBeanNew<FriendsVO> pageBeanNew = bookGroupBiz.listPageFriendsStatistic(bookGroupId, currentPage, numPerPage);
return new ResponseDto<>(pageBeanNew);
}
@ApiOperation("批量新增资源配置")
@PostMapping("batchAddBookGroupServe")
@Override
public ResponseDto<?> batchAddBookGroupServe(
@RequestHeader("token") String token,
@RequestBody List<BookGroupServe> bookGroupServes
) throws BizException, PermissionException, JsonParseException {
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
bookGroupBiz.batchAddBookGroupServe(partyId, bookGroupServes);
return new ResponseDto<>();
}
@ApiOperation("删除资源配置")
@GetMapping("deleteBookGroupServe")
@Override
public ResponseDto<?> deleteBookGroupServe(
@RequestHeader("token") String token,
@RequestParam("id") Long id
) throws BizException, PermissionException, JsonParseException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
bookGroupBiz.deleteBookGroupServe(id);
return new ResponseDto<>();
}
@ApiOperation("获取资源配置集合")
@GetMapping("getBookGroupServeList")
@Override
public ResponseDto<?> getBookGroupServeList(
@RequestHeader("token") String token,
@RequestParam("bookGroupId") Long bookGroupId
) throws BizException, PermissionException, JsonParseException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(bookGroupBiz.getBookGroupServeList(bookGroupId));
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.group.dao.impl.BookGroupServeDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.group.entity.BookGroupServe">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="serve_id" property="serveId" jdbcType="BIGINT"/>
<result column="serve_type" property="serveType" jdbcType="VARCHAR"/>
<result column="serve_url" property="serveUrl" jdbcType="VARCHAR"/>
<result column="short_url" property="shortUrl" jdbcType="VARCHAR"/>
<result column="book_group_id" property="bookGroupId" jdbcType="BIGINT"/>
<result column="create_user" property="createUser" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, serve_id, serve_type, serve_url, short_url, book_group_id, create_user, create_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.group.entity.BookGroupServe" useGeneratedKeys="true"
keyProperty="id">
insert into book_group_serve
<trim prefix="(" suffix=")" suffixOverrides=",">
serve_id,
serve_type,
serve_url,
short_url,
book_group_id,
create_user,
create_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{serveId,jdbcType=BIGINT},
#{serveType,jdbcType=VARCHAR},
#{serveUrl,jdbcType=VARCHAR},
#{shortUrl,jdbcType=VARCHAR},
#{bookGroupId,jdbcType=BIGINT},
#{createUser,jdbcType=INTEGER},
NOW()
</trim>
</insert>
<!--批量插入-->
<insert id="batchInsert" parameterType="com.pcloud.book.group.entity.BookGroupServe" useGeneratedKeys="true" keyProperty="id">
insert into book_group_serve (
serve_id,
serve_type,
serve_url,
short_url,
book_group_id,
create_user,
create_time
) values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.serveId,jdbcType=BIGINT},
#{item.serveType,jdbcType=VARCHAR},
#{item.serveUrl,jdbcType=VARCHAR},
#{item.shortUrl,jdbcType=VARCHAR},
#{item.bookGroupId,jdbcType=BIGINT},
#{item.createUser,jdbcType=INTEGER},
NOW()
)
</foreach>
</insert>
<!--删除-->
<delete id="deleteById" parameterType="long">
delete from book_group_serve
where id=#{id}
</delete>
<!--根据社群书id获取集合-->
<select id="getListByBookGroupId" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from book_group_serve
where book_group_id=#{bookGroupId}
</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