Commit 6c476773 by 吴博

feat: [1003342] 第三方活码群走文章素材流程

parent db5bea5c
...@@ -356,7 +356,7 @@ public class BookConstant { ...@@ -356,7 +356,7 @@ public class BookConstant {
public static final Long[] UAT_ADVISERS = new Long[]{12829L}; public static final Long[] UAT_ADVISERS = new Long[]{12829L};
public static final Long[] TEST_ADVISERS = new Long[]{1404L,1001195L}; public static final Long[] TEST_ADVISERS = new Long[]{1404L, 1001195L};
public static final String HANZI = "哈或"; public static final String HANZI = "哈或";
...@@ -365,4 +365,13 @@ public class BookConstant { ...@@ -365,4 +365,13 @@ public class BookConstant {
public static final Integer countryAreaCode = 0; public static final Integer countryAreaCode = 0;
public static final String NO_RESOURCE_REMIND = "no_resource_remind"; public static final String NO_RESOURCE_REMIND = "no_resource_remind";
/**
* 群二维码永久图文素材,html 源代码
*/
public static final String GROUP_QRCODE_NEWS_MATERIAL_HTML = "<div style=\"margin:10px 0;box-sizing: border-box;\"><header style=\"display: flex;padding:0 20px;\">" +
"<img style=\"width: 64px;height: 64px;\" src=\"${groupHeadImg}\" alt=\"\"><div style=\"display: flex;flex: 1;align-items: center;margin-left:10px;" +
"color:#000;font-size: 16px;font-weight: bold;\"> ${groupName}</div></header><div style=\"padding:10px 20px;\"> <p style=\"margin: 10px 0 20px;text-align:center;\">" +
" <span style=\"padding:2px 35px;background-color: #dbf5d9;color:#5bc341;border-radius: 35px;\">\uD83D\uDC47长按识别下面二维码</span> </p>" +
"<img style=\"width:100%;\" src=\"${qrcodeUrl}\" alt=\"\"></div></div>";
} }
...@@ -55,7 +55,7 @@ import com.pcloud.book.group.vo.TotalRescourceDataVO; ...@@ -55,7 +55,7 @@ import com.pcloud.book.group.vo.TotalRescourceDataVO;
import com.pcloud.book.group.vo.UserBookInfoVO; import com.pcloud.book.group.vo.UserBookInfoVO;
import com.pcloud.book.group.vo.WxGroupStatisticVO; import com.pcloud.book.group.vo.WxGroupStatisticVO;
import com.pcloud.book.keywords.vo.ListKeywordVO; import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.common.dto.StoreFlowInfoDto; import com.pcloud.common.dto.StoreFlowInfoDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
...@@ -918,5 +918,7 @@ public interface BookGroupBiz { ...@@ -918,5 +918,7 @@ public interface BookGroupBiz {
*/ */
Map<String, BookGroupServeCountDTO> mapBookGroupQrcodeServeCount(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds, Integer groupType); Map<String, BookGroupServeCountDTO> mapBookGroupQrcodeServeCount(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds, Integer groupType);
String getGroupNewsMaterialById(Long bookGroupQrcodeId, Long classifyId); String getGroupNewsMaterialById(Long bookGroupQrcodeId, Long classifyId, Integer useType, Long groupActivityId);
String updateMediaId4Activity(String url, PcloudGroupActivity pcloudGroupActivity);
} }
...@@ -11,7 +11,8 @@ public interface GroupMaterialAccountBiz { ...@@ -11,7 +11,8 @@ public interface GroupMaterialAccountBiz {
/** /**
* 获取一个新增/更新永久图文素材未达限制的公众号 * 获取一个新增/更新永久图文素材未达限制的公众号
* @param value
*/ */
GroupMaterialAccount getActiveAccount(); GroupMaterialAccount getActiveAccount(Integer value);
} }
...@@ -16,6 +16,7 @@ import com.pcloud.book.applet.entity.AppletGroupSearchRecord; ...@@ -16,6 +16,7 @@ import com.pcloud.book.applet.entity.AppletGroupSearchRecord;
import com.pcloud.book.applet.entity.AppletUserBookcase; import com.pcloud.book.applet.entity.AppletUserBookcase;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz; import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.dao.BookAdviserDao; import com.pcloud.book.book.dao.BookAdviserDao;
import com.pcloud.book.book.dao.BookDao; import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dao.BookLabelDao; import com.pcloud.book.book.dao.BookLabelDao;
...@@ -130,6 +131,7 @@ import com.pcloud.book.group.enums.ChangeOriginTypeEnum; ...@@ -130,6 +131,7 @@ import com.pcloud.book.group.enums.ChangeOriginTypeEnum;
import com.pcloud.book.group.enums.CipherTypeEnum; import com.pcloud.book.group.enums.CipherTypeEnum;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.enums.LargeTempletEnum; import com.pcloud.book.group.enums.LargeTempletEnum;
import com.pcloud.book.group.enums.UseTypeEnum;
import com.pcloud.book.group.mapper.GroupMaterialAccountMapper; import com.pcloud.book.group.mapper.GroupMaterialAccountMapper;
import com.pcloud.book.group.set.GroupSet; import com.pcloud.book.group.set.GroupSet;
import com.pcloud.book.group.tools.BookExcelReader; import com.pcloud.book.group.tools.BookExcelReader;
...@@ -170,6 +172,8 @@ import com.pcloud.book.record.entity.BookBrowseRecord; ...@@ -170,6 +172,8 @@ import com.pcloud.book.record.entity.BookBrowseRecord;
import com.pcloud.book.rightsSetting.biz.RightsSettingBiz; import com.pcloud.book.rightsSetting.biz.RightsSettingBiz;
import com.pcloud.book.rightsSetting.constants.RightsSettingConstant; import com.pcloud.book.rightsSetting.constants.RightsSettingConstant;
import com.pcloud.book.rightsSetting.dto.RightsSettingDto; import com.pcloud.book.rightsSetting.dto.RightsSettingDto;
import com.pcloud.book.skill.biz.PcloudGroupActivityBiz;
import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.book.util.properties.BookProps; import com.pcloud.book.util.properties.BookProps;
import com.pcloud.channelcenter.base.constants.ChannelConstants; import com.pcloud.channelcenter.base.constants.ChannelConstants;
...@@ -421,6 +425,8 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -421,6 +425,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
private GroupMaterialAccountBiz groupMaterialAccountBiz; private GroupMaterialAccountBiz groupMaterialAccountBiz;
@Autowired @Autowired
private GroupMaterialAccountMapper groupMaterialAccountMapper; private GroupMaterialAccountMapper groupMaterialAccountMapper;
@Autowired
private PcloudGroupActivityBiz pcloudGroupActivityBiz;
private static final ThreadPoolExecutor PLATFORM_STATISTICS_EXPORT_THREAD = new ThreadPoolExecutor(2, 2, private static final ThreadPoolExecutor PLATFORM_STATISTICS_EXPORT_THREAD = new ThreadPoolExecutor(2, 2,
0, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), 0, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),
...@@ -429,7 +435,7 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -429,7 +435,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
@Override @Override
@SneakyThrows @SneakyThrows
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String updateNoISBNBookGeneratorQrcode( MultipartFile file ) { public String updateNoISBNBookGeneratorQrcode(MultipartFile file) {
// 全局锁 // 全局锁
String key = CacheConstant.BOOK + "updateNoISBNBookGeneratorQrcode"; String key = CacheConstant.BOOK + "updateNoISBNBookGeneratorQrcode";
boolean setnx = JedisClusterUtils.setnx(key, "1"); boolean setnx = JedisClusterUtils.setnx(key, "1");
...@@ -5280,27 +5286,65 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -5280,27 +5286,65 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
@Override @Override
public String getGroupNewsMaterialById(Long bookGroupQrcodeId, Long classifyId) { public String getGroupNewsMaterialById(Long bookGroupQrcodeId, Long classifyId, Integer useType, Long groupActivityId) {
String mediaId = null;
if (bookGroupQrcodeId == null) { if (UseTypeEnum.NORMAL_GROUP.value.equals(useType)) {
// 切群,获取新切群的群二维码 if (bookGroupQrcodeId == null) {
String groupQrCode = groupQrcodeBiz.getChangeGroupQrCode(classifyId); // 切群,获取新切群的群二维码
// 通过群二维码反查 bookGroupQrcodeId String groupQrCode = groupQrcodeBiz.getChangeGroupQrCode(classifyId);
ClassifyQrcodeVO groupQrcodeInfo = groupQrcodeBiz.getGroupQrcodeInfo(groupQrCode, classifyId); // 通过群二维码反查 bookGroupQrcodeId
if (Objects.isNull(groupQrcodeInfo)) { ClassifyQrcodeVO groupQrcodeInfo = groupQrcodeBiz.getGroupQrcodeInfo(groupQrCode, classifyId);
throw new BookBizException(BookBizException.PARAM_IS_NULL, "未查询到分类下群二维码"); if (Objects.isNull(groupQrcodeInfo)) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "未查询到分类下群二维码");
}
bookGroupQrcodeId = groupQrcodeInfo.getId();
}
GroupQrcodeBaseInfoVO groupInfo = groupQrcodeDao.getBaseById(bookGroupQrcodeId);
GroupMaterialAccount activeAccount = groupMaterialAccountBiz.getActiveAccount(UseTypeEnum.NORMAL_GROUP.value);
mediaId = updateMediaId(groupInfo, activeAccount, bookGroupQrcodeId);
if (StrUtil.isBlank(mediaId)) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "未获取到图文素材链接");
}
} else if (UseTypeEnum.THIRD_GROUP.value.equals(useType)) {
PcloudGroupActivity pcloudGroupActivity = pcloudGroupActivityBiz.getById(groupActivityId);
if (null == pcloudGroupActivity || null == pcloudGroupActivity.getGroupType() || StringUtil.isEmpty(pcloudGroupActivity.getGroupExtLink())) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "pcloudGroupActivity或type为空");
}
mediaId = pcloudGroupActivity.getMediaId();
if (StringUtil.isEmpty(mediaId)) {
String link = pcloudGroupActivity.getGroupExtLink();
String url = QrcodeUtils.create(link);
mediaId = updateMediaId4Activity(url, pcloudGroupActivity);
} }
bookGroupQrcodeId = groupQrcodeInfo.getId();
} }
GroupQrcodeBaseInfoVO groupInfo = groupQrcodeDao.getBaseById(bookGroupQrcodeId); if (StringUtil.isEmpty(mediaId)) {
GroupMaterialAccount activeAccount = groupMaterialAccountBiz.getActiveAccount(); throw new BookBizException(BookBizException.PARAM_IS_NULL, "mediaId为空");
String mediaId = updateMediaId(groupInfo, activeAccount, bookGroupQrcodeId);
if (StrUtil.isBlank(mediaId)) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "未获取到图文素材链接");
} }
return ResponseHandleUtil.parseResponse(materialService.getGroupNewsMaterialByMediaId(mediaId), String.class); return ResponseHandleUtil.parseResponse(materialService.getGroupNewsMaterialByMediaId(mediaId), String.class);
} }
@Override
public String updateMediaId4Activity(String url, PcloudGroupActivity pcloudGroupActivity) {
GroupMaterialAccount account = groupMaterialAccountBiz.getActiveAccount(UseTypeEnum.THIRD_GROUP.value);
if (null == account) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "activeAccount为空,没有可用公众号");
}
GroupNewsMaterialAddDTO groupNewsMaterialAddDTO = new GroupNewsMaterialAddDTO();
groupNewsMaterialAddDTO.setAccountId(account.getAccountId());
groupNewsMaterialAddDTO.setCoverMediaId(account.getCoverMediaId());
groupNewsMaterialAddDTO.setGroupHeadImg(account.getHeadMediaId());
groupNewsMaterialAddDTO.setGroupName(pcloudGroupActivity.getName());
groupNewsMaterialAddDTO.setQrcodeUrl(url);
groupNewsMaterialAddDTO.setMediaId(pcloudGroupActivity.getMediaId());
groupNewsMaterialAddDTO.setHtml(BookConstant.GROUP_QRCODE_NEWS_MATERIAL_HTML);
String mediaId = ResponseHandleUtil.parseResponse(materialService.getGroupNewsMaterial(groupNewsMaterialAddDTO), String.class);
if (null == pcloudGroupActivity.getMediaId()) {
pcloudGroupActivity.setMediaId(mediaId);
pcloudGroupActivityBiz.updateMediaId(pcloudGroupActivity);
}
return mediaId;
}
private String updateMediaId(GroupQrcodeBaseInfoVO groupInfo, GroupMaterialAccount account, Long bookGroupQrcodeId) { private String updateMediaId(GroupQrcodeBaseInfoVO groupInfo, GroupMaterialAccount account, Long bookGroupQrcodeId) {
if (groupInfo != null && account != null) { if (groupInfo != null && account != null) {
String mediaId = groupQrcodeDao.getMediaId(bookGroupQrcodeId); String mediaId = groupQrcodeDao.getMediaId(bookGroupQrcodeId);
......
...@@ -44,10 +44,10 @@ public class GroupMaterialAccountBizImpl implements GroupMaterialAccountBiz { ...@@ -44,10 +44,10 @@ public class GroupMaterialAccountBizImpl implements GroupMaterialAccountBiz {
@Override @Override
public GroupMaterialAccount getActiveAccount() { public GroupMaterialAccount getActiveAccount(Integer useType) {
// 查询未达到限制或者已达到限制但已经超过24小时的 // 查询未达到限制或者已达到限制但已经超过24小时的
Date yesterday = DateUtil.offsetDay(new Date(),-1).toJdkDate(); Date yesterday = DateUtil.offsetDay(new Date(), -1).toJdkDate();
List<GroupMaterialAccount> activeAccount = groupMaterialAccountMapper.getActiveAccount(yesterday); List<GroupMaterialAccount> activeAccount = groupMaterialAccountMapper.getActiveAccount(yesterday, useType);
return checkLimit(activeAccount); return checkLimit(activeAccount);
} }
......
...@@ -21,6 +21,7 @@ import com.pcloud.book.group.entity.WeixinQrcode; ...@@ -21,6 +21,7 @@ import com.pcloud.book.group.entity.WeixinQrcode;
import com.pcloud.book.group.entity.WeixinQrcodeGeneration; import com.pcloud.book.group.entity.WeixinQrcodeGeneration;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.enums.UpdateStatusEnum; import com.pcloud.book.group.enums.UpdateStatusEnum;
import com.pcloud.book.group.enums.UseTypeEnum;
import com.pcloud.book.group.mapper.GroupMaterialAccountMapper; import com.pcloud.book.group.mapper.GroupMaterialAccountMapper;
import com.pcloud.book.group.tools.Kit; import com.pcloud.book.group.tools.Kit;
import com.pcloud.book.group.tools.QrcodeTools; import com.pcloud.book.group.tools.QrcodeTools;
...@@ -211,7 +212,7 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz { ...@@ -211,7 +212,7 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz {
BeanUtils.copyProperties(updateQrDTO, updateQr); BeanUtils.copyProperties(updateQrDTO, updateQr);
promotionConsr.updateQrUrl(updateQr); promotionConsr.updateQrUrl(updateQr);
// 更新群的同时需要更新永久素材 // 更新群的同时需要更新永久素材
GroupMaterialAccount activeAccount = groupMaterialAccountBiz.getActiveAccount(); GroupMaterialAccount activeAccount = groupMaterialAccountBiz.getActiveAccount(UseTypeEnum.NORMAL_GROUP.value);
if (Objects.nonNull(activeAccount)) { if (Objects.nonNull(activeAccount)) {
updateMediaId(updateQrDTO, activeAccount); updateMediaId(updateQrDTO, activeAccount);
} }
......
package com.pcloud.book.group.enums;
public enum UseTypeEnum {
//普通社群
NORMAL_GROUP(0),
//第三方群
THIRD_GROUP(1);
public final Integer value;
UseTypeEnum(Integer value) {
this.value = value;
}
}
...@@ -767,10 +767,4 @@ public interface BookGroupFacade { ...@@ -767,10 +767,4 @@ public interface BookGroupFacade {
ResponseDto<?>updateBookServeTypeCode(); ResponseDto<?>updateBookServeTypeCode();
@ApiOperation(value = "通过 bookGroupQrcodeId 或者 classifyId 获取群二维码永久图文素材", httpMethod = "GET")
@RequestMapping(value = "/getGroupNewsMaterialById", method = RequestMethod.GET)
ResponseDto<?> getGroupNewsMaterialById(@CookieValue("userInfo") String userInfo,
@RequestParam(value = "bookGroupQrcodeId", required = false) Long bookGroupQrcodeId,
@RequestParam(value = "classifyId", required = false) Long classifyId) throws PermissionException;
} }
...@@ -15,6 +15,7 @@ import com.pcloud.book.group.entity.BookGroupClassify; ...@@ -15,6 +15,7 @@ import com.pcloud.book.group.entity.BookGroupClassify;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.WxWechatUserCorrelation; import com.pcloud.book.group.entity.WxWechatUserCorrelation;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.enums.UseTypeEnum;
import com.pcloud.book.group.facade.BookGroupFacade; import com.pcloud.book.group.facade.BookGroupFacade;
import com.pcloud.book.group.vo.BookGroupAnalysisParam; import com.pcloud.book.group.vo.BookGroupAnalysisParam;
import com.pcloud.book.group.vo.BookGroupAnalysisVO; import com.pcloud.book.group.vo.BookGroupAnalysisVO;
...@@ -1240,22 +1241,28 @@ public class BookGroupFacadeImpl implements BookGroupFacade { ...@@ -1240,22 +1241,28 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
@Override @Override
@GetMapping("updateBookServeTypeCode") @GetMapping("updateBookServeTypeCode")
public ResponseDto<?>updateBookServeTypeCode(){ public ResponseDto<?> updateBookServeTypeCode() {
bookGroupBiz.updateBookServeTypeCode(); bookGroupBiz.updateBookServeTypeCode();
return new ResponseDto<>(); return new ResponseDto<>();
} }
@Override
@ApiOperation(value = "通过 bookGroupQrcodeId 或者 classifyId 获取群二维码永久图文素材", httpMethod = "GET")
@RequestMapping(value = "/getGroupNewsMaterialById", method = RequestMethod.GET) @RequestMapping(value = "/getGroupNewsMaterialById", method = RequestMethod.GET)
public ResponseDto<?> getGroupNewsMaterialById(@CookieValue("userInfo") String userInfo, public ResponseDto<?> getGroupNewsMaterialById(@CookieValue("userInfo") String userInfo,
@RequestParam(value = "bookGroupQrcodeId", required = false) Long bookGroupQrcodeId, @RequestParam(value = "bookGroupQrcodeId", required = false) Long bookGroupQrcodeId,
@RequestParam(value = "classifyId", required = false) Long classifyId) throws PermissionException { @RequestParam(value = "classifyId", required = false) Long classifyId,
@RequestParam(value = "useType", required = false, defaultValue = "0") Integer useType,
@RequestParam(value = "groupActivityId", required = false) Long groupActivityId) throws PermissionException {
Cookie.getUserInfo(userInfo); Cookie.getUserInfo(userInfo);
if (bookGroupQrcodeId == null && classifyId == null) { if (UseTypeEnum.NORMAL_GROUP.value.equals(useType) && bookGroupQrcodeId == null && classifyId == null) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "classifyId 和 bookGroupQrcodeId 不可同时为空!"); throw new BookBizException(BookBizException.PARAM_IS_NULL, "useType == 0时 classifyId 和 bookGroupQrcodeId 不可同时为空!");
}
if (UseTypeEnum.THIRD_GROUP.value.equals(useType) && null == groupActivityId) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "useType == 1时 groupActivityId 不可为空!");
} }
Map<String,Object> map = new HashMap<>(1); Map<String, Object> map = new HashMap<>(1);
map.put("url",bookGroupBiz.getGroupNewsMaterialById(bookGroupQrcodeId,classifyId)); map.put("url", bookGroupBiz.getGroupNewsMaterialById(bookGroupQrcodeId, classifyId, useType, groupActivityId));
return new ResponseDto<>(map); return new ResponseDto<>(map);
} }
......
...@@ -70,7 +70,9 @@ public interface GroupMaterialAccountMapper { ...@@ -70,7 +70,9 @@ public interface GroupMaterialAccountMapper {
/** /**
* 获取一个新增/更新永久图文素材未达限制的公众号 * 获取一个新增/更新永久图文素材未达限制的公众号
*
* @param date * @param date
* @param useType
*/ */
List<GroupMaterialAccount> getActiveAccount(@Param("date") Date date); List<GroupMaterialAccount> getActiveAccount(@Param("date") Date date, @Param("useType") Integer useType);
} }
\ No newline at end of file
...@@ -106,4 +106,6 @@ public interface PcloudGroupActivityBiz { ...@@ -106,4 +106,6 @@ public interface PcloudGroupActivityBiz {
Map<Long, GroupActivity4AppletDTO> getByIds4Now(List<Long> groupIds); Map<Long, GroupActivity4AppletDTO> getByIds4Now(List<Long> groupIds);
PageBeanNew<AppletGroupManageDTO> getLocalGroup(Long wechatUserId, Integer numPerPage, Integer currentPage); PageBeanNew<AppletGroupManageDTO> getLocalGroup(Long wechatUserId, Integer numPerPage, Integer currentPage);
void updateMediaId(PcloudGroupActivity pcloudGroupActivity);
} }
...@@ -17,6 +17,7 @@ import com.pcloud.book.consumer.app.AssistTempletConsr; ...@@ -17,6 +17,7 @@ import com.pcloud.book.consumer.app.AssistTempletConsr;
import com.pcloud.book.consumer.label.LabelConsr; import com.pcloud.book.consumer.label.LabelConsr;
import com.pcloud.book.consumer.reader.ReaderConsr; import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.GroupQrcodeBiz; import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dao.BookClassifyBuyRecordDao; import com.pcloud.book.group.dao.BookClassifyBuyRecordDao;
import com.pcloud.book.group.dao.BookQrcodeUserDao; import com.pcloud.book.group.dao.BookQrcodeUserDao;
...@@ -38,6 +39,7 @@ import com.pcloud.book.skill.dto.GroupActivity4AppletDTO; ...@@ -38,6 +39,7 @@ import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.book.skill.dto.UpdateActivityShowStateDTO; import com.pcloud.book.skill.dto.UpdateActivityShowStateDTO;
import com.pcloud.book.skill.entity.PcloudGroupActivity; import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.skill.entity.PcloudSkill; import com.pcloud.book.skill.entity.PcloudSkill;
import com.pcloud.book.skill.enums.ActivityGroupTypeEnum;
import com.pcloud.book.skill.enums.SkillTypeEnum; import com.pcloud.book.skill.enums.SkillTypeEnum;
import com.pcloud.book.skill.facade.request.GroupActivityClassifyVO; import com.pcloud.book.skill.facade.request.GroupActivityClassifyVO;
import com.pcloud.book.skill.facade.request.GroupActivityShowStateVO; import com.pcloud.book.skill.facade.request.GroupActivityShowStateVO;
...@@ -51,6 +53,7 @@ import com.pcloud.common.page.PageBeanNew; ...@@ -51,6 +53,7 @@ import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.NumberUtil; import com.pcloud.common.utils.NumberUtil;
import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.httpclient.UrlUtils; import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.common.utils.string.StringUtilParent; import com.pcloud.common.utils.string.StringUtilParent;
...@@ -127,6 +130,8 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz { ...@@ -127,6 +130,8 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
private RightsSettingItemDetailDao rightsSettingItemDetailDao; private RightsSettingItemDetailDao rightsSettingItemDetailDao;
@Autowired @Autowired
private BookBrowseRecordBiz bookBrowseRecordBiz; private BookBrowseRecordBiz bookBrowseRecordBiz;
@Autowired
private BookGroupBiz bookGroupBiz;
@ParamLog("批量分类") @ParamLog("批量分类")
@Override @Override
...@@ -194,8 +199,8 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz { ...@@ -194,8 +199,8 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
//校验编号是否重复 //校验编号是否重复
if(!StringUtil.isEmpty(vo.getNumber())){ if(!StringUtil.isEmpty(vo.getNumber())){
Integer count = pcloudGroupActivityDao.getCountByNumber(vo.getNumber()); Integer count = pcloudGroupActivityDao.getCountByNumber(vo.getNumber());
if (count>0 && (!vo.getNumber().equals(activity.getNumber()))){ if (count > 0 && (!vo.getNumber().equals(activity.getNumber()))) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"参数有误,编号已存在!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数有误,编号已存在!");
} }
} }
PcloudGroupActivity entity = vo.getEntity(); PcloudGroupActivity entity = vo.getEntity();
...@@ -203,6 +208,12 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz { ...@@ -203,6 +208,12 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
entity.setUpdateUser(vo.getUserId()); entity.setUpdateUser(vo.getUserId());
entity.setUpdateTime(now); entity.setUpdateTime(now);
rightsSettingBiz.setClassifyAndLabel(entity); rightsSettingBiz.setClassifyAndLabel(entity);
if (ActivityGroupTypeEnum.THIRD_GROUP.value.equals(vo.getGroupType()) && !Objects.equals(activity.getGroupExtLink(), entity.getGroupExtLink())) {
String link = entity.getGroupExtLink();
String url = QrcodeUtils.create(link);
entity.setMediaId(activity.getMediaId());
bookGroupBiz.updateMediaId4Activity(url, entity);
}
pcloudGroupActivityDao.updateByPrimaryKeySelective(entity); pcloudGroupActivityDao.updateByPrimaryKeySelective(entity);
} }
...@@ -670,4 +681,10 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz { ...@@ -670,4 +681,10 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
} }
return pageBeanNew; return pageBeanNew;
} }
@Override
@ParamLog("修改mediaId")
public void updateMediaId(PcloudGroupActivity pcloudGroupActivity) {
pcloudGroupActivityDao.updateByPrimaryKeySelective(pcloudGroupActivity);
}
} }
...@@ -37,6 +37,17 @@ public class PcloudGroupActivity extends BaseTempletClassify { ...@@ -37,6 +37,17 @@ public class PcloudGroupActivity extends BaseTempletClassify {
private Integer isShow; private Integer isShow;
//微信素材id
private String mediaId;
public String getMediaId() {
return mediaId;
}
public void setMediaId(String mediaId) {
this.mediaId = mediaId;
}
public Integer getIsShow() { public Integer getIsShow() {
return isShow; return isShow;
} }
......
package com.pcloud.book.skill.enums;
public enum ActivityGroupTypeEnum {
NORMAL_GROUP(0),
THIRD_GROUP(1);
public final Integer value;
ActivityGroupTypeEnum(Integer value) {
this.value = value;
}
}
...@@ -69,14 +69,18 @@ ...@@ -69,14 +69,18 @@
</select> </select>
<select id="getActiveAccount" resultMap="GroupMaterialAccountMap"> <select id="getActiveAccount" resultMap="GroupMaterialAccountMap">
select id, select id,
account_id, account_id,
cover_media_id, cover_media_id,
head_media_id, head_media_id,
status, status,
create_time, create_time,
update_time update_time
from book.group_material_account from book.group_material_account
where status = 1 or (status = 0 and update_time <![CDATA[ < ]]> #{date}) where
(status = 1 or (status = 0 and update_time <![CDATA[ < ]]> #{date}))
<if test="useType != null">
and use_type = #{useType}
</if>
</select> </select>
<!--新增所有列--> <!--新增所有列-->
......
...@@ -24,12 +24,13 @@ ...@@ -24,12 +24,13 @@
<result column="second_classify" property="secondClassify" jdbcType="BIGINT" /> <result column="second_classify" property="secondClassify" jdbcType="BIGINT" />
<result column="grade_label_id" property="gradeLabelId" jdbcType="BIGINT" /> <result column="grade_label_id" property="gradeLabelId" jdbcType="BIGINT" />
<result column="subject_label_id" property="subjectLabelId" jdbcType="BIGINT" /> <result column="subject_label_id" property="subjectLabelId" jdbcType="BIGINT" />
<result column="media_id" property="mediaId" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, name, description, join_type, group_pic, pro_label_id, dep_label_id, id, name, description, join_type, group_pic, pro_label_id, dep_label_id,
pur_label_id, book_group_classify_id, pur_label_id, book_group_classify_id,
create_time, create_user, update_time, update_user, is_delete, create_time, create_user, update_time, update_user, is_delete,
first_classify, second_classify, grade_label_id, subject_label_id first_classify, second_classify, grade_label_id, subject_label_id,media_id
</sql> </sql>
<update id="batchUpdateClassify" parameterType="map"> <update id="batchUpdateClassify" parameterType="map">
...@@ -221,7 +222,7 @@ ...@@ -221,7 +222,7 @@
c.book_group_id AS bookGroupId, c.book_group_id AS bookGroupId,
d.related_book_group_id AS relatedBookGroupId, d.related_book_group_id AS relatedBookGroupId,
c.price AS price, c.price AS price,
a.group_type as grouType, a.group_type as groupType,
group_extLink as groupLink group_extLink as groupLink
FROM FROM
pcloud_group_activity a pcloud_group_activity a
...@@ -270,9 +271,10 @@ ...@@ -270,9 +271,10 @@
a.is_show, a.is_show,
a.number, a.number,
a.group_extLink, a.group_extLink,
a.group_type a.group_type,
a.media_id
FROM pcloud_group_activity a LEFT JOIN book_group_classify b ON a.book_group_classify_id = b.id FROM pcloud_group_activity a LEFT JOIN book_group_classify b ON a.book_group_classify_id = b.id
WHERE a.id = #{id,jdbcType=INTEGER} WHERE a.id = #{id,jdbcType=INTEGER} and a.is_delete = 0
</select> </select>
<!-- 立享权益加入 编辑端群 add by pansy 2020/7/2 --> <!-- 立享权益加入 编辑端群 add by pansy 2020/7/2 -->
...@@ -324,7 +326,7 @@ ...@@ -324,7 +326,7 @@
a.second_classify AS secondClassify, a.second_classify AS secondClassify,
a.grade_label_id AS gradeLabelId, a.grade_label_id AS gradeLabelId,
a.subject_label_id AS subjectLabelId, a.subject_label_id AS subjectLabelId,
c.price AS price, IFNULL(case c.price when a.group_type = 1 then 0 else c.price END, 0) price,
d.related_book_group_id relatedBookGroupId, d.related_book_group_id relatedBookGroupId,
a.group_type as groupType, a.group_type as groupType,
a.group_extLink groupLink, a.group_extLink groupLink,
...@@ -478,13 +480,16 @@ ...@@ -478,13 +480,16 @@
is_show = #{isShow,jdbcType=BIT}, is_show = #{isShow,jdbcType=BIT},
</if> </if>
<if test="number !=null"> <if test="number !=null">
number = #{number,jdbcType=VARCHAR}, number = #{number,jdbcType=VARCHAR},
</if> </if>
<if test="groupExtLink !=null"> <if test="groupExtLink !=null">
group_extLink = #{groupExtLink,jdbcType=VARCHAR}, group_extLink = #{groupExtLink,jdbcType=VARCHAR},
</if> </if>
<if test="groupType !=null"> <if test="groupType !=null">
group_type = #{groupType,jdbcType=BIT}, group_type = #{groupType,jdbcType=BIT},
</if>
<if test="mediaId !=null">
media_id = #{mediaId,jdbcType=VARCHAR},
</if> </if>
first_classify = #{firstClassify,jdbcType=BIGINT}, first_classify = #{firstClassify,jdbcType=BIGINT},
second_classify = #{secondClassify,jdbcType=BIGINT}, second_classify = #{secondClassify,jdbcType=BIGINT},
...@@ -512,7 +517,11 @@ ...@@ -512,7 +517,11 @@
second_classify = #{secondClassify,jdbcType=BIGINT}, second_classify = #{secondClassify,jdbcType=BIGINT},
grade_label_id = #{gradeLabelId,jdbcType=BIGINT}, grade_label_id = #{gradeLabelId,jdbcType=BIGINT},
subject_label_id = #{subjectLabelId,jdbcType=BIGINT}, subject_label_id = #{subjectLabelId,jdbcType=BIGINT},
is_show = #{isShow,jdbcType=BIT} is_show = #{isShow,jdbcType=BIT},
group_type = #{groupType},
group_extLink = #{groupExtLink},
number = #{number},
media_Id = #{mediaId}
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
...@@ -535,7 +544,7 @@ ...@@ -535,7 +544,7 @@
a.group_pic AS groupPic, a.group_pic AS groupPic,
c.classify AS classifyName, c.classify AS classifyName,
b.user_number userNumber, b.user_number userNumber,
b.classify_id classifyId, a.book_group_classify_id classifyId,
c.book_group_id bookGroupId, c.book_group_id bookGroupId,
a.first_classify AS firstClassify, a.first_classify AS firstClassify,
a.second_classify AS secondClassify, a.second_classify AS secondClassify,
......
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