Commit 0da3d7dc by 徐高华

企微托管

parent 3e24aa3e
package com.gic.haoban.manage.api.enums;
public enum OpenStaffOfflineEnum {
OFFLINE1(1, "首次托管,需要二次验证"),
OFFLINE2(2, "异常断开"),
OFFLINE3(3, "手机端结束登录"),
OFFLINE4(4, "当前账号在其它设备登录");
OpenStaffOfflineEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
private int code;
private String desc;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -7,6 +7,7 @@ import com.gic.haoban.manage.api.dto.OpenStaffDTO; ...@@ -7,6 +7,7 @@ import com.gic.haoban.manage.api.dto.OpenStaffDTO;
import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO; import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO;
import com.gic.haoban.manage.api.dto.OpenStaffListDTO; import com.gic.haoban.manage.api.dto.OpenStaffListDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO; import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.enums.OpenStaffOfflineEnum;
import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO; import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO; import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
...@@ -72,7 +73,7 @@ public interface OpenStaffApiService { ...@@ -72,7 +73,7 @@ public interface OpenStaffApiService {
/** /**
* 退出登录 * 退出登录
*/ */
public ServiceResponse<Void> logout(String uuid) ; public ServiceResponse<Void> logout(String uuid , OpenStaffOfflineEnum offlineEnum) ;
public ServiceResponse<Void> logout(Long openStaffId) ; public ServiceResponse<Void> logout(Long openStaffId) ;
......
...@@ -92,7 +92,12 @@ public interface NoticeMessageApiService { ...@@ -92,7 +92,12 @@ public interface NoticeMessageApiService {
*/ */
public ServiceResponse<Boolean> addOrCreateNoticeMessage(List<NoticeMessageQDTO> qdto); public ServiceResponse<Boolean> addOrCreateNoticeMessage(List<NoticeMessageQDTO> qdto);
/**
public void sendMessageForOpenStaff(String enterpriseId, Map<String, String> map) ; * 托管账号退出-发送公众号消息
* @param enterpriseId
* @param accountName
* @param reason
*/
public void sendMessageForOpenStaff(String enterpriseId, String accountName, String reason) ;
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.gic.haoban.manage.web.controller; ...@@ -3,6 +3,7 @@ package com.gic.haoban.manage.web.controller;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.authcenter.commons.util.IgnoreLogin; import com.gic.authcenter.commons.util.IgnoreLogin;
import com.gic.haoban.manage.api.enums.OpenStaffOfflineEnum;
import com.gic.haoban.manage.api.enums.QwOpenStepEnum; import com.gic.haoban.manage.api.enums.QwOpenStepEnum;
import com.gic.haoban.manage.api.service.OpenStaffApiService; import com.gic.haoban.manage.api.service.OpenStaffApiService;
import com.gic.haoban.task.manage.api.dto.open.OpenQwMessageDTO; import com.gic.haoban.task.manage.api.dto.open.OpenQwMessageDTO;
...@@ -71,7 +72,7 @@ public class QywxCallbackController extends WebBaseController { ...@@ -71,7 +72,7 @@ public class QywxCallbackController extends WebBaseController {
this.v100004(uuid,json) ; this.v100004(uuid,json) ;
break; break;
case 100005 : case 100005 :
this.close(uuid,json) ; this.close(uuid,OpenStaffOfflineEnum.OFFLINE3) ;
break; break;
case 104001 : case 104001 :
this.loginSuccess(uuid,json) ; this.loginSuccess(uuid,json) ;
...@@ -82,6 +83,12 @@ public class QywxCallbackController extends WebBaseController { ...@@ -82,6 +83,12 @@ public class QywxCallbackController extends WebBaseController {
case 100009 : case 100009 :
this.v100009(uuid,json) ; this.v100009(uuid,json) ;
break; break;
case 100008:
this.close(uuid,OpenStaffOfflineEnum.OFFLINE4);
break;
case 100007:
this.close(uuid,OpenStaffOfflineEnum.OFFLINE2);
break;
default: default:
break; break;
} }
...@@ -185,9 +192,9 @@ public class QywxCallbackController extends WebBaseController { ...@@ -185,9 +192,9 @@ public class QywxCallbackController extends WebBaseController {
String corpName = json.getString("corp_name") ; String corpName = json.getString("corp_name") ;
this.openStaffApiService.login(uuid,qwCorpId,corpName,qwUserid) ; this.openStaffApiService.login(uuid,qwCorpId,corpName,qwUserid) ;
} }
private void close(String uuid , JSONObject json) { private void close(String uuid , OpenStaffOfflineEnum offlineEnum) {
logger.info("退出={}",uuid); logger.info("退出={}",uuid);
this.openStaffApiService.logout(uuid) ; this.openStaffApiService.logout(uuid, offlineEnum) ;
} }
private void v100003(String uuid , JSONObject json) { private void v100003(String uuid , JSONObject json) {
logger.info("取消登录={}",uuid); logger.info("取消登录={}",uuid);
......
...@@ -11,11 +11,11 @@ import java.util.List; ...@@ -11,11 +11,11 @@ import java.util.List;
public interface OpenStaffService { public interface OpenStaffService {
public TabOpenStaff save(TabOpenStaff tab) ; TabOpenStaff save(TabOpenStaff tab) ;
public TabOpenStaff getByUUID(String uuid) ; TabOpenStaff getByUUID(String uuid) ;
public void logout(String uuid, String loginRemark, int step , String noticeReason) ; void logout(String uuid, String loginRemark, int step , String noticeReason) ;
ServiceResponse<Page<OpenStaffListDTO>> page(OpenStaffPageQDTO qdto, BasePageInfo basePageInfo); ServiceResponse<Page<OpenStaffListDTO>> page(OpenStaffPageQDTO qdto, BasePageInfo basePageInfo);
......
...@@ -144,7 +144,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -144,7 +144,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
noticeMessageBO.setMessageType(messageQDTO.getMessageType()); noticeMessageBO.setMessageType(messageQDTO.getMessageType());
noticeMessageBO.setClerkId(messageQDTO.getClerkId() != null ? messageQDTO.getClerkId() : "-1"); noticeMessageBO.setClerkId(messageQDTO.getClerkId() != null ? messageQDTO.getClerkId() : "-1");
noticeMessageBO.setStoreId(clerkRelationDTO != null ? clerkRelationDTO.getStoreId() : "-1"); noticeMessageBO.setStoreId(clerkRelationDTO != null ? clerkRelationDTO.getStoreId() : "-1");
noticeMessageBO.setTitle(StringUtils.isNotBlank(messageQDTO.getTitle())?messageQDTO.getTitle():messageTypeEnum.getName()); noticeMessageBO.setTitle(StringUtils.isNotBlank(messageQDTO.getTitle()) ? messageQDTO.getTitle() : messageTypeEnum.getName());
noticeMessageBO.setTemplateCode(messageTypeEnum.getTemplateCode()); noticeMessageBO.setTemplateCode(messageTypeEnum.getTemplateCode());
noticeMessageBO.setDescription(haobanNotice); noticeMessageBO.setDescription(haobanNotice);
noticeMessageBO.setEnterpriseId(messageQDTO.getEnterpriseId()); noticeMessageBO.setEnterpriseId(messageQDTO.getEnterpriseId());
...@@ -152,13 +152,13 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -152,13 +152,13 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
noticeMessageBO.setMessageContent(messageQDTO.getExtendContent() != null ? JSONObject.toJSONString(messageQDTO.getExtendContent()) : null); noticeMessageBO.setMessageContent(messageQDTO.getExtendContent() != null ? JSONObject.toJSONString(messageQDTO.getExtendContent()) : null);
noticeMessageService.addOrCreateNoticeMessage(noticeMessageBO); noticeMessageService.addOrCreateNoticeMessage(noticeMessageBO);
//发送企业微信 //发送企业微信
sendMessage(contentList, wxEnterpriseId, staffId, messageTypeEnum, noticeMessageBO.getMessageContent(),messageQDTO.getTitle()); sendMessage(contentList, wxEnterpriseId, staffId, messageTypeEnum, noticeMessageBO.getMessageContent(), messageQDTO.getTitle());
} }
@Override @Override
public void noticeMessageMq(String json) { public void noticeMessageMq(String json) {
if (!ApolloUtils.useMessageCenter()){ if (!ApolloUtils.useMessageCenter()) {
logger.info("消息中心-走老版消息通知"); logger.info("消息中心-走老版消息通知");
this.noticeMessageMq_old(json); this.noticeMessageMq_old(json);
return; return;
...@@ -205,14 +205,14 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -205,14 +205,14 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
.enterpriseId(messageQDTO.getEnterpriseId()) .enterpriseId(messageQDTO.getEnterpriseId())
.uniqueKey(UniqueIdUtils.uniqueLongHex()) .uniqueKey(UniqueIdUtils.uniqueLongHex())
.variableMap(variableMap).build(); .variableMap(variableMap).build();
if (clerkRelationDTO != null){ if (clerkRelationDTO != null) {
build.setUserIdList(Collections.singletonList(clerkRelationDTO.getClerkId())); build.setUserIdList(Collections.singletonList(clerkRelationDTO.getClerkId()));
} else { } else {
build.setStaffIdList(Collections.singletonList(staffId)); build.setStaffIdList(Collections.singletonList(staffId));
} }
noticeMessageHandler.sendMessage(build); noticeMessageHandler.sendMessage(build);
} catch (Exception e) { } catch (Exception e) {
logger.error("发送消息通知失败",e); logger.error("发送消息通知失败", e);
} }
} }
...@@ -225,7 +225,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -225,7 +225,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
@Override @Override
public void noticeMessageBatchMq(String json) { public void noticeMessageBatchMq(String json) {
NotifyMessageBatchQDTO notifyMessageBatchQDTO = JSONObject.parseObject(json, NotifyMessageBatchQDTO.class); NotifyMessageBatchQDTO notifyMessageBatchQDTO = JSONObject.parseObject(json, NotifyMessageBatchQDTO.class);
if (!ApolloUtils.useMessageCenter()){ if (!ApolloUtils.useMessageCenter()) {
logger.info("消息中心-走老版消息通知"); logger.info("消息中心-走老版消息通知");
this.batchSendMessage_old(notifyMessageBatchQDTO); this.batchSendMessage_old(notifyMessageBatchQDTO);
return; return;
...@@ -265,11 +265,11 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -265,11 +265,11 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
return ServiceResponse.success(); return ServiceResponse.success();
} }
notifyMessageBatchQDTO.setTemplateCode(messageTypeEnum.getTemplateCode()); notifyMessageBatchQDTO.setTemplateCode(messageTypeEnum.getTemplateCode());
Map<String, List<StaffClerkRelationDTO>> map = relationList.stream().filter(x->wxEnterpriseIdList.contains(x.getWxEnterpriseId())).collect(Collectors.groupingBy(StaffClerkRelationDTO::getWxEnterpriseId)); Map<String, List<StaffClerkRelationDTO>> map = relationList.stream().filter(x -> wxEnterpriseIdList.contains(x.getWxEnterpriseId())).collect(Collectors.groupingBy(StaffClerkRelationDTO::getWxEnterpriseId));
map.forEach((wxEnterpriseId,v)->{ map.forEach((wxEnterpriseId, v) -> {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId); WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (qwDTO == null) { if (qwDTO == null) {
logger.info("企业为空:{}",wxEnterpriseId); logger.info("企业为空:{}", wxEnterpriseId);
return; return;
} }
// 用于成员去重 // 用于成员去重
...@@ -277,9 +277,9 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -277,9 +277,9 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
List<List<StaffClerkRelationDTO>> listList = ListUtil.split(v, 1000); List<List<StaffClerkRelationDTO>> listList = ListUtil.split(v, 1000);
for (List<StaffClerkRelationDTO> list : listList) { for (List<StaffClerkRelationDTO> list : listList) {
try { try {
sendMessage(notifyMessageBatchQDTO, list,userIdSet, qwDTO); sendMessage(notifyMessageBatchQDTO, list, userIdSet, qwDTO);
} catch (Exception e) { } catch (Exception e) {
logger.error("发送消息通知失败",e); logger.error("发送消息通知失败", e);
} }
} }
}); });
...@@ -344,7 +344,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -344,7 +344,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
.variableMap(variableMap).build()); .variableMap(variableMap).build());
} }
} catch (Exception e) { } catch (Exception e) {
logger.error("发送消息通知失败",e); logger.error("发送消息通知失败", e);
} }
return ServiceResponse.success(); return ServiceResponse.success();
...@@ -363,7 +363,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -363,7 +363,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
return data; return data;
} }
private void sendMessage(NotifyMessageBatchQDTO notifyMessageBatchQDTO, List<StaffClerkRelationDTO> list,Set<String> userIdSet, WxEnterpriseQwDTO qwDTO) { private void sendMessage(NotifyMessageBatchQDTO notifyMessageBatchQDTO, List<StaffClerkRelationDTO> list, Set<String> userIdSet, WxEnterpriseQwDTO qwDTO) {
//企业微信模板 //企业微信模板
List<TemplateContentBO> contentList = getDescriotion(notifyMessageBatchQDTO); List<TemplateContentBO> contentList = getDescriotion(notifyMessageBatchQDTO);
...@@ -382,9 +382,9 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -382,9 +382,9 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
List<String> wxUserIdList = new ArrayList<>(); List<String> wxUserIdList = new ArrayList<>();
List<NoticeMessageBO> noticeMessageBOList = new ArrayList<>(); List<NoticeMessageBO> noticeMessageBOList = new ArrayList<>();
for (StaffClerkRelationDTO relationDTO : list) { for (StaffClerkRelationDTO relationDTO : list) {
String wxUserId = relationDTO.getQwUserId() ; String wxUserId = relationDTO.getQwUserId();
if(qwDTO.needOpenUserId3th()) { if (qwDTO.needOpenUserId3th()) {
wxUserId = relationDTO.getOpenUserId() ; wxUserId = relationDTO.getOpenUserId();
} }
if (userIdSet.add(wxUserId)) { if (userIdSet.add(wxUserId)) {
wxUserIdList.add(wxUserId); wxUserIdList.add(wxUserId);
...@@ -395,7 +395,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -395,7 +395,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
noticeMessageBO.setMessageType(notifyMessageBatchQDTO.getMessageType()); noticeMessageBO.setMessageType(notifyMessageBatchQDTO.getMessageType());
noticeMessageBO.setClerkId(relationDTO.getClerkId() != null ? relationDTO.getClerkId() : "-1"); noticeMessageBO.setClerkId(relationDTO.getClerkId() != null ? relationDTO.getClerkId() : "-1");
noticeMessageBO.setStoreId(relationDTO.getStoreId() != null ? relationDTO.getStoreId() : "-1"); noticeMessageBO.setStoreId(relationDTO.getStoreId() != null ? relationDTO.getStoreId() : "-1");
noticeMessageBO.setTitle(StringUtils.isNotBlank(notifyMessageBatchQDTO.getTitle())? notifyMessageBatchQDTO.getTitle(): messageTypeEnum.getName()); noticeMessageBO.setTitle(StringUtils.isNotBlank(notifyMessageBatchQDTO.getTitle()) ? notifyMessageBatchQDTO.getTitle() : messageTypeEnum.getName());
noticeMessageBO.setTemplateCode(messageTypeEnum.getTemplateCode()); noticeMessageBO.setTemplateCode(messageTypeEnum.getTemplateCode());
noticeMessageBO.setDescription(haobanNotice); noticeMessageBO.setDescription(haobanNotice);
noticeMessageBO.setEnterpriseId(notifyMessageBatchQDTO.getEnterpriseId()); noticeMessageBO.setEnterpriseId(notifyMessageBatchQDTO.getEnterpriseId());
...@@ -425,18 +425,18 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -425,18 +425,18 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
messageDTO.setAgentName(qwDTO.getAgentName()); messageDTO.setAgentName(qwDTO.getAgentName());
messageDTO.setUserIds(wxUserIdList); messageDTO.setUserIds(wxUserIdList);
messageDTO.setPage(appUrl); messageDTO.setPage(appUrl);
messageDTO.setTitle(StringUtils.isNotBlank(title)?title: messageTypeEnum.getName()); messageDTO.setTitle(StringUtils.isNotBlank(title) ? title : messageTypeEnum.getName());
messageDTO.setContent(contentList.get(0).getVal()); messageDTO.setContent(contentList.get(0).getVal());
boolean sendMessage = qywxSuiteApiService.sendMessage(qwDTO.getThirdCorpid(), qwDTO.getSelf3thSecret(), messageDTO,qwDTO.isSelf(),qwDTO.getUrlHost()); boolean sendMessage = qywxSuiteApiService.sendMessage(qwDTO.getThirdCorpid(), qwDTO.getSelf3thSecret(), messageDTO, qwDTO.isSelf(), qwDTO.getUrlHost());
NotifyMessageMQDTO mqdto = new NotifyMessageMQDTO(); NotifyMessageMQDTO mqdto = new NotifyMessageMQDTO();
List<String> clerkIdList = list.stream().map(StaffClerkRelationDTO::getClerkId).collect(Collectors.toList()); List<String> clerkIdList = list.stream().map(StaffClerkRelationDTO::getClerkId).collect(Collectors.toList());
mqdto.setClerkIdList(clerkIdList); mqdto.setClerkIdList(clerkIdList);
mqdto.setEnterpriseId(notifyMessageBatchQDTO.getEnterpriseId()); mqdto.setEnterpriseId(notifyMessageBatchQDTO.getEnterpriseId());
mqdto.setTemplateCode(messageTypeEnum.getTemplateCode()); mqdto.setTemplateCode(messageTypeEnum.getTemplateCode());
mqdto.setExtendContent(notifyMessageBatchQDTO.getExtendContent()); mqdto.setExtendContent(notifyMessageBatchQDTO.getExtendContent());
mqdto.setResult(sendMessage?Constant.FLAG_TRUE:Constant.FLAG_FALSE); mqdto.setResult(sendMessage ? Constant.FLAG_TRUE : Constant.FLAG_FALSE);
try { try {
GICMQClientUtil.getClientInstance().sendMessage("haobanNotifyEvent",JSON.toJSONString(mqdto)); GICMQClientUtil.getClientInstance().sendMessage("haobanNotifyEvent", JSON.toJSONString(mqdto));
} catch (Exception e) { } catch (Exception e) {
logger.info(e.getMessage(), e); logger.info(e.getMessage(), e);
} }
...@@ -546,11 +546,11 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -546,11 +546,11 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
* @param * @param
* @param messageTypeEnum * @param messageTypeEnum
*/ */
private void sendMessage(List<TemplateContentBO> contentList, String wxEnterpriseId, String staffId, NoticeMessageTypeEnum messageTypeEnum, String data,String title) { private void sendMessage(List<TemplateContentBO> contentList, String wxEnterpriseId, String staffId, NoticeMessageTypeEnum messageTypeEnum, String data, String title) {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ; WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO(); QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
String corpid = qwDTO.getThirdCorpid() ; String corpid = qwDTO.getThirdCorpid();
TabHaobanStaff tabHaobanStaff = staffService.selectById(staffId) ; TabHaobanStaff tabHaobanStaff = staffService.selectById(staffId);
if (tabHaobanStaff == null) { if (tabHaobanStaff == null) {
logger.error("未查询到员工:staffId:{}", staffId); logger.error("未查询到员工:staffId:{}", staffId);
return; return;
...@@ -583,13 +583,17 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -583,13 +583,17 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
messageDTO.setAppid(qwDTO.getHbWxaAppid()); messageDTO.setAppid(qwDTO.getHbWxaAppid());
messageDTO.setUserIds(userList); messageDTO.setUserIds(userList);
messageDTO.setPage(appUrl); messageDTO.setPage(appUrl);
messageDTO.setTitle(StringUtils.isNotBlank(title)?title:messageTypeEnum.getName()); messageDTO.setTitle(StringUtils.isNotBlank(title) ? title : messageTypeEnum.getName());
messageDTO.setItems(items); messageDTO.setItems(items);
qywxSuiteApiService.sendMessage(corpid, qwDTO.getSelf3thSecret(), messageDTO,qwDTO.isSelf(),qwDTO.getUrlHost()); qywxSuiteApiService.sendMessage(corpid, qwDTO.getSelf3thSecret(), messageDTO, qwDTO.isSelf(), qwDTO.getUrlHost());
} }
public void sendMessageForOpenStaff(String enterpriseId, Map<String, String> map) { public void sendMessageForOpenStaff(String enterpriseId, String accountName, String reason) {
String mqName = "haobanNotice" ; Map<String, String> map = new HashMap<>();
map.put("accountName", accountName);
map.put("errorTime", DateUtil.dateToStr(new Date(), "yyyy年MM月dd日 hh:mm"));
map.put("reason", reason);
String mqName = "haobanNotice";
NoticeMessageForm noticeMessageForm = new NoticeMessageForm(); NoticeMessageForm noticeMessageForm = new NoticeMessageForm();
noticeMessageForm.setMessageCode("haobanOpenStaffNotice"); noticeMessageForm.setMessageCode("haobanOpenStaffNotice");
noticeMessageForm.setMqRouterCode(mqName); noticeMessageForm.setMqRouterCode(mqName);
...@@ -603,7 +607,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService { ...@@ -603,7 +607,7 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
GicMQClient client = GICMQClientUtil.getClientInstance(); GicMQClient client = GICMQClientUtil.getClientInstance();
client.sendMessage(mqName, JSON.toJSONString(noticeMessageForm)); client.sendMessage(mqName, JSON.toJSONString(noticeMessageForm));
} catch (Exception e) { } catch (Exception e) {
logger.error("路由规则名称:" + mqName + ",message:" + JSON.toJSONString(noticeMessageForm),e); logger.error("路由规则名称:" + mqName + ",message:" + JSON.toJSONString(noticeMessageForm), e);
} }
} }
......
...@@ -9,6 +9,7 @@ import com.gic.haoban.manage.api.dto.OpenStaffDTO; ...@@ -9,6 +9,7 @@ import com.gic.haoban.manage.api.dto.OpenStaffDTO;
import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO; import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO;
import com.gic.haoban.manage.api.dto.OpenStaffListDTO; import com.gic.haoban.manage.api.dto.OpenStaffListDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO; import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.enums.OpenStaffOfflineEnum;
import com.gic.haoban.manage.api.enums.QwOpenStepEnum; import com.gic.haoban.manage.api.enums.QwOpenStepEnum;
import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO; import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO; import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
...@@ -39,95 +40,97 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService { ...@@ -39,95 +40,97 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
private static final Logger log = LogManager.getLogger(OpenStaffApiService.class); private static final Logger log = LogManager.getLogger(OpenStaffApiService.class);
@Autowired @Autowired
private OpenStaffMapper openStaffMapper ; private OpenStaffMapper openStaffMapper;
@Autowired @Autowired
private OpenStaffService openStaffService ; private OpenStaffService openStaffService;
@Autowired @Autowired
private WxEnterpriseService wxEnterpriseService ; private WxEnterpriseService wxEnterpriseService;
@Override @Override
public ServiceResponse<Void> delete(Long id) { public ServiceResponse<Void> delete(Long id) {
TabOpenStaff staff = this.openStaffMapper.getById(id) ; TabOpenStaff staff = this.openStaffMapper.getById(id);
if(null != staff){ if (null != staff) {
this.openStaffService.logout(staff.getUuid(),"删除",0,null) ; this.openStaffService.logout(staff.getUuid(), "删除", 0, null);
} }
this.openStaffMapper.deleteByPrimaryKey(id) ; this.openStaffMapper.deleteByPrimaryKey(id);
return ServiceResponse.success(); return ServiceResponse.success();
} }
@Override @Override
public ServiceResponse<Void> updateValiFlag(String uuid) { public ServiceResponse<Void> updateValiFlag(String uuid) {
this.openStaffMapper.updateValidFlag(uuid) ; this.openStaffMapper.updateValidFlag(uuid);
return ServiceResponse.success(); return ServiceResponse.success();
} }
@Override @Override
public ServiceResponse<Void> update2QrcodeFlag(String uuid) { public ServiceResponse<Void> update2QrcodeFlag(String uuid) {
TabOpenStaff openStaff = this.openStaffService.getByUUID(uuid) ; TabOpenStaff openStaff = this.openStaffService.getByUUID(uuid);
if(null == openStaff) { if (null == openStaff) {
return ServiceResponse.failure("9999","登录错误") ; return ServiceResponse.failure("9999", "登录错误");
} }
// 需要二次验证
this.openStaffService.logout(uuid, OpenStaffOfflineEnum.OFFLINE1.getDesc(), 0, OpenStaffOfflineEnum.OFFLINE1.getDesc());
this.openStaffMapper.update2QrcodeFlag(openStaff.getOpenStaffId()); this.openStaffMapper.update2QrcodeFlag(openStaff.getOpenStaffId());
return ServiceResponse.success(); return ServiceResponse.success();
} }
@Override @Override
public ServiceResponse<OpenStaffDTO> get2Qrcode(long id) { public ServiceResponse<OpenStaffDTO> get2Qrcode(long id) {
TabOpenStaff openStaff = this.openStaffMapper.getById(id) ; TabOpenStaff openStaff = this.openStaffMapper.getById(id);
if(null == openStaff) { if (null == openStaff) {
return ServiceResponse.failure("9999","登录错误") ; return ServiceResponse.failure("9999", "登录错误");
} }
ServiceResponse<QwOpenResultInitBO> resp = OpenUtils.getQrcode(openStaff.getUuid(),null,2) ; ServiceResponse<QwOpenResultInitBO> resp = OpenUtils.getQrcode(openStaff.getUuid(), null, 2);
String qrcodeData = null ; String qrcodeData = null;
if(resp.isSuccess()) { if (resp.isSuccess()) {
String qrcode= resp.getResult().getQrcode() ; String qrcode = resp.getResult().getQrcode();
String key = resp.getResult().getKey() ; String key = resp.getResult().getKey();
this.openStaffMapper.update2Qrcode(openStaff.getOpenStaffId(),qrcode,key); this.openStaffMapper.update2Qrcode(openStaff.getOpenStaffId(), qrcode, key);
openStaff.setQrCode2(qrcode); openStaff.setQrCode2(qrcode);
qrcodeData = resp.getResult().getQrcode_data() ; qrcodeData = resp.getResult().getQrcode_data();
}else { } else {
return ServiceResponse.failure("9999",resp.getMessage()) ; return ServiceResponse.failure("9999", resp.getMessage());
} }
OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class,openStaff) ; OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class, openStaff);
dto.setQrcodeData(qrcodeData); dto.setQrcodeData(qrcodeData);
return ServiceResponse.success(dto); return ServiceResponse.success(dto);
} }
@Override @Override
public ServiceResponse<Void> updateLoginStep(String uuid, int step) { public ServiceResponse<Void> updateLoginStep(String uuid, int step) {
TabOpenStaff openStaff = this.openStaffService.getByUUID(uuid) ; TabOpenStaff openStaff = this.openStaffService.getByUUID(uuid);
if(null == openStaff) { if (null == openStaff) {
return ServiceResponse.failure("9999","登录错误") ; return ServiceResponse.failure("9999", "登录错误");
} }
this.openStaffMapper.updateLoginStep(openStaff.getOpenStaffId(),step) ; this.openStaffMapper.updateLoginStep(openStaff.getOpenStaffId(), step);
if(QwOpenStepEnum.isFail(step)) { if (QwOpenStepEnum.isFail(step)) {
this.openStaffService.logout(uuid,"企微返回退出/登录超时",0, null); this.openStaffService.logout(uuid, "企微返回退出/登录超时", 0, null);
} }
return ServiceResponse.success(); return ServiceResponse.success();
} }
@Override @Override
public ServiceResponse<Void> login(String uuid, Long qwCorpId, String corpName, Long qwUserId) { public ServiceResponse<Void> login(String uuid, Long qwCorpId, String corpName, Long qwUserId) {
TabOpenStaff openStaff = this.openStaffService.getByUUID(uuid) ; TabOpenStaff openStaff = this.openStaffService.getByUUID(uuid);
if(null == openStaff) { if (null == openStaff) {
return ServiceResponse.failure("9999","登录错误") ; return ServiceResponse.failure("9999", "登录错误");
} }
String wxEnterpriseId = openStaff.getWxEnterpriseId() ; String wxEnterpriseId = openStaff.getWxEnterpriseId();
List<String> backWxEnterpriseIdList = this.wxEnterpriseService.getWxEnterpriseIdByName(corpName) ; List<String> backWxEnterpriseIdList = this.wxEnterpriseService.getWxEnterpriseIdByName(corpName);
if(CollectionUtils.isEmpty(backWxEnterpriseIdList) || backWxEnterpriseIdList.size()>1 || !backWxEnterpriseIdList.get(0).equals(wxEnterpriseId)) { if (CollectionUtils.isEmpty(backWxEnterpriseIdList) || backWxEnterpriseIdList.size() > 1 || !backWxEnterpriseIdList.get(0).equals(wxEnterpriseId)) {
this.openStaffService.logout(uuid,"授权登录账号与当前账号不一致",10, null); this.openStaffService.logout(uuid, "授权登录账号与当前账号不一致", 10, null);
log.info("登录的企业不对={},{}",uuid,corpName); log.info("登录的企业不对={},{}", uuid, corpName);
return ServiceResponse.failure("9999","登录错误") ; return ServiceResponse.failure("9999", "登录错误");
} }
TabOpenStaff staff = this.openStaffMapper.getByQwUserId(qwUserId) ; TabOpenStaff staff = this.openStaffMapper.getByQwUserId(qwUserId);
if(null != staff && !staff.getWxEnterpriseId().equals(wxEnterpriseId)) { if (null != staff && !staff.getWxEnterpriseId().equals(wxEnterpriseId)) {
this.openStaffService.logout(uuid,"只能托管一个企微企业",0 , null); this.openStaffService.logout(uuid, "只能托管一个企微企业", 0, null);
log.info("只能托管一个企业={},{}",uuid,corpName); log.info("只能托管一个企业={},{}", uuid, corpName);
return ServiceResponse.failure("9999","只能托管一个企业") ; return ServiceResponse.failure("9999", "只能托管一个企业");
} }
openStaff.setWxCorpId(qwCorpId); openStaff.setWxCorpId(qwCorpId);
openStaff.setQwUserId(qwUserId); openStaff.setQwUserId(qwUserId);
if(null == openStaff.getFirstAuthTime()) { if (null == openStaff.getFirstAuthTime()) {
openStaff.setFirstAuthTime(new Date()); openStaff.setFirstAuthTime(new Date());
} }
openStaff.setAuthTime(new Date()); openStaff.setAuthTime(new Date());
...@@ -137,76 +140,76 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService { ...@@ -137,76 +140,76 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
} }
@Override @Override
public ServiceResponse<Void> logout(String uuid) { public ServiceResponse<Void> logout(String uuid, OpenStaffOfflineEnum offlineEnum) {
this.openStaffService.logout(uuid,"手机端结束登录",0 , "手机端结束登录"); this.openStaffService.logout(uuid, offlineEnum.getDesc(), 0, offlineEnum.getDesc());
return ServiceResponse.success(); return ServiceResponse.success();
} }
@Override @Override
public ServiceResponse<Void> logout(Long openStaffId) { public ServiceResponse<Void> logout(Long openStaffId) {
TabOpenStaff staff = this.openStaffMapper.getById(openStaffId) ; TabOpenStaff staff = this.openStaffMapper.getById(openStaffId);
this.openStaffService.logout(staff.getUuid(),"取消授权",0 , null); this.openStaffService.logout(staff.getUuid(), "取消授权", 0, null);
return ServiceResponse.success(); return ServiceResponse.success();
} }
@Override @Override
public ServiceResponse<Void> checkCode(Long openStaffId, String validCode) { public ServiceResponse<Void> checkCode(Long openStaffId, String validCode) {
TabOpenStaff tab = this.openStaffMapper.getById(openStaffId) ; TabOpenStaff tab = this.openStaffMapper.getById(openStaffId);
if(null == tab) { if (null == tab) {
return ServiceResponse.failure("9999","记录不存在") ; return ServiceResponse.failure("9999", "记录不存在");
} }
return OpenUtils.checkCode(tab.getUuid(),tab.getKey1(),validCode) ; return OpenUtils.checkCode(tab.getUuid(), tab.getKey1(), validCode);
} }
@Override @Override
public ServiceResponse<OpenStaffDTO> getById(Long openStaffId) { public ServiceResponse<OpenStaffDTO> getById(Long openStaffId) {
TabOpenStaff openStaff = this.openStaffMapper.getById(openStaffId) ; TabOpenStaff openStaff = this.openStaffMapper.getById(openStaffId);
if(null == openStaff) { if (null == openStaff) {
return ServiceResponse.failure("9999","已删除") ; return ServiceResponse.failure("9999", "已删除");
} }
OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class,openStaff) ; OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class, openStaff);
return ServiceResponse.success(dto); return ServiceResponse.success(dto);
} }
@Override @Override
public ServiceResponse<OpenStaffDTO> getByQwUserId(Long qwUserId) { public ServiceResponse<OpenStaffDTO> getByQwUserId(Long qwUserId) {
TabOpenStaff openStaff = this.openStaffMapper.getByQwUserId(qwUserId) ; TabOpenStaff openStaff = this.openStaffMapper.getByQwUserId(qwUserId);
if(null == openStaff) { if (null == openStaff) {
return ServiceResponse.failure("9999","已删除") ; return ServiceResponse.failure("9999", "已删除");
} }
OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class,openStaff) ; OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class, openStaff);
return ServiceResponse.success(dto); return ServiceResponse.success(dto);
} }
@Override @Override
public ServiceResponse<OpenStaffDTO> init(OpenStaffInitQDTO qdto) { public ServiceResponse<OpenStaffDTO> init(OpenStaffInitQDTO qdto) {
String staffId = qdto.getStaffId(); String staffId = qdto.getStaffId();
if(StringUtils.isBlank(staffId)) { if (StringUtils.isBlank(staffId)) {
log.info("staffId is null"); log.info("staffId is null");
return ServiceResponse.failure("9999","staffId为空") ; return ServiceResponse.failure("9999", "staffId为空");
} }
String lockKey = "lock:qywx:open:"+staffId ; String lockKey = "lock:qywx:open:" + staffId;
try { try {
RedisUtil.lock(lockKey , 3L); RedisUtil.lock(lockKey, 3L);
TabOpenStaff openStaff = this.openStaffMapper.getByStaffId(staffId) ; TabOpenStaff openStaff = this.openStaffMapper.getByStaffId(staffId);
Long qwUserId = null ; Long qwUserId = null;
if(null != openStaff) { if (null != openStaff) {
if(openStaff.getStatusFlag()==1 && qdto.getLoginAgainFlag()==0) { if (openStaff.getStatusFlag() == 1 && qdto.getLoginAgainFlag() == 0) {
return ServiceResponse.failure("9999","成员已托管中") ; return ServiceResponse.failure("9999", "成员已托管中");
} }
qwUserId = openStaff.getQwUserId() ; qwUserId = openStaff.getQwUserId();
log.info("重新初始化"); log.info("重新初始化");
this.openStaffService.logout(openStaff.getUuid(),"重新初始化",0, null); this.openStaffService.logout(openStaff.getUuid(), "重新初始化", 0, null);
} }
if(null == openStaff) { if (null == openStaff) {
openStaff = new TabOpenStaff() ; openStaff = new TabOpenStaff();
openStaff.setStaffId(staffId); openStaff.setStaffId(staffId);
openStaff.setWxEnterpriseId(qdto.getWxEnterpriseId()); openStaff.setWxEnterpriseId(qdto.getWxEnterpriseId());
openStaff.setEnterpriseId(qdto.getEnterpriseId()); openStaff.setEnterpriseId(qdto.getEnterpriseId());
} }
ServiceResponse<QwOpenResultInitBO> resp = OpenUtils.init(qwUserId) ; ServiceResponse<QwOpenResultInitBO> resp = OpenUtils.init(qwUserId);
log.info("resp={}", JSONObject.toJSONString(resp)); log.info("resp={}", JSONObject.toJSONString(resp));
QwOpenResultInitBO init = resp.getResult() ; QwOpenResultInitBO init = resp.getResult();
openStaff.setUuid(init.getUuid()); openStaff.setUuid(init.getUuid());
openStaff.setQrCode1(init.getQrcode()); openStaff.setQrCode1(init.getQrcode());
openStaff.setKey1(init.getKey()); openStaff.setKey1(init.getKey());
...@@ -217,20 +220,20 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService { ...@@ -217,20 +220,20 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
openStaff.setQrCode2(null); openStaff.setQrCode2(null);
openStaff.setKey2(null); openStaff.setKey2(null);
openStaff = this.openStaffService.save(openStaff); openStaff = this.openStaffService.save(openStaff);
OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class,openStaff) ; OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class, openStaff);
dto.setQrcodeData(init.getQrcode_data()) ; dto.setQrcodeData(init.getQrcode_data());
return ServiceResponse.success(dto) ; return ServiceResponse.success(dto);
}catch (Exception e) { } catch (Exception e) {
log.info("异常",e); log.info("异常", e);
} }
return ServiceResponse.failure("9999","登录失败") ; return ServiceResponse.failure("9999", "登录失败");
} }
@Override @Override
public ServiceResponse<OpenStaffLicenseDTO> getLicenseInfo(String wxEnterpriseId, String enterpriseId) { public ServiceResponse<OpenStaffLicenseDTO> getLicenseInfo(String wxEnterpriseId, String enterpriseId) {
OpenStaffLicenseDTO dto = new OpenStaffLicenseDTO(); OpenStaffLicenseDTO dto = new OpenStaffLicenseDTO();
int useNum = this.openStaffMapper.getNum(wxEnterpriseId,enterpriseId,0) ; int useNum = this.openStaffMapper.getNum(wxEnterpriseId, enterpriseId, 0);
int validNum = this.openStaffMapper.getNum(wxEnterpriseId,enterpriseId,1) ; int validNum = this.openStaffMapper.getNum(wxEnterpriseId, enterpriseId, 1);
dto.setUseNum(useNum); dto.setUseNum(useNum);
dto.setValidNum(validNum); dto.setValidNum(validNum);
return ServiceResponse.success(dto); return ServiceResponse.success(dto);
...@@ -238,37 +241,37 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService { ...@@ -238,37 +241,37 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
@Override @Override
public ServiceResponse<Page<OpenStaffListDTO>> page(OpenStaffPageQDTO qdto, BasePageInfo basePageInfo) { public ServiceResponse<Page<OpenStaffListDTO>> page(OpenStaffPageQDTO qdto, BasePageInfo basePageInfo) {
return this.openStaffService.page(qdto,basePageInfo); return this.openStaffService.page(qdto, basePageInfo);
} }
@Override @Override
public ServiceResponse<OpenStaffDTO> getByStaffId(String staffId) { public ServiceResponse<OpenStaffDTO> getByStaffId(String staffId) {
TabOpenStaff tab = this.openStaffMapper.getByStaffId(staffId) ; TabOpenStaff tab = this.openStaffMapper.getByStaffId(staffId);
if(null == tab) { if (null == tab) {
return ServiceResponse.failure("9999","已删除") ; return ServiceResponse.failure("9999", "已删除");
} }
OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class,tab) ; OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class, tab);
return ServiceResponse.success(dto); return ServiceResponse.success(dto);
} }
@Override @Override
public ServiceResponse<OpenStaffDTO> getByUUID(String uuid) { public ServiceResponse<OpenStaffDTO> getByUUID(String uuid) {
TabOpenStaff tab = this.openStaffMapper.getByUUID(uuid) ; TabOpenStaff tab = this.openStaffMapper.getByUUID(uuid);
if(null == tab) { if (null == tab) {
return ServiceResponse.failure("9999","不存在") ; return ServiceResponse.failure("9999", "不存在");
} }
OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class,tab) ; OpenStaffDTO dto = EntityUtil.changeEntityByJSON(OpenStaffDTO.class, tab);
return ServiceResponse.success(dto); return ServiceResponse.success(dto);
} }
@Override @Override
public List<StaffClerkRelationDTO> listOpenStaffByClerk(String wxEnterpriseId, String enterpriseId, List<String> clerkIdList) { public List<StaffClerkRelationDTO> listOpenStaffByClerk(String wxEnterpriseId, String enterpriseId, List<String> clerkIdList) {
return this.openStaffMapper.listOpenStaffByClerk(wxEnterpriseId,enterpriseId,clerkIdList); return this.openStaffMapper.listOpenStaffByClerk(wxEnterpriseId, enterpriseId, clerkIdList);
} }
@Override @Override
public List<StaffClerkRelationDTO> listOpenStaffByStore(String wxEnterpriseId, String enterpriseId, List<String> storeIdList) { public List<StaffClerkRelationDTO> listOpenStaffByStore(String wxEnterpriseId, String enterpriseId, List<String> storeIdList) {
return this.openStaffMapper.listOpenStaffByStore(wxEnterpriseId,enterpriseId,storeIdList); return this.openStaffMapper.listOpenStaffByStore(wxEnterpriseId, enterpriseId, storeIdList);
} }
@Override @Override
...@@ -278,11 +281,11 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService { ...@@ -278,11 +281,11 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
@Override @Override
public List<String> listOpenStoreId(String wxEnterpriseId, String enterpriseId) { public List<String> listOpenStoreId(String wxEnterpriseId, String enterpriseId) {
return this.openStaffMapper.listOpenStoreId(wxEnterpriseId,enterpriseId); return this.openStaffMapper.listOpenStoreId(wxEnterpriseId, enterpriseId);
} }
@Override @Override
public void updateStopTime(Long openStaffId, int type, int time) { public void updateStopTime(Long openStaffId, int type, int time) {
this.openStaffMapper.updateStopTime(openStaffId,type,time) ; this.openStaffMapper.updateStopTime(openStaffId, type, time);
} }
} }
...@@ -153,8 +153,8 @@ public class QywxAlarmWordsController { ...@@ -153,8 +153,8 @@ public class QywxAlarmWordsController {
user.setEnterpriseId(loginUser.getEnterpriseId()); user.setEnterpriseId(loginUser.getEnterpriseId());
user.setRealName(loginUser.getClerkName()); user.setRealName(loginUser.getClerkName());
String fileName = "敏感词" ; String fileName = "敏感词" ;
Date startDate = new Date(); Date startDate = qdto.getStartDate();
Date endDate = new Date() ; Date endDate = qdto.getEndDate() ;
if(null != startDate && null != endDate) { if(null != startDate && null != endDate) {
fileName = fileName + "-" + DateUtil.formatString(startDate, "yyyy-MM-dd") + "到" + DateUtil.formatString(endDate, "yyyy-MM-dd"); fileName = fileName + "-" + DateUtil.formatString(startDate, "yyyy-MM-dd") + "到" + DateUtil.formatString(endDate, "yyyy-MM-dd");
} }
......
...@@ -127,8 +127,8 @@ public class QywxOpenController { ...@@ -127,8 +127,8 @@ public class QywxOpenController {
user.setEnterpriseId(loginUser.getEnterpriseId()); user.setEnterpriseId(loginUser.getEnterpriseId());
user.setRealName(loginUser.getClerkName()); user.setRealName(loginUser.getClerkName());
String fileName = "好办托管企微号"; String fileName = "好办托管企微号";
Date startDate = new Date(); Date startDate = qdto.getStartDate();
Date endDate = new Date(); Date endDate = qdto.getEndDate();
if (null != startDate && null != endDate) { if (null != startDate && null != endDate) {
fileName = "好办托管企微号" + "-" + DateUtil.formatString(startDate, "yyyy-MM-dd") + "到" + DateUtil.formatString(endDate, "yyyy-MM-dd"); fileName = "好办托管企微号" + "-" + DateUtil.formatString(startDate, "yyyy-MM-dd") + "到" + DateUtil.formatString(endDate, "yyyy-MM-dd");
} }
......
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