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