Commit cc2846b1 by 郑勇

feat-zy-1002770 平台端个人号分类设置启用开关

parent c44376a0
......@@ -28,4 +28,7 @@ public class RobotClassifyDTO {
@ApiModelProperty("分类图片")
private String qrcodeUrl;
//是否开启(0-关闭,1-开启)
private Integer openStatus;
}
......@@ -3,6 +3,7 @@ package com.pcloud.book.pcloudKeyword.service;
import com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.ResponseHandleUtil;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
......@@ -75,4 +76,9 @@ public interface PcloudRobotService {
@GetMapping("getClassifyInfo")
public ResponseEntity<ResponseDto<RobotClassifyDTO>> getClassifyInfo(@RequestParam("robotType") @ApiParam("小号分类") Long robotType);
@ApiOperation("获取已开启小睿分类对应的图书分类")
@GetMapping("getOpenTempletIds")
public ResponseEntity<ResponseDto<List<Long>>> getOpenTempletIds();
}
......@@ -12,9 +12,12 @@ import com.pcloud.book.applet.entity.AppletBooklist;
import com.pcloud.book.applet.entity.AppletBooklistClassify;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.dao.BookRaysClassifyDao;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.BookRaysClassify;
import com.pcloud.book.consumer.app.AssistTempletConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils;
......@@ -50,6 +53,8 @@ public class AppletBooklistBizImpl implements AppletBooklistBiz {
private AssistTempletConsr assistTempletConsr;
@Autowired
private BookBiz bookBiz;
@Autowired
private BookRaysClassifyDao bookRaysClassifyDao;
@Override
......@@ -172,8 +177,16 @@ public class AppletBooklistBizImpl implements AppletBooklistBiz {
private void fillAgentTempletName(List<BookDTO4Booklist> list) {
List<Long> adviserIds=list.stream().filter(s->s.getAdviserId()!=null).map(BookDTO4Booklist::getAdviserId).distinct().collect(Collectors.toList());
List<Long> classifyTempletIds = list.stream().filter(s -> s.getJoinGroupType() != null && JoinGroupTypeEnum.XIAORUI.getCode().equals(s.getJoinGroupType())).map(s -> s.getTempletId()).distinct().collect(Collectors.toList());
Map<Long, AdviserBaseInfoDto> infoDtoMap = adviserConsr.getAdviserId2AdviserInfoDtoMap(adviserIds);
List<Long> templetIds = new ArrayList<>();
Map<Integer,Integer> classifyMap=new HashMap<>();
if(!ListUtils.isEmpty(classifyTempletIds)){
List<BookRaysClassify> listByIds = bookRaysClassifyDao.getClassifyListByIds(classifyTempletIds);
if(!ListUtils.isEmpty(listByIds)){
classifyMap=listByIds.stream().collect(Collectors.toMap(a->a.getBookTemplateId(),a->a.getRaysClassifyId(),(k1,k2)->k2));
}
}
list.forEach(dto4Booklist -> {
if (Objects.nonNull(dto4Booklist.getTempletId())) {
templetIds.add(dto4Booklist.getTempletId());
......@@ -183,7 +196,7 @@ public class AppletBooklistBizImpl implements AppletBooklistBiz {
}
});
Map<Long, AssistTempletDTO> assistTempletDTOMap = assistTempletConsr.mapByIds(templetIds);
list.forEach(dto4Booklist -> {
for (BookDTO4Booklist dto4Booklist : list) {
Long secondTempletId = dto4Booklist.getSecondTempletId();
Long templetId = dto4Booklist.getTempletId();
if (secondTempletId!=null&&assistTempletDTOMap!=null) {
......@@ -201,7 +214,10 @@ public class AppletBooklistBizImpl implements AppletBooklistBiz {
dto4Booklist.setAgentName(infoDto.getAgentName());
}
}
});
if (!MapUtils.isEmpty(classifyMap) && null!=dto4Booklist.getTempletId() && classifyMap.containsKey(dto4Booklist.getTempletId().intValue())){
dto4Booklist.setClassifyId(classifyMap.get(dto4Booklist.getTempletId().intValue()));
}
}
}
@Override
......
......@@ -52,4 +52,8 @@ public class BookDTO4Booklist extends BaseDto {
private String isbn;
@ApiModelProperty("唯一编号")
private String uniqueNumber;
@ApiModelProperty("小睿分类编号")
private Integer classifyId;
@ApiModelProperty("进群方式")
private Integer joinGroupType;
}
......@@ -16,4 +16,6 @@ public interface BookRaysClassifyDao extends BaseDao<BookRaysClassify> {
Long getClassifyIdByBookTemplateId(Long bookTemplateId);
List<BookRaysClassify> getClassifyListByIds(List<Long> bookTemplateIds);
}
\ No newline at end of file
......@@ -6,6 +6,10 @@ import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Repository("bookRaysClassifyDao")
public class BookRaysClassifyDaoImpl extends BaseDaoImpl<BookRaysClassify> implements BookRaysClassifyDao {
......@@ -13,4 +17,11 @@ public class BookRaysClassifyDaoImpl extends BaseDaoImpl<BookRaysClassify> imple
public Long getClassifyIdByBookTemplateId(Long bookTemplateId) {
return this.getSqlSession().selectOne("getClassifyIdByBookTemplateId", bookTemplateId);
}
@Override
public List<BookRaysClassify> getClassifyListByIds(List<Long> bookTemplateIds) {
Map<String,Object> map=new HashMap<>();
map.put("bookTemplateIds",bookTemplateIds);
return this.getSqlSession().selectList("getClassifyListByIds", map);
}
}
......@@ -4,6 +4,7 @@ import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dto.ClassifyWelcomeDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifyOpenStatusUpdateVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifySeqNumUpdateVO;
import com.pcloud.common.page.PageBeanNew;
......@@ -56,4 +57,8 @@ public interface PcloudRobotClassifyBiz {
RobotClassifyDTO getClassifyInfo(Long robotType);
PageBeanNew<PcloudRobotClassifyResponseVO> listClassifyByPage4Mini(Integer currentPage, Integer numPerPage);
void updateOpenStatus4RobotClassify(ClassifyOpenStatusUpdateVO vo);
List<Long> getOpenTempletIds();
}
......@@ -16,6 +16,7 @@ import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome;
import com.pcloud.book.pcloudkeyword.enums.PcloudGroupRobotTypeEnum;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO;
import com.pcloud.book.pcloudkeyword.set.PcloudRobotSet;
import com.pcloud.book.pcloudkeyword.vo.ClassifyOpenStatusUpdateVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifySeqNumUpdateVO;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
......@@ -71,6 +72,7 @@ public class PcloudRobotClassifyBizImpl implements PcloudRobotClassifyBiz {
PcloudRobotClassify classify = new PcloudRobotClassify();
classify.setClassifyName(classifyName);
classify.setIsDelete(0);
classify.setOpenStatus(1);
pcloudRobotClassifyDao.insert(classify);
String linkUrl = wechatLinkPrefix + "/group/info?classify_id=" + classify.getId();
String codeUrl = QrcodeUtils.create( UrlUtils.getShortUrl4Own(linkUrl));
......@@ -205,4 +207,14 @@ public class PcloudRobotClassifyBizImpl implements PcloudRobotClassifyBiz {
return pcloudRobotClassifyDao.getClassifyInfo(robotType);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateOpenStatus4RobotClassify(ClassifyOpenStatusUpdateVO vo) {
pcloudRobotClassifyDao.updateOpenStatus4RobotClassify(vo);
}
@Override
public List<Long> getOpenTempletIds() {
return pcloudRobotClassifyDao.getOpenTempletIds();
}
}
......@@ -3,6 +3,7 @@ package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifyOpenStatusUpdateVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifySeqNumUpdateVO;
import com.pcloud.common.core.dao.BaseDao;
......@@ -22,7 +23,12 @@ public interface PcloudRobotClassifyDao extends BaseDao<PcloudRobotClassify> {
*/
void updateSeqNum4RobotClassify(ClassifySeqNumUpdateVO vo);
void updateOpenStatus4RobotClassify(ClassifyOpenStatusUpdateVO vo);
void updateMiniAppQr(Long id, String url);
RobotClassifyDTO getClassifyInfo(Long robotType);
List<Long> getOpenTempletIds();
}
......@@ -4,6 +4,7 @@ import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotClassifyDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifyOpenStatusUpdateVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifySeqNumUpdateVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
......@@ -44,6 +45,11 @@ public class PcloudRobotClassifyDaoImpl extends BaseDaoImpl<PcloudRobotClassify>
}
@Override
public void updateOpenStatus4RobotClassify(ClassifyOpenStatusUpdateVO vo) {
getSessionTemplate().update(getStatement("updateOpenStatus4RobotClassify"), vo);
}
@Override
public void updateMiniAppQr(Long id, String url) {
Map<String,Object> map=new HashMap<>();
map.put("id",id);
......@@ -55,4 +61,9 @@ public class PcloudRobotClassifyDaoImpl extends BaseDaoImpl<PcloudRobotClassify>
public RobotClassifyDTO getClassifyInfo(Long robotType) {
return this.getSessionTemplate().selectOne(getStatement("getClassifyInfo"), robotType);
}
@Override
public List<Long> getOpenTempletIds() {
return this.getSessionTemplate().selectList(getStatement("getOpenTempletIds"));
}
}
......@@ -28,4 +28,7 @@ public class PcloudRobotClassify extends BaseEntity {
private Integer seqNum;
private String miniAppQr;
//是否开启(0-关闭,1-开启)
private Integer openStatus;
}
......@@ -5,6 +5,7 @@ import com.pcloud.book.pcloudkeyword.biz.PcloudRobotClassifyBiz;
import com.pcloud.book.pcloudkeyword.dto.ClassifyWelcomeDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifyOpenStatusUpdateVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifySeqNumUpdateVO;
import com.pcloud.common.dto.ResponseDto;
......@@ -100,6 +101,15 @@ public class PcloudRobotClassifyFacade {
return new ResponseDto<>();
}
@ApiOperation("更新小号分类是否开启")
@PostMapping("updateOpenStatus4RobotClassify")
public ResponseDto<?> updateOpenStatus4RobotClassify(@RequestHeader("token") String token, @RequestBody ClassifyOpenStatusUpdateVO vo) throws BizException, PermissionException {
Optional.ofNullable(vo).orElseThrow(() -> new BookBizException(BookBizException.ERROR, "参数不能为空"));
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudRobotClassifyBiz.updateOpenStatus4RobotClassify(vo);
return new ResponseDto<>();
}
@ApiOperation("测试sentry")
@GetMapping("testSentry")
public ResponseDto<?> testSentry() throws BizException {
......
......@@ -33,5 +33,8 @@ public class PcloudRobotClassifyResponseVO {
private String validRobotQrcodeUrl;
//是否开启(0-关闭,1-开启)
private Integer openStatus;
}
......@@ -130,5 +130,11 @@ public class PcloudRobotServiceImpl implements PcloudRobotService {
return ResponseHandleUtil.toResponse(pcloudRobotClassifyBiz.getClassifyInfo(robotType));
}
@Override
@GetMapping("getOpenTempletIds")
public ResponseEntity<ResponseDto<List<Long>>> getOpenTempletIds() {
return ResponseHandleUtil.toResponse(pcloudRobotClassifyBiz.getOpenTempletIds());
}
}
package com.pcloud.book.pcloudkeyword.vo;
import javax.validation.constraints.NotNull;
import lombok.Data;
@Data
public class ClassifyOpenStatusUpdateVO {
@NotNull(message = "分类id不能为空")
private Long id;
@NotNull(message = "是否开启不能为空")
private Integer openStatus;
}
......@@ -201,10 +201,12 @@
A.TEMPLET_ID templetId,
A.SECOND_TEMPLET_ID secondTempletId,
B.ISBN isbn,
CONCAT('BK',A.BOOK_ID) uniqueNumber
CONCAT('BK',A.BOOK_ID) uniqueNumber,
c.join_group_type joinGroupType
FROM
BOOK_ADVISER A
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND A.IS_DELETE = 0 AND B.IS_DELETE = 0
INNER JOIN book_group C ON A.BOOK_ID = C.BOOK_ID AND A.ADVISER_ID = C.create_user and A.CHANNEL_ID=C.CHANNEL_ID AND A.IS_DELETE = 0 AND C.IS_DELETE = 0
WHERE
A.BOOK_ID=#{bookId}
AND A.ADVISER_ID=#{adviserId}
......
......@@ -37,4 +37,14 @@
delete from book.book_rays_classify where id = #{id}
</delete>
<select id="getClassifyListByIds" parameterType="map" resultMap="BookRaysClassifyMap">
select book_template_id,rays_classify_id
from book_rays_classify
where book_template_id in
<foreach collection="bookTemplateIds" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
group by book_template_id
</select>
</mapper>
\ No newline at end of file
......@@ -12,6 +12,7 @@
<result column="is_open_push_h5url" property="isOpenPushH5url" jdbcType="INTEGER" />
<result column="seq_num" property="seqNum" jdbcType="INTEGER"/>
<result column="mimi_app_qr" property="miniAppQr" jdbcType="VARCHAR"/>
<result column="open_status" property="openStatus" jdbcType="INTEGER"/>
</resultMap>
<resultMap id="pageResultMap" type="com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO" >
......@@ -20,21 +21,24 @@
<result column="qrcode_url" property="qrcodeUrl" jdbcType="VARCHAR" />
<result column="seq_num" property="seqNum" jdbcType="INTEGER"/>
<result column="mini_app_content" property="miniAppContent" jdbcType="VARCHAR"/>
<result column="open_status" property="openStatus" jdbcType="INTEGER"/>
<!-- <association property="robotCount" column="id" fetchType="eager"
select="com.pcloud.book.pcloudkeyword.dao.impl.PcloudRobotDaoImpl.getRobotCountByClassifyId" />-->
</resultMap>
<sql id="Base_Column_List" >
id, classify_name, link_url, qrcode_url,keyword_classify_id, is_delete, welcome_duration,is_open_push_h5url, seq_num, mimi_app_qr
id, classify_name, link_url, qrcode_url,keyword_classify_id, is_delete, welcome_duration,is_open_push_h5url, seq_num, mimi_app_qr,open_status
</sql>
<insert id="insert" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify" useGeneratedKeys="true" keyProperty="id">
insert into pcloud_robot_classify (
classify_name,
is_delete
is_delete,
open_status
)
values (
#{classifyName,jdbcType=VARCHAR},
#{isDelete,jdbcType=INTEGER}
#{isDelete,jdbcType=INTEGER},
#{openStatus}
)
</insert>
......@@ -59,6 +63,9 @@
<if test="seqNum != null">
seq_num = #{seqNum},
</if>
<if test="openStatus != null">
open_status = #{openStatus},
</if>
</set>
where id=#{id}
</update>
......@@ -67,7 +74,8 @@
select
id, classify_name as classifyName,
plan_top_pic planTopPic,
plan_bottom_pic planBottomPic
plan_bottom_pic planBottomPic,
open_status openStatus
from pcloud_robot_classify where is_delete = 0
order by seq_num
</select>
......@@ -79,11 +87,11 @@
<select id="listClassifyByPage" resultMap="pageResultMap" parameterType="map">
select
id, classify_name, qrcode_url, seq_num, mimi_app_qr miniAppQr,mini_app_content
id, classify_name, qrcode_url, seq_num, mimi_app_qr miniAppQr,mini_app_content,open_status
from pcloud_robot_classify
where is_delete = 0
<if test="testShow!=null and testShow==false">
and classify_name!="质检测试类"
and open_status=1
</if>
order by seq_num
</select>
......@@ -106,6 +114,11 @@
set seq_num = #{seqNum} where id = #{id}
</update>
<update id="updateOpenStatus4RobotClassify" parameterType="com.pcloud.book.pcloudkeyword.vo.ClassifyOpenStatusUpdateVO">
update pcloud_robot_classify
set open_status = #{openStatus} where id = #{id}
</update>
<update id="updateMiniAppQr" parameterType="map">
update pcloud_robot_classify set mimi_app_qr = #{url} where id = id
</update>
......@@ -115,10 +128,18 @@
select
id classifyId,
classify_name classifyName,
qrcode_url qrcodeUrl
qrcode_url qrcodeUrl,
open_status openStatus
from
pcloud_robot_classify
where
id = #{robotType}
</select>
<select id="getOpenTempletIds" resultType="Long">
select DISTINCT a.book_template_id
FROM book_rays_classify a LEFT JOIN pcloud_robot_classify b
on a.rays_classify_id=b.id
where b.open_status=1
</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