| | |
| | | |
| | | import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.biz.zbom.model.IamUserRoleModel; |
| | | import com.doumee.biz.zbom.model.IamUserTypeModel; |
| | | import com.doumee.config.Jwt.JwtPayLoad; |
| | | import com.doumee.config.Jwt.JwtTokenUtil; |
| | | import com.doumee.core.annotation.excel.ExcelImporter; |
| | |
| | | } |
| | | } |
| | | |
| | | private void dealUserDataBiz(List<UserImport> finalDataList, Date date, LoginUserInfo loginUserInfo) { |
| | | private void dealUserDataBiz(List<UserImport> dataList, Date date, LoginUserInfo loginUserInfo) { |
| | | try { |
| | | List<Users> list = usersMapper.selectJoinList(Users.class,new MPJLambdaWrapper<Users>() |
| | | .selectAll(Users.class) |
| | | ); |
| | | List<Users> insertList = new ArrayList<>(); |
| | | List<Users> updateList = new ArrayList<>(); |
| | | for(int i=0;i<dataList.size();i++){ |
| | | UserImport model = dataList.get(i); |
| | | if(StringUtils.isBlank(model.getName()) |
| | | &&StringUtils.isBlank(model.getCode()) ){ |
| | | continue; |
| | | } |
| | | Users user = checkModelParam(model,insertList,updateList,i,loginUserInfo,list,date); |
| | | } |
| | | if(insertList .size() >0){ |
| | | int temp = 0; |
| | | while(temp < insertList.size()){ |
| | | int index; |
| | | if(temp + 500 <= insertList.size()){ |
| | | index = temp+500; |
| | | }else{ |
| | | index = insertList.size(); |
| | | } |
| | | usersMapper.insert(insertList.subList(temp,index)); |
| | | temp = index; |
| | | } |
| | | } |
| | | if(updateList .size() >0){ |
| | | for(Users s : updateList){ |
| | | //遍历更新数据 |
| | | usersMapper.updateById(s); |
| | | } |
| | | } |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"信息导入失败,请稍后重试"); |
| | | }finally { |
| | | executor.shutdown(); |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_USERS); |
| | | } |
| | | } |
| | | private Users getUserByUserID(String userId, List<Users> list) { |
| | | if(list ==null || list.size() ==0){ |
| | | return null; |
| | | } |
| | | for(Users s :list){ |
| | | if(StringUtils.equals(s.getIamId(),userId)){ |
| | | return s; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private Users checkModelParam(UserImport model, List<Users> insertList, List<Users> updateList, int index, LoginUserInfo loginUserInfo, List<Users> list, Date date) { |
| | | |
| | | if(StringUtils.isBlank(model.getUserId())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【编码】信息不完整,请检查表格内容!"); |
| | | } |
| | | if(StringUtils.isBlank(model.getName())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【姓名】信息不完整,请检查表格内容!"); |
| | | } |
| | | if(StringUtils.isBlank(model.getAccountNo())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【登录账号】信息不完整,请检查表格内容!"); |
| | | } |
| | | if(StringUtils.isBlank(model.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行【手机号】信息不完整,请检查表格内容!"); |
| | | } |
| | | Users users = getUserByUserID(model.getUserId(),list); |
| | | if(users == null){ |
| | | users = new Users(); |
| | | users.setCreator(loginUserInfo.getId()); |
| | | users.setCreateDate(date); |
| | | initUsersInfo(users,model,date,loginUserInfo); |
| | | insertList.add(users); |
| | | }else { |
| | | initUsersInfo(users,model,date,loginUserInfo); |
| | | updateList.add(users); |
| | | } |
| | | return users; |
| | | } |
| | | |
| | | private void initUsersInfo(Users users, UserImport model,Date date,LoginUserInfo loginUserInfo ){ |
| | | users.setEditor(loginUserInfo.getId()); |
| | | users.setEditDate(date); |
| | | users.setName(model.getName()); |
| | | users.setIamUsername(model.getAccountNo()); |
| | | users.setPhone(model.getPhone()); |
| | | users.setStatus(model.getStatus()); |
| | | users.setEmail(model.getEmail()); |
| | | users.setIamId(model.getUserId()); |
| | | users.setCode(model.getCode()); |
| | | users.setSex(model.getSex()); |
| | | users.setStatus(model.getStatus()); |
| | | users.setIsdeleted(Constants.ZERO); |
| | | users.setRoleIds(""); |
| | | users.setRoleNames(""); |
| | | users.setRoleCodes(""); |
| | | users.setUserTypes(""); |
| | | users.setIamOrgId(""); |
| | | getDepartidByParam(users,model.getOrgIds()); |
| | | setRolesInfo(users,model); |
| | | getUserTypesByParam(users,model.getTypeCodes()); |
| | | } |
| | | |
| | | private String getUserTypesByParam(Users users,String typeCodes) { |
| | | if( typeCodes !=null){ |
| | | String[] codes =typeCodes.split(","); |
| | | for(String t : codes){ |
| | | if(StringUtils.isBlank(users.getUserTypes())){ |
| | | users.setUserTypes(""); |
| | | } |
| | | users.setUserTypes(users.getUserTypes()+"["+t+"];"); |
| | | } |
| | | } |
| | | return users.getUserTypes(); |
| | | } |
| | | |
| | | private void setRolesInfo(Users users, UserImport model) { |
| | | if( model.getRoleCodes() !=null){ |
| | | String[] codes = model.getRoleCodes().split(","); |
| | | for(String t : codes){ |
| | | if(StringUtils.isBlank(users.getRoleCodes())){ |
| | | users.setRoleCodes(""); |
| | | } |
| | | users.setRoleCodes(users.getRoleCodes()+"["+t+"];"); |
| | | } |
| | | } |
| | | if( model.getRoleIds() !=null){ |
| | | String[] codes = model.getRoleIds().split(","); |
| | | for(String t : codes){ |
| | | if(StringUtils.isBlank(users.getRoleIds())){ |
| | | users.setRoleIds(""); |
| | | } |
| | | users.setRoleIds(users.getRoleIds()+"["+t+"];"); |
| | | } |
| | | } |
| | | if( model.getRoleNames() !=null){ |
| | | String[] codes = model.getRoleNames().split(","); |
| | | for(String t : codes){ |
| | | if(StringUtils.isBlank(users.getRoleNames())){ |
| | | users.setRoleNames(""); |
| | | } |
| | | users.setRoleNames(users.getRoleNames()+"["+t+"];"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private Shop getDepartidByParam(Users users , String orgIds) { |
| | | if( orgIds ==null){ |
| | | return null; |
| | | } |
| | | String[] orgArray = orgIds.split(","); |
| | | if( orgArray !=null && orgArray.length>0){ |
| | | for(String t : orgArray){ |
| | | Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getOrgId,t) |
| | | .last("limit 1")); |
| | | if(shop!=null) { |
| | | users.setIamOrgId(t); |
| | | users.setDepartmentId(shop.getId()); |
| | | return shop; |
| | | } |
| | | } |
| | | } |
| | | users.setIamOrgId(orgIds+"--尚未同步到组织"); |
| | | |
| | | return null; |
| | | } |
| | | |
| | | } |
| | | |