TAdminController.java 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144
  1. package com.szwl.controller;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  6. import com.baomidou.mybatisplus.core.metadata.IPage;
  7. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  8. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  9. import com.szwl.annotation.Audit;
  10. import com.szwl.constant.AuditEnum;
  11. import com.szwl.constant.ResponseCodesEnum;
  12. import com.szwl.exception.BizException;
  13. import com.szwl.feign.bean.PayFeign;
  14. import com.szwl.manager.TokenManager;
  15. import com.szwl.model.bo.R;
  16. import com.szwl.model.bo.ResponseModel;
  17. import com.szwl.model.bo.UserDetailBO;
  18. import com.szwl.model.dto.RegisterParamDTO;
  19. import com.szwl.model.entity.*;
  20. import com.szwl.model.param.AddLoginUserParam;
  21. import com.szwl.model.param.UpdateLoginUserParam;
  22. import com.szwl.model.utils.AdminUtils;
  23. import com.szwl.service.*;
  24. import io.swagger.annotations.Api;
  25. import io.swagger.annotations.ApiOperation;
  26. import lombok.extern.slf4j.Slf4j;
  27. import org.apache.commons.lang.StringUtils;
  28. import org.slf4j.Logger;
  29. import org.slf4j.LoggerFactory;
  30. import org.springframework.beans.factory.annotation.Autowired;
  31. import org.springframework.transaction.annotation.Transactional;
  32. import org.springframework.web.bind.annotation.*;
  33. import javax.servlet.http.HttpServletRequest;
  34. import javax.validation.Valid;
  35. import java.util.*;
  36. import java.util.regex.Pattern;
  37. import java.util.stream.Collectors;
  38. /**
  39. * <p>
  40. * 前端控制器
  41. * </p>
  42. *
  43. * @author wuhs
  44. * @since 2024-07-01
  45. */
  46. @Slf4j
  47. @Api(value = "/tAdmin", tags = {"账户"})
  48. @RestController
  49. @RequestMapping("/tAdmin")
  50. public class TAdminController {
  51. SysRoleService sysRoleService;
  52. SysUserRoleService sysUserRoleService;
  53. TokenManager tokenManager;
  54. TAdminService tAdminService;
  55. TAdminEquipmentService tAdminEquipmentService;
  56. TMessageCodeService tMessageCodeService;
  57. TAirwallexWalletService airwallexWalletService;
  58. PayFeign payFeign;
  59. @Autowired
  60. TWechatService wechatService;
  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. public ResponseModel<?> getChildDrenAdminList(String adminId, String userName, String name) {
  319. List<AddLoginUserParam> returnList = new ArrayList<>();
  320. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  321. query.eq(TAdmin::getParentId, adminId);
  322. if (StringUtils.isNotEmpty(userName)) {
  323. query.eq(TAdmin::getUsername, userName);
  324. }
  325. if (StringUtils.isNotEmpty(name)) {
  326. query.eq(TAdmin::getName, name);
  327. }
  328. if (StringUtils.isNotEmpty(adminId)) {
  329. if (adminId.equals("1")) {
  330. // query.in(TAdmin::getType,"1","3");
  331. query.eq(TAdmin::getType, "1");
  332. } else {
  333. query.eq(TAdmin::getType, "3");
  334. }
  335. } else {
  336. return R.fail(ResponseCodesEnum.A0100);
  337. }
  338. query.eq(TAdmin::getIsAdmined, false);
  339. List<TAdmin> list = tAdminService.list(query);
  340. if (list.size() > 0) {
  341. for (TAdmin admin : list) {
  342. AddLoginUserParam addLoginUserParam = new AddLoginUserParam();
  343. // JSONObject jsonObject = new JSONObject();
  344. addLoginUserParam.setUsername(admin.getUsername());
  345. addLoginUserParam.setName(admin.getName());
  346. addLoginUserParam.setEmail(admin.getEmail());
  347. addLoginUserParam.setPhone(admin.getPhone());
  348. addLoginUserParam.setIsEnabled(admin.getIsEnabled());
  349. addLoginUserParam.setId(admin.getId());
  350. LambdaQueryWrapper<TAdminEquipment> query2 = Wrappers.lambdaQuery();
  351. query2.eq(TAdminEquipment::getAdminId, admin.getId());
  352. List<TAdminEquipment> list1 = tAdminEquipmentService.list(query2);
  353. if (list1.size() > 0) {
  354. TAdminEquipment tAdminEquipment1 = list1.get(0);
  355. if (tAdminEquipment1.getType().equals("0")) {
  356. //管理全部机器
  357. //0:全部机器,1:部分机器
  358. tAdminEquipment1.setType("0");
  359. tAdminEquipment1.setEquipmentIds(null);
  360. addLoginUserParam.setEquipmentIds("all");
  361. } else {
  362. //部分机器
  363. //0:全部机器,1:部分机器
  364. tAdminEquipment1.setType("1");
  365. addLoginUserParam.setEquipmentIds(tAdminEquipment1.getEquipmentIds());
  366. }
  367. }
  368. LambdaQueryWrapper<SysUserRole> query1 = Wrappers.lambdaQuery();
  369. query1.eq(SysUserRole::getUserId, admin.getId());
  370. List<SysUserRole> roleList = sysUserRoleService.list(query1);
  371. List<String> ids = new ArrayList<>();
  372. StringBuilder roleName = new StringBuilder();
  373. if (roleList.size() > 0) {
  374. for (int i = 0; i < roleList.size(); i++) {
  375. SysUserRole sysUserRole = roleList.get(0);
  376. ids.add(sysUserRole.getRoleId());
  377. SysRole sysRole = sysRoleService.getById(sysUserRole.getRoleId());
  378. if (i < roleList.size() - 1) {
  379. roleName.append(sysRole.getRoleName()).append(",");
  380. } else {
  381. roleName.append(sysRole.getRoleName());
  382. }
  383. // addLoginUserParam.setRoleName(roleName);
  384. // List<String> list2 = Arrays.asList(sysRole.getMenuCodesJson().split(","));
  385. // addLoginUserParam.setRoleList(list2);
  386. }
  387. }
  388. addLoginUserParam.setRoleName(roleName.toString());
  389. addLoginUserParam.setRoleList(ids);
  390. returnList.add(addLoginUserParam);
  391. }
  392. }
  393. return R.ok(returnList);
  394. }
  395. @ApiOperation(value = "注册账号/用户注册")
  396. @PostMapping("/save")
  397. @Transactional
  398. @Audit(type = AuditEnum.INSERT, content = "#loginUser.name + '注册账号'")
  399. public ResponseModel<?> save(@RequestBody RegisterParamDTO registerParam) {
  400. if (StringUtils.isEmpty(registerParam.getUsername()) || StringUtils.isEmpty(registerParam.getName()) || StringUtils.isEmpty(registerParam.getPassword())) {
  401. return R.fail(ResponseCodesEnum.A0100, "数据有空!");
  402. }
  403. String phoneOrEmail = registerParam.getPhoneOrEmail();
  404. // 定义国内手机号和邮箱的正则表达式
  405. String phoneReg = "^1[3-9]\\d{9}$";
  406. String emailReg = "^[a-zA-Z0-9_-]+([a-zA-Z0-9_.-]*[a-zA-Z0-9])*@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
  407. if (registerParam.getIfForeign().isEmpty()) {
  408. return R.fail(ResponseCodesEnum.A0001, "是否国内外为空!");
  409. }
  410. // 国内用户注册
  411. if (registerParam.getIfForeign().equals("0")) {
  412. // 判断 phoneOrEmail 是手机号还是邮箱
  413. if (Pattern.matches(phoneReg, phoneOrEmail)) {
  414. System.out.println("这是一个手机号");
  415. if (StringUtils.isEmpty(registerParam.getPhoneOrEmail())) {
  416. return R.fail(ResponseCodesEnum.A0100, "手机号为空!");
  417. }
  418. } else if (Pattern.matches(emailReg, phoneOrEmail)) {
  419. System.out.println("这是一个邮箱地址");
  420. if (StringUtils.isEmpty(registerParam.getPhoneOrEmail())) {
  421. return R.fail(ResponseCodesEnum.A0100, "邮箱为空!");
  422. }
  423. } else {
  424. System.out.println("不是有效的手机号或邮箱地址");
  425. return R.fail(ResponseCodesEnum.A0100, "不是有效的手机号或邮箱地址");
  426. }
  427. } else {
  428. //海外用户注册
  429. if (StringUtils.isEmpty(registerParam.getPhoneOrEmail())) {
  430. return R.fail(ResponseCodesEnum.A0100, "邮箱为空!");
  431. }
  432. }
  433. if (StringUtils.isEmpty(registerParam.getCode())) {
  434. return R.fail(ResponseCodesEnum.A0100, "验证码为空!");
  435. }
  436. //校验是否有重复的
  437. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  438. query.eq(TAdmin::getUsername, registerParam.getUsername());
  439. List<TAdmin> list = tAdminService.list(query);
  440. if (list.size() > 0) {
  441. return R.fail(ResponseCodesEnum.A0201, "用户登录名已存在");
  442. }
  443. LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
  444. if (registerParam.getIfForeign().equals("0")) {
  445. // 国内分两种
  446. if (Pattern.matches(phoneReg, phoneOrEmail)) {
  447. query1.eq(TAdmin::getPhone, registerParam.getPhoneOrEmail());
  448. } else {
  449. query1.eq(TAdmin::getEmail, registerParam.getPhoneOrEmail());
  450. }
  451. } else {
  452. query1.eq(TAdmin::getEmail, registerParam.getPhoneOrEmail());
  453. }
  454. List<TAdmin> list1 = tAdminService.list(query1);
  455. if (list1.size() > 0) {
  456. return R.fail(ResponseCodesEnum.A0203, "用户手机/邮箱已存在");
  457. }
  458. //校验验证码是否正确
  459. LambdaQueryWrapper<TMessageCode> query2 = Wrappers.lambdaQuery();
  460. if (registerParam.getIfForeign().equals("0")) {
  461. // 国内分两种
  462. if (Pattern.matches(phoneReg, phoneOrEmail)) {
  463. query2.eq(TMessageCode::getPhone, registerParam.getPhoneOrEmail());
  464. } else {
  465. query2.eq(TMessageCode::getPhone, registerParam.getPhoneOrEmail());
  466. }
  467. } else {
  468. query2.eq(TMessageCode::getPhone, registerParam.getPhoneOrEmail());
  469. }
  470. // 0,代表注册验证码
  471. query2.eq(TMessageCode::getType, "0");
  472. query2.eq(TMessageCode::getStatus, "0");
  473. List<TMessageCode> messageCodeList = tMessageCodeService.list(query2);
  474. TAdmin admin = new TAdmin();
  475. if (messageCodeList.size() > 0) {
  476. TMessageCode tMessageCode = messageCodeList.get(messageCodeList.size() - 1);
  477. if (!tMessageCode.getCode().equals(registerParam.getCode())) {
  478. return R.fail(ResponseCodesEnum.A0002, "验证码错误");
  479. }
  480. tMessageCode.setStatus("1");
  481. // admin.setId(IDGenerator.commonID()); // admin 表改回原来的自增ID
  482. admin.setCreateDate(new Date());
  483. admin.setModifyDate(new Date());
  484. admin.setIsAdmined(true);
  485. admin.setIsEnabled(true);
  486. admin.setLoginFailureCount(0);
  487. admin.setIsLocked(false);
  488. //默认是商家
  489. admin.setType(2);
  490. admin.setPassword(registerParam.getPassword());
  491. admin.setUsername(registerParam.getUsername());
  492. admin.setName(registerParam.getName());
  493. admin.setIfForeign(registerParam.getIfForeign());
  494. if (registerParam.getIfForeign().equals("1")) {
  495. admin.setPromoCodeOpen("0");
  496. }
  497. admin.setCompanyType(registerParam.getCompanyType());
  498. if (Pattern.matches(phoneReg, phoneOrEmail)) {
  499. admin.setPhone(registerParam.getPhoneOrEmail());
  500. } else if (Pattern.matches(emailReg, phoneOrEmail)) {
  501. admin.setEmail(registerParam.getPhoneOrEmail());
  502. } else {
  503. return R.fail(ResponseCodesEnum.A0100, "不是有效的手机号或邮箱地址");
  504. }
  505. if (registerParam.getCompanyType().equals("1")) { // 如果是七云平台
  506. admin.setTradeMerchantNo("777138500523174"); //七云商户报备号
  507. admin.setPayPlatform("1");
  508. } else {
  509. admin.setPayPlatform("0");
  510. }
  511. boolean b = tAdminService.save(admin);
  512. tMessageCodeService.saveOrUpdate(tMessageCode);
  513. if (b) {
  514. // 绑定商家角色
  515. LambdaQueryWrapper<SysRole> query4 = Wrappers.lambdaQuery();
  516. query4.eq(SysRole::getAdminId, "1");
  517. query4.eq(SysRole::getRoleName, "商家");
  518. List<SysRole> list2 = sysRoleService.list(query4);
  519. if (list2.size() > 0) {
  520. SysRole sysRole = list2.get(0);
  521. SysRole newSysRole = new SysRole();
  522. newSysRole.setAdminId(admin.getId());
  523. newSysRole.setMenuCodesJson(sysRole.getMenuCodesJson());
  524. newSysRole.setRoleName("商家");
  525. sysRoleService.save(newSysRole);
  526. SysUserRole sysUserRole = new SysUserRole();
  527. sysUserRole.setRoleId(newSysRole.getRoleId());
  528. sysUserRole.setUserId(String.valueOf(admin.getId()));
  529. sysUserRoleService.save(sysUserRole);
  530. }
  531. tMessageCode.setModifyDate(new Date());
  532. if (admin.getId() != null) {
  533. String managerId = AdminUtils.encrypt(false, admin.getId());
  534. admin.setManagerId(managerId);
  535. tAdminService.getById(admin);
  536. // 新建海外账户的时候创建一个 Airwallex 钱包账户
  537. try {
  538. if ("1".equals(registerParam.getIfForeign())) {
  539. TAirwallexWallet wallet = new TAirwallexWallet();
  540. wallet.setAdminId(admin.getId());
  541. // wallet.setAccountCurrency("USD");
  542. // wallet.setAccountAmount(new BigDecimal("0.00"));
  543. // airwallexWalletService.save(wallet);
  544. // System.out.println("wallet >>> " + wallet);
  545. payFeign.saveAirwallexWallet(wallet);
  546. }
  547. } catch (Exception e) {
  548. logger.error("发生异常》》》:" + e.getMessage(), e);
  549. }
  550. }
  551. }
  552. return R.ok(b);
  553. } else {
  554. return R.fail(ResponseCodesEnum.A0002, "没有找到验证码");
  555. }
  556. }
  557. @ApiOperation(value = "登录")
  558. @PostMapping("/login")
  559. @Audit(type = AuditEnum.LOGIN, content = "#username + '请求登录'")
  560. public ResponseModel<UserDetailBO> login(String username, String password, String hostName, HttpServletRequest request) {
  561. if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
  562. return R.fail(ResponseCodesEnum.A0001, "参数有空");
  563. }
  564. //验证用户名登录
  565. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  566. query.eq(TAdmin::getPassword, password);
  567. query.and(wrapper -> wrapper.eq(TAdmin::getUsername, username).or().eq(TAdmin::getPhone, username));
  568. TAdmin tAdmin = Optional.ofNullable(tAdminService.getOnly(query))
  569. .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
  570. // 判断是为申泽用户还是七云用户
  571. String companyType = tAdmin.getCompanyType();
  572. String SZ = "Sunzee";
  573. String SC = "Sevencloud";
  574. // 如果不为管理员
  575. if (tAdmin.getType() >= 1) {
  576. if (SZ.equals(hostName)) {
  577. // 如果companyType不为空,且不等于“0”
  578. if (StringUtils.isNotEmpty(companyType) && !companyType.equals("0")) {
  579. return R.fail(ResponseCodesEnum.L0002);
  580. }
  581. }
  582. if (SC.equals(hostName)) {
  583. // 如果companyType为空,或者不等于“1”
  584. if (StringUtils.isEmpty(companyType) || !(companyType.equals("1"))) {
  585. return R.fail(ResponseCodesEnum.L0002);
  586. }
  587. }
  588. }
  589. // 添加系统id
  590. if (StringUtils.isEmpty(tAdmin.getManagerId())) {
  591. String managerId = AdminUtils.encrypt(false, tAdmin.getId());
  592. tAdmin.setManagerId(managerId);
  593. }
  594. // 设置登录时间
  595. tAdmin.setLoginDate(new Date());
  596. // 登录IP
  597. String ipAddress;
  598. // 获取通过代理服务器传递的真实IP地址
  599. String xForwardedForHeader = request.getHeader("X-Forwarded-For");
  600. if (xForwardedForHeader == null) {
  601. ipAddress = request.getRemoteAddr();
  602. } else {
  603. // 多次反向代理后会有多个IP值,第一个IP才是真实IP
  604. String[] ips = xForwardedForHeader.split(",");
  605. ipAddress = ips[0].trim();
  606. }
  607. tAdmin.setLoginIp(ipAddress);
  608. tAdminService.updateById(tAdmin);
  609. UserDetailBO userDetailBO = tAdminService.getUserDetailBO(tAdmin);
  610. return R.ok(userDetailBO);
  611. }
  612. @ApiOperation(value = "切换自动登录")
  613. @GetMapping("/autoLogin")
  614. @Audit(type = AuditEnum.LOGIN, content = "切换登录'")
  615. public ResponseModel<UserDetailBO> autoLogin(@RequestParam String id) {
  616. if (StringUtils.isEmpty(id)) {
  617. return R.fail(ResponseCodesEnum.A0001, "参数有空");
  618. }
  619. //验证用户名登录
  620. Long adminId = Long.valueOf(id);
  621. TAdmin admin = tAdminService.getById(adminId);
  622. TAdmin tAdmin = Optional.ofNullable(admin)
  623. .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
  624. // 添加系统id
  625. if (StringUtils.isEmpty(tAdmin.getManagerId())) {
  626. String managerId = AdminUtils.encrypt(false, tAdmin.getId());
  627. tAdmin.setManagerId(managerId);
  628. tAdminService.getById(tAdmin);
  629. }
  630. UserDetailBO userDetailBO = tAdminService.getUserDetailBO(tAdmin);
  631. return R.ok(userDetailBO);
  632. }
  633. @ApiOperation(value = "修改密码")
  634. @PostMapping("/updatePassword")
  635. public ResponseModel<?> updatePassword(String username, String password) {
  636. if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
  637. return R.fail(ResponseCodesEnum.A0001, "参数有空");
  638. }
  639. //查找用户名
  640. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  641. query.eq(TAdmin::getUsername, username);
  642. List<TAdmin> list = tAdminService.list(query);
  643. if (list.size() > 0) {
  644. TAdmin admin = list.get(0);
  645. admin.setPassword(password);
  646. boolean b = tAdminService.saveOrUpdate(admin);
  647. return R.ok(b);
  648. }
  649. return R.fail(ResponseCodesEnum.A0001, "修改失败");
  650. }
  651. @ApiOperation(value = "获取账号信息")
  652. @GetMapping("/getAdmin")
  653. public ResponseModel<TAdmin> getAdmin(@RequestParam String id) {
  654. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  655. query.eq(TAdmin::getId, id);
  656. TAdmin tAdmin = Optional.ofNullable(tAdminService.getOnly(query))
  657. .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
  658. if (StringUtils.isEmpty(tAdmin.getManagerId())) {
  659. String managerId = AdminUtils.encrypt(false, tAdmin.getId());
  660. tAdmin.setManagerId(managerId);
  661. tAdminService.getById(tAdmin);
  662. }
  663. UserDetailBO userDetailBO = BeanUtil.copyProperties(tAdmin, UserDetailBO.class, "password");
  664. return R.ok(userDetailBO);
  665. }
  666. @ApiOperation(value = "获取账号列表 分页")
  667. @GetMapping("/pageAdmin")
  668. public ResponseModel<IPage<?>> pageAdmin(String id, String name, String userName, String ifForeign,
  669. long current, long size) {
  670. if (StringUtils.isEmpty(id)) {
  671. return R.fail(ResponseCodesEnum.A0001, "null参数");
  672. }
  673. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  674. if (StringUtils.isNotEmpty(name)) {
  675. query.like(TAdmin::getName, name);
  676. }
  677. if (StringUtils.isNotEmpty(userName)) {
  678. query.like(TAdmin::getUsername, userName);
  679. }
  680. if (StringUtils.isNotEmpty(ifForeign)) {
  681. query.eq(TAdmin::getIfForeign, ifForeign);
  682. }
  683. if (StringUtils.isNotEmpty(id)) {
  684. TAdmin admin = tAdminService.getById(id);
  685. if (admin == null || admin.getId() == null) {
  686. return R.fail(ResponseCodesEnum.A0001, "没有找到商家");
  687. }
  688. // 申泽平台管理员
  689. if (admin.getId() == 2738) {
  690. query.isNull(TAdmin::getCompanyType).or()
  691. .eq(TAdmin::getCompanyType, "0");
  692. }
  693. // 七云平台管理员
  694. if (admin.getId() == 2739) {
  695. query.eq(TAdmin::getCompanyType, "1");
  696. }
  697. if (admin.getType() > 1) {
  698. query.eq(TAdmin::getRelationAdminId, id);
  699. }
  700. }
  701. query.eq(TAdmin::getType, "2");
  702. query.orderByDesc(TAdmin::getCreateDate);
  703. Page<TAdmin> page = new Page<>(current, size, true);
  704. IPage<TAdmin> iPage = tAdminService.page(page, query);
  705. iPage.getRecords().forEach(e -> e.setPassword("")); // 密码置空
  706. return R.ok(iPage);
  707. }
  708. @ApiOperation(value = "获取账号列表 分页")
  709. @GetMapping("/pageAdmin2")
  710. public ResponseModel<IPage<TAdmin>> pageAdmin2(@RequestParam(value = "current") long current,
  711. @RequestParam(value = "size") long size) {
  712. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  713. Page<TAdmin> page = new Page<>(current, size, true);
  714. IPage<TAdmin> iPage = tAdminService.page(page, query);
  715. iPage.getRecords().forEach(e -> e.setPassword(""));
  716. return R.ok(iPage);
  717. }
  718. @ApiOperation(value = "获取账号列表")
  719. @GetMapping("/listAdmin")
  720. public ResponseModel<?> listAdmin(String adminId) {
  721. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  722. if (StringUtils.isNotEmpty(adminId)) {
  723. query.like(TAdmin::getRelationAdminId, adminId);
  724. }
  725. List<TAdmin> list = tAdminService.list(query);
  726. return R.ok(list);
  727. }
  728. @ApiOperation(value = "修改账号")
  729. @PostMapping("/update")
  730. @Transactional
  731. public ResponseModel<?> update(@RequestBody TAdmin admin) {
  732. if (StringUtils.isEmpty(admin.getUsername()) && admin.getId() == null) {
  733. return R.fail(ResponseCodesEnum.A0001, "参数空");
  734. }
  735. //校验是否有重复的
  736. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  737. if (StringUtils.isNotEmpty(admin.getUsername())) {
  738. query.eq(TAdmin::getUsername, admin.getUsername());
  739. }
  740. if (admin.getId() != null) {
  741. query.eq(TAdmin::getId, admin.getId());
  742. }
  743. List<TAdmin> list = tAdminService.list(query);
  744. TAdmin oldAdmin = list.get(0);
  745. if (StringUtils.isNotEmpty(admin.getPassword())) {
  746. oldAdmin.setPassword(admin.getPassword());
  747. }
  748. if (StringUtils.isNotEmpty(admin.getName())) {
  749. oldAdmin.setName(admin.getName());
  750. }
  751. if (admin.getAreaId() != null) {
  752. oldAdmin.setAreaId(admin.getAreaId());
  753. }
  754. if (StringUtils.isNotEmpty(admin.getIfForeign())) {
  755. oldAdmin.setIfForeign(admin.getIfForeign());
  756. }
  757. if (StringUtils.isNotEmpty(admin.getTradeMerchantNo())) {
  758. oldAdmin.setTradeMerchantNo(admin.getTradeMerchantNo());
  759. }
  760. if (StringUtils.isNotEmpty(admin.getPayPlatform())) {
  761. oldAdmin.setPayPlatform(admin.getPayPlatform());
  762. }
  763. if (StringUtils.isNotEmpty(admin.getPromoCodeOpen())) {
  764. oldAdmin.setPromoCodeOpen(admin.getPromoCodeOpen());
  765. }
  766. if (StringUtils.isNotEmpty(admin.getPhone())) {
  767. oldAdmin.setPhone(admin.getPhone());
  768. }
  769. if (StringUtils.isNotEmpty(admin.getEmail())) {
  770. oldAdmin.setEmail(admin.getEmail());
  771. }
  772. if (StringUtils.isNotEmpty(admin.getCurrencySymbol())) {
  773. oldAdmin.setCurrencySymbol(admin.getCurrencySymbol());
  774. } else {
  775. oldAdmin.setCurrencySymbol("¥");
  776. }
  777. if (admin.getApplyStartTime() != null) {
  778. oldAdmin.setApplyStartTime(admin.getApplyStartTime());
  779. }
  780. if (admin.getApplyEndTime() != null) {
  781. oldAdmin.setApplyEndTime(admin.getApplyEndTime());
  782. }
  783. if (StringUtils.isNotEmpty(admin.getRelationAdminId())) {
  784. oldAdmin.setRelationAdminId(admin.getRelationAdminId());
  785. }
  786. if (StringUtils.isNotEmpty(admin.getIsDistribution())) {
  787. oldAdmin.setIsDistribution(admin.getIsDistribution());
  788. }
  789. oldAdmin.setModifyDate(new Date());
  790. tAdminService.updateById(oldAdmin);
  791. return R.ok(null, "修改成功");
  792. }
  793. @ApiOperation(value = "设置关联上级")
  794. @PostMapping("/setRelationAdminId")
  795. public ResponseModel<?> setRelationAdminId(@RequestBody Map<String, String> params) {
  796. String managerId = params.get("managerId");
  797. String username = params.get("username");
  798. String relationUsername = params.get("relationUsername");
  799. if (StringUtils.isEmpty(managerId) || StringUtils.isEmpty(username)) {
  800. return R.fail(ResponseCodesEnum.A0001, "参数不能为空");
  801. }
  802. LambdaQueryWrapper<TAdmin> lqw = Wrappers.lambdaQuery();
  803. lqw.eq(TAdmin::getUsername, username);
  804. TAdmin admin = tAdminService.getOne(lqw);
  805. if (Objects.isNull(admin)) {
  806. return R.fail(ResponseCodesEnum.A0206, "用户不存在");
  807. }
  808. String managerId1 = admin.getManagerId();
  809. if (!managerId1.equals(managerId)) {
  810. return R.fail(ResponseCodesEnum.B0001, "用户名或系统id不匹配");
  811. }
  812. if (username.equals(relationUsername)) {
  813. return R.fail(ResponseCodesEnum.B0001, "同一账户不能构成上下级");
  814. }
  815. if (StringUtils.isEmpty(relationUsername) || "".equals(relationUsername)) { // 无上级,或取消上级
  816. admin.setRelationAdminId("");
  817. } else {
  818. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  819. wrapper.eq(TAdmin::getUsername, relationUsername);
  820. TAdmin relationAdmin = tAdminService.getOne(wrapper);
  821. Long relationAdminId = relationAdmin.getId();
  822. admin.setRelationAdminId(String.valueOf(relationAdminId));
  823. }
  824. tAdminService.saveOrUpdate(admin);
  825. return R.ok("关联成功");
  826. }
  827. @ApiOperation(value = "绑定上级账户")
  828. @GetMapping("/setRelationAdmin")
  829. @Transactional
  830. public ResponseModel<?> setRelationAdmin(Long adminId, String username) {
  831. TAdmin admin = tAdminService.getById(adminId);
  832. if (StringUtils.isNotEmpty(username)) {
  833. if (StringUtils.isNotEmpty(admin.getRelationAdminId())) {
  834. return R.fail("已有绑定关系");
  835. }
  836. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  837. query.eq(TAdmin::getUsername, username);
  838. List<TAdmin> list = tAdminService.list(query);
  839. if (list.size() > 0) {
  840. TAdmin parentAdmin = list.get(0);
  841. if (StringUtils.isNotEmpty(parentAdmin.getRelationAdminId()) && parentAdmin.getRelationAdminId().equals(admin.getId().toString())) {
  842. return R.fail("不能互为绑定关系");
  843. } else {
  844. admin.setRelationAdminId(String.valueOf(parentAdmin.getId()));
  845. tAdminService.updateById(admin);
  846. }
  847. } else {
  848. return R.fail("找不到账户");
  849. }
  850. } else {
  851. return R.fail(ResponseCodesEnum.A0001);
  852. }
  853. return R.ok(null, "绑定成功");
  854. }
  855. @ApiOperation(value = "获取所有关联(下级)账号信息")
  856. @GetMapping("/getAdminIdList")
  857. public ResponseModel<List<Long>> getAdminIdList(@RequestParam String adminId) {
  858. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  859. query.eq(TAdmin::getRelationAdminId, adminId);
  860. List<TAdmin> list = tAdminService.list(query);
  861. List<Long> idList = new ArrayList<>();
  862. for (TAdmin admin : list) {
  863. idList.add(admin.getId());
  864. }
  865. return R.ok(idList);
  866. }
  867. @ApiOperation(value = "获取所有关联(下级)账号信息")
  868. @GetMapping("/getAdminList")
  869. public ResponseModel<?> getAdminList(String adminId) {
  870. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  871. query.eq(TAdmin::getRelationAdminId, adminId);
  872. List<TAdmin> list = tAdminService.list(query);
  873. return R.ok(list);
  874. }
  875. @ApiOperation(value = "获取admin信息")
  876. @GetMapping("/getAdminOne/{adminId}")
  877. public ResponseModel<?> getAdminOne(@PathVariable Long adminId) {
  878. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  879. wrapper.eq(TAdmin::getId, adminId);
  880. TAdmin admin = tAdminService.getOne(wrapper);
  881. if (Objects.isNull(admin)) {
  882. return R.fail("当前用户不存在");
  883. }
  884. return R.ok(admin);
  885. }
  886. @ApiOperation(value = "获取账号信息byname")
  887. @GetMapping("/getAdminByUsername")
  888. public ResponseModel<TAdmin> getAdminByUsername(@RequestParam String username) {
  889. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  890. query.eq(TAdmin::getUsername, username);
  891. List<TAdmin> list = tAdminService.list(query);
  892. if (list.size() > 0) {
  893. TAdmin tAdmin = list.get(0);
  894. return R.ok(tAdmin);
  895. }
  896. return R.ok();
  897. }
  898. @ApiOperation(value = "通过 adminId 获取上级账号信息")
  899. @GetMapping("/getRelation")
  900. public ResponseModel<TAdmin> getRelation(String adminId) {
  901. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  902. wrapper.eq(TAdmin::getId, adminId);
  903. TAdmin admin = tAdminService.getOne(wrapper);
  904. if (Objects.nonNull(admin)) {
  905. String relationAdminId = admin.getRelationAdminId();
  906. if (StringUtils.isNotEmpty(relationAdminId) && !"".equals(relationAdminId)) {
  907. TAdmin relationAdmin = tAdminService.getById(relationAdminId);
  908. return R.ok(relationAdmin);
  909. }
  910. }
  911. return R.ok();
  912. }
  913. @ApiOperation(value = "通过 username 获取账号的 id")
  914. @GetMapping("/getRelationAdminId")
  915. public ResponseModel<String> getRelationAdminId(String relationUsername) {
  916. LambdaQueryWrapper<TAdmin> wrapper = Wrappers.lambdaQuery();
  917. wrapper.eq(TAdmin::getUsername, relationUsername);
  918. TAdmin admin = tAdminService.getOne(wrapper);
  919. if (Objects.nonNull(admin)) {
  920. Long adminId = admin.getId();
  921. return R.ok(String.valueOf(adminId));
  922. }
  923. return R.ok();
  924. }
  925. @ApiOperation(value = "获取上级账号名")
  926. @GetMapping("/getRelationAdminUsername")
  927. public String getRelationAdminUsername(String relationAdminId) {
  928. TAdmin admin = tAdminService.getById(relationAdminId);
  929. return admin.getUsername();
  930. }
  931. @ApiOperation(value = "批量设置账户的角色")
  932. @GetMapping("/setRole")
  933. public ResponseModel<?> setRole() {
  934. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  935. query.eq(TAdmin::getType, "2");
  936. List<TAdmin> list = tAdminService.list(query);
  937. if (list.size() > 0) {
  938. for (TAdmin admin : list) {
  939. // 绑定商家角色
  940. LambdaQueryWrapper<SysRole> query4 = Wrappers.lambdaQuery();
  941. query4.eq(SysRole::getAdminId, "1");
  942. query4.eq(SysRole::getRoleName, "商家");
  943. List<SysRole> list2 = sysRoleService.list(query4);
  944. if (list2.size() > 0) {
  945. SysRole sysRole = list2.get(0);
  946. SysRole newSysRole = new SysRole();
  947. newSysRole.setAdminId(admin.getId());
  948. newSysRole.setMenuCodesJson(sysRole.getMenuCodesJson());
  949. newSysRole.setRoleName("商家");
  950. sysRoleService.save(newSysRole);
  951. SysUserRole sysUserRole = new SysUserRole();
  952. sysUserRole.setRoleId(newSysRole.getRoleId());
  953. sysUserRole.setUserId(String.valueOf(admin.getId()));
  954. sysUserRoleService.save(sysUserRole);
  955. }
  956. }
  957. }
  958. return R.ok();
  959. }
  960. @ApiOperation(value = "批量设置账户的关联上级")
  961. @GetMapping("/setRelation")
  962. public ResponseModel<?> setRelation() {
  963. List<TAdmin> list = tAdminService.list();
  964. if (list.size() > 0) {
  965. for (TAdmin admin : list) {
  966. if (admin.getParentId() != null) {
  967. admin.setRelationAdminId(admin.getParentId().toString());
  968. tAdminService.updateById(admin);
  969. }
  970. }
  971. }
  972. return R.ok();
  973. }
  974. @ApiOperation(value = "批量修改支付平台")
  975. @GetMapping("/updatePayPlatform")
  976. public ResponseModel<?> updatePayPlatform(@RequestParam String id, @RequestParam String payPlatform) {
  977. Integer adminId = Integer.valueOf(id);
  978. UpdateWrapper<TAdmin> updateWrapper = new UpdateWrapper<>();
  979. // 申泽管理员
  980. if (adminId == 2738) {
  981. updateWrapper.isNull("company_type").or().eq("company_type", 0);
  982. }
  983. // 七云管理员
  984. if (adminId == 2739) {
  985. updateWrapper.eq("company_type", 1);
  986. }
  987. updateWrapper.set("pay_platform", payPlatform);
  988. tAdminService.update(null, updateWrapper);
  989. return R.ok();
  990. }
  991. @ApiOperation(value = "一键迁移")
  992. @GetMapping("/oneKeyMigration")
  993. public ResponseModel<?> oneKeyMigration(Long adminId) {
  994. LambdaQueryWrapper<SysRole> query4 = Wrappers.lambdaQuery();
  995. query4.eq(SysRole::getAdminId, "1");
  996. query4.eq(SysRole::getRoleName, "商家");
  997. List<SysRole> list2 = sysRoleService.list(query4);
  998. if (list2.size() > 0) {
  999. SysRole sysRole = list2.get(0);
  1000. SysRole newSysRole = new SysRole();
  1001. newSysRole.setAdminId(adminId);
  1002. newSysRole.setMenuCodesJson(sysRole.getMenuCodesJson());
  1003. newSysRole.setRoleName("商家");
  1004. sysRoleService.save(newSysRole);
  1005. SysUserRole sysUserRole = new SysUserRole();
  1006. sysUserRole.setRoleId(newSysRole.getRoleId());
  1007. sysUserRole.setUserId(String.valueOf(adminId));
  1008. sysUserRoleService.save(sysUserRole);
  1009. return R.ok("success");
  1010. }
  1011. return R.fail(ResponseCodesEnum.A0001, "fail");
  1012. }
  1013. @ApiOperation(value = "检验用户名是否存在")
  1014. @GetMapping("/checkUserName")
  1015. public ResponseModel<?> checkUserName(String username) {
  1016. LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
  1017. query.eq(TAdmin::getUsername, username);
  1018. TAdmin admin = tAdminService.getOne(query);
  1019. if (admin != null) {
  1020. return R.fail(ResponseCodesEnum.A0001);
  1021. }
  1022. return R.ok();
  1023. }
  1024. @ApiOperation(value = "切换订单通知开关")
  1025. @GetMapping("/updateOrderNotice")
  1026. public ResponseModel<?> updateOrderNotice(String adminId, String orderNotice) {
  1027. if (StringUtils.isEmpty(adminId) || StringUtils.isEmpty(orderNotice)) {
  1028. return R.fail(ResponseCodesEnum.A0001);
  1029. }
  1030. // 查询是否有绑定微信
  1031. if (orderNotice.equals("1")) {
  1032. LambdaQueryWrapper<TWechat> wrapper = new LambdaQueryWrapper<>();
  1033. wrapper.eq(TWechat::getAdminId, adminId);
  1034. TWechat wechat = wechatService.getOne(wrapper);
  1035. if (wechat == null) {
  1036. return R.fail(ResponseCodesEnum.A0001, "请先绑定微信");
  1037. }
  1038. }
  1039. TAdmin admin = tAdminService.getById(adminId);
  1040. admin.setOrderNotice(orderNotice);
  1041. tAdminService.updateById(admin);
  1042. return R.ok();
  1043. }
  1044. @ApiOperation(value = "切换设备上下线通知开关")
  1045. @GetMapping("/updateOnOffNotice")
  1046. public ResponseModel<?> updateOnOffNotice(String adminId, String onOffNotice) {
  1047. if (StringUtils.isEmpty(adminId) || StringUtils.isEmpty(onOffNotice)) {
  1048. return R.fail(ResponseCodesEnum.A0001);
  1049. }
  1050. // 查询是否有绑定微信
  1051. if (onOffNotice.equals("1")) {
  1052. LambdaQueryWrapper<TWechat> wrapper = new LambdaQueryWrapper<>();
  1053. wrapper.eq(TWechat::getAdminId, adminId);
  1054. TWechat wechat = wechatService.getOne(wrapper);
  1055. if (wechat == null) {
  1056. return R.fail(ResponseCodesEnum.A0001, "请先绑定微信");
  1057. }
  1058. }
  1059. TAdmin admin = tAdminService.getById(adminId);
  1060. admin.setOnOffNotice(onOffNotice);
  1061. tAdminService.updateById(admin);
  1062. return R.ok();
  1063. }
  1064. }