AdminServiceImpl.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. package com.goafanti.admin.service.impl;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.TreeMap;
  7. import java.util.UUID;
  8. import javax.annotation.Resource;
  9. import org.springframework.beans.BeanUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import com.goafanti.admin.bo.AdminContacts;
  13. import com.goafanti.admin.bo.AdminDetail;
  14. import com.goafanti.admin.bo.AdminListBo;
  15. import com.goafanti.admin.service.AdminService;
  16. import com.goafanti.common.constant.AFTConstants;
  17. import com.goafanti.common.dao.AdminLocationMapper;
  18. import com.goafanti.common.dao.AdminMapper;
  19. import com.goafanti.common.dao.UserMapper;
  20. import com.goafanti.common.dao.UserRoleMapper;
  21. import com.goafanti.common.model.Admin;
  22. import com.goafanti.common.utils.LoggerUtils;
  23. import com.goafanti.common.utils.PasswordUtil;
  24. import com.goafanti.common.utils.StringUtils;
  25. import com.goafanti.core.mybatis.BaseMybatisDao;
  26. import com.goafanti.core.mybatis.page.Pagination;
  27. import com.goafanti.core.shiro.token.TokenManager;
  28. import com.goafanti.customer.bo.LockingReleaseBo;
  29. import com.goafanti.order.bo.TOrderNewBo;
  30. @Service
  31. public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements AdminService {
  32. @Autowired
  33. private AdminMapper adminMapper;
  34. @Autowired
  35. private UserRoleMapper userRoleMapper;
  36. @Autowired
  37. private AdminLocationMapper adminLocationMapper;
  38. @Resource(name = "passwordUtil")
  39. private PasswordUtil passwordUtil;
  40. @Override
  41. public List<Admin> selectAllAdmin() {
  42. return adminMapper.selectAllAdmin(null);
  43. }
  44. @Override
  45. public Admin selectByMobile(String mobile) {
  46. return adminMapper.selectByMobile(mobile);
  47. }
  48. @Override
  49. public Admin selectByPrimaryKey(String key) {
  50. return adminMapper.selectByPrimaryKey(key);
  51. }
  52. @SuppressWarnings("unchecked")
  53. @Override
  54. public Pagination<AdminListBo> listAdmin(Integer province, Integer number, String mobile, String name,
  55. Integer pageNo, Integer pageSize) {
  56. Map<String, Object> params = new HashMap<>();
  57. if (StringUtils.isNotBlank(mobile)) {
  58. params.put("mobile", mobile);
  59. }
  60. if (StringUtils.isNotBlank(name)) {
  61. params.put("name", name);
  62. }
  63. if (null != number) {
  64. params.put("number", number);
  65. }
  66. if (pageNo == null || pageNo < 0) {
  67. pageNo = 1;
  68. }
  69. if (pageSize == null || pageSize < 0 || pageSize > 10) {
  70. pageSize = 10;
  71. }
  72. if (province != null) {
  73. params.put("province", province);
  74. }
  75. return (Pagination<AdminListBo>) findPage("findAdminListByPage", "findAdminCount", params, pageNo,
  76. pageSize);
  77. }
  78. @Override
  79. public int insert(Admin ad) {
  80. return adminMapper.insert(ad);
  81. }
  82. @Override
  83. public int updateByPrimaryKeySelective(Admin ad, List<String> roleIds) {
  84. Map<String, Object> params = new HashMap<>();
  85. params.put("uid", ad.getId());
  86. params.put("roles", roleIds);
  87. if (ad.getId() != "1") {
  88. userRoleMapper.deleteByUserId(ad.getId());
  89. if (!roleIds.isEmpty()) {
  90. userRoleMapper.insertBatch(params);
  91. }
  92. TokenManager.clearUserAuthByUserId(ad.getId());
  93. }
  94. return adminMapper.updateByPrimaryKeySelective(ad);
  95. }
  96. @Override
  97. public int updateByPrimaryKey(Admin a) {
  98. return adminMapper.updateByPrimaryKeySelective(a);
  99. }
  100. @Override
  101. public AdminDetail selectAdminDetail(String id) {
  102. Admin a = adminMapper.selectByPrimaryKey(id);
  103. if (null == a) {
  104. return null;
  105. }
  106. AdminDetail ad = new AdminDetail();
  107. BeanUtils.copyProperties(a, ad);
  108. ad.setRoles(adminMapper.selectRolesByPrimaryKey(id));
  109. return null;
  110. }
  111. @Override
  112. public List<Admin> selectCognizanceConsultant() {
  113. return adminMapper.selectCognizanceConsultant();
  114. }
  115. @Override
  116. public List<Admin> selectPatentAuthor() {
  117. return adminMapper.selectPatentAuthor();
  118. }
  119. @Override
  120. public List<Admin> selectPatentPrincipal() {
  121. return adminMapper.selectPatentPrincipal();
  122. }
  123. @Override
  124. public List<Admin> selectCopyrightConsultant() {
  125. return adminMapper.selectCopyrightConsultant();
  126. }
  127. @Override
  128. public List<Admin> selectCognizancePrincipal() {
  129. return adminMapper.selectCognizancePrincipal();
  130. }
  131. @Override
  132. public List<Admin> selectCopyrightPrincipal() {
  133. return adminMapper.selectCopyrightPrincipal();
  134. }
  135. @Override
  136. public List<Admin> selectTechprojectConsultant() {
  137. return adminMapper.selectTechprojectConsultant();
  138. }
  139. @Override
  140. public List<Admin> selectTechprojectPrincipal() {
  141. return adminMapper.selectTechprojectPrincipal();
  142. }
  143. @Override
  144. public List<String> selectRoleByPrimaryKey(String uid) {
  145. return adminMapper.selectRoleByPrimaryKey(uid);
  146. }
  147. @Override
  148. public List<String> listAuditor() {
  149. return userRoleMapper.listAuditor();
  150. }
  151. @Override
  152. public Map<String, String> selectAccoutManager() {
  153. return disposeAdminList(adminMapper.selectAccoutManager());
  154. }
  155. @Override
  156. public Map<String, String> selectTechnician() {
  157. return disposeAdminList(adminMapper.selectTechnician());
  158. }
  159. @Override
  160. public Map<String, String> selectSalesman() {
  161. return disposeAdminList(adminMapper.selectSalesman());
  162. }
  163. @Override
  164. public Map<String, String> selectContractManager() {
  165. return disposeAdminList(adminMapper.selectContractManager());
  166. }
  167. @Override
  168. public Map<String, String> selectTechBroder() {
  169. return disposeAdminList(adminMapper.selectTechBroder());
  170. }
  171. @Override
  172. public int insertNewAdmin(Admin ad) {
  173. return adminMapper.insert(ad);
  174. }
  175. @Override
  176. public Map<String, String> listAdminSelect() {
  177. if (TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
  178. return disposeAdminList(adminMapper.listAdminSelectBySuperAdmin());
  179. } else if (TokenManager.hasRole(AFTConstants.AREAADMIN)) {
  180. List<Integer> provinceList = adminLocationMapper
  181. .selectProvinceWhereCityIsNullByAdminId(TokenManager.getAdminId());
  182. List<Integer> cityList = adminLocationMapper.selectCityByAdminId(TokenManager.getAdminId());
  183. provinceList.addAll(cityList);
  184. return disposeAdminList(adminMapper.listAdminSelectByAreaAdmin(provinceList, cityList));
  185. }
  186. return null;
  187. }
  188. private Map<String, String> disposeAdminList(List<Admin> list) {
  189. Map<String, String> map = new TreeMap<String, String>();
  190. for (Admin o : list) {
  191. map.put(o.getId(), o.getName());
  192. }
  193. return map;
  194. }
  195. @Override
  196. public List<Admin> listAdminByName(String name) {
  197. return adminMapper.listAdminByName(name);
  198. }
  199. @Override
  200. public List<AdminListBo> selectDepartmentStaff(String departmentId, String name) {
  201. return adminMapper.selectDepartmentStaff( departmentId, name);
  202. }
  203. @Override
  204. public int updateLockAdmin() {
  205. int count=0;
  206. List<Admin> list=adminMapper.selectAllAdmin(null);//获取所有用户
  207. List<List<Admin>>aList=groupList(list);//拆分成多个
  208. String lockIds = "";
  209. for(List<Admin> al:aList){
  210. for (Admin a : al) {
  211. String pwd=a.getPassword();
  212. a.setPassword("123456");
  213. String pwd2=passwordUtil.getEncryptPwd(a);
  214. if (pwd.equals(pwd2)) {
  215. lockIds += a.getId() + ",";
  216. }
  217. }
  218. if(lockIds.length()>0){
  219. try {
  220. lockIds = "'" + lockIds.substring(0,lockIds.length()-1).replace(",", "','") + "'";
  221. count+= adminMapper.updateLockIds(lockIds);
  222. lockIds = "";
  223. Thread.sleep(1000);
  224. } catch (InterruptedException e) {
  225. LoggerUtils.error(getClass(), "未修改管理员锁定失败", e);
  226. }
  227. }
  228. }
  229. return count;
  230. }
  231. /*
  232. * List分割
  233. */
  234. public List<List<Admin>> groupList(List<Admin> list) {
  235. List<List<Admin>> listGroup = new ArrayList<List<Admin>>();
  236. int listSize = list.size();
  237. //子集合的长度
  238. int toIndex = 100;
  239. for (int i = 0; i < list.size(); i += toIndex) {
  240. if (i + toIndex > listSize) {
  241. toIndex = listSize - i;
  242. }
  243. List<Admin> newList = list.subList(i, i + toIndex);
  244. listGroup.add(newList);
  245. }
  246. return listGroup;
  247. }
  248. /* public static void main(String[] args) {
  249. List<String> list=new ArrayList<>();
  250. for (int i = 1; i < 888; i++) {
  251. list.add(String.valueOf(i));
  252. }
  253. List<List<String>> listGroup = new ArrayList<List<String>>();
  254. int listSize = list.size();
  255. //子集合的长度
  256. int toIndex = 100;
  257. for (int i = 0; i < list.size(); i += 100) {
  258. if (i + 100 > listSize) {
  259. toIndex = listSize - i;
  260. }
  261. List<String> newList = list.subList(i, i + toIndex);
  262. listGroup.add(newList);
  263. }
  264. System.out.println(listGroup);
  265. }*/
  266. @Override
  267. public List<Admin> getListDefaultPassword(String depId) {
  268. List<Admin> list=adminMapper.selectAllAdmin(depId);
  269. List<Admin> list2=new ArrayList<>();
  270. for (Admin a : list) {
  271. String pwd=a.getPassword();
  272. a.setPassword("123456");
  273. String pwd2=passwordUtil.getEncryptPwd(a);
  274. if (pwd.equals(pwd2)) {
  275. list2.add(a);
  276. }
  277. }
  278. return list2;
  279. }
  280. @Override
  281. public List<Admin> getAdminRoleList(String roleName) {
  282. return adminMapper.getAdminRoleList(roleName);
  283. }
  284. @Override
  285. public int addFrequentContacts(String id) {
  286. String []ss=id.split(",");
  287. List<String> list=adminMapper.getaidFrequentContacts(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
  288. for (String s : ss) {
  289. boolean flag=true;
  290. for (String s2 : list) {
  291. if (s.equals(s2)) {
  292. flag=false;
  293. }
  294. }
  295. if (flag) {
  296. AdminContacts a=new AdminContacts();
  297. a.setId(UUID.randomUUID().toString());
  298. a.setAid(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
  299. a.setContactsId(s);
  300. adminMapper.addAdminContacts(a);
  301. }
  302. }
  303. return 1;
  304. }
  305. @SuppressWarnings("unchecked")
  306. @Override
  307. public Pagination<AdminListBo> frequentContactsList(String depId, String name, Integer pageSize, Integer pageNo) {
  308. Map<String, Object> params = new HashMap<String, Object>();
  309. if(pageSize==null||pageSize<0)pageSize=10;
  310. if(pageNo==null||pageNo<0)pageNo=1;
  311. if (StringUtils.isNotBlank(depId)) params.put("depId", depId);
  312. if (StringUtils.isNotBlank(name)) params.put("name", name);
  313. params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
  314. Pagination<AdminListBo> p = (Pagination<AdminListBo>)findPage("frequentContactsList", "frequentContactsCount", params, pageNo, pageSize);
  315. return p;
  316. }
  317. @Override
  318. public int deleteFrequentContacts(String id) {
  319. return adminMapper.deleteFrequentContacts(id);
  320. }
  321. }