Commit 2ff201a5 by 田超

Merge branch 'feature/1004042' into 'master'

feat: [1004042] 编辑创建RAYS码主流程优化

See merge request rays/pcloud-book!1108
parents 77336bf3 23df98c4
...@@ -9,17 +9,17 @@ package com.pcloud.book.group.enums; ...@@ -9,17 +9,17 @@ package com.pcloud.book.group.enums;
public enum QrcodeJumpType { public enum QrcodeJumpType {
/** /**
* 进小程序-书僮小睿 * 进小程序-书僮小睿 /t-3/
*/ */
APPLET_XIAORUI(1, "书僮小睿"), APPLET_XIAORUI(1, "书僮小睿"),
/** /**
* 进小程序-书晓 * 进小程序-书晓 /t-4/
*/ */
APPLET_SHUXIAO(2, "书晓"), APPLET_SHUXIAO(2, "书晓"),
/** /**
* 进h5-书僮小睿小程序码/跳转按钮 * 进h5-书僮小睿小程序码/跳转按钮 /t-5/
*/ */
H5_XIAORUI(3, "书僮小睿小程序码/跳转按钮"), H5_XIAORUI(3, "书僮小睿小程序码/跳转按钮"),
...@@ -28,13 +28,17 @@ public enum QrcodeJumpType { ...@@ -28,13 +28,17 @@ public enum QrcodeJumpType {
*/ */
H5_ENTERPRISE_WECHAT(4,"企业微信活码"), H5_ENTERPRISE_WECHAT(4,"企业微信活码"),
/** /**
* 进h5-出版社公众号二维码 * 进h5-出版社公众号二维码 /t-6/
*/ */
H5_OFFICIAL_ACCOUNTS(5,"出版社公众号二维码"), H5_OFFICIAL_ACCOUNTS(5,"出版社公众号二维码"),
/** /**
* 进h5-自定义链接 * 进h5-自定义链接
*/ */
H5_SELF_URL(6,"自定义链接"); H5_SELF_URL(6,"自定义链接"),
/**
* 进h5-资源页 /t-7/
*/
H5_RESOURCE(7,"资源页");
private final Integer code; private final Integer code;
......
...@@ -9,6 +9,7 @@ import com.pcloud.book.group.dto.BackgroundGroupQrcodeDTO; ...@@ -9,6 +9,7 @@ import com.pcloud.book.group.dto.BackgroundGroupQrcodeDTO;
import com.pcloud.book.group.dto.BookAppletSceneDTO; import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.book.group.dto.BookGroupClassifyDTO; import com.pcloud.book.group.dto.BookGroupClassifyDTO;
import com.pcloud.book.group.dto.BookGroupCountDTO; import com.pcloud.book.group.dto.BookGroupCountDTO;
import com.pcloud.book.group.dto.BookGroupCreateDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO; import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO;
import com.pcloud.book.group.dto.BookGroupSceneDTO; import com.pcloud.book.group.dto.BookGroupSceneDTO;
...@@ -1008,4 +1009,20 @@ public interface BookGroupBiz { ...@@ -1008,4 +1009,20 @@ public interface BookGroupBiz {
BackgroundGroupQrcodeDTO getBackgroundGroupQr(BackgroundGroupQrcodeDTO backgroundGroupQrcodeDTO); BackgroundGroupQrcodeDTO getBackgroundGroupQr(BackgroundGroupQrcodeDTO backgroundGroupQrcodeDTO);
List<BookServeDTO> getBookAndBookGroupServeIdsFive(Long adviserId, Long bookId, Long channelId); List<BookServeDTO> getBookAndBookGroupServeIdsFive(Long adviserId, Long bookId, Long channelId);
/**
* 书刊创建RAYS码-支持1对多
* @author:zhuyajie
* @date:2020/12/14 10:20
* * @param null
*/
BookGroup createBookGroup(BookGroupCreateDTO bookGroupCreateDTO);
/**
* 获取社群码下配的资源
* @author:zhuyajie
* @date:2020/12/16 17:55
* * @param null
*/
List<BookServeDTO> getServeListByBookGroupId(Long bookGroupId, Long channelId);
} }
...@@ -80,4 +80,11 @@ public interface BookGroupServeDao extends BaseDao<BookGroupServe> { ...@@ -80,4 +80,11 @@ public interface BookGroupServeDao extends BaseDao<BookGroupServe> {
*/ */
Map<String, BookGroupServeCountDTO> mapBookGroupQrcodeServeCount(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds, Integer joinGroupType); Map<String, BookGroupServeCountDTO> mapBookGroupQrcodeServeCount(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds, Integer joinGroupType);
/**
* 根据书刊查社群书配置资源
* @author:zhuyajie
* @date:2020/12/14 16:31
* * @param null
*/
List<BookGroupServe> getServeListByBook(Long bookId, Long channelId, Long adviserId);
} }
...@@ -151,4 +151,13 @@ public class BookGroupServeDaoImpl extends BaseDaoImpl<BookGroupServe> implement ...@@ -151,4 +151,13 @@ public class BookGroupServeDaoImpl extends BaseDaoImpl<BookGroupServe> implement
return getSessionTemplate().selectMap(getStatement("mapBookGroupQrcodeServeCount"), map, "bookChannelAdviserId"); return getSessionTemplate().selectMap(getStatement("mapBookGroupQrcodeServeCount"), map, "bookChannelAdviserId");
} }
} }
@Override
public List<BookGroupServe> getServeListByBook(Long bookId, Long channelId, Long adviserId) {
Map<String,Object> map = new HashMap<>();
map.put("adviserId", adviserId);
map.put("bookId", bookId);
map.put("channelId", channelId);
return getSessionTemplate().selectList(getStatement("getServeListByBook"), map);
}
} }
package com.pcloud.book.group.dto;
import com.pcloud.book.group.entity.BookGroup;
import javax.validation.constraints.NotNull;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.dto.BookGroupCreateDTO
* @Author zhuyajie
* @Description 社群码创建
* @Date 2020/12/14 10:10
* @Version 1.0
**/
@Data
public class BookGroupCreateDTO extends BookGroup {
@NotNull
@ApiModelProperty("书刊id")
private Long bookId;
@NotNull
@ApiModelProperty("渠道id")
private Long channelId;
@ApiModelProperty("编辑id")
private Long adviserId;
@NotNull
@ApiModelProperty("社群码类型(普通群、1v1、小睿码)")
private Integer joinGroupType;
@ApiModelProperty("小睿码跳转类型")
private Integer jumpType;
@ApiModelProperty("小睿码自定义跳转链接")
private String jumpUrl;
}
...@@ -2,6 +2,7 @@ package com.pcloud.book.group.facade; ...@@ -2,6 +2,7 @@ package com.pcloud.book.group.facade;
import com.pcloud.book.book.dto.MapResourceTotalCountDTO; import com.pcloud.book.book.dto.MapResourceTotalCountDTO;
import com.pcloud.book.group.dto.BookAppletSceneDTO; import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.book.group.dto.BookGroupCreateDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.ChangeQrCodeTypeDto; import com.pcloud.book.group.dto.ChangeQrCodeTypeDto;
import com.pcloud.book.group.dto.SelfBookGroupStParamDTO; import com.pcloud.book.group.dto.SelfBookGroupStParamDTO;
...@@ -33,6 +34,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -33,6 +34,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.JsonParseException;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
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;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -811,4 +813,8 @@ public interface BookGroupFacade { ...@@ -811,4 +813,8 @@ public interface BookGroupFacade {
@ApiOperation("根据社群书id获取公众号二维码信息(H5跳公众号流程)") @ApiOperation("根据社群书id获取公众号二维码信息(H5跳公众号流程)")
@GetMapping("getSceneQrcodeByBookGroupId") @GetMapping("getSceneQrcodeByBookGroupId")
ResponseDto<?> getSceneQrcodeByBookGroupId(@RequestParam("bookGroupId") Long bookGroupId); ResponseDto<?> getSceneQrcodeByBookGroupId(@RequestParam("bookGroupId") Long bookGroupId);
@ApiOperation("书刊创建RAYS码-支持1对多")
@PostMapping("createBookGroup")
ResponseDto<?> createBookGroup(@RequestHeader("token") String token, @RequestBody @Validated BookGroupCreateDTO bookGroupCreateDTO);
} }
...@@ -7,6 +7,7 @@ import com.pcloud.book.group.biz.BookGroupClassifyBiz; ...@@ -7,6 +7,7 @@ import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.dao.BookGroupDao; import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dto.BackgroundGroupQrcodeDTO; import com.pcloud.book.group.dto.BackgroundGroupQrcodeDTO;
import com.pcloud.book.group.dto.BookAppletSceneDTO; import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.book.group.dto.BookGroupCreateDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.ChangeQrCodeTypeDto; import com.pcloud.book.group.dto.ChangeQrCodeTypeDto;
import com.pcloud.book.group.dto.GroupStoreMyPayDto; import com.pcloud.book.group.dto.GroupStoreMyPayDto;
...@@ -1091,6 +1092,7 @@ public class BookGroupFacadeImpl implements BookGroupFacade { ...@@ -1091,6 +1092,7 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
return new ResponseDto<>(null == pageBean ? new PageBeanNew<>() : pageBean); return new ResponseDto<>(null == pageBean ? new PageBeanNew<>() : pageBean);
} }
@Override
@ApiOperation("获取1v1关联社群书列表") @ApiOperation("获取1v1关联社群书列表")
@RequestMapping(value = "getAssocBookGroupByAppInfo", method = RequestMethod.GET) @RequestMapping(value = "getAssocBookGroupByAppInfo", method = RequestMethod.GET)
public ResponseDto<PageBeanNew<BookGroupDTO>> getAssocBookGroupByAppInfo( public ResponseDto<PageBeanNew<BookGroupDTO>> getAssocBookGroupByAppInfo(
...@@ -1340,4 +1342,12 @@ public class BookGroupFacadeImpl implements BookGroupFacade { ...@@ -1340,4 +1342,12 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
public ResponseDto<?> getSceneQrcodeByBookGroupId(@RequestParam("bookGroupId") Long bookGroupId){ public ResponseDto<?> getSceneQrcodeByBookGroupId(@RequestParam("bookGroupId") Long bookGroupId){
return new ResponseDto<>(bookGroupBiz.getSceneQrcodeByBookGroupId(bookGroupId)); return new ResponseDto<>(bookGroupBiz.getSceneQrcodeByBookGroupId(bookGroupId));
} }
@Override
@PostMapping("createBookGroup")
public ResponseDto<?> createBookGroup(@RequestHeader("token") String token, @RequestBody @Validated BookGroupCreateDTO bookGroupCreateDTO){
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
bookGroupCreateDTO.setAdviserId(adviserId);
return new ResponseDto<>(bookGroupBiz.createBookGroup(bookGroupCreateDTO));
}
} }
...@@ -55,6 +55,8 @@ import com.pcloud.book.group.dao.BookGroupDao; ...@@ -55,6 +55,8 @@ import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookServeDTO; import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.enums.AppAndProductTypeEnum; import com.pcloud.book.group.enums.AppAndProductTypeEnum;
import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.enums.QrcodeJumpType;
import com.pcloud.book.group.tools.SendWeixinRequestTools; import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.ClassifyQrcodeVO; import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.push.dao.PersonalAppletsDao; import com.pcloud.book.push.dao.PersonalAppletsDao;
...@@ -1866,7 +1868,18 @@ public class RightsSettingBizImpl implements RightsSettingBiz { ...@@ -1866,7 +1868,18 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
qrcodeMessage4WechatVO.setBookCoverImg(bookDto.getCoverImg()); qrcodeMessage4WechatVO.setBookCoverImg(bookDto.getCoverImg());
qrcodeMessage4WechatVO.setReaderInfo(Lists.newArrayList()); qrcodeMessage4WechatVO.setReaderInfo(Lists.newArrayList());
List<WechatMessageVO> messages = new ArrayList<>(); List<WechatMessageVO> messages = new ArrayList<>();
List<BookServeDTO> bookServeVOS = bookGroupBiz.getBookAndBookGroupServeIds(adviserId, bookId, channelId); List<BookServeDTO> bookServeVOS;
if (JoinGroupTypeEnum.XIAORUI.getCode().equals(bookGroupDTO.getJoinGroupType())
&& QrcodeJumpType.H5_RESOURCE.getCode().equals(bookGroupDTO.getJumpType())){
//获取该码下配的资源
bookServeVOS = bookGroupBiz.getServeListByBookGroupId(bookGroupId, channelId);
} else {
//获取本书资源
bookServeVOS = bookGroupBiz.getBookAndBookGroupServeIds(adviserId, bookId, channelId);
}
if (ListUtils.isEmpty(bookServeVOS)) {
return qrcodeMessage4WechatVO;
}
//填充作品应用 //填充作品应用
bookGroupBiz.fillBookServe(bookServeVOS); bookGroupBiz.fillBookServe(bookServeVOS);
if (ListUtils.isEmpty(bookServeVOS)) { if (ListUtils.isEmpty(bookServeVOS)) {
......
...@@ -81,6 +81,7 @@ ...@@ -81,6 +81,7 @@
LEFT JOIN book_group d ON d.BOOK_ID = a.BOOK_ID and d.create_user=c.adviser_id and d.channel_id=c.channel_id AND d.IS_DELETE = 0 LEFT JOIN book_group d ON d.BOOK_ID = a.BOOK_ID and d.create_user=c.adviser_id and d.channel_id=c.channel_id AND d.IS_DELETE = 0
LEFT JOIN rights_setting r ON c.rights_setting_id = r.id AND d.join_group_type=4 and r.show_state = 1 and r.rights_setting_type = 2 LEFT JOIN rights_setting r ON c.rights_setting_id = r.id AND d.join_group_type=4 and r.show_state = 1 and r.rights_setting_type = 2
WHERE c.wechat_user_id=#{wechatUserId} WHERE c.wechat_user_id=#{wechatUserId}
GROUP BY c.book_id,a.ADVISER_ID,c.channel_id
ORDER BY c.create_time DESC, d.id desc ORDER BY c.create_time DESC, d.id desc
</select> </select>
......
...@@ -612,9 +612,8 @@ ...@@ -612,9 +612,8 @@
FROM FROM
BOOK_ADVISER A BOOK_ADVISER A
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND B.IS_DELETE = 0 INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND B.IS_DELETE = 0
LEFT JOIN book_group G on G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID AND G.IS_DELETE = 0
WHERE WHERE
A.ADVISER_ID = #{adviserId} AND A.IS_DELETE = 0 AND G.ID IS NULL A.ADVISER_ID = #{adviserId} AND A.IS_DELETE = 0
<if test="name != null"> <if test="name != null">
AND AND
(B.BOOK_NAME LIKE CONCAT('%', #{name}, '%') OR B.ISBN LIKE CONCAT(#{name},'%') OR CONCAT('BK',A.BOOK_ID) = #{name}) (B.BOOK_NAME LIKE CONCAT('%', #{name}, '%') OR B.ISBN LIKE CONCAT(#{name},'%') OR CONCAT('BK',A.BOOK_ID) = #{name})
......
...@@ -261,4 +261,29 @@ ...@@ -261,4 +261,29 @@
</foreach> </foreach>
GROUP BY bg.book_id,bg.create_user,bg.channel_id GROUP BY bg.book_id,bg.create_user,bg.channel_id
</select> </select>
<select id="getServeListByBook" parameterType="map" resultMap="BaseResultMap">
SELECT
s.id,
s.serve_id,
s.serve_type,
s.serve_url,
s.short_url,
s.book_group_id,
s.create_user,
s.create_time,
s.type_code
FROM
book_group_serve s
LEFT JOIN book_group g ON s.book_group_id = g.id
WHERE
g.book_id = #{bookId}
AND g.channel_id = #{channelId}
AND g.create_user = #{adviserId}
GROUP BY
s.serve_id
ORDER BY
s.id
</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