|
@@ -375,7 +375,7 @@ public class AnalysisDiyCustomerComponent {
|
|
|
}
|
|
|
for (int i = 1; i < co; i++) {
|
|
|
try {
|
|
|
- bzJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.STAFF,i+"")));
|
|
|
+ bzJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.BZ,i+"")));
|
|
|
} catch (Exception e) {
|
|
|
log.error("循环获取3.7经销商倍增人员错误!第"+i+"页");
|
|
|
customerAccessTokenUtil.reSetToken();
|
|
@@ -386,13 +386,13 @@ public class AnalysisDiyCustomerComponent {
|
|
|
bz.addAll(bzJson.getJSONArray("data"));
|
|
|
}
|
|
|
}
|
|
|
- success += buildSysUserStaff(bz, loginNameSet, diyNameSet, failDetails, packageId, chainsMap,10);
|
|
|
+ success += buildSysUserBz(bz, loginNameSet, diyNameSet, failDetails, packageId, chainsMap,10);
|
|
|
total += bz.size();
|
|
|
}else{
|
|
|
code = bzJson.getInteger("code");
|
|
|
if(code==0){
|
|
|
bz.addAll(bzJson.getJSONArray("data"));
|
|
|
- success += buildSysUserStaff(bz, loginNameSet, diyNameSet, failDetails, packageId, chainsMap,10);
|
|
|
+ success += buildSysUserBz(bz, loginNameSet, diyNameSet, failDetails, packageId, chainsMap,10);
|
|
|
total += bz.size();
|
|
|
}
|
|
|
}
|
|
@@ -1109,22 +1109,192 @@ public class AnalysisDiyCustomerComponent {
|
|
|
|
|
|
/***
|
|
|
*
|
|
|
- * 3.6/3.7经销商经销人员门店
|
|
|
+ * 3.6
|
|
|
* **/
|
|
|
public Integer buildSysUserStaff(JSONArray STAFF, Set<String> loginNameSet,Set<String> diyNameSet, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap,Integer isManager){
|
|
|
//JSONArray jsonArray = json.getJSONArray("data");
|
|
|
int count = 0;
|
|
|
List<String > interfaceList8=new ArrayList<>();
|
|
|
- List<String > interfaceList10=new ArrayList<>();
|
|
|
for(int x =0;x<STAFF.size();x++){
|
|
|
JSONObject jsonObject = STAFF.getJSONObject(x);
|
|
|
String loginName = jsonObject.getString("userid");
|
|
|
if(loginName !=null && !"".equals(loginName)){
|
|
|
- if(isManager==8){
|
|
|
interfaceList8.add(loginName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(int i =0;i<STAFF.size();i++){
|
|
|
+ JSONObject jo = STAFF.getJSONObject(i);
|
|
|
+
|
|
|
+ try {
|
|
|
+ String userNo = jo.getString("userNo");
|
|
|
+ String name = jo.getString("name");
|
|
|
+ String userid = jo.getString("userid");
|
|
|
+ String customerCode = jo.getString("depCode");
|
|
|
+
|
|
|
+
|
|
|
+ /*企业微信中成员启用状态。1表示启用的成员,0表示被禁用*/
|
|
|
+ /*if(enable==null||enable.trim().equals("0")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ *//*企业微信中人员激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业。*//*
|
|
|
+ if(status==null || !status.trim().equals("1")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ *//*人员信息是否已更新入企业微信。true:更新成功false:更新失败*//*
|
|
|
+ if(!isSync){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ *//*人员信息是否被标记删除true:删除,false:未删除*//*
|
|
|
+ if(isDelete){
|
|
|
+ continue;
|
|
|
+ }*/
|
|
|
+ if(userid==null||userid.trim().equals("")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ loginNameSet = sysUserService.selectAllUserLoginName();
|
|
|
+ diyNameSet = sysUserService.selectDiyUserLoginName();
|
|
|
+ loginNameSet = loginNameSet.stream().map(String::toUpperCase).collect(Collectors.toSet());
|
|
|
+ if (!loginNameSet.contains(userid.toUpperCase().trim())) {
|
|
|
+
|
|
|
+ /** =============用户基本信息构建 start===============*/
|
|
|
+ SysUser user = new SysUser();
|
|
|
+ user.setCompanyId(1L);
|
|
|
+ user.setDeptId(deptId);
|
|
|
+ user.setLoginName(userid);
|
|
|
+ user.setUserName(jo.getString("name"));
|
|
|
+ user.setPhonenumber(jo.getString("mobile"));
|
|
|
+ user.setRoleIds(roleStoreIds);
|
|
|
+ user.setPassword(user.getLoginName());
|
|
|
+ user.setSalt(ShiroSaltUtil.randomSalt());
|
|
|
+ user.setPassword(EncryptPassWordClass.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
|
|
|
+
|
|
|
+
|
|
|
+ /** =============用户基本信息构建 end===============*/
|
|
|
+
|
|
|
+
|
|
|
+ /**======== 构建diy用户扩展信息表 start===============*/
|
|
|
+ SysUserExt userExt = new SysUserExt();
|
|
|
+ userExt.setSalesLevel("customer_level");
|
|
|
+
|
|
|
+ userExt.setIdentity(UserIdentityUtil.UI_DIY);// 1=diy,2=ebr,3=all
|
|
|
+
|
|
|
+ userExt.setCustomerCode(jo.getString("depCode"));
|
|
|
+ userExt.setIsCustomerManager(isManager + "");
|
|
|
+ userExt.setSapEmployeeId(userNo);
|
|
|
+
|
|
|
+ userExt.setPostName("DIY经销商");
|
|
|
+ String orgCode = jo.getString("depCode");
|
|
|
+ if(cusMap.containsKey(orgCode)){
|
|
|
+ Customers c = cusMap.get(orgCode);
|
|
|
+ userExt.setOrgCode(c.getChainsCode());
|
|
|
+ userExt.setOrgName(c.getChainsName());
|
|
|
+ }else{
|
|
|
+ userExt.setOrgCode(orgCode);
|
|
|
+ }
|
|
|
+
|
|
|
+// /**======== 构建diy用户wx信息表 start===============*/
|
|
|
+// WxQyUser wxQyUser = new WxQyUser();
|
|
|
+// wxQyUser.setUserid(jo.getString("userid"));
|
|
|
+// wxQyUser.setMobile(jo.getString("mobile"));
|
|
|
+ user.setSysUserExt(userExt);
|
|
|
+ insertUserAndExt(user);
|
|
|
+ count++;
|
|
|
+ loginNameSet.add(userid);
|
|
|
+ diyNameSet.add(userid);
|
|
|
}else{
|
|
|
- interfaceList10.add(loginName);
|
|
|
+ /*已经存在的,需要先清空职位,更新职位
|
|
|
+ (首先查询当前用户职位,判断当前职位是否包含当前职位,不存在就更新,存在就不更新)*/
|
|
|
+ SysUser user = sysUserService.selectUserByLoginName(userid);
|
|
|
+ if(("0").equals(user.getIsSync())){
|
|
|
+ //每个接口查询俩次是否有重复开始查询一次,快结束查一次
|
|
|
+ //查询该用户是否存在该接口返回中
|
|
|
+ sysUserService.insertUserRole(user.getUserId(), roleStoreIds[0]);
|
|
|
+ if (user.getSysUserExt().getIsCustomerManager() == null) {
|
|
|
+ user.getSysUserExt().setIsCustomerManager(isManager + "");
|
|
|
+ sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
|
|
|
+ }
|
|
|
+ if (!user.getSysUserExt().getIsCustomerManager().contains(isManager + "") ||
|
|
|
+ !user.getSysUserExt().getCustomerCode().equals(customerCode) || !user.getSysUserExt().getOrgCode().equals(customerCode)) {
|
|
|
+ if (!user.getSysUserExt().getIsCustomerManager().contains(isManager + "")) {
|
|
|
+ /*更新职位*/
|
|
|
+ user.getSysUserExt().setIsCustomerManager(user.getSysUserExt().getIsCustomerManager() + "," + isManager);
|
|
|
+ }
|
|
|
+ if (!user.getSysUserExt().getCustomerCode().equals(customerCode) || !user.getSysUserExt().getOrgCode().equals(customerCode)) {
|
|
|
+ /*更新经销商code*/
|
|
|
+ if (cusMap.containsKey(customerCode)) {
|
|
|
+ Customers c = cusMap.get(customerCode);
|
|
|
+ user.getSysUserExt().setOrgCode(c.getChainsCode());
|
|
|
+ user.getSysUserExt().setOrgName(c.getChainsName());
|
|
|
+ } else {
|
|
|
+ user.getSysUserExt().setOrgCode(customerCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("updateSysUserExt" + customerCode);
|
|
|
+ sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
|
|
|
+ }
|
|
|
+ /*解决名称不一样的情况*/
|
|
|
+ if (!user.getUserName().equals(name)) {
|
|
|
+ user.setUserName(name);
|
|
|
+ sysUserService.updateUserInfo(user);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage());
|
|
|
+ e.printStackTrace();
|
|
|
+ SyncFailDetail syncFailDetail = new SyncFailDetail();
|
|
|
+ syncFailDetail.setPackageId(packageId);
|
|
|
+ syncFailDetail.setFailReason(e.getMessage());
|
|
|
+ syncFailDetail.setDataJson(jo.toJSONString());
|
|
|
+ syncFailDetail.setFailLevel("1");
|
|
|
+ syncFailDetail.setExceptionType(e.getClass().getSimpleName());
|
|
|
+ failDetails.add(syncFailDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<String> loginNames=sysUserService.selectUserByIsManager(isManager);
|
|
|
+ List<String > collect = loginNames.stream().filter(item -> !interfaceList8.contains(item)).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (collect.size() > 0) {
|
|
|
+ for (String login:collect
|
|
|
+ ) {
|
|
|
+ SysUser u = sysUserService.selectUserByLoginName(login);
|
|
|
+ if(("0").equals(u.getIsSync())){
|
|
|
+ String CustomerManager= u.getSysUserExt().getIsCustomerManager();
|
|
|
+ String[] manager=CustomerManager.split(",");
|
|
|
+ if(manager.length >1){
|
|
|
+ List<String> resultList = new ArrayList<>(manager.length);
|
|
|
+ Collections.addAll(resultList,manager);
|
|
|
+ Object i=isManager;
|
|
|
+ resultList.remove(i.toString());
|
|
|
+ String IsManager = resultList.stream().map(String::valueOf).collect(Collectors.joining(","));
|
|
|
+ u.getSysUserExt().setIsCustomerManager(IsManager);
|
|
|
+ sysUserExtMapper.updateSysUserExt(u.getSysUserExt());
|
|
|
+ }else{
|
|
|
+ u.setQuit("2");
|
|
|
+ sysUserService.updateUserInfo(u);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return count;
|
|
|
+ }
|
|
|
+
|
|
|
+ /***
|
|
|
+ *
|
|
|
+ *3.7经销商经销人员门店
|
|
|
+ * **/
|
|
|
+ public Integer buildSysUserBz(JSONArray STAFF, Set<String> loginNameSet,Set<String> diyNameSet, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap,Integer isManager){
|
|
|
+ //JSONArray jsonArray = json.getJSONArray("data");
|
|
|
+ int count = 0;
|
|
|
+ List<String > interfaceList10=new ArrayList<>();
|
|
|
+ for(int x =0;x<STAFF.size();x++){
|
|
|
+ JSONObject jsonObject = STAFF.getJSONObject(x);
|
|
|
+ String loginName = jsonObject.getString("userid");
|
|
|
+ if(loginName !=null && !"".equals(loginName)){
|
|
|
+ interfaceList10.add(loginName);
|
|
|
}
|
|
|
}
|
|
|
for(int i =0;i<STAFF.size();i++){
|
|
@@ -1259,12 +1429,7 @@ public class AnalysisDiyCustomerComponent {
|
|
|
}
|
|
|
}
|
|
|
List<String> loginNames=sysUserService.selectUserByIsManager(isManager);
|
|
|
- List<String > collect=new ArrayList<>();
|
|
|
- if(isManager ==8){
|
|
|
- collect = loginNames.stream().filter(item -> !interfaceList8.contains(item)).collect(Collectors.toList());
|
|
|
- }else{
|
|
|
- collect = loginNames.stream().filter(item -> !interfaceList10.contains(item)).collect(Collectors.toList());
|
|
|
- }
|
|
|
+ List<String > collect=loginNames.stream().filter(item -> !interfaceList10.contains(item)).collect(Collectors.toList());
|
|
|
if (collect.size() > 0) {
|
|
|
for (String login:collect
|
|
|
) {
|