Commit 5603028b by 墨竹

Merge branch 'feature-0323' into developer

# Conflicts:
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/StaffApiServiceImpl.java
parents 0fa38081 a1b8c03f
...@@ -26,15 +26,13 @@ import com.gic.haoban.manage.api.service.DepartmentApiService; ...@@ -26,15 +26,13 @@ import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.haoban.manage.api.service.StaffApiService; import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.service.dao.mapper.StaffDepartmentRelatedMapper; import com.gic.haoban.manage.service.dao.mapper.StaffDepartmentRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper; import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.entity.TabHaobanDepartment; import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanStaffDepartmentRelated;
import com.gic.haoban.manage.service.entity.TabHaobanSyncErrorLog;
import com.gic.haoban.manage.service.service.*; import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.util.EmojiFilterUtil; import com.gic.haoban.manage.service.util.EmojiFilterUtil;
import com.gic.redis.data.util.RedisUtil; import com.gic.redis.data.util.RedisUtil;
import com.gic.thirdparty.api.dto.PicUploadResDTO; import com.gic.thirdparty.api.dto.PicUploadResDTO;
import com.gic.thirdparty.api.service.QQCloudPicService; import com.gic.thirdparty.api.service.QQCloudPicService;
import com.gic.wechat.api.dto.qywx.QywxNewUseridDTO;
import com.gic.wechat.api.dto.qywx.UserDTO; import com.gic.wechat.api.dto.qywx.UserDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
...@@ -99,6 +97,8 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -99,6 +97,8 @@ public class StaffApiServiceImpl implements StaffApiService {
private SecretSettingService secretSettingService; private SecretSettingService secretSettingService;
@Autowired @Autowired
private StaffPrivacyUseLogService staffPrivacyUseLogService; private StaffPrivacyUseLogService staffPrivacyUseLogService;
@Autowired
private WxApplicationService wxApplicationService;
@Override @Override
public StaffDTO selectById(String staffId) { public StaffDTO selectById(String staffId) {
...@@ -293,14 +293,12 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -293,14 +293,12 @@ public class StaffApiServiceImpl implements StaffApiService {
WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(staff.getWxEnterpriseId()); WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(staff.getWxEnterpriseId());
if (enterpriseDTO != null) { if (enterpriseDTO != null) {
ServiceResponse delQywxStaff = delQywxStaff(staff, enterpriseDTO); ServiceResponse delQywxStaff = delQywxStaff(staff, enterpriseDTO);
// JSONResponse jp = qywxUserApiService.deleteSelfWorkWxUser(enterpriseDTO.getCorpid(), enterpriseDTO.getContactSecret(), staff.getWxUserId());
logger.info("【删除成员】{} ,jp={}", staffDepartmentStaffRelatedId, JSON.toJSONString(delQywxStaff)); logger.info("【删除成员】{} ,jp={}", staffDepartmentStaffRelatedId, JSON.toJSONString(delQywxStaff));
if (delQywxStaff.getCode() != 1) { if (delQywxStaff.getCode() != 1) {
throw new RuntimeException("企业微信删除失败"); throw new RuntimeException("企业微信删除失败");
} }
} }
staffDepartmentRelatedService.del(related); staffDepartmentRelatedService.del(related);
// staffService.delByuserid(relatedList.get(0).getStaffId());
TabHaobanStaffDepartmentRelated staffRelated = relatedList.get(0); TabHaobanStaffDepartmentRelated staffRelated = relatedList.get(0);
if (StringUtils.isNotBlank(staffRelated.getClerkCode())) { if (StringUtils.isNotBlank(staffRelated.getClerkCode())) {
...@@ -366,7 +364,7 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -366,7 +364,7 @@ public class StaffApiServiceImpl implements StaffApiService {
res.setCode(2); res.setCode(2);
return res; return res;
} }
String corpid = enterpriseDTO.getCorpid();
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(enterpriseDTO.getWxEnterpriseId(), SecretTypeEnum.HAOBAN_HELP.getVal()); SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(enterpriseDTO.getWxEnterpriseId(), SecretTypeEnum.HAOBAN_HELP.getVal());
if (null == secretSetting || secretSetting.getCheckFlag() == 0) { if (null == secretSetting || secretSetting.getCheckFlag() == 0) {
logger.info("没有配置secret:{}", JSONObject.toJSONString(enterpriseDTO)); logger.info("没有配置secret:{}", JSONObject.toJSONString(enterpriseDTO));
...@@ -374,7 +372,7 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -374,7 +372,7 @@ public class StaffApiServiceImpl implements StaffApiService {
res.setCode(4); res.setCode(4);
return res; return res;
} }
UserDTO user = qywxUserApiService.getSelfWorkWxUser(enterpriseDTO.getCorpid(), secretSetting.getSecretVal(), userId); UserDTO user = qywxUserApiService.getSelfWorkWxUser(corpid, secretSetting.getSecretVal(), userId);
if (null == user) { if (null == user) {
logger.info("企业微信用户不存在:{}:{}", wxEnterpriseId, userId); logger.info("企业微信用户不存在:{}:{}", wxEnterpriseId, userId);
res.setMessage("企业微信用户不存在"); res.setMessage("企业微信用户不存在");
...@@ -415,6 +413,10 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -415,6 +413,10 @@ public class StaffApiServiceImpl implements StaffApiService {
if (StringUtils.isNotBlank(qr_code)) { if (StringUtils.isNotBlank(qr_code)) {
staff.setQrCode(qr_code); staff.setQrCode(qr_code);
} }
String openUserid = getOpenUserid(userId, corpid);
if (StringUtils.isNotBlank(openUserid)) {
staff.setWxOpenUseId(openUserid);
}
//成员更改或更新 //成员更改或更新
if (StringUtils.isBlank(staff.getStaffId())) { if (StringUtils.isBlank(staff.getStaffId())) {
logger.info("新增成员"); logger.info("新增成员");
...@@ -431,6 +433,21 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -431,6 +433,21 @@ public class StaffApiServiceImpl implements StaffApiService {
return res; return res;
} }
/**
* 获取wxopenid
* @param userId
* @param corpid
* @return
*/
private String getOpenUserid(String userId, String corpid) {
TabHaobanWxApplication tabHaobanWxApplication = wxApplicationService.selectByCorpId(corpid);
List<QywxNewUseridDTO> qywxNewUseridDTOS = qywxUserApiService.useridToOpenuserid(corpid, tabHaobanWxApplication.getSiteId(), Collections.singletonList(userId));
if (CollectionUtils.isEmpty(qywxNewUseridDTOS)) {
return "";
}
return qywxNewUseridDTOS.get(0).getOpen_userid();
}
private String[] getNationCodeAndPhoneNumber(String phoneNumber) { private String[] getNationCodeAndPhoneNumber(String phoneNumber) {
String[] arr = new String[2]; String[] arr = new String[2];
if (StringUtils.isBlank(phoneNumber)) { if (StringUtils.isBlank(phoneNumber)) {
...@@ -464,7 +481,6 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -464,7 +481,6 @@ public class StaffApiServiceImpl implements StaffApiService {
} }
private void staffDepartChange(TabHaobanStaff staff, String wxEnterpriseId, UserDTO user) { private void staffDepartChange(TabHaobanStaff staff, String wxEnterpriseId, UserDTO user) {
//更新部门 //更新部门
Integer[] departmentIds = user.getDepartment(); Integer[] departmentIds = user.getDepartment();
List<String> wxDepartIds = new ArrayList<>(); List<String> wxDepartIds = new ArrayList<>();
...@@ -542,119 +558,6 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -542,119 +558,6 @@ public class StaffApiServiceImpl implements StaffApiService {
logger.info("信息:{}", JSONObject.toJSONString(wxSaveNew)); logger.info("信息:{}", JSONObject.toJSONString(wxSaveNew));
} }
@Deprecated
public void wxGetAddOld(String userId, String wxEnterpriseId) {
//获取微信用户信息
TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(userId, wxEnterpriseId);
if (staff == null) {
WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if (enterpriseDTO != null) {
Date now = new Date();
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.HAOBAN_HELP.getVal());
if (null == secretSetting || secretSetting.getCheckFlag() == 0) {
logger.info("没有配置secret");
return;
}
UserDTO user = qywxUserApiService.getSelfWorkWxUser(enterpriseDTO.getCorpid(), secretSetting.getSecretVal(), userId);
if (user == null) {
return;
}
logger.info("【新增用户】user={}", JSON.toJSONString(user));
TabHaobanStaff tab = new TabHaobanStaff();
tab.setWxUserId(userId);
tab.setCreateTime(now);
tab.setUpdateTime(now);
tab.setStatusFlag(1);
tab.setWxEnterpriseId(wxEnterpriseId);
if (StringUtils.isNotBlank(user.getAvatar())) {
tab.setHeadImg(changeHeaderImageUrl(user.getAvatar()));
}
tab.setPhoneNumber(user.getMobile());
if (StringUtils.isNotBlank(user.getName())) {
user.setName(EmojiFilterUtil.removeAllEmoji(user.getName()));
tab.setStaffName((user.getName()));
}
if (StringUtils.isNotBlank(user.getAlias())) {
user.setAlias(EmojiFilterUtil.removeAllEmoji(user.getAlias()));
tab.setNickName((user.getAlias()));
}
// tab.setNickName(user.getAlias());
tab.setNationCode("86");
tab.setSex(user.getGender() == null ? 1 : Integer.parseInt(user.getGender()));
tab.setActiveFlag(1);
tab.setPostion(user.getPosition());
tab.setExtendPostion(user.getExternal_position());
if (user.getStatus() != null && user.getStatus() == 1) {
tab.setActiveFlag(1);
} else {
tab.setActiveFlag(0);
}
String staffId = staffService.add(tab);
Integer[] departmentId = user.getDepartment();
for (Integer integer : departmentId) {
TabHaobanDepartment tabDepartment = departmentService.getByWxId(integer.toString(), wxEnterpriseId);
if (tabDepartment != null) {
TabHaobanStaffDepartmentRelated tabStaff = staffDepartmentRelatedService.getDepartmentIdAndStaffId(tabDepartment.getDepartmentId(), tab.getStaffId());
if (tabStaff == null) {
StaffDepartmentRelatedDTO dto = new StaffDepartmentRelatedDTO();
dto.setPhoneNumber(user.getMobile());
dto.setWxUserId(userId);
dto.setStaffId(staffId);
dto.setStaffName(user.getName());
dto.setWxEnterpriseId(wxEnterpriseId);
dto.setStatusFlag(1);
dto.setDepartmentId(tabDepartment.getDepartmentId());
dto.setNationCode("86");
dto.setStaffName(user.getName());
staffDepartmentRelatedService.add(dto);
}
}
}
}
} else {
WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if (enterpriseDTO != null) {
SecretSettingDTO secretSetting = secretSettingService.getSecretSetting(enterpriseDTO.getWxEnterpriseId(), SecretTypeEnum.CONTACT_SECRET.getVal());
if (null == secretSetting || secretSetting.getCheckFlag() == 0) {
logger.info("没有设置通讯录secret");
return;
}
UserDTO user = qywxUserApiService.getSelfWorkWxUser(enterpriseDTO.getCorpid(), secretSetting.getSecretVal(), userId);
logger.info("【修改用户】user={}", JSON.toJSONString(user));
Integer[] departmentId = user.getDepartment();
String departmentIds = "";
for (Integer integer : departmentId) {
TabHaobanDepartment tabDepartment = departmentService.getByWxId(integer.toString(), wxEnterpriseId);
if (tabDepartment != null) {
departmentIds += tabDepartment.getDepartmentId() + ",";
}
}
if (StringUtils.isNotBlank(departmentIds)) {
departmentIds = departmentIds.substring(0, departmentIds.length() - 1);
}
StaffDTO staffDTO = EntityUtil.changeEntityByJSON(StaffDTO.class, staff);
staffDTO.setWeixinPush(true);
if (StringUtils.isBlank(staffDTO.getPhoneNumber())) {
staffDTO.setPhoneNumber(user.getMobile());
staffDTO.setSex(StringUtils.isBlank(user.getGender()) ? null : Integer.parseInt(user.getGender()));
staffDTO.setHeadImg(user.getAvatar());
staffDTO.setPostion(user.getPosition());
staffDTO.setNickName(user.getAlias());
staffDTO.setExtendPostion(user.getExternal_position());
Integer status = user.getStatus();
if (status != null && status == 2) {
staffDTO.setActiveFlag(1);
}
}
this.staffEdit(staffDTO, departmentIds);
//String staffId = staffService.add(tab);
}
}
}
@Override @Override
public void wxFristAdd(String userJson, String wxEnterpriseId) { public void wxFristAdd(String userJson, String wxEnterpriseId) {
if (StringUtils.isBlank(userJson)) { if (StringUtils.isBlank(userJson)) {
...@@ -668,7 +571,6 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -668,7 +571,6 @@ public class StaffApiServiceImpl implements StaffApiService {
WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId); WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if (enterpriseDTO != null) { if (enterpriseDTO != null) {
Date now = new Date(); Date now = new Date();
//UserDTO user = qywxUserApiService.getSelfWorkWxUser(enterpriseDTO.getCorpid(), enterpriseDTO.getContactSecret(), userId);
logger.info("【新增用户】user={}", JSON.toJSONString(user)); logger.info("【新增用户】user={}", JSON.toJSONString(user));
TabHaobanStaff tab = new TabHaobanStaff(); TabHaobanStaff tab = new TabHaobanStaff();
tab.setWxUserId(userId); tab.setWxUserId(userId);
...@@ -688,7 +590,6 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -688,7 +590,6 @@ public class StaffApiServiceImpl implements StaffApiService {
user.setAlias(EmojiFilterUtil.removeAllEmoji(user.getAlias())); user.setAlias(EmojiFilterUtil.removeAllEmoji(user.getAlias()));
tab.setNickName((user.getAlias())); tab.setNickName((user.getAlias()));
} }
// tab.setNickName(user.getAlias());
tab.setNationCode("86"); tab.setNationCode("86");
tab.setSex(user.getGender() == null ? 1 : Integer.parseInt(user.getGender())); tab.setSex(user.getGender() == null ? 1 : Integer.parseInt(user.getGender()));
tab.setActiveFlag(1); tab.setActiveFlag(1);
...@@ -699,7 +600,7 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -699,7 +600,7 @@ public class StaffApiServiceImpl implements StaffApiService {
} else { } else {
tab.setActiveFlag(0); tab.setActiveFlag(0);
} }
String staffId = staffService.add(tab); staffService.add(tab);
} }
} else { } else {
WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId); WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
...@@ -780,7 +681,8 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -780,7 +681,8 @@ public class StaffApiServiceImpl implements StaffApiService {
} }
Boolean weixinPush = staffDTO.getWeixinPush(); Boolean weixinPush = staffDTO.getWeixinPush();
if (weixinPush == null || !weixinPush) { if (weixinPush == null || !weixinPush) {
updateWxMessage(oldStaff, staffDTO, departmentIds); //不需要推送到企微
//updateWxMessage(oldStaff, staffDTO, departmentIds);
} }
} }
......
...@@ -164,10 +164,4 @@ public class QywxStaffSyncOperation implements BaseSyncOperation { ...@@ -164,10 +164,4 @@ public class QywxStaffSyncOperation implements BaseSyncOperation {
RedisUtil.unlock(key); RedisUtil.unlock(key);
} }
private Page<StaffDTO> pageStaffListByWxEnterpriseId(String wxEnterpriseId, Integer pageNum, Integer pageSize) {
return staffApiService.listUserIdByWxEnterpriseId(wxEnterpriseId, pageNum, pageSize);
}
} }
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