TAdminController.java 48 KB

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