|
@@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.tzld.piaoquan.api.common.enums.ExceptionEnum;
|
|
import com.tzld.piaoquan.api.common.enums.ExceptionEnum;
|
|
|
import com.tzld.piaoquan.api.common.enums.wecom.ConfigTaskContentTypeEnum;
|
|
import com.tzld.piaoquan.api.common.enums.wecom.ConfigTaskContentTypeEnum;
|
|
|
import com.tzld.piaoquan.api.common.exception.CommonException;
|
|
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;
|
|
|
|
|
-import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComRoomMapper;
|
|
|
|
|
|
|
+import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.*;
|
|
|
import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ext.ThirdPartWeComRoomMapperExt;
|
|
import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ext.ThirdPartWeComRoomMapperExt;
|
|
|
import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ext.ThirdPartWeComStaffMapperExt;
|
|
import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ext.ThirdPartWeComStaffMapperExt;
|
|
|
import com.tzld.piaoquan.api.job.wecom.thirdpart.WeComSendMsgJob;
|
|
import com.tzld.piaoquan.api.job.wecom.thirdpart.WeComSendMsgJob;
|
|
@@ -40,6 +37,8 @@ public class WeComThirdPartyRoomServiceImpl implements WeComThirdPartyRoomServic
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private ThirdPartWeComRoomMapper roomMapper;
|
|
private ThirdPartWeComRoomMapper roomMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
|
+ private ThirdPartWeComRoomUserMapper roomUserMapper;
|
|
|
|
|
+ @Autowired
|
|
|
private ThirdPartWeComRoomConfigMapper roomConfigMapper;
|
|
private ThirdPartWeComRoomConfigMapper roomConfigMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private ThirdPartWeComRoomConfigTaskMapper roomConfigTaskMapper;
|
|
private ThirdPartWeComRoomConfigTaskMapper roomConfigTaskMapper;
|
|
@@ -225,14 +224,17 @@ public class WeComThirdPartyRoomServiceImpl implements WeComThirdPartyRoomServic
|
|
|
@Override
|
|
@Override
|
|
|
public void saveRoomConfig(ThirdPartyRoomConfigParam param, String accountConfigId) {
|
|
public void saveRoomConfig(ThirdPartyRoomConfigParam param, String accountConfigId) {
|
|
|
// check param
|
|
// check param
|
|
|
- checkRoomConfigParam(param);
|
|
|
|
|
|
|
+ ThirdPartWeComRoom room = weComThirdPartyService.getRoomById(param.getRoomId());
|
|
|
|
|
+ if (Objects.isNull(room)) {
|
|
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "群不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ checkRoomConfigParam(param, room);
|
|
|
ThirdPartWeComRoomConfig config = getRoomConfig(param.getRoomId());
|
|
ThirdPartWeComRoomConfig config = getRoomConfig(param.getRoomId());
|
|
|
if (Objects.nonNull(config)) {
|
|
if (Objects.nonNull(config)) {
|
|
|
config.setStatus(0);
|
|
config.setStatus(0);
|
|
|
config.setUpdateTime(new Date());
|
|
config.setUpdateTime(new Date());
|
|
|
roomConfigMapper.updateByPrimaryKey(config);
|
|
roomConfigMapper.updateByPrimaryKey(config);
|
|
|
}
|
|
}
|
|
|
- ThirdPartWeComRoom room = weComThirdPartyService.getRoomById(param.getRoomId());
|
|
|
|
|
ThirdPartWeComRoomConfig newConfig = new ThirdPartWeComRoomConfig();
|
|
ThirdPartWeComRoomConfig newConfig = new ThirdPartWeComRoomConfig();
|
|
|
newConfig.setId(DistributedIdGenerator.generate());
|
|
newConfig.setId(DistributedIdGenerator.generate());
|
|
|
newConfig.setAccountConfigId(accountConfigId);
|
|
newConfig.setAccountConfigId(accountConfigId);
|
|
@@ -276,7 +278,7 @@ public class WeComThirdPartyRoomServiceImpl implements WeComThirdPartyRoomServic
|
|
|
weComSendMsgJob.randomRoomSendTime(room, newConfig, taskList, now);
|
|
weComSendMsgJob.randomRoomSendTime(room, newConfig, taskList, now);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void checkRoomConfigParam(ThirdPartyRoomConfigParam param) {
|
|
|
|
|
|
|
+ private void checkRoomConfigParam(ThirdPartyRoomConfigParam param, ThirdPartWeComRoom room) {
|
|
|
if (Objects.isNull(param.getRoomId())) {
|
|
if (Objects.isNull(param.getRoomId())) {
|
|
|
throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "群id不能为空");
|
|
throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "群id不能为空");
|
|
|
}
|
|
}
|
|
@@ -289,7 +291,26 @@ public class WeComThirdPartyRoomServiceImpl implements WeComThirdPartyRoomServic
|
|
|
if (CollectionUtils.isEmpty(param.getTaskList())) {
|
|
if (CollectionUtils.isEmpty(param.getTaskList())) {
|
|
|
throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "任务列表不能为空");
|
|
throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "任务列表不能为空");
|
|
|
}
|
|
}
|
|
|
|
|
+ List<ThirdPartWeComRoomUser> roomUserList = getRoomUserListByRoomId(room.getThirdRoomId());
|
|
|
|
|
+ List<Long> roomUserIdList = roomUserList.stream().map(ThirdPartWeComRoomUser::getUin).collect(Collectors.toList());
|
|
|
|
|
+ if (!roomUserIdList.contains(param.getPrimaryThirdStaffId())) {
|
|
|
|
|
+ param.setPrimaryThirdStaffId(room.getThirdCreateUserId());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (Objects.nonNull(param.getSecondThirdStaffId()) && !roomUserIdList.contains(param.getSecondThirdStaffId())) {
|
|
|
|
|
+ param.setSecondThirdStaffId(room.getThirdCreateUserId());
|
|
|
|
|
+ }
|
|
|
|
|
+ List<String> timeList = new ArrayList<>();
|
|
|
for (ThirdPartyRoomConfigTaskParam task : param.getTaskList()) {
|
|
for (ThirdPartyRoomConfigTaskParam task : param.getTaskList()) {
|
|
|
|
|
+ if (CollectionUtils.isEmpty(task.getSendTime())) {
|
|
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "推送时间不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ for (String sendTime : task.getSendTime()) {
|
|
|
|
|
+ if (timeList.contains(sendTime)) {
|
|
|
|
|
+ throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "推送时间不能重复: " + sendTime);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ timeList.add(sendTime);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
if (Objects.nonNull(task.getRandomMin())) {
|
|
if (Objects.nonNull(task.getRandomMin())) {
|
|
|
if (task.getRandomMin() < 0) {
|
|
if (task.getRandomMin() < 0) {
|
|
|
throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "随机浮动分钟不能小于0");
|
|
throw new CommonException(ExceptionEnum.PARAM_ERROR.getCode(), "随机浮动分钟不能小于0");
|
|
@@ -316,6 +337,23 @@ public class WeComThirdPartyRoomServiceImpl implements WeComThirdPartyRoomServic
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<ThirdPartWeComRoomUser> getRoomUserListByRoomId(String thirdRoomId) {
|
|
|
|
|
+ ThirdPartWeComRoomUserExample example = new ThirdPartWeComRoomUserExample();
|
|
|
|
|
+ example.createCriteria().andThirdRoomIdEqualTo(thirdRoomId);
|
|
|
|
|
+ return roomUserMapper.selectByExample(example);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<ThirdPartWeComRoomUser> getRoomUserListByRoomIds(List<String> thirdRoomIds) {
|
|
|
|
|
+ if (CollectionUtils.isEmpty(thirdRoomIds)) {
|
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
|
+ }
|
|
|
|
|
+ ThirdPartWeComRoomUserExample example = new ThirdPartWeComRoomUserExample();
|
|
|
|
|
+ example.createCriteria().andThirdRoomIdIn(thirdRoomIds);
|
|
|
|
|
+ return roomUserMapper.selectByExample(example);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public void saveRoomConfig(ThirdPartWeComRoom room, String accountConfigId, ThirdPartyAccountConfigParam param) {
|
|
public void saveRoomConfig(ThirdPartWeComRoom room, String accountConfigId, ThirdPartyAccountConfigParam param) {
|
|
|
ThirdPartyRoomConfigParam roomConfigParam = buildRoomConfigParam(room, param);
|
|
ThirdPartyRoomConfigParam roomConfigParam = buildRoomConfigParam(room, param);
|