TAdminController.java 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104
  1. package com.szwl.controller;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollUtil;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  7. import com.baomidou.mybatisplus.core.metadata.IPage;
  8. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  9. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  10. import com.sun.javafx.logging.PulseLogger;
  11. import com.szwl.annotation.Audit;
  12. import com.szwl.constant.AuditEnum;
  13. import com.szwl.constant.ResponseCodesEnum;
  14. import com.szwl.exception.BizException;
  15. import com.szwl.feign.bean.PayFeign;
  16. import com.szwl.manager.TokenManager;
  17. import com.szwl.model.bo.R;
  18. import com.szwl.model.bo.ResponseModel;
  19. import com.szwl.model.bo.UserDetailBO;
  20. import com.szwl.model.dto.RegisterParamDTO;
  21. import com.szwl.model.entity.*;
  22. import com.szwl.model.param.AddLoginUserParam;
  23. import com.szwl.model.param.UpdateLoginUserParam;
  24. import com.szwl.model.utils.AdminUtils;
  25. import com.szwl.service.*;
  26. import com.szwl.util.IDGenerator;
  27. import io.swagger.annotations.Api;
  28. import io.swagger.annotations.ApiOperation;
  29. import lombok.extern.slf4j.Slf4j;
  30. import org.apache.commons.lang.StringUtils;
  31. import org.slf4j.Logger;
  32. import org.slf4j.LoggerFactory;
  33. import org.springframework.transaction.annotation.Transactional;
  34. import org.springframework.web.bind.annotation.*;
  35. import javax.servlet.http.HttpServletRequest;
  36. import javax.validation.Valid;
  37. import java.util.*;
  38. import java.util.regex.Pattern;
  39. import java.util.stream.Collectors;
  40. /**
  41. * <p>
  42. * 短信验证码 前端控制器
  43. * </p>
  44. *
  45. * @author wuhs
  46. * @since 2023-09-26
  47. */
  48. @Slf4j
  49. @Api(value = "/tAdmin", tags = {"账户"})
  50. @RestController
  51. @RequestMapping("/tAdmin")
  52. public class TAdminController {
  53. SysRoleService sysRoleService;
  54. SysUserRoleService sysUserRoleService;
  55. TokenManager tokenManager;
  56. TAdminService tAdminService;
  57. TAdminEquipmentService tAdminEquipmentService;
  58. TMessageCodeService tMessageCodeService;
  59. TAirwallexWalletService airwallexWalletService;
  60. PayFeign payFeign;
  61. public TAdminController(SysRoleService sysRoleService, SysUserRoleService sysUserRoleService, TokenManager tokenManager, TAdminService tAdminService, TAdminEquipmentService tAdminEquipmentService, TMessageCodeService tMessageCodeService, TAirwallexWalletService airwallexWalletService, PayFeign payFeign) {
  62. this.sysRoleService = sysRoleService;
  63. this.sysUserRoleService = sysUserRoleService;
  64. this.tokenManager = tokenManager;
  65. this.tAdminService = tAdminService;
  66. this.tAdminEquipmentService = tAdminEquipmentService;
  67. this.tMessageCodeService = tMessageCodeService;
  68. this.airwallexWalletService = airwallexWalletService;
  69. this.payFeign = payFeign;
  70. }
  71. private static final Logger logger = LoggerFactory.getLogger(TAdminController.class);
  72. @ApiOperation(value = "通过username查看用户的id和ifForeign")
  73. @GetMapping("/getIdIfForeign")
  74. public ResponseModel<TAdmin> getIdIfForeign(@RequestParam String username) {
  75. if (StringUtils.isEmpty(username)) {
  76. return R.fail("username为空");
  77. }
  78. LambdaQueryWrapper<TAdmin> lqw = Wrappers.lambdaQuery();
  79. lqw.eq(TAdmin::getUsername, username);
  80. List<TAdmin> list = tAdminService.list(lqw);
  81. if (list.isEmpty()) {
  82. return R.fail("username有误");
  83. } else if (list.size() > 1) {
  84. return R.fail("username不唯一");
  85. } else {
  86. return R.ok(list.get(0));
  87. }
  88. }
  89. @ApiOperation(value = "获取账户类型")
  90. @GetMapping("/getAdminType")
  91. public ResponseModel<Integer> getAdminType(@RequestParam Long adminId) {
  92. if (adminId != null) {
  93. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  94. wrapper.eq(TAdmin::getId, adminId);
  95. TAdmin tAdmin = tAdminService.getOne(wrapper);
  96. Integer type = tAdmin.getType();
  97. return R.ok(type);
  98. }
  99. return R.fail("adminId无效");
  100. }
  101. @ApiOperation(value = "判断是否海外用户")
  102. @GetMapping("/getIfForeign/{adminId}")
  103. public ResponseModel<?> getIfForeign(@PathVariable Long adminId) {
  104. if (adminId != null) {
  105. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  106. wrapper.eq(TAdmin::getId, adminId);
  107. TAdmin one = tAdminService.getOne(wrapper);
  108. String ifForeign = one.getIfForeign();
  109. return R.ok(ifForeign);
  110. }
  111. return R.fail("未登录");
  112. }
  113. @ApiOperation(value = "添加子账号")
  114. @PostMapping("/addLoginUser")
  115. @Transactional
  116. @Audit(type = AuditEnum.INSERT, content = "#loginUser.name + '添加账号'")
  117. public ResponseModel<?> addLoginUser(@RequestBody @Valid AddLoginUserParam param) {
  118. if (StringUtils.isEmpty(param.getEquipmentIds())) {
  119. return R.fail(ResponseCodesEnum.A0001, "机器不能为空");
  120. }
  121. if (param.getRoleList().size() < 1) {
  122. return R.fail(ResponseCodesEnum.A0001, "角色不能为空");
  123. }
  124. //获取当前操作人员
  125. UserDetailBO loginUser = tokenManager.getLoginUserDetails();
  126. // 保存用户实体
  127. Date now = new Date();
  128. Long parentId = param.getAdminId();
  129. if (parentId == null) {
  130. return R.fail(ResponseCodesEnum.A0001);
  131. }
  132. param.setAdminId(null);
  133. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  134. query.eq(TAdmin::getUsername, param.getUsername());
  135. // List<TAdmin> list = tAdminService.list(query);
  136. TAdmin admin = tAdminService.getOne(query);
  137. if (admin != null) {
  138. return R.fail(ResponseCodesEnum.A0201);
  139. }
  140. TAdmin entity = BeanUtil.copyProperties(param, TAdmin.class);
  141. entity.setParentId(parentId);
  142. if (parentId.toString().equals("1")) {
  143. entity.setType(1);
  144. } else {
  145. entity.setType(3);
  146. }
  147. // entity.setParentId(34l);
  148. entity.setIsAdmined(false);
  149. entity.setCreateDate(now);
  150. entity.setModifyDate(now);
  151. entity.setIsLocked(false);
  152. entity.setIsEnabled(true);
  153. entity.setLoginFailureCount(0);
  154. entity.setEmail(param.getEmail());
  155. entity.setPhone(param.getPhone());
  156. entity.setCompanyType(param.getCompanyType()); // 公司平台
  157. //获取父账号信息
  158. TAdmin parentAdmin = tAdminService.getById(parentId);
  159. entity.setIfForeign(parentAdmin.getIfForeign());
  160. tAdminService.save(entity);
  161. String ifForeign = parentAdmin.getIfForeign();
  162. if ("1".equals(ifForeign)) { // 海外子账户,新建一个 Airwallex 钱包账户
  163. TAirwallexWallet wallet = new TAirwallexWallet();
  164. wallet.setAdminId(entity.getId());
  165. payFeign.saveAirwallexWallet(wallet);
  166. }
  167. // 管理的机器 需要再建立一个关系表 type区分全部还是部分
  168. String equipmentIds = param.getEquipmentIds();
  169. if (StringUtils.isNotEmpty(equipmentIds)) {
  170. if (equipmentIds.equals("all")) {
  171. //管理全部机器
  172. TAdminEquipment tAdminEquipment = new TAdminEquipment();
  173. tAdminEquipment.setAdminId(entity.getId());
  174. //0:全部机器,1:部分机器
  175. tAdminEquipment.setType("0");
  176. tAdminEquipmentService.save(tAdminEquipment);
  177. } else {
  178. //部分机器
  179. TAdminEquipment tAdminEquipment = new TAdminEquipment();
  180. tAdminEquipment.setAdminId(entity.getId());
  181. //0:全部机器,1:部分机器
  182. tAdminEquipment.setType("1");
  183. tAdminEquipment.setEquipmentIds(param.getEquipmentIds());
  184. tAdminEquipmentService.save(tAdminEquipment);
  185. }
  186. }
  187. log.debug("添加账号 id:{},TAdmin:{}", entity.getId(), entity);
  188. // 保存用户角色关系
  189. List<SysUserRole> userRoleList = param.getRoleList()
  190. .stream()
  191. .map(e -> new SysUserRole().setRoleId(e).setUserId(String.valueOf(entity.getId())))
  192. .collect(Collectors.toList());
  193. if (CollUtil.isNotEmpty(userRoleList)) {
  194. sysUserRoleService.saveBatch(userRoleList);
  195. }
  196. return R.ok(entity);
  197. }
  198. @ApiOperation(value = "修改子账号")
  199. @PostMapping("/updateLoginUser")
  200. @Transactional
  201. @Audit(type = AuditEnum.UPDATE, content = "#loginUser.name + '修改账号'")
  202. public ResponseModel<?> updateLoginUser(@RequestBody @Valid UpdateLoginUserParam param) {
  203. // public ResponseModel<?> addLoginUser(@RequestBody AddLoginUserParam param) {
  204. //获取当前操作人员
  205. UserDetailBO loginUser = tokenManager.getLoginUserDetails();
  206. // 保存用户实体
  207. Date now = new Date();
  208. Long parentId = param.getAdminId();
  209. if (parentId == null) {
  210. return R.fail(ResponseCodesEnum.A0001);
  211. }
  212. param.setAdminId(null);
  213. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  214. query.eq(TAdmin::getParentId, parentId);
  215. query.eq(TAdmin::getId, param.getId());
  216. List<TAdmin> list = tAdminService.list(query);
  217. if (list.size() > 0) {
  218. TAdmin admin = list.get(0);
  219. // 管理的机器 需要再建立一个关系表 type区分全部还是部分
  220. String equipmentIds = param.getEquipmentIds();
  221. if (StringUtils.isNotEmpty(equipmentIds)) {
  222. LambdaQueryWrapper<TAdminEquipment> query1 = Wrappers.lambdaQuery();
  223. query1.eq(TAdminEquipment::getAdminId, admin.getId());
  224. List<TAdminEquipment> list1 = tAdminEquipmentService.list(query1);
  225. if (list1.size() > 0) {
  226. TAdminEquipment tAdminEquipment1 = list1.get(0);
  227. if (equipmentIds.equals("all")) {
  228. //管理全部机器
  229. //0:全部机器,1:部分机器
  230. tAdminEquipment1.setType("0");
  231. tAdminEquipment1.setEquipmentIds(null);
  232. } else {
  233. //部分机器
  234. //0:全部机器,1:部分机器
  235. tAdminEquipment1.setType("1");
  236. tAdminEquipment1.setEquipmentIds(param.getEquipmentIds());
  237. }
  238. tAdminEquipmentService.updateById(tAdminEquipment1);
  239. }
  240. }
  241. LambdaQueryWrapper<SysUserRole> query1 = Wrappers.lambdaQuery();
  242. query1.eq(SysUserRole::getUserId, admin.getId());
  243. List<SysUserRole> list1 = sysUserRoleService.list(query1);
  244. if (list1.size() > 0) {
  245. for (SysUserRole sysUserRole : list1) {
  246. sysUserRoleService.removeById(sysUserRole.getId());
  247. }
  248. }
  249. // 保存用户角色关系
  250. List<SysUserRole> userRoleList = param.getRoleList()
  251. .stream()
  252. .map(e -> new SysUserRole().setRoleId(e).setUserId(String.valueOf(admin.getId())))
  253. .collect(Collectors.toList());
  254. if (CollUtil.isNotEmpty(userRoleList)) {
  255. sysUserRoleService.saveBatch(userRoleList);
  256. }
  257. admin.setIsEnabled(param.getIsEnabled());
  258. admin.setPhone(param.getPhone());
  259. admin.setEmail(param.getEmail());
  260. admin.setIsEnabled(param.getIsEnabled());
  261. if (StringUtils.isNotEmpty(param.getPassword())) {
  262. admin.setPassword(param.getPassword());
  263. }
  264. tAdminService.updateById(admin);
  265. log.debug("修改账号 id:{},TAdmin:{}", admin.getId(), admin);
  266. return R.ok(admin);
  267. }
  268. return R.fail(ResponseCodesEnum.A0100);
  269. }
  270. @ApiOperation(value = "删除子账号")
  271. @PostMapping("/deleteLoginUser")
  272. @Transactional
  273. @Audit(type = AuditEnum.DELETE, content = "#loginUser.name + '删除账号'")
  274. public ResponseModel<?> deleteLoginUser(@RequestBody @Valid UpdateLoginUserParam param) {
  275. //获取当前操作人员
  276. UserDetailBO loginUser = tokenManager.getLoginUserDetails();
  277. // 保存用户实体
  278. Date now = new Date();
  279. Long parentId = param.getAdminId();
  280. if (parentId == null) {
  281. return R.fail(ResponseCodesEnum.A0001);
  282. }
  283. param.setAdminId(null);
  284. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  285. query.like(TAdmin::getParentId, parentId);
  286. query.like(TAdmin::getId, param.getId());
  287. List<TAdmin> list = tAdminService.list(query);
  288. if (list.size() > 0) {
  289. TAdmin admin = list.get(0);
  290. // 管理的机器 需要再建立一个关系表 type区分全部还是部分
  291. String equipmentIds = param.getEquipmentIds();
  292. if (StringUtils.isNotEmpty(equipmentIds)) {
  293. LambdaQueryWrapper<TAdminEquipment> query1 = Wrappers.lambdaQuery();
  294. query1.eq(TAdminEquipment::getAdminId, admin.getId());
  295. List<TAdminEquipment> list1 = tAdminEquipmentService.list(query1);
  296. if (list1.size() > 0) {
  297. TAdminEquipment tAdminEquipment1 = list1.get(0);
  298. tAdminEquipmentService.removeById(tAdminEquipment1.getAdminId());
  299. }
  300. }
  301. // 用户角色关系
  302. LambdaQueryWrapper<SysUserRole> query2 = Wrappers.lambdaQuery();
  303. query2.eq(SysUserRole::getUserId, admin.getId());
  304. List<SysUserRole> list2 = sysUserRoleService.list(query2);
  305. if (list2.size() > 0) {
  306. SysUserRole sysUserRole = list2.get(0);
  307. sysUserRoleService.removeById(sysUserRole.getId());
  308. }
  309. tAdminService.removeById(admin.getId());
  310. log.debug("删除账号 id:{},TAdmin:{}", admin.getId(), admin);
  311. return R.ok(admin);
  312. }
  313. return R.fail(ResponseCodesEnum.A0100);
  314. }
  315. @ApiOperation(value = "获取所有子账号信息")
  316. @GetMapping("/getChildDrenAdminList")
  317. public ResponseModel<?> getChildDrenAdminList(String adminId, String userName, String name, String isUse) {
  318. List<AddLoginUserParam> returnList = new ArrayList<>();
  319. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  320. query.eq(TAdmin::getParentId, adminId);
  321. if (StringUtils.isNotEmpty(userName)) {
  322. query.eq(TAdmin::getUsername, userName);
  323. }
  324. if (StringUtils.isNotEmpty(name)) {
  325. query.eq(TAdmin::getName, name);
  326. }
  327. if (StringUtils.isNotEmpty(adminId)) {
  328. if (adminId.equals("1")) {
  329. // query.in(TAdmin::getType,"1","3");
  330. query.eq(TAdmin::getType, "1");
  331. } else {
  332. query.eq(TAdmin::getType, "3");
  333. }
  334. } else {
  335. return R.fail(ResponseCodesEnum.A0100);
  336. }
  337. query.eq(TAdmin::getIsAdmined, false);
  338. List<TAdmin> list = tAdminService.list(query);
  339. if (list.size() > 0) {
  340. for (TAdmin admin : list) {
  341. AddLoginUserParam addLoginUserParam = new AddLoginUserParam();
  342. JSONObject jsonObject = new JSONObject();
  343. addLoginUserParam.setUsername(admin.getUsername());
  344. addLoginUserParam.setName(admin.getName());
  345. addLoginUserParam.setEmail(admin.getEmail());
  346. addLoginUserParam.setPhone(admin.getPhone());
  347. addLoginUserParam.setIsEnabled(admin.getIsEnabled());
  348. addLoginUserParam.setId(admin.getId());
  349. LambdaQueryWrapper<TAdminEquipment> query2 = Wrappers.lambdaQuery();
  350. query2.eq(TAdminEquipment::getAdminId, admin.getId());
  351. List<TAdminEquipment> list1 = tAdminEquipmentService.list(query2);
  352. if (list1.size() > 0) {
  353. TAdminEquipment tAdminEquipment1 = list1.get(0);
  354. if (tAdminEquipment1.getType().equals("0")) {
  355. //管理全部机器
  356. //0:全部机器,1:部分机器
  357. tAdminEquipment1.setType("0");
  358. tAdminEquipment1.setEquipmentIds(null);
  359. addLoginUserParam.setEquipmentIds("all");
  360. } else {
  361. //部分机器
  362. //0:全部机器,1:部分机器
  363. tAdminEquipment1.setType("1");
  364. addLoginUserParam.setEquipmentIds(tAdminEquipment1.getEquipmentIds());
  365. }
  366. }
  367. LambdaQueryWrapper<SysUserRole> query1 = Wrappers.lambdaQuery();
  368. query1.eq(SysUserRole::getUserId, admin.getId());
  369. List<SysUserRole> roleList = sysUserRoleService.list(query1);
  370. List<String> ids = new ArrayList<>();
  371. StringBuilder roleName = new StringBuilder();
  372. if (roleList.size() > 0) {
  373. for (int i = 0; i < roleList.size(); i++) {
  374. SysUserRole sysUserRole = roleList.get(0);
  375. ids.add(sysUserRole.getRoleId());
  376. SysRole sysRole = sysRoleService.getById(sysUserRole.getRoleId());
  377. if (i < roleList.size() - 1) {
  378. roleName.append(sysRole.getRoleName()).append(",");
  379. } else {
  380. roleName.append(sysRole.getRoleName());
  381. }
  382. // addLoginUserParam.setRoleName(roleName);
  383. // List<String> list2 = Arrays.asList(sysRole.getMenuCodesJson().split(","));
  384. // addLoginUserParam.setRoleList(list2);
  385. }
  386. }
  387. addLoginUserParam.setRoleName(roleName.toString());
  388. addLoginUserParam.setRoleList(ids);
  389. returnList.add(addLoginUserParam);
  390. }
  391. }
  392. return R.ok(returnList);
  393. }
  394. @ApiOperation(value = "注册账号/用户注册")
  395. @PostMapping("/save")
  396. @Transactional
  397. @Audit(type = AuditEnum.INSERT, content = "#loginUser.name + '注册账号'")
  398. public ResponseModel<?> save(@RequestBody RegisterParamDTO registerParam) {
  399. if (StringUtils.isEmpty(registerParam.getUsername()) || StringUtils.isEmpty(registerParam.getName()) || StringUtils.isEmpty(registerParam.getPassword())) {
  400. return R.fail(ResponseCodesEnum.A0100, "数据有空!");
  401. }
  402. String phoneOrEmail = registerParam.getPhoneOrEmail();
  403. // 定义国内手机号和邮箱的正则表达式
  404. String phoneReg = "^1[3-9]\\d{9}$";
  405. String emailReg = "^[a-zA-Z0-9_-]+([a-zA-Z0-9_.-]*[a-zA-Z0-9])*@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
  406. if (registerParam.getIfForeign().isEmpty()) {
  407. return R.fail(ResponseCodesEnum.A0001, "是否国内外为空!");
  408. }
  409. // 国内用户注册
  410. if (registerParam.getIfForeign().equals("0")) {
  411. // 判断 phoneOrEmail 是手机号还是邮箱
  412. if (Pattern.matches(phoneReg, phoneOrEmail)) {
  413. System.out.println("这是一个手机号");
  414. if (StringUtils.isEmpty(registerParam.getPhoneOrEmail())) {
  415. return R.fail(ResponseCodesEnum.A0100, "手机号为空!");
  416. }
  417. } else if (Pattern.matches(emailReg, phoneOrEmail)) {
  418. System.out.println("这是一个邮箱地址");
  419. if (StringUtils.isEmpty(registerParam.getPhoneOrEmail())) {
  420. return R.fail(ResponseCodesEnum.A0100, "邮箱为空!");
  421. }
  422. } else {
  423. System.out.println("不是有效的手机号或邮箱地址");
  424. return R.fail(ResponseCodesEnum.A0100, "不是有效的手机号或邮箱地址");
  425. }
  426. } else {
  427. //海外用户注册
  428. if (StringUtils.isEmpty(registerParam.getPhoneOrEmail())) {
  429. return R.fail(ResponseCodesEnum.A0100, "邮箱为空!");
  430. }
  431. }
  432. if (StringUtils.isEmpty(registerParam.getCode())) {
  433. return R.fail(ResponseCodesEnum.A0100, "验证码为空!");
  434. }
  435. //校验是否有重复的
  436. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  437. query.eq(TAdmin::getUsername, registerParam.getUsername());
  438. List<TAdmin> list = tAdminService.list(query);
  439. if (list.size() > 0) {
  440. return R.fail(ResponseCodesEnum.A0201, "用户登录名已存在");
  441. }
  442. LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
  443. if (registerParam.getIfForeign().equals("0")) {
  444. // 国内分两种
  445. if (Pattern.matches(phoneReg, phoneOrEmail)) {
  446. query1.eq(TAdmin::getPhone, registerParam.getPhoneOrEmail());
  447. } else {
  448. query1.eq(TAdmin::getEmail, registerParam.getPhoneOrEmail());
  449. }
  450. } else {
  451. query1.eq(TAdmin::getEmail, registerParam.getPhoneOrEmail());
  452. }
  453. List<TAdmin> list1 = tAdminService.list(query1);
  454. if (list1.size() > 0) {
  455. return R.fail(ResponseCodesEnum.A0203, "用户手机/邮箱已存在");
  456. }
  457. //校验验证码是否正确
  458. LambdaQueryWrapper<TMessageCode> query2 = Wrappers.lambdaQuery();
  459. if (registerParam.getIfForeign().equals("0")) {
  460. // 国内分两种
  461. if (Pattern.matches(phoneReg, phoneOrEmail)) {
  462. query2.eq(TMessageCode::getPhone, registerParam.getPhoneOrEmail());
  463. } else {
  464. query2.eq(TMessageCode::getPhone, registerParam.getPhoneOrEmail());
  465. }
  466. } else {
  467. query2.eq(TMessageCode::getPhone, registerParam.getPhoneOrEmail());
  468. }
  469. // 0,代表注册验证码
  470. query2.eq(TMessageCode::getType, "0");
  471. query2.eq(TMessageCode::getStatus, "0");
  472. List<TMessageCode> messageCodeList = tMessageCodeService.list(query2);
  473. TAdmin admin = new TAdmin();
  474. if (messageCodeList.size() > 0) {
  475. TMessageCode tMessageCode = messageCodeList.get(messageCodeList.size() - 1);
  476. if (!tMessageCode.getCode().equals(registerParam.getCode())) {
  477. return R.fail(ResponseCodesEnum.A0002, "验证码错误");
  478. }
  479. tMessageCode.setStatus("1");
  480. // admin.setId(IDGenerator.commonID()); // admin 表改回原来的自增ID
  481. admin.setCreateDate(new Date());
  482. admin.setModifyDate(new Date());
  483. admin.setIsAdmined(true);
  484. admin.setIsEnabled(true);
  485. admin.setLoginFailureCount(0);
  486. admin.setIsLocked(false);
  487. //默认是商家
  488. admin.setType(2);
  489. admin.setPassword(registerParam.getPassword());
  490. admin.setUsername(registerParam.getUsername());
  491. admin.setName(registerParam.getName());
  492. admin.setIfForeign(registerParam.getIfForeign());
  493. if (registerParam.getIfForeign().equals("1")) {
  494. admin.setPromoCodeOpen("0");
  495. }
  496. admin.setCompanyType(registerParam.getCompanyType());
  497. if (Pattern.matches(phoneReg, phoneOrEmail)) {
  498. admin.setPhone(registerParam.getPhoneOrEmail());
  499. } else if (Pattern.matches(emailReg, phoneOrEmail)) {
  500. admin.setEmail(registerParam.getPhoneOrEmail());
  501. } else {
  502. return R.fail(ResponseCodesEnum.A0100, "不是有效的手机号或邮箱地址");
  503. }
  504. if (registerParam.getCompanyType().equals("1")) { // 如果是七云平台
  505. admin.setTradeMerchantNo("777138500523174"); //七云商户报备号
  506. admin.setPayPlatform("1");
  507. } else {
  508. admin.setPayPlatform("0");
  509. }
  510. boolean b = tAdminService.save(admin);
  511. tMessageCodeService.saveOrUpdate(tMessageCode);
  512. if (b) {
  513. // 绑定商家角色
  514. LambdaQueryWrapper<SysRole> query4 = Wrappers.lambdaQuery();
  515. query4.eq(SysRole::getAdminId, "1");
  516. query4.eq(SysRole::getRoleName, "商家");
  517. List<SysRole> list2 = sysRoleService.list(query4);
  518. if (list2.size() > 0) {
  519. SysRole sysRole = list2.get(0);
  520. SysRole newSysRole = new SysRole();
  521. newSysRole.setAdminId(admin.getId());
  522. newSysRole.setMenuCodesJson(sysRole.getMenuCodesJson());
  523. newSysRole.setRoleName("商家");
  524. sysRoleService.save(newSysRole);
  525. SysUserRole sysUserRole = new SysUserRole();
  526. sysUserRole.setRoleId(newSysRole.getRoleId());
  527. sysUserRole.setUserId(String.valueOf(admin.getId()));
  528. boolean save = sysUserRoleService.save(sysUserRole);
  529. }
  530. tMessageCode.setModifyDate(new Date());
  531. if (admin.getId() != null) {
  532. String managerId = AdminUtils.encrypt(false, admin.getId());
  533. admin.setManagerId(managerId);
  534. tAdminService.getById(admin);
  535. // 新建海外账户的时候创建一个 Airwallex 钱包账户
  536. try {
  537. if ("1".equals(registerParam.getIfForeign())) {
  538. TAirwallexWallet wallet = new TAirwallexWallet();
  539. wallet.setAdminId(admin.getId());
  540. // wallet.setAccountCurrency("USD");
  541. // wallet.setAccountAmount(new BigDecimal("0.00"));
  542. // airwallexWalletService.save(wallet);
  543. // System.out.println("wallet >>> " + wallet);
  544. payFeign.saveAirwallexWallet(wallet);
  545. }
  546. } catch (Exception e) {
  547. logger.error("发生异常》》》:" + e.getMessage(), e);
  548. }
  549. }
  550. }
  551. return R.ok(b);
  552. } else {
  553. return R.fail(ResponseCodesEnum.A0002, "没有找到验证码");
  554. }
  555. }
  556. @ApiOperation(value = "登录")
  557. @PostMapping("/login")
  558. @Audit(type = AuditEnum.LOGIN, content = "#username + '请求登录'")
  559. public ResponseModel<UserDetailBO> login(String username, String password, String hostName, HttpServletRequest request) {
  560. if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
  561. return R.fail(ResponseCodesEnum.A0001, "参数有空");
  562. }
  563. //验证用户名登录
  564. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  565. query.eq(TAdmin::getPassword, password);
  566. query.and(
  567. wrapper -> {
  568. wrapper.eq(TAdmin::getUsername, username)
  569. .or().eq(TAdmin::getPhone, username);
  570. }
  571. );
  572. TAdmin tAdmin = Optional.ofNullable(tAdminService.getOnly(query))
  573. .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
  574. // 判断是为申泽用户还是七云用户
  575. String companyType = tAdmin.getCompanyType();
  576. String SZ = "Sunzee";
  577. String SC = "Sevencloud";
  578. // 如果不为管理员
  579. if (tAdmin.getType() >= 1) {
  580. if (SZ.equals(hostName)) {
  581. // 如果companyType不为空,且不等于“0”
  582. if (StringUtils.isNotEmpty(companyType) && !companyType.equals("0")) {
  583. return R.fail(ResponseCodesEnum.L0002);
  584. }
  585. }
  586. if (SC.equals(hostName)) {
  587. // 如果companyType为空,或者不等于“1”
  588. if (StringUtils.isEmpty(companyType) || !(companyType.equals("1"))) {
  589. return R.fail(ResponseCodesEnum.L0002);
  590. }
  591. }
  592. }
  593. // 添加系统id
  594. if (StringUtils.isEmpty(tAdmin.getManagerId())) {
  595. String managerId = AdminUtils.encrypt(false, tAdmin.getId());
  596. tAdmin.setManagerId(managerId);
  597. }
  598. // 设置登录时间
  599. tAdmin.setLoginDate(new Date());
  600. // 登录IP
  601. String ipAddress = null;
  602. // 获取通过代理服务器传递的真实IP地址
  603. String xForwardedForHeader = request.getHeader("X-Forwarded-For");
  604. if (xForwardedForHeader == null) {
  605. ipAddress = request.getRemoteAddr();
  606. } else {
  607. // 多次反向代理后会有多个IP值,第一个IP才是真实IP
  608. String[] ips = xForwardedForHeader.split(",");
  609. ipAddress = ips[0].trim();
  610. }
  611. tAdmin.setLoginIp(ipAddress);
  612. tAdminService.updateById(tAdmin);
  613. UserDetailBO userDetailBO = tAdminService.getUserDetailBO(tAdmin);
  614. return R.ok(userDetailBO);
  615. }
  616. @ApiOperation(value = "切换自动登录")
  617. @GetMapping("/autoLogin")
  618. @Audit(type = AuditEnum.LOGIN, content = "切换登录'")
  619. public ResponseModel<UserDetailBO> autoLogin(@RequestParam String id) {
  620. if (StringUtils.isEmpty(id)) {
  621. return R.fail(ResponseCodesEnum.A0001, "参数有空");
  622. }
  623. //验证用户名登录
  624. Long adminId = Long.valueOf(id);
  625. TAdmin admin = tAdminService.getById(adminId);
  626. TAdmin tAdmin = Optional.ofNullable(admin)
  627. .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
  628. // 添加系统id
  629. if (StringUtils.isEmpty(tAdmin.getManagerId())) {
  630. String managerId = AdminUtils.encrypt(false, tAdmin.getId());
  631. tAdmin.setManagerId(managerId);
  632. tAdminService.getById(tAdmin);
  633. }
  634. UserDetailBO userDetailBO = tAdminService.getUserDetailBO(tAdmin);
  635. return R.ok(userDetailBO);
  636. }
  637. @ApiOperation(value = "修改密码")
  638. @PostMapping("/updatePassword")
  639. public ResponseModel<?> updatePassword(String username, String password) {
  640. if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
  641. return R.fail(ResponseCodesEnum.A0001, "参数有空");
  642. }
  643. //查找用户名
  644. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  645. query.eq(TAdmin::getUsername, username);
  646. List<TAdmin> list = tAdminService.list(query);
  647. if (list.size() > 0) {
  648. TAdmin admin = list.get(0);
  649. admin.setPassword(password);
  650. boolean b = tAdminService.saveOrUpdate(admin);
  651. return R.ok(b);
  652. }
  653. return R.fail(ResponseCodesEnum.A0001, "修改失败");
  654. }
  655. @ApiOperation(value = "获取账号信息")
  656. @GetMapping("/getAdmin")
  657. public ResponseModel<TAdmin> getAdmin(@RequestParam String id) {
  658. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  659. query.eq(TAdmin::getId, id);
  660. TAdmin tAdmin = Optional.ofNullable(tAdminService.getOnly(query))
  661. .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
  662. if (StringUtils.isEmpty(tAdmin.getManagerId())) {
  663. String managerId = AdminUtils.encrypt(false, tAdmin.getId());
  664. tAdmin.setManagerId(managerId);
  665. tAdminService.getById(tAdmin);
  666. }
  667. UserDetailBO userDetailBO = BeanUtil.copyProperties(tAdmin, UserDetailBO.class);
  668. return R.ok(userDetailBO);
  669. }
  670. @ApiOperation(value = "获取账号列表 分页")
  671. @GetMapping("/pageAdmin")
  672. public ResponseModel<IPage<?>> pageAdmin(String id, String name, String userName, String ifForeign,
  673. long current, long size) {
  674. if (StringUtils.isEmpty(id)) {
  675. return R.fail(ResponseCodesEnum.A0001, "null参数");
  676. }
  677. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  678. if (StringUtils.isNotEmpty(name)) {
  679. query.like(TAdmin::getName, name);
  680. }
  681. if (StringUtils.isNotEmpty(userName)) {
  682. query.like(TAdmin::getUsername, userName);
  683. }
  684. if (StringUtils.isNotEmpty(ifForeign)) {
  685. query.eq(TAdmin::getIfForeign, ifForeign);
  686. }
  687. if (StringUtils.isNotEmpty(id)) {
  688. TAdmin admin = tAdminService.getById(id);
  689. if (admin == null || admin.getId() == null) {
  690. return R.fail(ResponseCodesEnum.A0001, "没有找到商家");
  691. }
  692. // 申泽平台管理员
  693. if (admin.getId() == 2738) {
  694. query.isNull(TAdmin::getCompanyType).or()
  695. .eq(TAdmin::getCompanyType, "0");
  696. }
  697. // 七云平台管理员
  698. if (admin.getId() == 2739) {
  699. query.eq(TAdmin::getCompanyType, "1");
  700. }
  701. if (admin.getType() > 1) {
  702. query.eq(TAdmin::getRelationAdminId, id);
  703. }
  704. }
  705. query.eq(TAdmin::getType, "2");
  706. query.orderByDesc(TAdmin::getCreateDate);
  707. Page<TAdmin> page = new Page<>(current, size, true);
  708. IPage<TAdmin> iPage = tAdminService.page(page, query);
  709. return R.ok(iPage);
  710. }
  711. @ApiOperation(value = "获取账号列表 分页")
  712. @GetMapping("/pageAdmin2")
  713. public ResponseModel<IPage<TAdmin>> pageAdmin2(@RequestParam(value = "current") long current,
  714. @RequestParam(value = "size") long size) {
  715. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  716. Page<TAdmin> page = new Page<>(current, size, true);
  717. IPage<TAdmin> iPage = tAdminService.page(page, query);
  718. return R.ok(iPage);
  719. }
  720. @ApiOperation(value = "获取账号列表")
  721. @GetMapping("/listAdmin")
  722. public ResponseModel<?> listAdmin(String adminId) {
  723. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  724. if (StringUtils.isNotEmpty(adminId)) {
  725. query.like(TAdmin::getRelationAdminId, adminId);
  726. }
  727. List<TAdmin> list = tAdminService.list(query);
  728. return R.ok(list);
  729. }
  730. @ApiOperation(value = "修改账号")
  731. @PostMapping("/update")
  732. @Transactional
  733. public ResponseModel<?> update(@RequestBody TAdmin admin) {
  734. if (StringUtils.isEmpty(admin.getUsername()) && admin.getId() == null) {
  735. return R.fail(ResponseCodesEnum.A0001, "参数空");
  736. }
  737. //校验是否有重复的
  738. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  739. if (StringUtils.isNotEmpty(admin.getUsername())) {
  740. query.eq(TAdmin::getUsername, admin.getUsername());
  741. }
  742. if (admin.getId() != null) {
  743. query.eq(TAdmin::getId, admin.getId());
  744. }
  745. List<TAdmin> list = tAdminService.list(query);
  746. TAdmin oldAdmin = list.get(0);
  747. if (StringUtils.isNotEmpty(admin.getPassword())) {
  748. oldAdmin.setPassword(admin.getPassword());
  749. }
  750. if (StringUtils.isNotEmpty(admin.getName())) {
  751. oldAdmin.setName(admin.getName());
  752. }
  753. if (admin.getAreaId() != null) {
  754. oldAdmin.setAreaId(admin.getAreaId());
  755. }
  756. if (StringUtils.isNotEmpty(admin.getIfForeign())) {
  757. oldAdmin.setIfForeign(admin.getIfForeign());
  758. }
  759. if (StringUtils.isNotEmpty(admin.getTradeMerchantNo())) {
  760. oldAdmin.setTradeMerchantNo(admin.getTradeMerchantNo());
  761. }
  762. if (StringUtils.isNotEmpty(admin.getPayPlatform())) {
  763. oldAdmin.setPayPlatform(admin.getPayPlatform());
  764. }
  765. if (StringUtils.isNotEmpty(admin.getPromoCodeOpen())) {
  766. oldAdmin.setPromoCodeOpen(admin.getPromoCodeOpen());
  767. }
  768. if (StringUtils.isNotEmpty(admin.getPhone())) {
  769. oldAdmin.setPhone(admin.getPhone());
  770. }
  771. if (StringUtils.isNotEmpty(admin.getEmail())) {
  772. oldAdmin.setEmail(admin.getEmail());
  773. }
  774. if (StringUtils.isNotEmpty(admin.getCurrencySymbol())) {
  775. oldAdmin.setCurrencySymbol(admin.getCurrencySymbol());
  776. } else {
  777. oldAdmin.setCurrencySymbol("¥");
  778. }
  779. if (admin.getApplyStartTime() != null) {
  780. oldAdmin.setApplyStartTime(admin.getApplyStartTime());
  781. }
  782. if (admin.getApplyEndTime() != null) {
  783. oldAdmin.setApplyEndTime(admin.getApplyEndTime());
  784. }
  785. if (StringUtils.isNotEmpty(admin.getRelationAdminId())) {
  786. oldAdmin.setRelationAdminId(admin.getRelationAdminId());
  787. }
  788. if (StringUtils.isNotEmpty(admin.getIsDistribution())) {
  789. oldAdmin.setIsDistribution(admin.getIsDistribution());
  790. }
  791. oldAdmin.setModifyDate(new Date());
  792. tAdminService.updateById(oldAdmin);
  793. return R.ok(null, "修改成功");
  794. }
  795. @ApiOperation(value = "设置关联上级")
  796. @PostMapping("/setRelationAdminId")
  797. public ResponseModel<?> setRelationAdminId(@RequestBody Map<String, String> params) {
  798. String managerId = params.get("managerId");
  799. String username = params.get("username");
  800. String relationUsername = params.get("relationUsername");
  801. if (StringUtils.isEmpty(managerId) || StringUtils.isEmpty(username)) {
  802. return R.fail(ResponseCodesEnum.A0001, "参数不能为空");
  803. }
  804. LambdaQueryWrapper<TAdmin> lqw = Wrappers.lambdaQuery();
  805. lqw.eq(TAdmin::getUsername, username);
  806. TAdmin admin = tAdminService.getOne(lqw);
  807. if (Objects.isNull(admin)) {
  808. return R.fail(ResponseCodesEnum.A0206, "用户不存在");
  809. }
  810. String managerId1 = admin.getManagerId();
  811. if (!managerId1.equals(managerId)) {
  812. return R.fail(ResponseCodesEnum.B0001, "用户名或系统id不匹配");
  813. }
  814. if (username.equals(relationUsername)) {
  815. return R.fail(ResponseCodesEnum.B0001, "同一账户不能构成上下级");
  816. }
  817. if (StringUtils.isEmpty(relationUsername) || "".equals(relationUsername)) { // 无上级,或取消上级
  818. admin.setRelationAdminId("");
  819. } else {
  820. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  821. wrapper.eq(TAdmin::getUsername, relationUsername);
  822. TAdmin relationAdmin = tAdminService.getOne(wrapper);
  823. Long relationAdminId = relationAdmin.getId();
  824. admin.setRelationAdminId(String.valueOf(relationAdminId));
  825. }
  826. tAdminService.saveOrUpdate(admin);
  827. return R.ok("关联成功");
  828. }
  829. @ApiOperation(value = "绑定上级账户")
  830. @GetMapping("/setRelationAdmin")
  831. @Transactional
  832. public ResponseModel<?> setRelationAdmin(Long adminId, String username) {
  833. TAdmin admin = tAdminService.getById(adminId);
  834. if (StringUtils.isNotEmpty(username)) {
  835. if (StringUtils.isNotEmpty(admin.getRelationAdminId())) {
  836. return R.fail("已有绑定关系");
  837. }
  838. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  839. query.eq(TAdmin::getUsername, username);
  840. List<TAdmin> list = tAdminService.list(query);
  841. if (list.size() > 0) {
  842. TAdmin parentAdmin = list.get(0);
  843. if (StringUtils.isNotEmpty(parentAdmin.getRelationAdminId()) && parentAdmin.getRelationAdminId().equals(admin.getId().toString())) {
  844. return R.fail("不能互为绑定关系");
  845. } else {
  846. admin.setRelationAdminId(String.valueOf(parentAdmin.getId()));
  847. tAdminService.updateById(admin);
  848. }
  849. } else {
  850. return R.fail("找不到账户");
  851. }
  852. } else {
  853. return R.fail(ResponseCodesEnum.A0001);
  854. }
  855. return R.ok(null, "绑定成功");
  856. }
  857. @ApiOperation(value = "获取所有关联(下级)账号信息")
  858. @GetMapping("/getAdminIdList")
  859. public ResponseModel<List<Long>> getAdminIdList(@RequestParam String adminId) {
  860. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  861. query.eq(TAdmin::getRelationAdminId, adminId);
  862. List<TAdmin> list = tAdminService.list(query);
  863. List<Long> idList = new ArrayList<>();
  864. for (TAdmin admin : list) {
  865. idList.add(admin.getId());
  866. }
  867. return R.ok(idList);
  868. }
  869. @ApiOperation(value = "获取所有关联(下级)账号信息")
  870. @GetMapping("/getAdminList")
  871. public ResponseModel<?> getAdminList(String adminId) {
  872. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  873. query.eq(TAdmin::getRelationAdminId, adminId);
  874. List<TAdmin> list = tAdminService.list(query);
  875. return R.ok(list);
  876. }
  877. @ApiOperation(value = "获取admin信息")
  878. @GetMapping("/getAdminOne/{adminId}")
  879. public ResponseModel<?> getAdminOne(@PathVariable Long adminId) {
  880. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  881. wrapper.eq(TAdmin::getId, adminId);
  882. TAdmin admin = tAdminService.getOne(wrapper);
  883. if (Objects.isNull(admin)) {
  884. return R.fail("当前用户不存在");
  885. }
  886. return R.ok(admin);
  887. }
  888. @ApiOperation(value = "获取账号信息byname")
  889. @GetMapping("/getAdminByUsername")
  890. public ResponseModel<TAdmin> getAdminByUsername(@RequestParam String username) {
  891. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  892. query.eq(TAdmin::getUsername, username);
  893. List<TAdmin> list = tAdminService.list(query);
  894. if (list.size() > 0) {
  895. TAdmin tAdmin = list.get(0);
  896. return R.ok(tAdmin);
  897. }
  898. return R.ok();
  899. }
  900. @ApiOperation(value = "通过 adminId 获取上级账号信息")
  901. @GetMapping("/getRelation")
  902. public ResponseModel<TAdmin> getRelation(String adminId) {
  903. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  904. wrapper.eq(TAdmin::getId, adminId);
  905. TAdmin admin = tAdminService.getOne(wrapper);
  906. if (Objects.nonNull(admin)) {
  907. String relationAdminId = admin.getRelationAdminId();
  908. if (StringUtils.isNotEmpty(relationAdminId) && !"".equals(relationAdminId)) {
  909. TAdmin relationAdmin = tAdminService.getById(relationAdminId);
  910. return R.ok(relationAdmin);
  911. }
  912. }
  913. return R.ok();
  914. }
  915. @ApiOperation(value = "通过 username 获取账号的 id")
  916. @GetMapping("/getRelationAdminId")
  917. public ResponseModel<String> getRelationAdminId(String relationUsername) {
  918. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  919. wrapper.eq(TAdmin::getUsername, relationUsername);
  920. TAdmin admin = tAdminService.getOne(wrapper);
  921. if (Objects.nonNull(admin)) {
  922. Long adminId = admin.getId();
  923. return R.ok(String.valueOf(adminId));
  924. }
  925. return R.ok();
  926. }
  927. @ApiOperation(value = "获取上级账号名")
  928. @GetMapping("/getRelationAdminUsername")
  929. public String getRelationAdminUsername(String relationAdminId) {
  930. TAdmin admin = tAdminService.getById(relationAdminId);
  931. return admin.getUsername();
  932. }
  933. @ApiOperation(value = "批量设置账户的角色")
  934. @GetMapping("/setRole")
  935. public ResponseModel<?> setRole() {
  936. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  937. query.eq(TAdmin::getType, "2");
  938. List<TAdmin> list = tAdminService.list(query);
  939. if (list.size() > 0) {
  940. for (TAdmin admin : list) {
  941. // 绑定商家角色
  942. LambdaQueryWrapper<SysRole> query4 = Wrappers.lambdaQuery();
  943. query4.eq(SysRole::getAdminId, "1");
  944. query4.eq(SysRole::getRoleName, "商家");
  945. List<SysRole> list2 = sysRoleService.list(query4);
  946. if (list2.size() > 0) {
  947. SysRole sysRole = list2.get(0);
  948. SysRole newSysRole = new SysRole();
  949. newSysRole.setAdminId(admin.getId());
  950. newSysRole.setMenuCodesJson(sysRole.getMenuCodesJson());
  951. newSysRole.setRoleName("商家");
  952. sysRoleService.save(newSysRole);
  953. SysUserRole sysUserRole = new SysUserRole();
  954. sysUserRole.setRoleId(newSysRole.getRoleId());
  955. sysUserRole.setUserId(String.valueOf(admin.getId()));
  956. boolean save = sysUserRoleService.save(sysUserRole);
  957. }
  958. }
  959. }
  960. return R.ok();
  961. }
  962. @ApiOperation(value = "批量设置账户的关联上级")
  963. @GetMapping("/setRelation")
  964. public ResponseModel<?> setRelation() {
  965. List<TAdmin> list = tAdminService.list();
  966. if (list.size() > 0) {
  967. for (TAdmin admin : list) {
  968. if (admin.getParentId() != null) {
  969. admin.setRelationAdminId(admin.getParentId().toString());
  970. tAdminService.updateById(admin);
  971. }
  972. }
  973. }
  974. return R.ok();
  975. }
  976. @ApiOperation(value = "批量修改支付平台")
  977. @GetMapping("/updatePayPlatform")
  978. public ResponseModel<?> updatePayPlatform(@RequestParam String id, @RequestParam String payPlatform) {
  979. Integer adminId = Integer.valueOf(id);
  980. UpdateWrapper<TAdmin> updateWrapper = new UpdateWrapper<>();
  981. // 申泽管理员
  982. if (adminId == 2738) {
  983. updateWrapper.isNull("company_type").or().eq("company_type", 0);
  984. }
  985. // 七云管理员
  986. if (adminId == 2739) {
  987. updateWrapper.eq("company_type", 1);
  988. }
  989. updateWrapper.set("pay_platform", payPlatform);
  990. tAdminService.update(null, updateWrapper);
  991. return R.ok();
  992. }
  993. @ApiOperation(value = "一键迁移")
  994. @GetMapping("/oneKeyMigration")
  995. public ResponseModel<?> oneKeyMigration(Long adminId) {
  996. LambdaQueryWrapper<SysRole> query4 = Wrappers.lambdaQuery();
  997. query4.eq(SysRole::getAdminId, "1");
  998. query4.eq(SysRole::getRoleName, "商家");
  999. List<SysRole> list2 = sysRoleService.list(query4);
  1000. if (list2.size() > 0) {
  1001. SysRole sysRole = list2.get(0);
  1002. SysRole newSysRole = new SysRole();
  1003. newSysRole.setAdminId(adminId);
  1004. newSysRole.setMenuCodesJson(sysRole.getMenuCodesJson());
  1005. newSysRole.setRoleName("商家");
  1006. sysRoleService.save(newSysRole);
  1007. SysUserRole sysUserRole = new SysUserRole();
  1008. sysUserRole.setRoleId(newSysRole.getRoleId());
  1009. sysUserRole.setUserId(String.valueOf(adminId));
  1010. boolean save = sysUserRoleService.save(sysUserRole);
  1011. return R.ok("success");
  1012. }
  1013. return R.fail(ResponseCodesEnum.A0001, "fail");
  1014. }
  1015. @ApiOperation(value = "检验用户名是否存在")
  1016. @GetMapping("/checkUserName")
  1017. public ResponseModel<?> checkUserName(String username) {
  1018. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  1019. query.eq(TAdmin::getUsername, username);
  1020. TAdmin admin = tAdminService.getOne(query);
  1021. if (admin != null) {
  1022. return R.fail(ResponseCodesEnum.A0001);
  1023. }
  1024. return R.ok();
  1025. }
  1026. }