|
|
@@ -1,6 +1,9 @@
|
|
|
package com.tzld.piaoquan.api.service.wecom.thirdparty.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.tzld.piaoquan.api.common.enums.ExceptionEnum;
|
|
|
+import com.tzld.piaoquan.api.common.enums.wecom.ConfigTaskContentTypeEnum;
|
|
|
+import com.tzld.piaoquan.api.common.exception.CommonException;
|
|
|
import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomConfigMapper;
|
|
|
import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomConfigTaskContentMapper;
|
|
|
import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomConfigTaskMapper;
|
|
|
@@ -18,6 +21,8 @@ import com.tzld.piaoquan.api.service.wecom.thirdparty.WeComThirdPartyService;
|
|
|
import com.tzld.piaoquan.growth.common.utils.DistributedIdGenerator;
|
|
|
import com.tzld.piaoquan.growth.common.utils.page.Page;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -196,7 +201,8 @@ public class WeComThirdPartyRoomServiceImpl implements WeComThirdPartyRoomServic
|
|
|
|
|
|
@Override
|
|
|
public void saveRoomConfig(ThirdPartyRoomConfigParam param) {
|
|
|
- // todo check param
|
|
|
+ // check param
|
|
|
+ checkRoomConfigParam(param);
|
|
|
ThirdPartWeComRoomConfig config = getRoomConfig(param.getRoomId());
|
|
|
if (Objects.nonNull(config)) {
|
|
|
config.setStatus(0);
|
|
|
@@ -238,4 +244,85 @@ public class WeComThirdPartyRoomServiceImpl implements WeComThirdPartyRoomServic
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void checkRoomConfigParam(ThirdPartyRoomConfigParam param) {
|
|
|
+ if (Objects.isNull(param.getRoomId())) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "群id不能为空");
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(param.getPutScene())) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "推送场景不能为空");
|
|
|
+ }
|
|
|
+ if (Objects.isNull(param.getPrimaryThirdStaffId())) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "主推送人员不能为空");
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(param.getTaskList())) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "任务列表不能为空");
|
|
|
+ }
|
|
|
+ for (ThirdPartyRoomConfigTaskParam task : param.getTaskList()) {
|
|
|
+ if (Objects.nonNull(task.getRandomMin())) {
|
|
|
+ if (task.getRandomMin() < 0) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "随机浮动分钟不能小于0");
|
|
|
+ } else if (task.getRandomMin() > 30) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "随机浮动分钟不能大于30");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(task.getContentList()) || task.getContentList().size() > 3) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "任务内容不能为空,最多3条");
|
|
|
+ }
|
|
|
+ for (ThirdPartyRoomConfigTaskContentParam content : task.getContentList()) {
|
|
|
+ if (Objects.isNull(content.getType())) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "任务内容类型不能为空");
|
|
|
+ }
|
|
|
+ if (content.getType() == ConfigTaskContentTypeEnum.TEXT.getVal()
|
|
|
+ && StringUtils.isBlank(content.getContent())) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "文案不能为空");
|
|
|
+ } else if (content.getType() == ConfigTaskContentTypeEnum.MINI_PROGRAM.getVal()
|
|
|
+ && Objects.isNull(content.getSource())) {
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "小程序来源不能为空");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void saveRoomConfig(ThirdPartWeComRoom room, ThirdPartyAccountConfigParam param) {
|
|
|
+ ThirdPartyRoomConfigParam roomConfigParam = buildRoomConfigParam(room, param);
|
|
|
+ saveRoomConfig(roomConfigParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ private ThirdPartyRoomConfigParam buildRoomConfigParam(ThirdPartWeComRoom room, ThirdPartyAccountConfigParam param) {
|
|
|
+ ThirdPartyRoomConfigParam roomConfigParam = new ThirdPartyRoomConfigParam();
|
|
|
+ roomConfigParam.setRoomId(room.getId());
|
|
|
+ roomConfigParam.setPutScene(param.getPutScene());
|
|
|
+ roomConfigParam.setChannel(param.getChannel());
|
|
|
+ roomConfigParam.setSwitchFlag(param.getSwitchFlag());
|
|
|
+ roomConfigParam.setOpenRoomSendSwitchNum(param.getOpenRoomSendSwitchNum());
|
|
|
+ roomConfigParam.setPrimaryThirdStaffId(param.getPrimaryThirdStaffId());
|
|
|
+ roomConfigParam.setPrimaryThirdStaffName(param.getPrimaryThirdStaffName());
|
|
|
+ roomConfigParam.setSecondThirdStaffId(param.getSecondThirdStaffId());
|
|
|
+ roomConfigParam.setSecondThirdStaffName(param.getSecondThirdStaffName());
|
|
|
+ List<ThirdPartyRoomConfigTaskParam> taskList = new ArrayList<>();
|
|
|
+ for (ThirdPartyAccountConfigTaskParam taskParam : param.getTaskList()) {
|
|
|
+ ThirdPartyRoomConfigTaskParam task = new ThirdPartyRoomConfigTaskParam();
|
|
|
+ task.setSwitchFlag(taskParam.getSwitchFlag());
|
|
|
+ task.setSendTime(taskParam.getSendTime());
|
|
|
+ task.setRandomMin(taskParam.getRandomMin());
|
|
|
+ task.setSeq(taskParam.getSeq());
|
|
|
+ List<ThirdPartyRoomConfigTaskContentParam> contentList = new ArrayList<>();
|
|
|
+ for (ThirdPartyRoomConfigTaskContentParam taskContentParam : task.getContentList()) {
|
|
|
+ ThirdPartyRoomConfigTaskContentParam content = new ThirdPartyRoomConfigTaskContentParam();
|
|
|
+ content.setType(taskContentParam.getType());
|
|
|
+ content.setContent(taskContentParam.getContent());
|
|
|
+ content.setSource(taskContentParam.getSource());
|
|
|
+ content.setSourceContent(taskContentParam.getSourceContent());
|
|
|
+ content.setSeq(taskContentParam.getSeq());
|
|
|
+ contentList.add(content);
|
|
|
+ }
|
|
|
+ task.setContentList(contentList);
|
|
|
+ taskList.add(task);
|
|
|
+ }
|
|
|
+ roomConfigParam.setTaskList(taskList);
|
|
|
+ return roomConfigParam;
|
|
|
+ }
|
|
|
}
|