|
@@ -16,32 +16,44 @@ import me.chanjar.weixin.cp.bean.WxCpUser;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
public class WxUserService extends BaseService {
|
|
public class WxUserService extends BaseService {
|
|
-
|
|
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private WxDepartService wxDepartService;
|
|
private WxDepartService wxDepartService;
|
|
-
|
|
|
|
|
|
+
|
|
private Map<Long, List<WxDepart>> userDepartMap = Maps.newHashMap();
|
|
private Map<Long, List<WxDepart>> userDepartMap = Maps.newHashMap();
|
|
|
|
|
|
public void saveUsers() throws Exception {
|
|
public void saveUsers() throws Exception {
|
|
List<WxCpUser> users = WXCpUserUtil.listAllUser();
|
|
List<WxCpUser> users = WXCpUserUtil.listAllUser();
|
|
List<WxDepart> departs = null;
|
|
List<WxDepart> departs = null;
|
|
WxUser wxUser = null;
|
|
WxUser wxUser = null;
|
|
|
|
+ WxUser dbUser = null;
|
|
|
|
+ String userId = null;
|
|
for (WxCpUser user : users) {
|
|
for (WxCpUser user : users) {
|
|
- wxUser = WxUser.builder().userId(user.getUserId()).name(user.getName()).departId(user.getDepartIds()[0])
|
|
|
|
- .build();
|
|
|
|
|
|
+ userId = user.getUserId();
|
|
|
|
+ wxUser = WxUser.builder().userId(userId).name(user.getName()).departId(user.getDepartIds()[0]).build();
|
|
departs = getUserDepart(wxUser.getDepartId());
|
|
departs = getUserDepart(wxUser.getDepartId());
|
|
- if(departs.size() > 0) {
|
|
|
|
|
|
+ if (departs.size() > 0) {
|
|
wxUser.setFirstDepartName(departs.get(0).getName());
|
|
wxUser.setFirstDepartName(departs.get(0).getName());
|
|
}
|
|
}
|
|
- if(departs.size() > 1) {
|
|
|
|
|
|
+ if (departs.size() > 1) {
|
|
wxUser.setSecondDepartName(departs.get(1).getName());
|
|
wxUser.setSecondDepartName(departs.get(1).getName());
|
|
}
|
|
}
|
|
- save("WxUserMapper.save", wxUser);
|
|
|
|
|
|
+ dbUser = selectById(userId);
|
|
|
|
+ if (dbUser == null) {
|
|
|
|
+ save("WxUserMapper.save", wxUser);
|
|
|
|
+ } else {
|
|
|
|
+ wxUser.setUserId(dbUser.getUserId());
|
|
|
|
+ update("WxUserMapper.update", wxUser);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public WxUser selectById(String userId) throws Exception {
|
|
|
|
+ return (WxUser) findObject("WxUserMapper.selectById", userId);
|
|
|
|
+ }
|
|
|
|
+
|
|
private List<WxDepart> getUserDepart(Long departId) throws Exception {
|
|
private List<WxDepart> getUserDepart(Long departId) throws Exception {
|
|
- if(!userDepartMap.containsKey(departId)) {
|
|
|
|
|
|
+ if (!userDepartMap.containsKey(departId)) {
|
|
userDepartMap.put(departId, wxDepartService.findParentList(departId));
|
|
userDepartMap.put(departId, wxDepartService.findParentList(departId));
|
|
}
|
|
}
|
|
return userDepartMap.get(departId);
|
|
return userDepartMap.get(departId);
|