UserServiceImpl.java 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298
  1. package com.ghsc.partybuild.service.impl;
  2. import com.fasterxml.jackson.databind.JsonNode;
  3. import com.github.pagehelper.PageHelper;
  4. import com.github.pagehelper.PageInfo;
  5. import com.ghsc.partybuild.AppConfig;
  6. import com.ghsc.partybuild.mapper.*;
  7. import com.ghsc.partybuild.model.*;
  8. import com.ghsc.partybuild.service.*;
  9. import com.ghsc.partybuild.util.JsonMapper;
  10. import com.ghsc.partybuild.util.MapUtils;
  11. import com.ghsc.partybuild.util.RemoteHelper;
  12. import com.ghsc.partybuild.util.StringUtils;
  13. import com.ghsc.partybuild.vo.PartyUserInfoVo;
  14. import com.ghsc.partybuild.vo.UserInfoVo;
  15. import com.ghsc.partybuild.vo.UserMobileVo;
  16. import com.ghsc.partybuild.vo.UserVo;
  17. import lombok.extern.slf4j.Slf4j;
  18. import org.apache.commons.lang3.time.DateUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.cache.annotation.Cacheable;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Propagation;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import org.springframework.web.context.request.RequestContextHolder;
  25. import org.springframework.web.context.request.ServletRequestAttributes;
  26. import java.math.BigDecimal;
  27. import java.sql.Timestamp;
  28. import java.util.*;
  29. import java.util.stream.Collectors;
  30. /**
  31. * @author wufs
  32. * @date 2020/05/15
  33. */
  34. @Slf4j
  35. @Service("userService")
  36. public class UserServiceImpl implements UserService {
  37. @Autowired
  38. private CfUsersMapper cfUsersMapper;
  39. @Autowired
  40. private CfUsersCQuery cfUsersCQuery;
  41. @Autowired
  42. private CfUsersinfoMapper cfUsersinfoMapper;
  43. @Autowired
  44. private CfOudetailMapper cfOudetailMapper;
  45. @Autowired
  46. private CfUserrolesMapper cfUserrolesMapper;
  47. @Autowired
  48. protected AppConfig appConfig;
  49. @Autowired
  50. protected StringUtils stringUtils;
  51. @Autowired
  52. private DictionaryService dictionaryService;
  53. @Autowired
  54. private CfMenuMapper cfMenuMapper;
  55. @Autowired
  56. private PartyService partyService;
  57. /*
  58. @Autowired
  59. RedisTemplate redisTemplate;*/
  60. @Autowired
  61. private CfUserappinfoMapper cfUserappinfoMapper;
  62. @Autowired
  63. private MapUtils mapUtils;
  64. private org.apache.commons.lang3.StringUtils stringUtils3;
  65. @Autowired
  66. private CfRolesCQuery rolesCQuery;
  67. @Autowired
  68. private PartyUserCQuery partyUserCQuery;
  69. @Autowired
  70. private PartyCQuery partyCQuery;
  71. @Autowired
  72. private RemoteHelper remoteHelper;
  73. @Autowired
  74. private CommonService commonService;
  75. @Autowired
  76. private PartyUserService partyUserService;
  77. @Autowired
  78. private PartyUserCQuery partyUserCquery;
  79. @Autowired
  80. private com.ghsc.partybuild.util.DateUtils dateUtils;
  81. @Autowired
  82. private GgZgjbxxMapper ggZgjbxxMapper;
  83. @Autowired
  84. private RsRyjbxxfbMapper rsRyjbxxfbMapper;
  85. @Autowired
  86. private ZzRyjbxxMapper zzRyjbxxMapper;
  87. private String massesRoleId = "b2db297b-333f-4575-8da1-f5534e23a133";
  88. @Override
  89. public int addUser(CfUsers cfUser) {
  90. return cfUsersMapper.insert(cfUser);
  91. }
  92. @Override
  93. public CfUsers getUser(String userId) {
  94. CfUsers user = cfUsersMapper.selectByPrimaryKey(userId);
  95. if (user == null) {
  96. user = new CfUsers();
  97. user.setUserid("");
  98. user.setUsername("");
  99. }
  100. return user;
  101. }
  102. @Override
  103. public List<HashMap<String, Object>> selectUserAll(String userName) {
  104. return cfUsersCQuery.selectUserAll(userName);
  105. }
  106. @Override
  107. /*@Cacheable(value = "getUserInfobyId", key = "#p0")*/
  108. public CfUsersinfo getUserInfobyId(String userId) {
  109. CfUsersinfo user = new CfUsersinfo();//
  110. PartyUserInfoVo userInfoVo = partyUserCquery.selectUserInfo(userId);
  111. if (userInfoVo == null) {
  112. user = new CfUsersinfo();
  113. user.setName("");
  114. user.setId("");
  115. } else {
  116. user.setId(userInfoVo.getRybm());
  117. user.setName(userInfoVo.getXm());
  118. }
  119. return user;
  120. }
  121. /**
  122. * 把机构用户切换成园区
  123. *
  124. * @param userinfo
  125. */
  126. @Override
  127. public void addUserInfoWithPark(CfUsersinfo userinfo) {
  128. /*
  129. List<HashMap<String, Object>> parkList = this.GetUserParkList(userinfo.getId());
  130. String dpName = "", dpId = "";
  131. for (HashMap<String, Object> park : parkList) {
  132. dpName += park.get("parkName") + ",";
  133. dpId += park.get("parkID") + ",";
  134. }
  135. if (dpName.length() > 0) {
  136. dpName = dpName.substring(0, dpName.length() - 1);
  137. dpId = dpId.substring(0, dpId.length() - 1);
  138. }
  139. userinfo.setDpname(dpName);
  140. userinfo.setDpid(dpId);*/
  141. }
  142. @Override
  143. public CfUsers getLoginUser() {
  144. ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
  145. String loginId = requestAttributes.getRequest().getAttribute("UserLoginId").toString();
  146. //return getUserByKey(loginId);
  147. return getUser(loginId);
  148. }
  149. @Override
  150. @Cacheable(value = "GetMenuByUserId", key = "#p0+'-'+#p1")
  151. public List<HashMap<String, Object>> getMenuByUserId(String userId, String appid) {
  152. return cfUsersCQuery.getMenuByUid(userId, appid);
  153. }
  154. @Override
  155. public List<HashMap<String, Object>> getMenuByRoleId(String roleId, String appid, String dwId) {
  156. List<String> menuDwids = new ArrayList<>();
  157. try {
  158. if (!stringUtils.IsNullOrEmpty(appConfig.menuDwids) && !stringUtils.IsNullOrEmpty(dwId)) {
  159. menuDwids = java.util.Arrays.asList(appConfig.menuDwids.split(","));
  160. menuDwids = menuDwids.stream().filter(it -> !it.contains(dwId)).collect(Collectors.toList());
  161. }
  162. } catch (Exception e) {
  163. }
  164. return cfUsersCQuery.getMenuByRoles(roleId, menuDwids);
  165. }
  166. @Override
  167. public List<CfOudetail> getDPbyDPID(String dpId) {
  168. if (stringUtils.IsNullOrEmpty(dpId)) {
  169. dpId = appConfig.ouRootId;
  170. }
  171. CfOudetailExample exp = new CfOudetailExample();
  172. exp.or().andDpidEqualTo(dpId);
  173. return cfOudetailMapper.selectByExample(exp);
  174. }
  175. @Override
  176. public List<CfOudetail> getDpListByParentID(String parentID) {
  177. CfOudetailExample exp = new CfOudetailExample();
  178. exp.or().andParentdpidEqualTo(parentID);
  179. return cfOudetailMapper.selectByExample(exp);
  180. }
  181. @Override
  182. public List<CfUsersinfo> getUserListByDpID(String dpId, String userName) {
  183. return cfUsersCQuery.getUserList(userName, dpId);
  184. }
  185. @Override
  186. public List<CfUsersinfo> getUserByParams(String dpId, String dzzmc, String userName) {
  187. return cfUsersCQuery.getUserByParams(userName, dpId, dzzmc);
  188. }
  189. @Override
  190. public int saveUserRoleList(String roleIds, String userIds, boolean isRemoveRole) {
  191. String[] userIdArray = userIds.split(",");
  192. String[] roleIdArray = roleIds.split(",");
  193. List<String> userIdList = Arrays.asList(userIdArray);
  194. //不在cf_users存在的用户,先初始化数据
  195. CfUsersExample uexm = new CfUsersExample();
  196. uexm.or().andUseridIn(userIdList);
  197. List<CfUsers> users = cfUsersMapper.selectByExample(uexm);
  198. for (String uid : userIdList) {
  199. if (users.stream().filter(x -> x.getUserid().equals(uid)).count() == 0) {
  200. HashMap<String, Object> userinfo = partyUserService.getPartyUserInfoByRybm(uid);
  201. if (userinfo != null && userinfo.get("RYBM") != null) {
  202. String xm = userinfo.get("XM") == null ? "" : userinfo.get("XM").toString();
  203. CfUsers user = new CfUsers();
  204. user.setUserid(uid);
  205. user.setUsername(null);
  206. user.setApplicationid("f0c4fa7f9f3c4fb6bd56aac608b7ad3f");
  207. user.setUserpwd("D6FB6D8741F9AF9E7BC1C39E79D73944");
  208. user.setIsanonymous(1);
  209. user.setLastactivitydate(new Date());
  210. cfUsersMapper.insert(user);
  211. /*CfUsersinfo info = new CfUsersinfo();
  212. *//*info.setId(uid);
  213. info.setDguserid(uid);
  214. info.setIsenable(new BigDecimal(1));*//*
  215. info.setId(uid);
  216. info.setDguserid(uid);
  217. info.setName(xm);
  218. info.setUserligion(xm);
  219. info.setIsenable(new BigDecimal("1"));
  220. cfUsersinfoMapper.insert(info);*/
  221. }
  222. }
  223. }
  224. int addItemCount = 0;
  225. if (roleIds.length() > 0) {
  226. for (String roleId : roleIdArray) {
  227. CfUserrolesExample expUr = new CfUserrolesExample();
  228. expUr.or().andRoleidEqualTo(roleId).andUseridIn(userIdList);
  229. List<CfUserrolesKey> existlist = cfUserrolesMapper.selectByExample(expUr);
  230. for (String uid : userIdList) {
  231. if (existlist.stream().filter(x -> x.getUserid().equals(uid)).count() == 0) {
  232. CfUserrolesKey cfUserrolesKey = new CfUserrolesKey();
  233. cfUserrolesKey.setRoleid(roleId);
  234. cfUserrolesKey.setUserid(uid);
  235. addItemCount = addItemCount + cfUserrolesMapper.insert(cfUserrolesKey);
  236. }
  237. }
  238. }
  239. }
  240. //删除剔除掉的角色
  241. if (isRemoveRole == true) {
  242. CfUserrolesExample expUr2 = new CfUserrolesExample();
  243. if (roleIds.length() > 0) {
  244. expUr2.or().andUseridIn(userIdList).andRoleidNotIn(Arrays.asList(roleIdArray));
  245. } else//如果没有选择角色,则清空用户所有角色
  246. {
  247. expUr2.or().andUseridIn(userIdList);
  248. }
  249. cfUserrolesMapper.deleteByExample(expUr2);
  250. }
  251. return addItemCount;
  252. }
  253. @Override
  254. public int deleteUserRole(String roleId, String userId) {
  255. CfUserrolesExample expUr = new CfUserrolesExample();
  256. expUr.or().andRoleidEqualTo(roleId).andUseridEqualTo(userId);
  257. return cfUserrolesMapper.deleteByExample(expUr);
  258. }
  259. @Override
  260. @Cacheable(value = "getUserByKey", key = "#p0")
  261. public CfUsers getUserByKey(String userLoginId) {
  262. CfUsers user = new CfUsers();
  263. CfUsersExample exp = new CfUsersExample();
  264. exp.or().andUsernameEqualTo(userLoginId);
  265. List<CfUsers> cfUsers = cfUsersMapper.selectByExample(exp);
  266. if (cfUsers.size() > 0) {
  267. user = cfUsers.get(0);
  268. } else {
  269. user = new CfUsers();
  270. user.setUsername("");
  271. user.setUserid("");
  272. user.setUserpwd("");
  273. }
  274. //redisTemplate.opsForValue().set("test1","t1234");
  275. //redisTemplate.opsForSet().add("user_GetUserByKey_"+user.getUserid(),user);
  276. return user;
  277. }
  278. @Override
  279. public CfUsers getUserByMobile(String mobile) {
  280. CfUsers user = null;
  281. //if()
  282. List<CfUsers> users = cfUsersCQuery.getCfUserByMobile(mobile);
  283. if (users.size() > 0) {
  284. user = users.get(0);
  285. user.setUserpwd("");
  286. } else {
  287. user = new CfUsers();
  288. user.setUsername("");
  289. user.setUserid("");
  290. user.setUserpwd("");
  291. }
  292. return user;
  293. }
  294. @Override
  295. public CfUsers getUserByOAName(String oaName) {
  296. CfUsers user = null;
  297. if (org.apache.commons.lang3.StringUtils.isNotBlank(oaName)) {
  298. CfUsersExample exp = new CfUsersExample();
  299. exp.or().andOauseridEqualTo(oaName);
  300. List<CfUsers> users = cfUsersMapper.selectByExample(exp);
  301. if (users.size() > 0) {
  302. user = users.get(0);
  303. }
  304. }
  305. if (user == null) {
  306. user = new CfUsers();
  307. user.setUsername("");
  308. user.setUserid("");
  309. user.setUserpwd("");
  310. }
  311. return user;
  312. }
  313. @Override
  314. public CfUsers getCfuserByUsername(String name) {
  315. CfUsers user = null;
  316. List<CfUsers> users = cfUsersCQuery.getCfUserByUsername(name);
  317. if (users.size() > 0) {
  318. user = users.get(0);
  319. user.setUserpwd("");
  320. } else {
  321. user = new CfUsers();
  322. user.setUsername("");
  323. user.setUserid("");
  324. user.setUserpwd("");
  325. }
  326. return user;
  327. }
  328. @Override
  329. public CfUsers getEnableUserByKey(String UserLoginId) {
  330. CfUsers user = new CfUsers();
  331. List<CfUsers> cfUsers = cfUsersCQuery.selectEnableUserList(UserLoginId);
  332. if (cfUsers.size() > 0) {
  333. user = cfUsers.get(0);
  334. } else {
  335. user = new CfUsers();
  336. user.setUsername("");
  337. user.setUserid("");
  338. }
  339. return user;
  340. }
  341. /*@Override
  342. public List<CfUsersinfo> getUserByRoleName(String roleName) {
  343. return cfUsersCQuery.GetUserByRoleName(roleName);
  344. }*/
  345. /* @Override
  346. public PageInfo<HashMap<String, Object>> getUserList(int pageNum, int pageSize, String username) {
  347. PageHelper.startPage(pageNum, pageSize);
  348. List<HashMap<String, Object>> list = cfUsersCQuery.selectUserList(username);
  349. PageInfo<HashMap<String, Object>> result = new PageInfo(list);
  350. return result;
  351. }*/
  352. @Override
  353. public int saveUser(CfUsers cfUsers, CfUsersinfo cfUsersinfo, String parkIds) {
  354. int result = 0;
  355. int userType = cfUsersinfo.getUsertype().intValue();
  356. CfUsers user = getLoginUser();
  357. CfUsers model = getUser(cfUsers.getUserid());
  358. if (model == null || stringUtils.IsNullOrEmpty(model.getUserid())) {
  359. cfUsers.setUsername(cfUsersinfo.getUserligion());
  360. result = cfUsersMapper.insert(cfUsers);
  361. } else {
  362. result = cfUsersMapper.updateByPrimaryKey(cfUsers);
  363. }
  364. CfUsersinfo usermodel = getUserInfobyId(cfUsersinfo.getId());
  365. if (usermodel == null || stringUtils.IsNullOrEmpty(usermodel.getId())) {
  366. //cfUsersinfo.setCreateby(user.getUserid());
  367. //cfUsersinfo.setCreatetime(new Date());
  368. //result = cfUsersinfoMapper.insert(cfUsersinfo);
  369. } else {
  370. //cfUsersinfo.setUpdateby(user.getUserid());
  371. //cfUsersinfo.setUpdatetime(new Date());
  372. //result = cfUsersinfoMapper.updateByPrimaryKey(cfUsersinfo);
  373. }
  374. /*删除园区关联*/
  375. /*
  376. CfUserparksExample exp = new CfUserparksExample();
  377. CfUserparksExample.Criteria cri = exp.or().andUseridEqualTo(cfUsers.getUserid());
  378. cfUserparksMapper.deleteByExample(exp);
  379. if (!stringUtils.IsNullOrEmpty(parkIds)) {
  380. List<String> parkidList = java.util.Arrays.asList(parkIds.split(","));
  381. parkidList.forEach(item -> {
  382. CfUserparksKey userpark = new CfUserparksKey();
  383. userpark.setParkid(item);
  384. userpark.setUserid(cfUsers.getUserid());
  385. cfUserparksMapper.insert(userpark);
  386. });
  387. }
  388. */
  389. return result;
  390. }
  391. @Override
  392. public int sendPassword(String userLogin, String email) throws Exception {
  393. int count = 0;
  394. CfUsersinfoExample exp = new CfUsersinfoExample();
  395. exp.or().andUserligionEqualTo(userLogin);
  396. /*List<CfUsersinfo> usersinfoList = cfUsersinfoMapper.selectByExample(exp);
  397. if (usersinfoList.size() == 0) {
  398. throw new Exception("该用户不存在!");
  399. } else {
  400. CfUsersinfo usersinfo = usersinfoList.get(0);
  401. ObjectMapper mapper = new ObjectMapper();
  402. *//*
  403. if (usersinfo.getEmail().equals(email)) {
  404. int password = (int) (1000 + Math.random() * (9999 - 1000 + 1));
  405. String newPassword = "PD" + String.valueOf(password);
  406. try {
  407. CfUsersExample usersexp = new CfUsersExample();
  408. usersexp.or().andUsernameEqualTo(userLogin);
  409. List<CfUsers> cfUsersList = cfUsersMapper.selectByExample(usersexp);
  410. CfUsers cfUsers = cfUsersList.get(0);
  411. cfUsers.setUserpwd(DigestUtils.md5DigestAsHex(newPassword.getBytes()).toUpperCase());
  412. count = cfUsersMapper.updateByPrimaryKey(cfUsers);
  413. SendEmail(email, "", newPassword);
  414. } catch (Exception e) {
  415. }
  416. } else {
  417. throw new Exception("用户名与邮箱不匹配!");
  418. }*//*
  419. }*/
  420. return count;
  421. }
  422. @Override
  423. public Timestamp getLastActivityDate(String uid) {
  424. return null;
  425. }
  426. @Override
  427. public String getUserByUserName(String username) {
  428. //String userid = cfUsersMapper.selectByUsername(username);
  429. CfUsersExample exp = new CfUsersExample();
  430. exp.or().andUsernameEqualTo(username);
  431. cfUsersMapper.selectByExample(exp);
  432. String userid = "";
  433. if (userid == null) {
  434. userid = "";
  435. }
  436. return userid;
  437. }
  438. @Override
  439. @Cacheable(value = "userServer", key = "#p0")
  440. public String testCache(String Id) {
  441. String result = "OK" + Id;
  442. return result;
  443. }
  444. @Override
  445. public int updateLastActivityDate(CfUsers cfUsers) {
  446. //return cfUsersMapper.updateLastActivityDate(cfUsers);
  447. //cfUsersMapper.updateByExampleSelective()
  448. return 0;
  449. }
  450. @Override
  451. public int changeOnlineActivityDate(String uid, Date activityDate) {
  452. CfUsers cfUsers = new CfUsers();
  453. if (org.apache.commons.lang3.StringUtils.isBlank(uid)) {
  454. return 0;
  455. }
  456. cfUsers.setUserid(uid);
  457. cfUsers.setLastactivitydate(activityDate);
  458. return cfUsersMapper.updateByPrimaryKeySelective(cfUsers);
  459. }
  460. @Override
  461. public PageInfo<Map<String, Object>> getUserOnline(int pageNum, int pageSize, String userName) {
  462. //getUserOnline
  463. Date beforeTime = DateUtils.addMinutes(new Date(), -2);
  464. PageHelper.startPage(pageNum, pageSize);
  465. List<Map<String, Object>> list = cfUsersCQuery.getUserOnline(userName, beforeTime);
  466. PageInfo<Map<String, Object>> result = new PageInfo(list);
  467. return result;
  468. }
  469. @Override
  470. @Cacheable(value = "isUrlInRole", key = "#p0+'-'+#p1")
  471. public boolean isUrlInRole(String url, String userName) {
  472. boolean isPower = true;
  473. String[] paramUrls = url.split("/");
  474. //String userId=mobiltToUserId(userName);
  475. //只处理/api/{controller}/{action}
  476. if (paramUrls.length >= 4) {
  477. List<String> pUrls = new ArrayList<>();
  478. for (int i = 0; i < 4; i++) {
  479. pUrls.add(paramUrls[i]);
  480. }
  481. String newUrl = String.join("/", pUrls);
  482. CfMenuExample menuExp = new CfMenuExample();
  483. menuExp.or().andMenunoEqualTo(newUrl);
  484. List<CfMenu> menus = cfMenuMapper.selectByExample(menuExp);
  485. //只处理有配置url要管理权限,无配置直接不限制
  486. if (menus.size() > 0) {
  487. List<String> menuIds = menus.stream().map(menu -> menu.getMenuid()).collect(Collectors.toList());
  488. int powerRow = cfUsersCQuery.getPowerByMenu(menuIds, userName, "", null);
  489. if (powerRow == 0) {
  490. isPower = false;
  491. }
  492. }
  493. }
  494. return isPower;
  495. }
  496. @Override
  497. @Cacheable(value = "userPermissionByCode", key = "#p0+'-'+#p1+'-'+#p2+'-'+#p3")
  498. public boolean userPermissionByCode(String Code, String userName, String roleId, String userDwid) {
  499. boolean isPower = true;
  500. CfMenuExample menuExp = new CfMenuExample();
  501. menuExp.or().andMenunoEqualTo(Code);
  502. List<CfMenu> menus = cfMenuMapper.selectByExample(menuExp);
  503. //只处理有配置url要管理权限,无配置直接不限制
  504. if (menus.size() > 0) {
  505. List<String> menuIds = menus.stream().map(menu -> menu.getMenuid()).collect(Collectors.toList());
  506. List<String> menuDwids = new ArrayList<>();
  507. try {
  508. if (!stringUtils.IsNullOrEmpty(appConfig.menuDwids) && !stringUtils.IsNullOrEmpty(userDwid)) {
  509. menuDwids = java.util.Arrays.asList(appConfig.menuDwids.split(","));
  510. menuDwids = menuDwids.stream().filter(it -> !it.contains(userDwid)).collect(Collectors.toList());
  511. }
  512. } catch (Exception e) {
  513. }
  514. int powerRow = cfUsersCQuery.getPowerByMenu(menuIds, userName, roleId, menuDwids);
  515. if (powerRow == 0) {
  516. isPower = false;
  517. }
  518. }
  519. return isPower;
  520. }
  521. @Override
  522. @Cacheable(value = "ExtendUserPartyInfo", key = "#p0")
  523. public Map<String, Object> extendUserPartyInfo(String userId) {
  524. Map<String, Object> partInfo = new HashMap<String, Object>();
  525. List<HashMap<String, Object>> partyInfoList = cfUsersCQuery.GetPartyUserInfo(userId);
  526. if (partyInfoList.size() > 0) {
  527. partInfo = partyInfoList.get(0);
  528. }
  529. return partInfo;
  530. }
  531. @Override
  532. public Map<String, Object> extendUserPartyMore(String userId) {
  533. Map<String, Object> result = null;
  534. List<HashMap<String, Object>> partyMores = cfUsersCQuery.GetPartyUserInfoMore(userId);
  535. if (partyMores.size() > 0) {
  536. result = partyMores.get(0);
  537. Map<String, Object> groupInfo = extendUserPartyInfo(userId);
  538. List<String> listFullGName = new ArrayList<>();
  539. GetUseFullGroupName((String) groupInfo.get("DZZDM"), listFullGName);
  540. Collections.reverse(listFullGName);
  541. result.put("FULLDZZMC", String.join(">", listFullGName));
  542. }
  543. return result;
  544. }
  545. protected void GetUseFullGroupName(String groupId, List<String> listGroupNames) {
  546. if (listGroupNames != null && org.apache.commons.lang3.StringUtils.isNotBlank(groupId)) {
  547. List<HashMap<String, Object>> rows = cfUsersCQuery.GetPartyGroup(groupId);
  548. if (rows.size() > 0) {
  549. String parentId = (String) rows.get(0).get("PARENTCODE");
  550. listGroupNames.add((String) rows.get(0).get("DZZMC"));
  551. if (org.apache.commons.lang3.StringUtils.isNotBlank(parentId) && parentId.length() >= appConfig.gddwdm.length()) {
  552. this.GetUseFullGroupName(parentId, listGroupNames);
  553. }
  554. }
  555. }
  556. }
  557. @Override
  558. public List<HashMap<String, Object>> getRoleByUserId(String userId) {
  559. List<HashMap<String, Object>> roleList = cfUsersCQuery.GetRoleByUserId(userId);
  560. return roleList;
  561. }
  562. /**
  563. * @Description //TODO 用户党小组信息
  564. * @Date 10:59 2019/8/15
  565. * @Param [userId]
  566. **/
  567. @Override
  568. public Map<String, Object> extendUserDxzInfo(String userId) {
  569. Map<String, Object> dxzInfo = new HashMap<String, Object>();
  570. List<HashMap<String, Object>> dxzInfoList = cfUsersCQuery.GetUserDxzInfo(userId);
  571. if (dxzInfoList.size() > 0) {
  572. dxzInfo = dxzInfoList.get(0);
  573. }
  574. return dxzInfo;
  575. }
  576. @Override
  577. public Map<String, Object> canLoginApp(String userAppId) {
  578. HashMap<String, Object> result = new HashMap<>();
  579. /* CfUsersinfoExample exp = new CfUsersinfoExample();
  580. exp.or().andMobileEqualTo(userAppId);
  581. List<CfUsersinfo> users = cfUsersinfoMapper.selectByExample(exp);
  582. if (users.size() > 0) {
  583. result = mapUtils.objectToMap(users.get(0));
  584. }*/
  585. if (org.apache.commons.lang3.StringUtils.isNotBlank(userAppId)) {
  586. CfUsersExample exp = new CfUsersExample();
  587. exp.or().andUsernameEqualTo(userAppId);
  588. List<CfUsers> users = cfUsersMapper.selectByExample(exp);
  589. if (users.size() > 0) {
  590. /*result = mapUtils.objectToMap(users.get(0));*/
  591. result.put("id", users.get(0).getUserid());
  592. }
  593. }
  594. return result;
  595. }
  596. @Override
  597. public Map<String, Object> canLoginAppbyOAId(String oaId) {
  598. HashMap<String, Object> result = new HashMap<>();
  599. if (org.apache.commons.lang3.StringUtils.isNotBlank(oaId)) {
  600. CfUsers user = this.getUserByMobile(oaId);
  601. result.put("id", user.getUserid());
  602. }
  603. return result;
  604. }
  605. @Override
  606. public String getUserDzzdmForShowData(String userId, String roleId) {
  607. String dzzdm = "党组织权限";
  608. if (userId != null && userId.length() > 0) {
  609. String jtbm = appConfig.gddwdm;
  610. /*HashMap<String, Object> userinfo = partyUserService.getPartyUserInfoByRybm(userId);*/
  611. HashMap<String, Object> userinfo = partyUserService.getPartyUserExt(userId);
  612. Integer dataScope = rolesCQuery.getUserDataScope(userId, roleId);
  613. //dataScope=1=全集团=可全集团所有组织
  614. //dataScope=2=本党委=可查看本党委及以下
  615. //dataScope=3=本总支=可查看本总支及以下
  616. //dataScope=4=本支部=可查看本支部及以下
  617. //dataScope=5=本党小组=可查看本党小组
  618. //dataScope=6=未定义=忽略
  619. //dataScope=7=二级党委=可查看二级党委及以下
  620. if (userinfo != null && userinfo.get("RYBM") != null) {
  621. String zzlbmc = userinfo.get("ZZLBMC") != null ? userinfo.get("ZZLBMC").toString() : "";
  622. switch (dataScope) {
  623. case 1:
  624. dzzdm = jtbm;
  625. break;
  626. case 2:
  627. //截取集团公司编号+后3位为党委编码
  628. dzzdm = userinfo.get("SZDZBDM").toString();
  629. if (dzzdm.length() >= (jtbm.length() + 3)) {
  630. dzzdm = dzzdm.substring(0, (jtbm.length() + 3));
  631. }
  632. break;
  633. case 3://本总支
  634. dzzdm = userinfo.get("SZDZBDM").toString();
  635. String dmResult = dzzdm;
  636. while (dmResult.length() >= 15) {
  637. List<HashMap<String, Object>> parent = partyCQuery.selectPartyInfoList(dmResult);
  638. if (parent.size() == 0) {
  639. break;
  640. }
  641. zzlbmc = parent.get(0).get("ZZLBMC") != null ? parent.get(0).get("ZZLBMC").toString() : "";
  642. if (zzlbmc.contains("党总支")) {
  643. dzzdm = dmResult;
  644. }
  645. dmResult = dmResult.substring(0, dmResult.length() - 3);
  646. }
  647. break;
  648. case 4://本支部
  649. dzzdm = userinfo.get("SZDZBDM").toString();
  650. //如果查询的党组织类别名称不是党支部,则循环向上级查找
  651. while (!zzlbmc.contains("党支部") && dzzdm.length() >= 10) {
  652. dzzdm = dzzdm.substring(0, dzzdm.length() - 3);
  653. //List<HashMap<String, Object>> parent = partyCQuery.selectPartyList(null, null, dzzdm, null, null, null, null, null, null);
  654. List<HashMap<String, Object>> parent = partyCQuery.selectPartyInfoList(dzzdm);
  655. if (parent == null || parent.size() <= 0) {
  656. break;
  657. }
  658. ;
  659. zzlbmc = parent.get(0).get("ZZLBMC") != null ? parent.get(0).get("ZZLBMC").toString() : "";
  660. }
  661. //如果查询异常,则还原为当前组织
  662. if (!zzlbmc.contains("党支部")) {
  663. dzzdm = userinfo.get("SZDZBDM").toString();
  664. }
  665. break;
  666. case 5://本党小组
  667. //查看本党小组
  668. dzzdm = userinfo.get("SZDZBDM").toString();
  669. break;
  670. case 6://未定义
  671. //查看本组织
  672. dzzdm = userinfo.get("SZDZBDM").toString();
  673. break;
  674. case 7://二级党委书记
  675. //截取集团公司编号+后6位为党委编码
  676. dzzdm = userinfo.get("SZDZBDM").toString();
  677. if (dzzdm.length() >= (jtbm.length() + 6)) {
  678. String dataDzzdm = dzzdm.substring(0, (jtbm.length() + 6));
  679. ZzZzqkxxfb zzZzqkxxfb = partyService.getPartyFbById(dataDzzdm);
  680. if (zzZzqkxxfb != null && ("100".equals(zzZzqkxxfb.getZzlb()) || "200".equals(zzZzqkxxfb.getZzlb()))) {
  681. dzzdm = dataDzzdm;
  682. }
  683. }
  684. break;
  685. case 8://二级总支
  686. dzzdm = userinfo.get("SZDZBDM").toString();
  687. //如果查询的党组织类别名称不是党支部,则循环向上级查找
  688. while (!zzlbmc.contains("党总支") && dzzdm.length() >= 10) {
  689. dzzdm = dzzdm.substring(0, dzzdm.length() - 3);
  690. //List<HashMap<String, Object>> parent = partyCQuery.selectPartyList(null, null, dzzdm, null, null, null, null, null, null);
  691. List<HashMap<String, Object>> parent = partyCQuery.selectPartyInfoList(dzzdm);
  692. if (parent == null || parent.size() <= 0) {
  693. break;
  694. }
  695. ;
  696. zzlbmc = parent.get(0).get("ZZLBMC") != null ? parent.get(0).get("ZZLBMC").toString() : "";
  697. }
  698. //如果查询异常,则还原为当前组织
  699. if (!zzlbmc.contains("党总支")) {
  700. dzzdm = userinfo.get("SZDZBDM").toString();
  701. }
  702. break;
  703. default:
  704. //查看本组织
  705. dzzdm = userinfo.get("SZDZBDM").toString();
  706. break;
  707. }
  708. } else {
  709. dzzdm = dataScope == 1 ? jtbm : "";//查询不到该组织成员
  710. }
  711. }
  712. return dzzdm;
  713. }
  714. @Override
  715. public Integer getUserDataScope(String userId, String roleId) {
  716. return rolesCQuery.getUserDataScope(userId, roleId);
  717. }
  718. @Override
  719. public int procUpdatePartyusercount() {
  720. return cfUsersCQuery.UpdatePartyusercount();
  721. }
  722. @Override
  723. public int updateUserage() {
  724. return cfUsersCQuery.updateUserage();
  725. }
  726. @Override
  727. public int procUpdatePartyusercountOfMonth() {
  728. return cfUsersCQuery.UpdatePartyusercountOfMonth();
  729. }
  730. @Override
  731. public CfUsers loginApiToUserId(String id, String pwd) throws Exception {
  732. CfUsers result = null;
  733. Map<String, Object> mapData = new HashMap<>();
  734. mapData.put("loginId", id);
  735. String desPwd = commonService.AppDesEncode(pwd, appConfig.appDesSecret, appConfig.appDesVi);
  736. mapData.put("password", desPwd);
  737. mapData.put("fromSys", appConfig.appFromSys);
  738. String reqStr = remoteHelper.postJson(JsonMapper.objectToJson(mapData), appConfig.appLoginUrl, "utf-8");
  739. JsonNode loginJson = JsonMapper.GetJsonNode(reqStr);
  740. if (loginJson.findPath("success").asBoolean()) {
  741. String mobile = loginJson.findPath("data").findPath("mobile").asText();
  742. String name = loginJson.findPath("data").findPath("name").asText();
  743. if (org.apache.commons.lang3.StringUtils.isNotBlank(mobile)) {
  744. CfUsers user = getUserByMobile(mobile);
  745. if (org.apache.commons.lang3.StringUtils.isNotBlank(user.getUsername())) {
  746. result = user;
  747. } else {
  748. //手机号匹配失败,使用人名
  749. result = getUserByMobile(name);
  750. }
  751. } else {
  752. //无手机号直接使用人名
  753. result = getUserByMobile(name);
  754. }
  755. } else {
  756. throw new Exception(loginJson.findPath("errorCode").asText() + ":" + loginJson.findPath("error").asText());
  757. }
  758. return result;
  759. }
  760. @Override
  761. public String userIdToMobile(String userId) {
  762. String mobile = "";
  763. /*CfUsersinfo user = cfUsersinfoMapper.selectByPrimaryKey(userId);*/
  764. CfUsers user = cfUsersMapper.selectByPrimaryKey(userId);
  765. if (user != null) {
  766. mobile = user.getUsername();
  767. }
  768. return mobile;
  769. }
  770. @Override
  771. public String mobiltToUserId(String mobile) {
  772. String userId = "";
  773. /*CfUsersinfoExample exp = new CfUsersinfoExample();
  774. exp.or().andMobileEqualTo(mobile);
  775. List<CfUsersinfo> users = cfUsersinfoMapper.selectByExample(exp);
  776. if (users.size() > 0) {
  777. userId = users.get(0).getId();
  778. }*/
  779. CfUsersExample exp = new CfUsersExample();
  780. exp.or().andUsernameEqualTo(mobile);
  781. List<CfUsers> users = cfUsersMapper.selectByExample(exp);
  782. if (users.size() > 0) {
  783. userId = users.get(0).getUserid();
  784. }
  785. return userId;
  786. }
  787. @Override
  788. public int saveUserMobile(String userId, String mobile) {
  789. int count = 0;
  790. HashMap<String, Object> userinfo = partyUserService.getPartyUserInfoByRybm(userId);
  791. if (userinfo != null && userinfo.get("RYBM") != null) {
  792. CfUsers cfUsers = getUser(userId);
  793. CfUsersinfo cfUsersinfo = getUserInfobyId(userId);
  794. String xm = userinfo.get("XM") == null ? "" : userinfo.get("XM").toString();
  795. if (cfUsers == null || stringUtils.IsNullOrEmpty(cfUsers.getUserid())) {
  796. cfUsers = new CfUsers();
  797. cfUsers.setUserid(userId);
  798. cfUsers.setUsername(mobile);
  799. cfUsers.setApplicationid(appConfig.appId);
  800. cfUsers.setIsanonymous(1);
  801. cfUsers.setUserpwd("D6FB6D8741F9AF9E7BC1C39E79D73944");//zxc@qq
  802. cfUsersMapper.insert(cfUsers);
  803. } else {
  804. cfUsers.setUsername(mobile);
  805. cfUsersMapper.updateByPrimaryKey(cfUsers);
  806. }
  807. /*if (cfUsersinfo == null || stringUtils.IsNullOrEmpty(cfUsersinfo.getId())) {
  808. cfUsersinfo = new CfUsersinfo();
  809. cfUsersinfo.setId(userId);
  810. cfUsersinfo.setDguserid(userId);
  811. cfUsersinfo.setName(xm);
  812. cfUsersinfo.setUserligion(xm);
  813. cfUsersinfo.setMobile(mobile);
  814. cfUsersinfo.setIsenable(new BigDecimal("1"));
  815. count = cfUsersinfoMapper.insert(cfUsersinfo);
  816. } else {
  817. cfUsersinfo.setMobile(mobile);
  818. count = cfUsersinfoMapper.updateByPrimaryKey(cfUsersinfo);
  819. }*/
  820. }
  821. return count;
  822. }
  823. @Override
  824. public List<UserVo> getUserList(String dzzdm) {
  825. return cfUsersCQuery.selectUserMobileList(dzzdm);
  826. }
  827. @Override
  828. public int batchUpdateUserMobile(List<UserMobileVo> userList) {
  829. return cfUsersCQuery.batchUpdateUserMobile(userList);
  830. }
  831. @Override
  832. public List<UserVo> getUserByMobileList(List<String> mobileList) {
  833. return cfUsersCQuery.selectUserByMobileList(mobileList);
  834. }
  835. @Override
  836. public int loginForceStatu(String uid, int state) {
  837. CfUsers user = new CfUsers();
  838. user.setUserid(uid);
  839. user.setLastactivitydate(new Date());
  840. user.setForceloginout(state);
  841. return cfUsersMapper.updateByPrimaryKeySelective(user);
  842. }
  843. @Override
  844. public int checkForceStatu(String uid) {
  845. int result = 0;
  846. CfUsers user = cfUsersMapper.selectByPrimaryKey(uid);
  847. if (user != null) {
  848. result = user.getForceloginout() == null ? 0 : user.getForceloginout();
  849. }
  850. return result;
  851. }
  852. @Override
  853. public int deleteUserById(String userId) {
  854. CfUserrolesExample expUr = new CfUserrolesExample();
  855. expUr.or().andUseridEqualTo(userId);
  856. cfUserrolesMapper.deleteByExample(expUr);
  857. cfUsersinfoMapper.deleteByPrimaryKey(userId);
  858. return cfUsersMapper.deleteByPrimaryKey(userId);
  859. }
  860. @Override
  861. public Map<String, String> BuildOAAuthorization() {
  862. Map<String, String> headers = new HashMap<>();
  863. try {
  864. Map<String, String> mapParams = new HashMap<>();
  865. mapParams.put("username", appConfig.oaUserName);
  866. mapParams.put("password", appConfig.oaPassWord);
  867. mapParams.put("grant_type", appConfig.oaGrantType);
  868. Map<String, String> headerParams = new HashMap<>();
  869. headerParams.put("Authorization", appConfig.oaBaseId);
  870. String tokenData = remoteHelper.post(mapParams, appConfig.oaWebUrl + "/uaa/oauth/token", "utf-8", headerParams);
  871. log.info("BuildOAAuthorization,tokenData:" + tokenData);
  872. JsonNode jToken = JsonMapper.GetJsonNode(tokenData);
  873. headers.put("Authorization", "Bearer " + jToken.get("access_token").asText());
  874. } catch (Exception ex) {
  875. log.error("BuildOAAuthorization", ex);
  876. }
  877. return headers;
  878. }
  879. @Override
  880. public String FindUserOAInfo(String userId, String oaSFZ) {
  881. String result = "";
  882. Map<String, Object> mapData = new HashMap<>();
  883. try {
  884. mapData.put("pageNo", 0);
  885. mapData.put("pageSize", 10);
  886. mapData.put("zjh", oaSFZ);
  887. //mapData.put("avilible",1);
  888. Map<String, String> headers = BuildOAAuthorization();
  889. String appReqData = remoteHelper.postJson(JsonMapper.objectToJson(mapData), appConfig.oaWebUrl + "/idm/queryAccount", "utf-8", headers);
  890. if (org.apache.commons.lang3.StringUtils.isNotBlank(appReqData)) {
  891. log.info("FindUserOAInfo,appReqData:" + appReqData);
  892. JsonNode reqJson = JsonMapper.GetJsonNode(appReqData);
  893. if (reqJson.get("success").asBoolean()) {
  894. JsonNode jResult = reqJson.get("result");
  895. if (jResult.get("totalNum").asInt() > 0) {
  896. JsonNode row = jResult.get("rows").elements().next();
  897. //jResult.findValues("rows").get(0).get("sfbh");
  898. CfUsers cfUsers = new CfUsers();
  899. cfUsers.setUserid(userId);
  900. cfUsers.setOauserid(row.get("sfbh").asText());
  901. cfUsers.setOausersfz(oaSFZ);
  902. cfUsersMapper.updateByPrimaryKeySelective(cfUsers);
  903. } else {
  904. result = "接口查询不到人员!";
  905. }
  906. //reqJson.get("success")
  907. } else {
  908. result = "接口错误:" + reqJson.get("message").asText();
  909. }
  910. } else {
  911. result = "错误:接口访问失败!";
  912. }
  913. } catch (Exception ex) {
  914. result = "错误:" + ex.getMessage();
  915. log.error("FindUserOAInfo", ex);
  916. }
  917. if (org.apache.commons.lang3.StringUtils.isNotBlank(result)) {
  918. CfUsers cfUsers = new CfUsers();
  919. cfUsers.setUserid(userId);
  920. //cfUsers.setOauserid(row.get("sfbh").asText());
  921. cfUsers.setOausersfz(oaSFZ);
  922. cfUsersMapper.updateByPrimaryKeySelective(cfUsers);
  923. }
  924. return result;
  925. }
  926. @Override
  927. @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
  928. public List<UserInfoVo> importUser(List<UserInfoVo> dataList) throws Exception {
  929. if (dataList.size() <= 0) {
  930. throw new Exception("请添加导入数据");
  931. }
  932. List<UserInfoVo> errorList = new ArrayList<>();
  933. List<GgZgjbxx> ggZgjbxxList = new ArrayList<>();
  934. List<ZzRyjbxx> zzRyjbxxList = new ArrayList<>();
  935. List<RsRyjbxxfb> rsRyjbxxfbList = new ArrayList<>();
  936. List<CfUsers> cfUsersList = new ArrayList<>();
  937. List<String> userCodes = dataList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.getUserCode())).map(it -> it.getUserCode().trim()).collect(Collectors.toList());
  938. List<String> partyNames = dataList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.getPartyName())).map(it -> it.getPartyName().trim()).collect(Collectors.toList());
  939. List<ZzZzqkxx> zzZzqkxxList = partyUserService.getZzZzqkxxByNameList(partyNames);
  940. List<GgZgjbxx> dbGgZgjbxxList = partyUserService.getGgZgjbxxList(userCodes);
  941. List<ZzRyjbxx> dbZzRyjbxxList = partyUserService.getZzRyjbxxList(userCodes);
  942. List<RsRyjbxxfb> dbRsRyjbxxfbList = partyUserService.getRsRyjbxxfbList(userCodes);
  943. List<CfUsers> dbCfUsersList = partyUserService.getCfUsersList(userCodes);
  944. List<CfUserrolesKey> dbCfUserroleList = partyUserService.getCfUserroleList(userCodes);
  945. if (userCodes.stream().distinct().count() != userCodes.size()) {
  946. throw new Exception("导入数据存在相同学号/工号,请修改后重新导入!");
  947. }
  948. for (int i = 0; i < dataList.size(); i++) {
  949. UserInfoVo item = dataList.get(i);
  950. GgZgjbxx ggZgjbxx = dbGgZgjbxxList.stream().filter(it -> it.getRybm().equals(item.getUserCode())).findFirst().orElse(new GgZgjbxx());
  951. ZzRyjbxx zzRyjbxx = dbZzRyjbxxList.stream().filter(it -> it.getRybm().equals(item.getUserCode())).findFirst().orElse(new ZzRyjbxx());
  952. RsRyjbxxfb rsRyjbxxfb = dbRsRyjbxxfbList.stream().filter(it -> it.getRybm().equals(item.getUserCode())).findFirst().orElse(new RsRyjbxxfb());
  953. ZzZzqkxx party = zzZzqkxxList.stream().filter(it -> it.getDzzmc().equals(item.getPartyName())).findFirst().orElse(null);
  954. CfUsers cfUsers = dbCfUsersList.stream().filter(it -> it.getUserid().equals(item.getUserCode())).findFirst().orElse(new CfUsers());
  955. String errorInfo = "";
  956. Date birthDate = dateUtils.strToDateExt(item.getBirthDate());
  957. if (stringUtils.IsNullOrEmpty(item.getUserName()))
  958. errorInfo += "请填写姓名!";
  959. if (stringUtils.IsNullOrEmpty(item.getUserCode()))
  960. errorInfo += "请填写学号/工号!";
  961. if (stringUtils.IsNullOrEmpty(item.getPartyName()))
  962. errorInfo += "请填写所属党支部名称!";
  963. if (stringUtils.IsNullOrEmpty(item.getBirthDate()))
  964. errorInfo += "请填写出生日期!";
  965. if (party == null)
  966. errorInfo += "所属党支部名称匹配失败!";
  967. if (!stringUtils.IsNullOrEmpty(item.getBirthDate()) && birthDate == null)
  968. errorInfo += "出生日期格式错误!";
  969. if (stringUtils.IsNullOrEmpty(errorInfo)) {
  970. ggZgjbxx.setRybm(item.getUserCode());
  971. ggZgjbxx.setXm(item.getUserName().replaceAll("\\s+", ""));
  972. ggZgjbxx.setXb(item.getSex().equals("男") ? "1" : "2");
  973. ggZgjbxx.setCsrq(birthDate);
  974. if (stringUtils.IsNullOrEmpty(zzRyjbxx.getRyjbxxbs()))
  975. zzRyjbxx.setRyjbxxbs(UUID.randomUUID().toString());
  976. zzRyjbxx.setRybm(item.getUserCode());
  977. zzRyjbxx.setSzdzbdm(party.getDzzdm());
  978. if (stringUtils.IsNullOrEmpty(zzRyjbxx.getRyzt()))
  979. zzRyjbxx.setRyzt("9");
  980. rsRyjbxxfb.setRybm(item.getUserCode());
  981. rsRyjbxxfb.setMobile(item.getContactMobile());
  982. cfUsers.setUserid(item.getUserCode());
  983. cfUsers.setApplicationid("f0c4fa7f9f3c4fb6bd56aac608b7ad3f");
  984. cfUsers.setIsanonymous(1);
  985. if (stringUtils.IsNullOrEmpty(cfUsers.getUserpwd()))
  986. cfUsers.setUserpwd("D6FB6D8741F9AF9E7BC1C39E79D73944");
  987. if (stringUtils.IsNullOrEmpty(cfUsers.getUsername()))
  988. cfUsers.setUsername(item.getUserCode());
  989. ggZgjbxxList.add(ggZgjbxx);
  990. zzRyjbxxList.add(zzRyjbxx);
  991. rsRyjbxxfbList.add(rsRyjbxxfb);
  992. cfUsersList.add(cfUsers);
  993. } else {
  994. item.setErrorInfo("第" + (i + 1) + "行," + errorInfo);
  995. errorList.add(item);
  996. }
  997. }
  998. if (errorList.size() <= 0) {
  999. ggZgjbxxList.forEach(item -> {
  1000. if (dbGgZgjbxxList.stream().filter(it -> it.getRybm().equals(item.getRybm())).count() == 0) {
  1001. ggZgjbxxMapper.insert(item);
  1002. } else {
  1003. GgZgjbxxExample exp = new GgZgjbxxExample();
  1004. GgZgjbxxExample.Criteria cri = exp.or().andRybmEqualTo(item.getRybm());
  1005. ggZgjbxxMapper.updateByExample(item, exp);
  1006. }
  1007. });
  1008. zzRyjbxxList.forEach(item -> {
  1009. if (dbZzRyjbxxList.stream().filter(it -> it.getRybm().equals(item.getRybm())).count() == 0) {
  1010. zzRyjbxxMapper.insert(item);
  1011. } else {
  1012. ZzRyjbxxExample exp = new ZzRyjbxxExample();
  1013. ZzRyjbxxExample.Criteria cri = exp.or().andRybmEqualTo(item.getRybm());
  1014. zzRyjbxxMapper.updateByExample(item, exp);
  1015. }
  1016. });
  1017. rsRyjbxxfbList.forEach(item -> {
  1018. if (dbRsRyjbxxfbList.stream().filter(it -> it.getRybm().equals(item.getRybm())).count() == 0) {
  1019. rsRyjbxxfbMapper.insert(item);
  1020. } else {
  1021. rsRyjbxxfbMapper.updateByPrimaryKey(item);
  1022. }
  1023. });
  1024. cfUsersList.forEach(item -> {
  1025. if (dbCfUsersList.stream().filter(it -> it.getUserid().equals(item.getUserid())).count() == 0) {
  1026. cfUsersMapper.insert(item);
  1027. } else {
  1028. cfUsersMapper.updateByPrimaryKey(item);
  1029. }
  1030. if (dbCfUserroleList.stream().filter(it -> it.getUserid().equals(item.getUserid()) && it.getRoleid().equals(this.massesRoleId)).count() == 0) {
  1031. CfUserrolesKey cfUserrolesKey = new CfUserrolesKey();
  1032. cfUserrolesKey.setUserid(item.getUserid());
  1033. cfUserrolesKey.setRoleid(this.massesRoleId);
  1034. cfUserrolesMapper.insert(cfUserrolesKey);
  1035. }
  1036. });
  1037. }
  1038. return errorList;
  1039. }
  1040. public CfUsers login(String account, String password) {
  1041. CfUsersExample exp = new CfUsersExample();
  1042. CfUsersExample.Criteria cri = exp.or();
  1043. cri.andUsernameEqualTo(account.trim());
  1044. cri.andUserpwdEqualTo(password.trim());
  1045. return cfUsersMapper.selectByExample(exp).stream().findFirst().orElse(null);
  1046. }
  1047. public CfUsers loginByWxUserId(String wxUserId) {
  1048. CfUsersExample exp = new CfUsersExample();
  1049. CfUsersExample.Criteria cri = exp.or();
  1050. cri.andWxuseridEqualTo(wxUserId.trim());
  1051. return cfUsersMapper.selectByExample(exp).stream().findFirst().orElse(null);
  1052. }
  1053. public void bindWxUserId(String userId, String wxUserId) {
  1054. CfUsers cfUsers = cfUsersMapper.selectByPrimaryKey(userId);
  1055. cfUsers.setWxuserid(wxUserId);
  1056. cfUsersMapper.updateByPrimaryKey(cfUsers);
  1057. }
  1058. }