SyncOldAdminController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. package com.szwl.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.szwl.feign.bean.SyncOldFeign;
  5. import com.szwl.model.bo.R;
  6. import com.szwl.model.bo.ResponseModel;
  7. import com.szwl.model.entity.SysRole;
  8. import com.szwl.model.entity.SysUserRole;
  9. import com.szwl.model.entity.TAdmin;
  10. import com.szwl.service.SysRoleService;
  11. import com.szwl.service.SysUserRoleService;
  12. import com.szwl.service.TAdminService;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiOperation;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.apache.commons.lang.StringUtils;
  17. import org.springframework.web.bind.annotation.PostMapping;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import java.util.Date;
  21. import java.util.List;
  22. import java.util.Objects;
  23. @Slf4j
  24. @Api(value = "/syncOldAdmin", tags = {"同步旧系统的 admin 用户数据"})
  25. @RestController
  26. @RequestMapping("/syncOldAdmin")
  27. public class SyncOldAdminController {
  28. TAdminService adminService;
  29. SyncOldFeign syncOldFeign;
  30. SysRoleService sysRoleService;
  31. SysUserRoleService sysUserRoleService;
  32. public SyncOldAdminController(TAdminService adminService, SyncOldFeign syncOldFeign, SysRoleService sysRoleService, SysUserRoleService sysUserRoleService) {
  33. this.adminService = adminService;
  34. this.syncOldFeign = syncOldFeign;
  35. this.sysRoleService = sysRoleService;
  36. this.sysUserRoleService = sysUserRoleService;
  37. }
  38. @ApiOperation(value = "根据旧系统的层级关系来关联上级客户")
  39. @PostMapping("/relevanceSuperiorCustomer")
  40. public ResponseModel<?> relevanceSuperiorCustomer(String startTime, String endTime) {
  41. int i = 0;
  42. // 根据时间获取旧系统用户信息
  43. List<TAdmin> oldAdminList = R.getDataIfSuccess(syncOldFeign.getAdminInTime(startTime, endTime));
  44. // 先看在新系统中这些用户有没有关联上级
  45. for (TAdmin admin : oldAdminList) {
  46. Long id = admin.getId();
  47. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  48. wrapper.eq(TAdmin::getId, id);
  49. TAdmin adminNew = adminService.getOne(wrapper);
  50. if (Objects.nonNull(adminNew)) {
  51. String relationAdminId = adminNew.getRelationAdminId();
  52. String adminId = String.valueOf(id);
  53. if (StringUtils.isEmpty(relationAdminId)) { // 如果在新系统中未关联上级
  54. // 获取旧系统中对应的parentId
  55. Long parentId = R.getDataIfSuccess(syncOldFeign.getParentId(adminId));
  56. if (parentId == null) {
  57. adminNew.setRelationAdminId("");
  58. }
  59. adminNew.setRelationAdminId(String.valueOf(parentId));
  60. adminService.updateById(adminNew);
  61. i++;
  62. }
  63. }
  64. }
  65. return R.ok("关联成功" + i + "个客户");
  66. }
  67. @ApiOperation(value = "给指定时间范围内的所有旧系统用户设置新系统权限")
  68. @PostMapping("/addAllRoleInTime")
  69. public ResponseModel<?> addAllRoleInTime(String startTime, String endTime) {
  70. if (StringUtils.isEmpty(startTime) || StringUtils.isEmpty(endTime)) {
  71. return R.fail("参数不能为空");
  72. }
  73. // 查看该时间范围内的用户
  74. List<TAdmin> oldAdminList = R.getDataIfSuccess(syncOldFeign.getAdminInTime(startTime, endTime));
  75. for (TAdmin admin : oldAdminList) {
  76. Long adminId = admin.getId();
  77. // 查询该 adminId 有没有权限
  78. LambdaQueryWrapper<SysRole> lqw = Wrappers.lambdaQuery();
  79. lqw.eq(SysRole::getAdminId, adminId);
  80. List<SysRole> sysRoleList = sysRoleService.list(lqw);
  81. if (sysRoleList.isEmpty()) {
  82. LambdaQueryWrapper<SysRole> wrapper = Wrappers.lambdaQuery();
  83. wrapper.eq(SysRole::getAdminId, "1");
  84. wrapper.eq(SysRole::getRoleName, "商家");
  85. SysRole template = sysRoleService.getOne(wrapper);
  86. SysRole role = new SysRole();
  87. role.setAdminId(adminId);
  88. role.setMenuCodesJson(template.getMenuCodesJson());
  89. role.setRoleName("商家");
  90. sysRoleService.save(role);
  91. SysUserRole sysUserRole = new SysUserRole();
  92. sysUserRole.setRoleId(role.getRoleId());
  93. sysUserRole.setUserId(String.valueOf(adminId));
  94. sysUserRoleService.save(sysUserRole);
  95. }
  96. }
  97. return R.ok("添加" + startTime + "至" + endTime + "的权限成功");
  98. }
  99. @ApiOperation(value = "给用户 adminId 添加 sys_role 和 sys_user_role")
  100. @PostMapping("/addSysRole")
  101. public ResponseModel<?> addSysRole(Long adminId) {
  102. if (adminId == null) {
  103. return R.fail("参数为空");
  104. }
  105. // 查询该 adminId 有没有权限
  106. LambdaQueryWrapper<SysRole> lqw = Wrappers.lambdaQuery();
  107. lqw.eq(SysRole::getAdminId, adminId);
  108. List<SysRole> sysRoleList = sysRoleService.list(lqw);
  109. if (sysRoleList.size() == 0) {
  110. LambdaQueryWrapper<SysRole> wrapper = Wrappers.lambdaQuery();
  111. wrapper.eq(SysRole::getAdminId, "1");
  112. wrapper.eq(SysRole::getRoleName, "商家");
  113. SysRole template = sysRoleService.getOne(wrapper);
  114. SysRole role = new SysRole();
  115. role.setAdminId(adminId);
  116. role.setMenuCodesJson(template.getMenuCodesJson());
  117. role.setRoleName("商家");
  118. sysRoleService.save(role);
  119. SysUserRole sysUserRole = new SysUserRole();
  120. sysUserRole.setRoleId(role.getRoleId());
  121. sysUserRole.setUserId(String.valueOf(adminId));
  122. sysUserRoleService.save(sysUserRole);
  123. }
  124. return R.ok("添加" + adminId + "的权限成功");
  125. }
  126. @ApiOperation(value = "修改 admin 的 type 类型")
  127. @PostMapping("/updateAdminInfo")
  128. public ResponseModel<?> updateAdminInfo(String startTime, String endTime) {
  129. if (StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
  130. LambdaQueryWrapper<TAdmin> lqw = Wrappers.lambdaQuery();
  131. lqw.between(TAdmin::getCreateDate, startTime, endTime);
  132. List<TAdmin> adminList = adminService.list(lqw);
  133. for (TAdmin admin : adminList) {
  134. Integer type = admin.getType();
  135. if (type == 0) {
  136. admin.setType(1);
  137. adminService.updateById(admin);
  138. }
  139. if (type == 1) {
  140. admin.setType(2);
  141. adminService.updateById(admin);
  142. }
  143. // 旧系统的是按照:管理,省级,市级,终端进行划分
  144. // if (type == 3) {
  145. //
  146. // }
  147. }
  148. return R.ok("修改 admin 信息成功");
  149. } else {
  150. return R.fail("时间参数不能为空");
  151. }
  152. }
  153. @ApiOperation(value = "同步旧系统某一时间段内的 t_admin ") // admin 表已改回自增
  154. @PostMapping("/syncAdminsInTime")
  155. public ResponseModel<?> syncAdminsInTime(String startTime, String endTime) {
  156. if (StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
  157. List<TAdmin> oldAdminList = R.getDataIfSuccess(syncOldFeign.getAdminInTime(startTime, endTime));
  158. // System.out.println(oldAdminList);
  159. for (TAdmin oldAdmin : oldAdminList) {
  160. // adminService.saveOrUpdate(oldAdmin); // 防止新旧表结构不同,不做直接插入
  161. Long id = oldAdmin.getId();
  162. Date createDate = oldAdmin.getCreateDate();
  163. Date modifyDate = oldAdmin.getModifyDate();
  164. Long areaId = oldAdmin.getAreaId();
  165. String qrCodeImgUrl = oldAdmin.getQrCodeImgUrl();
  166. String department = oldAdmin.getDepartment();
  167. String email = oldAdmin.getEmail();
  168. Boolean isAdmined = oldAdmin.getIsAdmined();
  169. Boolean isEnabled = oldAdmin.getIsEnabled();
  170. Boolean isLocked = oldAdmin.getIsLocked();
  171. Date lockedDate = oldAdmin.getLockedDate();
  172. Date loginDate = oldAdmin.getLoginDate();
  173. Integer loginFailureCount = oldAdmin.getLoginFailureCount();
  174. String loginIp = oldAdmin.getLoginIp();
  175. String tradeMerchantNo = oldAdmin.getTradeMerchantNo();
  176. String name = oldAdmin.getName();
  177. Long parentId = oldAdmin.getParentId();
  178. String password = oldAdmin.getPassword();
  179. Long noticeId = oldAdmin.getNoticeId();
  180. Integer type = oldAdmin.getType();
  181. String username = oldAdmin.getUsername();
  182. String phone = oldAdmin.getPhone();
  183. String isRefund = oldAdmin.getIsRefund();
  184. String ifForeign = oldAdmin.getIfForeign();
  185. String open = oldAdmin.getOpen();
  186. String promoCodeOpen = oldAdmin.getPromoCodeOpen();
  187. Date applyStartTime = oldAdmin.getApplyStartTime();
  188. Date applyEndTime = oldAdmin.getApplyEndTime();
  189. String code = oldAdmin.getCode();
  190. String payPlatform = oldAdmin.getPayPlatform();
  191. String logoRule = oldAdmin.getLogoRule();
  192. String relationAdminId = oldAdmin.getRelationAdminId();
  193. String managerId = oldAdmin.getManagerId();
  194. Long agencyId = oldAdmin.getAgencyId();
  195. Long merchantId = oldAdmin.getMerchantId();
  196. Long personageId = oldAdmin.getPersonageId();
  197. String companyType = oldAdmin.getCompanyType();
  198. String currencySymbol = oldAdmin.getCurrencySymbol();
  199. // TAdmin(id=1881, createDate=Mon Mar 20 18:22:07 CST 2023, modifyDate=Mon Mar 20 18:22:15 CST 2023, areaId=221, qrCodeImgUrl=null, department=null, email=1924983280@qq.com, isAdmined=false, isEnabled=true, isLocked=false, lockedDate=null, loginDate=Mon Mar 20 18:22:15 CST 2023, loginFailureCount=0, loginIp=127.0.0.1, tradeMerchantNo=null, name=张洁, parentId=1123, password=6b8b2ced48967281f4c13313ce0b39d7, noticeId=26, type=3, username=shx18334775173, phone=18334775173, isRefund=0, ifForeign=0, open=0, promoCodeOpen=null, applyStartTime=Mon Mar 20 18:22:07 CST 2023, applyEndTime=Mon Mar 27 18:22:07 CST 2023, code=null, payPlatform=null, logoRule=null, relationAdminId=null, managerId=null, agencyId=670, merchantId=1123, personageId=1881, companyType=null, currencySymbol=null)
  200. TAdmin admin = new TAdmin();
  201. admin.setId(id);
  202. admin.setCreateDate(createDate);
  203. admin.setModifyDate(modifyDate);
  204. admin.setAreaId(areaId);
  205. admin.setQrCodeImgUrl(qrCodeImgUrl);
  206. admin.setDepartment(department);
  207. admin.setEmail(email);
  208. admin.setIsAdmined(isAdmined);
  209. admin.setIsEnabled(isEnabled);
  210. admin.setIsLocked(isLocked);
  211. admin.setLockedDate(lockedDate);
  212. admin.setLoginDate(loginDate);
  213. admin.setLoginFailureCount(loginFailureCount);
  214. admin.setLoginIp(loginIp);
  215. admin.setTradeMerchantNo(tradeMerchantNo);
  216. admin.setName(name);
  217. admin.setParentId(parentId);
  218. admin.setPassword(password);
  219. admin.setNoticeId(noticeId);
  220. admin.setType(type);
  221. admin.setUsername(username);
  222. admin.setPhone(phone);
  223. admin.setIsRefund(isRefund);
  224. admin.setIfForeign(ifForeign);
  225. admin.setOpen(open);
  226. admin.setPromoCodeOpen(promoCodeOpen);
  227. admin.setApplyStartTime(applyStartTime);
  228. admin.setApplyEndTime(applyEndTime);
  229. admin.setCode(code);
  230. admin.setPayPlatform(payPlatform);
  231. admin.setLogoRule(logoRule);
  232. admin.setRelationAdminId(relationAdminId);
  233. admin.setManagerId(managerId);
  234. admin.setAgencyId(agencyId);
  235. admin.setMerchantId(merchantId);
  236. admin.setPersonageId(personageId);
  237. admin.setCompanyType(companyType);
  238. admin.setCurrencySymbol(currencySymbol);
  239. adminService.save(admin);
  240. }
  241. return R.ok("同步" + startTime + "至" + endTime + "的 admin 信息成功");
  242. }else {
  243. return R.fail("时间参数不能为空");
  244. }
  245. }
  246. }