Commit 29d5d7ed by 徐高华

操作日志

parent a222fa10
......@@ -49,16 +49,16 @@ public interface GroupChatMapper {
public TabGroupChat selectByWxChatId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("wxChatId") String wxChatId);
public TabGroupChat selectByWxChatIdDk(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("wxChatIdDk") String wxChatIdDk);
public List<TabGroupChat> listByWxWxChatIdList(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("wxChatIdList") List<String> wxChatIdList) ;
@Param("wxChatIdList") List<String> wxChatIdList);
public List<TabGroupChat> listByWxWxChatIdListDk(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("wxChatIdDkList") List<String> wxChatIdDkList) ;
@Param("wxChatIdDkList") List<String> wxChatIdDkList);
public List<TabGroupChat> listAllNeedInit();
public List<TabGroupChat> listAllNeedInitWxChatIdDk();
......@@ -66,5 +66,6 @@ public interface GroupChatMapper {
public List<GroupChatDTO> list(GroupChatSearchQDTO qdto);
public void updateChatEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId, @Param("groupChatIdList") List<Long> groupChatIdList);
@Param("enterpriseId") String enterpriseId, @Param("groupChatIdList") List<Long> groupChatIdList,
@Param("force") int force);
}
\ No newline at end of file
......@@ -315,7 +315,7 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
this.groupChatHmRelationMapper.insertBatch(relationList);
// 更新群的企业id到活码的企业ID
logger.info("自动更新群关联的GIC企业ID,eid={},addIdList={}", hm.getEnterpriseId(), addIdList);
this.groupChatMapper.updateChatEnterpriseId(wxEnterpriseId, hm.getEnterpriseId(), addIdList);
this.groupChatMapper.updateChatEnterpriseId(wxEnterpriseId, hm.getEnterpriseId(), addIdList, 1);
}
} else {
......
......@@ -249,7 +249,7 @@ public class GroupChatServiceImpl implements GroupChatService {
@Override
public void updateChatEnterpriseId(String wxEnterpriseId, String enterpriseId, List<Long> groupChatIdList) {
this.groupChatMapper.updateChatEnterpriseId(wxEnterpriseId, enterpriseId, groupChatIdList);
this.groupChatMapper.updateChatEnterpriseId(wxEnterpriseId, enterpriseId, groupChatIdList , 0);
// 更新后重新同步群数据
JSONObject json = new JSONObject();
json.put("groupChatIdList", groupChatIdList);
......
......@@ -333,6 +333,9 @@
#{id}
</foreach>
</if>
<if test="force==0">
and enterprise_id is null
</if>
and delete_flag = 0
</update>
......
......@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.commons.Page;
......@@ -38,9 +39,12 @@ import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.dto.chat.GroupChatDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatHmDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkStoreSettingDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatHmSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatSearchQDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkChatQDTO;
import com.gic.haoban.manage.api.dto.welcome.dto.WelcomeDetailDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatApiService;
import com.gic.haoban.manage.api.service.chat.GroupChatHmApiService;
import com.gic.haoban.manage.web.log.LogRecordUserServiceImpl;
......@@ -49,7 +53,9 @@ import com.gic.haoban.manage.web.vo.chat.GroupChatHmVO;
import com.gic.haoban.manage.web.vo.chat.HmLinkChatListVO;
import com.gic.log.record.anno.GicLogRecord;
import com.gic.log.record.util.GicLogRecordCategoryEnum;
import com.gic.log.record.util.GicLogRecordEvaluationContext;
import com.gic.log.record.util.GicLogRecordOptTypeEnum;
import com.gic.member.tag.api.dto.MemberTagItemDTO;
import com.gic.qcloud.BucketNameEnum;
import com.gic.qcloud.FileUploadUtil;
import com.gic.web.common.utils.DataPermissionExport;
......@@ -102,23 +108,96 @@ public class GroupChatHmController {
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.HB_QHM, optType = GicLogRecordOptTypeEnum.HB_1002_02, userFunc = LogRecordUserServiceImpl.class, optPage = "群活码-编辑活码")
public RestResponse<Object> update(@RequestBody GroupChatHmDTO dto) {
if (CollectionUtils.isEmpty(dto.getChatIdList())) {
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure("1", "请选择加入的群");
}
if (dto.getChatIdList().size() > 4) {
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure("1", "最多可选4个群");
}
if (null == dto.getChatHmId()) {
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure("1", "ID未空");
}
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
ServiceResponse<GroupChatHmDTO> oldResp = this.groupChatHmApiService.detail(dto.getChatHmId());
if (!oldResp.isSuccess()) {
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure(oldResp.getCode(), oldResp.getMessage());
}
GroupChatHmDTO oldDTO = oldResp.getResult();
dto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
dto.setEnterpriseId(loginUser.getEnterpriseId());
dto.setModifierId(loginUser.getClerkId());
dto.setModifierName(loginUser.getClerkName());
ServiceResponse<GroupChatHmDTO> resp = this.groupChatHmApiService.save(dto);
if (resp.isSuccess()) {
String logContent = this.getUpdateLog(oldDTO, dto);
if (StringUtils.isBlank(logContent)) {
GicLogRecordEvaluationContext.noWriteLog();
}
GicLogRecordEvaluationContext.putAttribute("logValue", logContent);
GicLogRecordEvaluationContext.putOptTargetId(AuthWebRequestUtil.getLoginUser().getClerkId());
return RestResponse.successResult();
}
return RestResponse.failure("1", resp.getMessage());
}
private String getUpdateLog(GroupChatHmDTO oldDTO, GroupChatHmDTO newDTO) {
String wxEnterpriseId = newDTO.getWxEnterpriseId();
String enterpriseId = newDTO.getEnterpriseId();
StringBuilder content = new StringBuilder();
String a = comp(wxEnterpriseId, enterpriseId, "群活码名称", oldDTO.getName(), newDTO.getName(), 0);
if (null != a) {
content.append(a);
}
String b = comp(wxEnterpriseId, enterpriseId, "群活码描述", oldDTO.getRemark(), newDTO.getRemark(), 0);
if (null != b) {
content.append(b);
}
String c = null;
if (oldDTO.getAutoCreateRoom() == 1 && newDTO.getAutoCreateRoom() == 0) {
c = "关闭自动建群功能";
content.append(c);
}
String d = null;
if (oldDTO.getAutoCreateRoom() == 0 && newDTO.getAutoCreateRoom() == 1) {
d = "开启自动建群功能【" + newDTO.getRoomBaseName() + newDTO.getRoomBaseId() + "】";
content.append(d);
}
String e = comp(wxEnterpriseId, enterpriseId, "群名前缀", oldDTO.getRoomBaseName(), newDTO.getRoomBaseName(), 0);
if (null != e) {
content.append(e);
}
String f = comp(wxEnterpriseId, enterpriseId, "群起始序号", oldDTO.getRoomBaseId() + "", newDTO.getRoomBaseId() + "",
0);
if (null != f) {
content.append(f);
}
if (org.apache.commons.lang3.StringUtils.isAllBlank(a, b, c, d, e, f)) {
return null;
}
StringBuilder sb = new StringBuilder("编辑群活码").append("【").append(oldDTO.getChatHmCode()).append("-")
.append(oldDTO.getName()).append("】:");
return sb.append(content).toString();
}
public String comp(String wxEnterpriseId, String enterpriseId, String title, String oldValue, String newValue,
int type) {
StringBuilder sb = new StringBuilder();
if (null == oldValue) {
oldValue = "";
}
if (null == newValue) {
newValue = "";
}
if (type == 0 && !oldValue.equals(newValue)) {
sb.append(title).append("「").append(oldValue).append("」变更为「").append(newValue).append("」");
return sb.toString();
}
return null;
}
@RequestMapping("page")
public RestResponse<Object> page(ChatHmSearchQDTO qdto, BasePageInfo basePageInfo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
......@@ -132,8 +211,8 @@ public class GroupChatHmController {
Page<GroupChatHmDTO> page = pageResp.getResult();
Page<GroupChatHmVO> retPage = PageHelperUtils.changePageToCurrentPage(page, GroupChatHmVO.class);
if (CollectionUtils.isNotEmpty(retPage.getResult())) {
retPage.getResult().forEach(vo->{
if(vo.getUsableChatCount()==0) {
retPage.getResult().forEach(vo -> {
if (vo.getUsableChatCount() == 0) {
vo.setUseRemark("无可加入的群聊");
}
});
......@@ -235,7 +314,8 @@ public class GroupChatHmController {
@SuppressWarnings("deprecation")
@RequestMapping("download")
public RestResponse<Object> download(@RequestBody ChatHmSearchQDTO qdto, @RequestParam(defaultValue = "0") int allFlag) {
public RestResponse<Object> download(@RequestBody ChatHmSearchQDTO qdto,
@RequestParam(defaultValue = "0") int allFlag) {
if (allFlag == 0 && CollectionUtils.isEmpty(qdto.getChatHmIdList())) {
return RestResponse.failure("1", "请选择要下载的群活码");
}
......
package com.gic.haoban.manage.web.controller.chat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
......@@ -20,16 +21,19 @@ import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.dto.MaterialDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
import com.gic.haoban.manage.api.service.MaterialApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService;
import com.gic.haoban.manage.web.log.LogRecordUserServiceImpl;
import com.gic.haoban.manage.web.utils.CreatorUtils;
......@@ -58,6 +62,8 @@ public class GroupChatPlanController {
private GroupChatPlanApiService groupChatPlanApiService;
@Autowired
private MaterialApiService materialApiService;
@Autowired
private StaffApiService staffApiService;
@RequestMapping("add")
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.HB_QF, optType = GicLogRecordOptTypeEnum.HB_1000_01, userFunc = LogRecordUserServiceImpl.class, optPage = "客户群群发")
......@@ -129,27 +135,131 @@ public class GroupChatPlanController {
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.HB_QF, optType = GicLogRecordOptTypeEnum.HB_1000_02, userFunc = LogRecordUserServiceImpl.class, optPage = "客户群群发")
public RestResponse<Object> update(@RequestBody GroupChatPlanDTO dto) {
logger.info("更新参数={}", JSON.toJSONString(dto));
ServiceResponse<GroupChatPlanDTO> resp = this.groupChatPlanApiService.detail(dto.getPlanId());
GroupChatPlanDTO plan = resp.getResult();
if (null == plan) {
ServiceResponse<GroupChatPlanDTO> oldResp = this.groupChatPlanApiService.detail(dto.getPlanId());
GroupChatPlanDTO oldPlan = oldResp.getResult();
if (null == oldPlan) {
return RestResponse.failure("9999", "计划不存在");
}
if (plan.getSendType() == 1) {
if (oldPlan.getSendType() == 1) {
return RestResponse.failure("9999", "已发送的不能编辑");
}
if (null != plan.getSendTime() && plan.getSendTime().before(new Date())) {
if (null != oldPlan.getSendTime() && oldPlan.getSendTime().before(new Date())) {
return RestResponse.failure("9999", "已发送的不能编辑");
}
if (plan.getStartTime().before(new Date())) {
if (oldPlan.getStartTime().before(new Date())) {
return RestResponse.failure("9999", "进行中的不能编辑");
}
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
dto.setModifierId(loginUser.getClerkId());
dto.setModifierName(loginUser.getClerkName());
this.groupChatPlanApiService.save(dto);
ServiceResponse<GroupChatPlanDTO> resp = this.groupChatPlanApiService.save(dto);
if (resp.isSuccess()) {
String logContent = this.getUpdateLog(oldPlan, dto);
if (StringUtils.isBlank(logContent)) {
GicLogRecordEvaluationContext.noWriteLog();
}
GicLogRecordEvaluationContext.putAttribute("logValue", logContent);
GicLogRecordEvaluationContext.putOptTargetId(AuthWebRequestUtil.getLoginUser().getClerkId());
return RestResponse.successResult();
}
return RestResponse.successResult();
}
private String getUpdateLog(GroupChatPlanDTO oldDTO, GroupChatPlanDTO newDTO) {
String wxEnterpriseId = newDTO.getWxEnterpriseId();
String enterpriseId = newDTO.getEnterpriseId();
StringBuilder content = new StringBuilder();
String a = comp(wxEnterpriseId, enterpriseId, "任务标题", oldDTO.getName(), newDTO.getName(), 0);
if (null != a) {
content.append(a);
}
String b = comp(wxEnterpriseId, enterpriseId, "任务描述", oldDTO.getRemark(), newDTO.getRemark(), 0);
if (null != b) {
content.append(b);
}
// 新增群主
String c = null;
if (StringUtils.isNotBlank(newDTO.getStaffIdList())) {
StringBuilder sb = new StringBuilder();
String[] arr = newDTO.getStaffIdList().split(",");
List<String> staffIds = Arrays.asList(arr);
List<StaffDTO> dtoList = this.staffApiService.listByIds(staffIds);
if (CollectionUtils.isNotEmpty(dtoList)) {
sb.append("新增群主「");
dtoList.forEach(dto -> {
sb.append(dto.getStaffName()).append(",");
});
c = sb.substring(0, sb.length() - 1) + "」";
}
}
// 删除群主
String d = null;
if (StringUtils.isNotBlank(newDTO.getDelStaffIdList())) {
StringBuilder sb = new StringBuilder();
String[] arr = newDTO.getDelStaffIdList().split(",");
List<String> staffIds = Arrays.asList(arr);
List<StaffDTO> dtoList = this.staffApiService.listByIds(staffIds);
if (CollectionUtils.isNotEmpty(dtoList)) {
sb.append("删除群主「");
dtoList.forEach(dto -> {
sb.append(dto.getStaffName()).append(",");
});
d = sb.substring(0, sb.length() - 1) + "」";
}
}
String e = null;
if (oldDTO.getSendType() != newDTO.getSendType()) {
if (newDTO.getSendType() == 1) {
StringBuilder sb = new StringBuilder();
String date = DateUtil.dateToStr(oldDTO.getSendTime(), "yyyy-MM-dd HH:mm:ss");
sb.append("发送时间").append("「定时发送,").append(date).append("」变更为「").append("立即发送」");
e = sb.toString();
}
} else {
String date1 = DateUtil.dateToStr(oldDTO.getSendTime(), "yyyy-MM-dd HH:mm:ss");
String date2 = DateUtil.dateToStr(newDTO.getSendTime(), "yyyy-MM-dd HH:mm:ss");
if (!date1.equals(date2)) {
StringBuilder sb = new StringBuilder();
sb.append("发送时间").append("「定时发送,").append(date1).append("」变更为「").append("定时发送,").append(date2)
.append("」");
e = sb.toString();
}
}
// 结束时间
String f = null;
if (!oldDTO.getExpireDays().equals(newDTO.getExpireDays())) {
content.append(f);
StringBuilder sb = new StringBuilder();
sb.append("结束时间").append("「").append(oldDTO.getExpireDays()).append("天后,").append("").append("」变更为「")
.append(newDTO.getExpireDays()).append("天后,").append("").append("」");
return sb.toString();
}
if (org.apache.commons.lang3.StringUtils.isAllBlank(a, b, c, d, e, f)) {
return null;
}
StringBuilder sb = new StringBuilder("编辑客户群群发").append("【").append(oldDTO.getName()).append("】:");
return sb.append(content).toString();
}
public String comp(String wxEnterpriseId, String enterpriseId, String title, String oldValue, String newValue,
int type) {
StringBuilder sb = new StringBuilder();
if (null == oldValue) {
oldValue = "";
}
if (null == newValue) {
newValue = "";
}
if (type == 0 && !oldValue.equals(newValue)) {
sb.append(title).append("「").append(oldValue).append("」变更为「").append(newValue).append("」");
return sb.toString();
}
return null;
}
@RequestMapping("page")
public RestResponse<Object> page(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
......
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