소스 검색

feat: "新增海外用户时,默认新建一个 Airwallex 钱包,0.00 USD"

wangzeyu@tom.com 2 년 전
부모
커밋
06653cbaee

+ 304 - 206
src/main/java/com/szwl/controller/TAdminController.java

@@ -15,10 +15,12 @@ import com.szwl.annotation.Audit;
 import com.szwl.constant.AuditEnum;
 import com.szwl.constant.ResponseCodesEnum;
 import com.szwl.exception.BizException;
+import com.szwl.feign.bean.PayFeign;
 import com.szwl.manager.TokenManager;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.bo.UserDetailBO;
+import com.szwl.model.dto.RegisterParamDTO;
 import com.szwl.model.entity.*;
 import com.szwl.model.param.AddLoginUserParam;
 import com.szwl.model.param.UpdateLoginUserParam;
@@ -30,6 +32,8 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,7 +41,9 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotBlank;
+import java.math.BigDecimal;
 import java.util.*;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -53,50 +59,68 @@ import java.util.stream.Collectors;
 @RestController
 @RequestMapping("/tAdmin")
 public class TAdminController {
-    @Autowired
+
     SysRoleService sysRoleService;
-    @Autowired
+
     SysUserRoleService sysUserRoleService;
-    @Autowired
+
     TokenManager tokenManager;
-    @Autowired
+
     TAdminService tAdminService;
-    @Autowired
+
     TAdminEquipmentService tAdminEquipmentService;
-    @Autowired
+
     TMessageCodeService tMessageCodeService;
 
+    TAirwallexWalletService airwallexWalletService;
+
+    PayFeign payFeign;
+
+    public TAdminController(SysRoleService sysRoleService, SysUserRoleService sysUserRoleService, TokenManager tokenManager, TAdminService tAdminService, TAdminEquipmentService tAdminEquipmentService, TMessageCodeService tMessageCodeService, TAirwallexWalletService airwallexWalletService, PayFeign payFeign) {
+        this.sysRoleService = sysRoleService;
+        this.sysUserRoleService = sysUserRoleService;
+        this.tokenManager = tokenManager;
+        this.tAdminService = tAdminService;
+        this.tAdminEquipmentService = tAdminEquipmentService;
+        this.tMessageCodeService = tMessageCodeService;
+        this.airwallexWalletService = airwallexWalletService;
+        this.payFeign = payFeign;
+    }
+
+
+    private static final Logger logger = LoggerFactory.getLogger(TAdminController.class);
+
     @ApiOperation(value = "添加子账号")
     @PostMapping("/addLoginUser")
     @Transactional
-    @Audit(type = AuditEnum.INSERT,content = "#loginUser.name + '添加账号'")
+    @Audit(type = AuditEnum.INSERT, content = "#loginUser.name + '添加账号'")
     public ResponseModel<?> addLoginUser(@RequestBody @Valid AddLoginUserParam param) {
-        if(StringUtils.isEmpty(param.getEquipmentIds())){
-            return R.fail(ResponseCodesEnum.A0001,"机器不能为空");
+        if (StringUtils.isEmpty(param.getEquipmentIds())) {
+            return R.fail(ResponseCodesEnum.A0001, "机器不能为空");
         }
-        if(param.getRoleList().size()<1){
-            return R.fail(ResponseCodesEnum.A0001,"角色不能为空");
+        if (param.getRoleList().size() < 1) {
+            return R.fail(ResponseCodesEnum.A0001, "角色不能为空");
         }
         //获取当前操作人员
         UserDetailBO loginUser = tokenManager.getLoginUserDetails();
         // 保存用户实体
         Date now = new Date();
         Long parentId = param.getAdminId();
-        if(parentId==null){
+        if (parentId == null) {
             return R.fail(ResponseCodesEnum.A0001);
         }
         param.setAdminId(null);
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getUsername,param.getUsername());
+        query.eq(TAdmin::getUsername, param.getUsername());
         List<TAdmin> list = tAdminService.list(query);
-        if(list.size()>0){
+        if (list.size() > 0) {
             return R.fail(ResponseCodesEnum.A0001);
         }
-        TAdmin entity = BeanUtil.copyProperties(param,TAdmin.class);
+        TAdmin entity = BeanUtil.copyProperties(param, TAdmin.class);
         entity.setParentId(parentId);
-        if(parentId.toString().equals("1")){
+        if (parentId.toString().equals("1")) {
             entity.setType(1);
-        }else {
+        } else {
             entity.setType(3);
         }
 //        entity.setParentId(34l);
@@ -115,15 +139,15 @@ public class TAdminController {
         tAdminService.save(entity);
         // 管理的机器 需要再建立一个关系表 type区分全部还是部分
         String equipmentIds = param.getEquipmentIds();
-        if(StringUtils.isNotEmpty(equipmentIds)){
-            if(equipmentIds.equals("all")){
+        if (StringUtils.isNotEmpty(equipmentIds)) {
+            if (equipmentIds.equals("all")) {
                 //管理全部机器
                 TAdminEquipment tAdminEquipment = new TAdminEquipment();
                 tAdminEquipment.setAdminId(entity.getId());
                 //0:全部机器,1:部分机器
                 tAdminEquipment.setType("0");
                 tAdminEquipmentService.save(tAdminEquipment);
-            }else {
+            } else {
                 //部分机器
                 TAdminEquipment tAdminEquipment = new TAdminEquipment();
                 tAdminEquipment.setAdminId(entity.getId());
@@ -134,22 +158,24 @@ public class TAdminController {
             }
         }
 
-        log.debug("添加账号 id:{},TAdmin:{}",entity.getId(),entity);
+        log.debug("添加账号 id:{},TAdmin:{}", entity.getId(), entity);
         // 保存用户角色关系
         List<SysUserRole> userRoleList = param.getRoleList()
                 .stream()
-                .map(e -> new SysUserRole().setRoleId(e).setUserId(String.valueOf(entity.getId())) )
+                .map(e -> new SysUserRole().setRoleId(e).setUserId(String.valueOf(entity.getId())))
                 .collect(Collectors.toList());
 
-        if(CollUtil.isNotEmpty(userRoleList)){
+        if (CollUtil.isNotEmpty(userRoleList)) {
             sysUserRoleService.saveBatch(userRoleList);
         }
+
         return R.ok(entity);
     }
+
     @ApiOperation(value = "修改子账号")
     @PostMapping("/updateLoginUser")
     @Transactional
-    @Audit(type = AuditEnum.UPDATE,content = "#loginUser.name + '修改账号'")
+    @Audit(type = AuditEnum.UPDATE, content = "#loginUser.name + '修改账号'")
     public ResponseModel<?> updateLoginUser(@RequestBody @Valid UpdateLoginUserParam param) {
 //    public ResponseModel<?> addLoginUser(@RequestBody  AddLoginUserParam param) {
         //获取当前操作人员
@@ -157,30 +183,30 @@ public class TAdminController {
         // 保存用户实体
         Date now = new Date();
         Long parentId = param.getAdminId();
-        if(parentId==null){
+        if (parentId == null) {
             return R.fail(ResponseCodesEnum.A0001);
         }
         param.setAdminId(null);
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getParentId,parentId);
-        query.eq(TAdmin::getId,param.getId());
+        query.eq(TAdmin::getParentId, parentId);
+        query.eq(TAdmin::getId, param.getId());
         List<TAdmin> list = tAdminService.list(query);
-        if(list.size()>0){
+        if (list.size() > 0) {
             TAdmin admin = list.get(0);
             // 管理的机器 需要再建立一个关系表 type区分全部还是部分
             String equipmentIds = param.getEquipmentIds();
-            if(StringUtils.isNotEmpty(equipmentIds)){
+            if (StringUtils.isNotEmpty(equipmentIds)) {
                 LambdaQueryWrapper<TAdminEquipment> query1 = Wrappers.lambdaQuery();
-                query1.eq(TAdminEquipment::getAdminId,admin.getId());
+                query1.eq(TAdminEquipment::getAdminId, admin.getId());
                 List<TAdminEquipment> list1 = tAdminEquipmentService.list(query1);
-                if(list1.size()>0){
+                if (list1.size() > 0) {
                     TAdminEquipment tAdminEquipment1 = list1.get(0);
-                    if(equipmentIds.equals("all")){
+                    if (equipmentIds.equals("all")) {
                         //管理全部机器
                         //0:全部机器,1:部分机器
                         tAdminEquipment1.setType("0");
                         tAdminEquipment1.setEquipmentIds(null);
-                    }else {
+                    } else {
                         //部分机器
                         //0:全部机器,1:部分机器
                         tAdminEquipment1.setType("1");
@@ -191,10 +217,10 @@ public class TAdminController {
 
             }
             LambdaQueryWrapper<SysUserRole> query1 = Wrappers.lambdaQuery();
-            query1.eq(SysUserRole::getUserId,admin.getId());
+            query1.eq(SysUserRole::getUserId, admin.getId());
             List<SysUserRole> list1 = sysUserRoleService.list(query1);
-            if(list1.size()>0){
-                for(SysUserRole sysUserRole:list1){
+            if (list1.size() > 0) {
+                for (SysUserRole sysUserRole : list1) {
                     sysUserRoleService.removeById(sysUserRole.getId());
                 }
 
@@ -202,97 +228,100 @@ public class TAdminController {
             // 保存用户角色关系
             List<SysUserRole> userRoleList = param.getRoleList()
                     .stream()
-                    .map(e -> new SysUserRole().setRoleId(e).setUserId(String.valueOf(admin.getId())) )
+                    .map(e -> new SysUserRole().setRoleId(e).setUserId(String.valueOf(admin.getId())))
                     .collect(Collectors.toList());
 
-            if(CollUtil.isNotEmpty(userRoleList)){
+            if (CollUtil.isNotEmpty(userRoleList)) {
                 sysUserRoleService.saveBatch(userRoleList);
             }
             admin.setIsEnabled(param.getIsEnabled());
             admin.setPhone(param.getPhone());
             admin.setEmail(param.getEmail());
             admin.setIsEnabled(param.getIsEnabled());
-            if(StringUtils.isNotEmpty(param.getPassword())){
+            if (StringUtils.isNotEmpty(param.getPassword())) {
                 admin.setPassword(param.getPassword());
             }
             tAdminService.updateById(admin);
-            log.debug("修改账号 id:{},TAdmin:{}",admin.getId(),admin);
+            log.debug("修改账号 id:{},TAdmin:{}", admin.getId(), admin);
             return R.ok(admin);
         }
         return R.fail(ResponseCodesEnum.A0100);
     }
+
     @ApiOperation(value = "删除子账号")
     @PostMapping("/deleteLoginUser")
     @Transactional
-    @Audit(type = AuditEnum.DELETE,content = "#loginUser.name + '删除账号'")
+    @Audit(type = AuditEnum.DELETE, content = "#loginUser.name + '删除账号'")
     public ResponseModel<?> deleteLoginUser(@RequestBody @Valid UpdateLoginUserParam param) {
         //获取当前操作人员
         UserDetailBO loginUser = tokenManager.getLoginUserDetails();
         // 保存用户实体
         Date now = new Date();
         Long parentId = param.getAdminId();
-        if(parentId==null){
+        if (parentId == null) {
             return R.fail(ResponseCodesEnum.A0001);
         }
         param.setAdminId(null);
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.like(TAdmin::getParentId,parentId);
-        query.like(TAdmin::getId,param.getId());
+        query.like(TAdmin::getParentId, parentId);
+        query.like(TAdmin::getId, param.getId());
         List<TAdmin> list = tAdminService.list(query);
-        if(list.size()>0){
+        if (list.size() > 0) {
             TAdmin admin = list.get(0);
             // 管理的机器 需要再建立一个关系表 type区分全部还是部分
             String equipmentIds = param.getEquipmentIds();
-            if(StringUtils.isNotEmpty(equipmentIds)){
+            if (StringUtils.isNotEmpty(equipmentIds)) {
                 LambdaQueryWrapper<TAdminEquipment> query1 = Wrappers.lambdaQuery();
-                query1.eq(TAdminEquipment::getAdminId,admin.getId());
+                query1.eq(TAdminEquipment::getAdminId, admin.getId());
                 List<TAdminEquipment> list1 = tAdminEquipmentService.list(query1);
-                if(list1.size()>0){
+                if (list1.size() > 0) {
                     TAdminEquipment tAdminEquipment1 = list1.get(0);
                     tAdminEquipmentService.removeById(tAdminEquipment1.getAdminId());
                 }
             }
             // 用户角色关系
             LambdaQueryWrapper<SysUserRole> query2 = Wrappers.lambdaQuery();
-            query2.eq(SysUserRole::getUserId,admin.getId());
+            query2.eq(SysUserRole::getUserId, admin.getId());
             List<SysUserRole> list2 = sysUserRoleService.list(query2);
-            if(list2.size()>0){
+            if (list2.size() > 0) {
                 SysUserRole sysUserRole = list2.get(0);
                 sysUserRoleService.removeById(sysUserRole.getId());
             }
             tAdminService.removeById(admin.getId());
-            log.debug("删除账号 id:{},TAdmin:{}",admin.getId(),admin);
+            log.debug("删除账号 id:{},TAdmin:{}", admin.getId(), admin);
             return R.ok(admin);
         }
         return R.fail(ResponseCodesEnum.A0100);
     }
+
+
     @ApiOperation(value = "获取所有子账号信息")
     @GetMapping("/getChildDrenAdminList")
-    public ResponseModel<?> getChildDrenAdminList(String adminId,String userName,String name,String isUse) {
+    public ResponseModel<?> getChildDrenAdminList(String adminId, String userName, String name, String isUse) {
         List<AddLoginUserParam> returnList = new ArrayList<>();
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getParentId,adminId);
-        if(StringUtils.isNotEmpty(userName)){
-            query.eq(TAdmin::getUsername,userName);
+        query.eq(TAdmin::getParentId, adminId);
+        if (StringUtils.isNotEmpty(userName)) {
+            query.eq(TAdmin::getUsername, userName);
         }
-        if(StringUtils.isNotEmpty(name)){
-            query.eq(TAdmin::getName,name);
+        if (StringUtils.isNotEmpty(name)) {
+            query.eq(TAdmin::getName, name);
         }
-        if(StringUtils.isNotEmpty(adminId)){
-            if(adminId.equals("1")){
+        if (StringUtils.isNotEmpty(adminId)) {
+            if (adminId.equals("1")) {
 //                query.in(TAdmin::getType,"1","3");
-                query.eq(TAdmin::getType,"1");
-            }else {
-                query.eq(TAdmin::getType,"3");
+                query.eq(TAdmin::getType, "1");
+            } else {
+                query.eq(TAdmin::getType, "3");
             }
-        }else {
-            return  R.fail(ResponseCodesEnum.A0100);
+        } else {
+            return R.fail(ResponseCodesEnum.A0100);
         }
-        query.eq(TAdmin::getIsAdmined,false);
+        query.eq(TAdmin::getIsAdmined, false);
         List<TAdmin> list = tAdminService.list(query);
-        if(list.size()>0){
+        if (list.size() > 0) {
 
-            for(TAdmin admin:list){
+            for (TAdmin admin : list) {
                 AddLoginUserParam addLoginUserParam = new AddLoginUserParam();
                 JSONObject jsonObject = new JSONObject();
                 addLoginUserParam.setUsername(admin.getUsername());
@@ -302,17 +331,17 @@ public class TAdminController {
                 addLoginUserParam.setIsEnabled(admin.getIsEnabled());
                 addLoginUserParam.setId(admin.getId());
                 LambdaQueryWrapper<TAdminEquipment> query2 = Wrappers.lambdaQuery();
-                query2.eq(TAdminEquipment::getAdminId,admin.getId());
+                query2.eq(TAdminEquipment::getAdminId, admin.getId());
                 List<TAdminEquipment> list1 = tAdminEquipmentService.list(query2);
-                if(list1.size()>0){
+                if (list1.size() > 0) {
                     TAdminEquipment tAdminEquipment1 = list1.get(0);
-                    if(tAdminEquipment1.getType().equals("0")){
+                    if (tAdminEquipment1.getType().equals("0")) {
                         //管理全部机器
                         //0:全部机器,1:部分机器
                         tAdminEquipment1.setType("0");
                         tAdminEquipment1.setEquipmentIds(null);
                         addLoginUserParam.setEquipmentIds("all");
-                    }else {
+                    } else {
                         //部分机器
                         //0:全部机器,1:部分机器
                         tAdminEquipment1.setType("1");
@@ -320,18 +349,18 @@ public class TAdminController {
                     }
                 }
                 LambdaQueryWrapper<SysUserRole> query1 = Wrappers.lambdaQuery();
-                query1.eq(SysUserRole::getUserId,admin.getId());
+                query1.eq(SysUserRole::getUserId, admin.getId());
                 List<SysUserRole> roleList = sysUserRoleService.list(query1);
                 List<String> ids = new ArrayList<>();
                 StringBuilder roleName = new StringBuilder();
-                if(roleList.size()>0){
-                    for(int i=0;i<roleList.size();i++){
+                if (roleList.size() > 0) {
+                    for (int i = 0; i < roleList.size(); i++) {
                         SysUserRole sysUserRole = roleList.get(0);
                         ids.add(sysUserRole.getRoleId());
                         SysRole sysRole = sysRoleService.getById(sysUserRole.getRoleId());
-                        if(i<roleList.size()-1){
+                        if (i < roleList.size() - 1) {
                             roleName.append(sysRole.getRoleName()).append(",");
-                        }else {
+                        } else {
                             roleName.append(sysRole.getRoleName());
                         }
 //                    addLoginUserParam.setRoleName(roleName);
@@ -348,60 +377,94 @@ public class TAdminController {
         }
         return R.ok(returnList);
     }
+
     @ApiOperation(value = "注册")
     @PostMapping("/save")
     @Transactional
-    @Audit(type = AuditEnum.INSERT,content = "#loginUser.name + '注册账号'")
-    public ResponseModel<?> save(@RequestBody TAdmin admin) {
-        if(StringUtils.isEmpty(admin.getUsername()) || StringUtils.isEmpty(admin.getName()) || StringUtils.isEmpty(admin.getPassword())){
-            return R.fail(ResponseCodesEnum.A0100,"数据有空!");
-        }
-        if(admin.getIfForeign().equals("0")){
-            //国内用户注册
-            if(StringUtils.isEmpty(admin.getPhone())){
-                return R.fail(ResponseCodesEnum.A0100,"手机号为空!");
+    @Audit(type = AuditEnum.INSERT, content = "#loginUser.name + '注册账号'")
+    public ResponseModel<?> save(@RequestBody RegisterParamDTO registerParam) {
+        if (StringUtils.isEmpty(registerParam.getUsername()) || StringUtils.isEmpty(registerParam.getName()) || StringUtils.isEmpty(registerParam.getPassword())) {
+            return R.fail(ResponseCodesEnum.A0100, "数据有空!");
+        }
+
+        String phoneOrEmail = registerParam.getPhoneOrEmail();
+        // 定义国内手机号和邮箱的正则表达式
+        String phoneReg = "^1[3-9]\\d{9}$";
+        String emailReg = "^[a-zA-Z0-9_-]+([a-zA-Z0-9_.-]*[a-zA-Z0-9])*@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
+
+        // 国内用户注册
+        if (registerParam.getIfForeign().equals("0")) {
+            // 判断 phoneOrEmail 是手机号还是邮箱
+            if (Pattern.matches(phoneReg, phoneOrEmail)) {
+                System.out.println("这是一个手机号");
+                if (StringUtils.isEmpty(registerParam.getPhoneOrEmail())) {
+                    return R.fail(ResponseCodesEnum.A0100, "手机号为空!");
+                }
+            } else if (Pattern.matches(emailReg, phoneOrEmail)) {
+                System.out.println("这是一个邮箱地址");
+                if (StringUtils.isEmpty(registerParam.getPhoneOrEmail())) {
+                    return R.fail(ResponseCodesEnum.A0100, "邮箱为空!");
+                }
+            } else {
+                System.out.println("不是有效的手机号或邮箱地址");
+                return R.fail(ResponseCodesEnum.A0100, "不是有效的手机号或邮箱地址");
             }
-        }else {
-            //国外用户注册
-            if(StringUtils.isEmpty(admin.getEmail())){
-                return R.fail(ResponseCodesEnum.A0100,"邮箱为空!");
+        } else {
+            //外用户注册
+            if (StringUtils.isEmpty(registerParam.getPhoneOrEmail())) {
+                return R.fail(ResponseCodesEnum.A0100, "邮箱为空!");
             }
         }
-        if (StringUtils.isEmpty(admin.getCode())){
-            return R.fail(ResponseCodesEnum.A0100,"验证码为空!");
+
+        if (StringUtils.isEmpty(registerParam.getCode())) {
+            return R.fail(ResponseCodesEnum.A0100, "验证码为空!");
         }
+
         //校验是否有重复的
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getUsername,admin.getUsername());
+        query.eq(TAdmin::getUsername, registerParam.getUsername());
         List<TAdmin> list = tAdminService.list(query);
-        if(list.size()>0){
-            return R.fail(ResponseCodesEnum.A0201,"用户登录名已存在");
+        if (list.size() > 0) {
+            return R.fail(ResponseCodesEnum.A0201, "用户登录名已存在");
         }
         LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
-        if(admin.getIfForeign().equals("0")){
-            query1.eq(TAdmin::getPhone,admin.getPhone());
-        }else {
-            query1.eq(TAdmin::getEmail,admin.getEmail());
+        if (registerParam.getIfForeign().equals("0")) {
+            // 国内分两种
+            if (Pattern.matches(phoneReg, phoneOrEmail)) {
+                query1.eq(TAdmin::getPhone, registerParam.getPhoneOrEmail());
+            } else {
+                query1.eq(TAdmin::getEmail, registerParam.getPhoneOrEmail());
+            }
+        } else {
+            query1.eq(TAdmin::getEmail, registerParam.getPhoneOrEmail());
         }
         List<TAdmin> list1 = tAdminService.list(query1);
-        if(list1.size()>0){
-            return R.fail(ResponseCodesEnum.A0203,"用户手机/邮箱已存在");
+        if (list1.size() > 0) {
+            return R.fail(ResponseCodesEnum.A0203, "用户手机/邮箱已存在");
         }
+
         //校验验证码是否正确
         LambdaQueryWrapper<TMessageCode> query2 = Wrappers.lambdaQuery();
-        if(admin.getIfForeign().equals("0")){
-            query2.eq(TMessageCode::getPhone,admin.getPhone());
-        }else {
-            query2.eq(TMessageCode::getPhone,admin.getEmail());
-        }
-        //0,代表注册验证码
-        query2.eq(TMessageCode::getType,"0");
-        query2.eq(TMessageCode::getStatus,"0");
+        if (registerParam.getIfForeign().equals("0")) {
+            //  国内分两种
+            if (Pattern.matches(phoneReg, phoneOrEmail)) {
+                query2.eq(TMessageCode::getPhone, registerParam.getPhoneOrEmail());
+            } else {
+                query2.eq(TMessageCode::getPhone, registerParam.getPhoneOrEmail());
+            }
+        } else {
+            query2.eq(TMessageCode::getPhone, registerParam.getPhoneOrEmail());
+        }
+
+        // 0,代表注册验证码
+        query2.eq(TMessageCode::getType, "0");
+        query2.eq(TMessageCode::getStatus, "0");
         List<TMessageCode> messageCodeList = tMessageCodeService.list(query2);
-        if(messageCodeList.size()>0){
+        TAdmin admin = new TAdmin();
+        if (messageCodeList.size() > 0) {
             TMessageCode tMessageCode = messageCodeList.get(messageCodeList.size() - 1);
-            if(!tMessageCode.getCode().equals(admin.getCode())){
-                return R.fail(ResponseCodesEnum.A0002,"验证码错误");
+            if (!tMessageCode.getCode().equals(registerParam.getCode())) {
+                return R.fail(ResponseCodesEnum.A0002, "验证码错误");
             }
             tMessageCode.setStatus("1");
             admin.setCreateDate(new Date());
@@ -412,22 +475,32 @@ public class TAdminController {
             admin.setIsLocked(false);
             //默认是商家
             admin.setType(2);
-            admin.setPassword(admin.getPassword());
-            if(admin.getCompanyType().equals("1")) { // 如果是七云平台
+            admin.setPassword(registerParam.getPassword());
+            admin.setUsername(registerParam.getUsername());
+            admin.setName(registerParam.getName());
+            admin.setIfForeign(registerParam.getIfForeign());
+            if (Pattern.matches(phoneReg, phoneOrEmail)) {
+                admin.setPhone(registerParam.getPhoneOrEmail());
+            } else if (Pattern.matches(emailReg, phoneOrEmail)) {
+                admin.setEmail(registerParam.getPhoneOrEmail());
+            } else {
+                return R.fail(ResponseCodesEnum.A0100, "不是有效的手机号或邮箱地址");
+            }
+            if (registerParam.getCompanyType().equals("1")) { // 如果是七云平台
                 admin.setTradeMerchantNo("777138500523174"); //七云商户报备号
             }
             boolean b = tAdminService.save(admin);
 
             tMessageCodeService.saveOrUpdate(tMessageCode);
-            if(b){
+            if (b) {
                 // 绑定商家角色
                 LambdaQueryWrapper<SysRole> query4 = Wrappers.lambdaQuery();
-                query4.eq(SysRole::getAdminId,"1");
-                query4.eq(SysRole::getRoleName,"商家");
+                query4.eq(SysRole::getAdminId, "1");
+                query4.eq(SysRole::getRoleName, "商家");
                 List<SysRole> list2 = sysRoleService.list(query4);
-                if(list2.size()>0){
+                if (list2.size() > 0) {
                     SysRole sysRole = list2.get(0);
-                    SysRole newSysRole =new SysRole();
+                    SysRole newSysRole = new SysRole();
                     newSysRole.setAdminId(admin.getId());
                     newSysRole.setMenuCodesJson(sysRole.getMenuCodesJson());
                     newSysRole.setRoleName("商家");
@@ -438,34 +511,50 @@ public class TAdminController {
                     boolean save = sysUserRoleService.save(sysUserRole);
                 }
                 tMessageCode.setModifyDate(new Date());
-                if(admin.getId()!=null){
+                if (admin.getId() != null) {
                     String managerId = AdminUtils.encrypt(false, admin.getId());
                     admin.setManagerId(managerId);
                     tAdminService.getById(admin);
+
+                    // 新建海外账户的时候创建一个 Airwallex 钱包账户
+                    try {
+                        if ("1".equals(registerParam.getIfForeign())) {
+                            TAirwallexWallet wallet = new TAirwallexWallet();
+                            wallet.setAdminId(admin.getId());
+//                            wallet.setAccountCurrency("USD");
+//                            wallet.setAccountAmount(new BigDecimal("0.00"));
+//                            airwallexWalletService.save(wallet);
+                            System.out.println("wallet >>> " + wallet);
+                            payFeign.saveAirwallexWallet(wallet);
+                        }
+                    } catch (Exception e) {
+                        logger.error("发生异常》》》:" + e.getMessage(), e);
+                    }
                 }
             }
             return R.ok(b);
 
-        }else {
-            return R.fail(ResponseCodesEnum.A0002,"没有找到验证码");
+        } else {
+            return R.fail(ResponseCodesEnum.A0002, "没有找到验证码");
         }
 
     }
+
     @ApiOperation(value = "登录")
     @PostMapping("/login")
-    @Audit(type = AuditEnum.LOGIN,content = "#username + '请求登录'")
+    @Audit(type = AuditEnum.LOGIN, content = "#username + '请求登录'")
     public ResponseModel<UserDetailBO> login(String username, String password, String hostName) {
-        if(StringUtils.isEmpty(username)||StringUtils.isEmpty(password)){
-            return R.fail(ResponseCodesEnum.A0001,"参数有空");
+        if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
+            return R.fail(ResponseCodesEnum.A0001, "参数有空");
         }
 
         //验证用户名登录
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getPassword,password);
+        query.eq(TAdmin::getPassword, password);
         query.and(
                 wrapper -> {
-                    wrapper.eq(TAdmin::getUsername,username)
-                            .or().eq(TAdmin::getPhone,username);
+                    wrapper.eq(TAdmin::getUsername, username)
+                            .or().eq(TAdmin::getPhone, username);
                 }
         );
         TAdmin tAdmin = Optional.ofNullable(tAdminService.getOnly(query))
@@ -476,22 +565,22 @@ public class TAdminController {
         String SZ = "Sunzee";
         String SC = "Sevencloud";
         // 如果不为管理员
-        if(tAdmin.getType() >= 1) {
-            if(SZ.equals(hostName)) {
+        if (tAdmin.getType() >= 1) {
+            if (SZ.equals(hostName)) {
                 // 如果companyType不为空,且不等于“0”
-                if(StringUtils.isNotEmpty(companyType) && !companyType.equals("0")) {
+                if (StringUtils.isNotEmpty(companyType) && !companyType.equals("0")) {
                     return R.fail(ResponseCodesEnum.L0002);
                 }
             }
-            if(SC.equals(hostName)) {
+            if (SC.equals(hostName)) {
                 // 如果companyType为空,或者不等于“1”
-                if(StringUtils.isEmpty(companyType) || !(companyType.equals("1"))) {
+                if (StringUtils.isEmpty(companyType) || !(companyType.equals("1"))) {
                     return R.fail(ResponseCodesEnum.L0002);
                 }
             }
         }
         // 添加系统id
-        if(StringUtils.isEmpty(tAdmin.getManagerId())){
+        if (StringUtils.isEmpty(tAdmin.getManagerId())) {
             String managerId = AdminUtils.encrypt(false, tAdmin.getId());
             tAdmin.setManagerId(managerId);
             tAdminService.getById(tAdmin);
@@ -499,24 +588,25 @@ public class TAdminController {
         UserDetailBO userDetailBO = tAdminService.getUserDetailBO(tAdmin);
         return R.ok(userDetailBO);
     }
+
     @ApiOperation(value = "修改密码")
     @PostMapping("/updatePassword")
-    public ResponseModel<?> updatePassword(String username,String password) {
-        if(StringUtils.isEmpty(username)||StringUtils.isEmpty(password)){
-            return R.fail(ResponseCodesEnum.A0001,"参数有空");
+    public ResponseModel<?> updatePassword(String username, String password) {
+        if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
+            return R.fail(ResponseCodesEnum.A0001, "参数有空");
         }
         //查找用户名
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getUsername,username);
+        query.eq(TAdmin::getUsername, username);
         List<TAdmin> list = tAdminService.list(query);
-        if(list.size()>0){
+        if (list.size() > 0) {
             TAdmin admin = list.get(0);
             admin.setPassword(password);
             boolean b = tAdminService.saveOrUpdate(admin);
             return R.ok(b);
         }
 
-        return R.fail(ResponseCodesEnum.A0001,"修改失败");
+        return R.fail(ResponseCodesEnum.A0001, "修改失败");
     }
 
     @ApiOperation(value = "获取账号信息")
@@ -525,15 +615,15 @@ public class TAdminController {
 //        TAdmin tAdmin = tAdminService.getById(id);
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
 //        query.eq(TAdmin::getUsername,username);
-        query.eq(TAdmin::getId,id);
+        query.eq(TAdmin::getId, id);
         TAdmin tAdmin = Optional.ofNullable(tAdminService.getOnly(query))
                 .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
-        if(StringUtils.isEmpty(tAdmin.getManagerId())){
+        if (StringUtils.isEmpty(tAdmin.getManagerId())) {
             String managerId = AdminUtils.encrypt(false, tAdmin.getId());
             tAdmin.setManagerId(managerId);
             tAdminService.getById(tAdmin);
         }
-        UserDetailBO userDetailBO = BeanUtil.copyProperties(tAdmin,UserDetailBO.class);
+        UserDetailBO userDetailBO = BeanUtil.copyProperties(tAdmin, UserDetailBO.class);
 
 //        String token = IdUtil.simpleUUID();
 //        userDetailBO.setCurrentToken(token);
@@ -549,58 +639,62 @@ public class TAdminController {
 
     @ApiOperation(value = "获取账号列表 分页")
     @GetMapping("/pageAdmin")
-    public ResponseModel<IPage<?>> pageAdmin(String id,String name,String userName,String ifForeign,long current,long size ) {
-        if(StringUtils.isEmpty(id)){
-            return R.fail(ResponseCodesEnum.A0001,"null参数");
+    public ResponseModel<IPage<?>> pageAdmin(String id, String name, String userName, String ifForeign,
+                                             long current, long size) {
+        if (StringUtils.isEmpty(id)) {
+            return R.fail(ResponseCodesEnum.A0001, "null参数");
         }
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        if(StringUtils.isNotEmpty(name)){
-            query.eq(TAdmin::getName,name);
+        if (StringUtils.isNotEmpty(name)) {
+            query.eq(TAdmin::getName, name);
         }
-        if(StringUtils.isNotEmpty(userName)){
-            query.eq(TAdmin::getUsername,userName);
+        if (StringUtils.isNotEmpty(userName)) {
+            query.eq(TAdmin::getUsername, userName);
         }
-        if(StringUtils.isNotEmpty(ifForeign)){
-            query.eq(TAdmin::getIfForeign,ifForeign);
+        if (StringUtils.isNotEmpty(ifForeign)) {
+            query.eq(TAdmin::getIfForeign, ifForeign);
         }
-        if(StringUtils.isNotEmpty(id)){
+        if (StringUtils.isNotEmpty(id)) {
             TAdmin admin = tAdminService.getById(id);
-            if(admin==null||admin.getId()==null){
-                return R.fail(ResponseCodesEnum.A0001,"没有找到商家");
+            if (admin == null || admin.getId() == null) {
+                return R.fail(ResponseCodesEnum.A0001, "没有找到商家");
             }
             // 申泽平台管理员
             if (admin.getId() == 2738) {
                 query.isNull(TAdmin::getCompanyType).or()
-                        .eq(TAdmin::getCompanyType,"0");
+                        .eq(TAdmin::getCompanyType, "0");
             }
             // 七云平台管理员
             if (admin.getId() == 2739) {
                 query.eq(TAdmin::getCompanyType, "1");
             }
-            if(admin.getType() > 1){
-                query.eq(TAdmin::getRelationAdminId,id);
+            if (admin.getType() > 1) {
+                query.eq(TAdmin::getRelationAdminId, id);
             }
         }
-        query.eq(TAdmin::getType,"2");
+        query.eq(TAdmin::getType, "2");
         query.orderByDesc(TAdmin::getCreateDate);
         Page<TAdmin> page = new Page<>(current, size, true);
         IPage<TAdmin> iPage = tAdminService.page(page, query);
         return R.ok(iPage);
     }
+
     @ApiOperation(value = "获取账号列表 分页")
     @GetMapping("/pageAdmin2")
-    public ResponseModel<IPage<TAdmin>> pageAdmin2(@RequestParam(value = "current") long current, @RequestParam(value = "size") long size ) {
+    public ResponseModel<IPage<TAdmin>> pageAdmin2(@RequestParam(value = "current") long current,
+                                                   @RequestParam(value = "size") long size) {
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
         Page<TAdmin> page = new Page<>(current, size, true);
         IPage<TAdmin> iPage = tAdminService.page(page, query);
         return R.ok(iPage);
     }
+
     @ApiOperation(value = "获取账号列表")
     @GetMapping("/listAdmin")
-    public ResponseModel<?> listAdmin(String adminId ) {
+    public ResponseModel<?> listAdmin(String adminId) {
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        if(StringUtils.isNotEmpty(adminId)){
-            query.like(TAdmin::getRelationAdminId,adminId);
+        if (StringUtils.isNotEmpty(adminId)) {
+            query.like(TAdmin::getRelationAdminId, adminId);
         }
         List<TAdmin> list = tAdminService.list(query);
         return R.ok(list);
@@ -610,119 +704,122 @@ public class TAdminController {
     @PostMapping("/update")
     @Transactional
     public ResponseModel<?> update(@RequestBody TAdmin admin) {
-        if(StringUtils.isEmpty(admin.getUsername())&&admin.getId()==null){
-            return R.fail(ResponseCodesEnum.A0001,"参数空");
+        if (StringUtils.isEmpty(admin.getUsername()) && admin.getId() == null) {
+            return R.fail(ResponseCodesEnum.A0001, "参数空");
         }
         //校验是否有重复的
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        if (StringUtils.isNotEmpty(admin.getUsername())){
-            query.eq(TAdmin::getUsername,admin.getUsername());
+        if (StringUtils.isNotEmpty(admin.getUsername())) {
+            query.eq(TAdmin::getUsername, admin.getUsername());
         }
-        if (admin.getId()!=null){
-            query.eq(TAdmin::getId,admin.getId());
+        if (admin.getId() != null) {
+            query.eq(TAdmin::getId, admin.getId());
         }
         List<TAdmin> list = tAdminService.list(query);
         TAdmin oldAdmin = list.get(0);
-        if(StringUtils.isNotEmpty(admin.getPassword())){
+        if (StringUtils.isNotEmpty(admin.getPassword())) {
             oldAdmin.setPassword(admin.getPassword());
         }
-        if(StringUtils.isNotEmpty(admin.getName())){
+        if (StringUtils.isNotEmpty(admin.getName())) {
             oldAdmin.setName(admin.getName());
         }
-        if(admin.getAreaId()!=null){
+        if (admin.getAreaId() != null) {
             oldAdmin.setAreaId(admin.getAreaId());
         }
-        if(StringUtils.isNotEmpty(admin.getIfForeign())){
+        if (StringUtils.isNotEmpty(admin.getIfForeign())) {
             oldAdmin.setIfForeign(admin.getIfForeign());
         }
-        if(StringUtils.isNotEmpty(admin.getTradeMerchantNo())){
+        if (StringUtils.isNotEmpty(admin.getTradeMerchantNo())) {
             oldAdmin.setTradeMerchantNo(admin.getTradeMerchantNo());
         }
-        if(StringUtils.isNotEmpty(admin.getPayPlatform())){
+        if (StringUtils.isNotEmpty(admin.getPayPlatform())) {
             oldAdmin.setPayPlatform(admin.getPayPlatform());
         }
-        if(StringUtils.isNotEmpty(admin.getPromoCodeOpen())){
+        if (StringUtils.isNotEmpty(admin.getPromoCodeOpen())) {
             oldAdmin.setPromoCodeOpen(admin.getPromoCodeOpen());
         }
-        if(StringUtils.isNotEmpty(admin.getPhone())){
+        if (StringUtils.isNotEmpty(admin.getPhone())) {
             oldAdmin.setPhone(admin.getPhone());
         }
-        if(StringUtils.isNotEmpty(admin.getEmail())){
+        if (StringUtils.isNotEmpty(admin.getEmail())) {
             oldAdmin.setEmail(admin.getEmail());
         }
-        if(admin.getApplyStartTime()!=null){
+        if (admin.getApplyStartTime() != null) {
             oldAdmin.setApplyStartTime(admin.getApplyStartTime());
         }
-        if(admin.getApplyEndTime()!=null){
+        if (admin.getApplyEndTime() != null) {
             oldAdmin.setApplyEndTime(admin.getApplyEndTime());
         }
         oldAdmin.setModifyDate(new Date());
         tAdminService.updateById(oldAdmin);
-        return R.ok(null,"修改成功");
+        return R.ok(null, "修改成功");
     }
 
     @ApiOperation(value = "绑定上级账户")
     @GetMapping("/setRelationAdmin")
     @Transactional
-    public ResponseModel<?> setRelationAdmin(Long adminId,String username) {
+    public ResponseModel<?> setRelationAdmin(Long adminId, String username) {
         TAdmin admin = tAdminService.getById(adminId);
-        if(StringUtils.isNotEmpty(username)){
-            if(StringUtils.isNotEmpty(admin.getRelationAdminId())){
+        if (StringUtils.isNotEmpty(username)) {
+            if (StringUtils.isNotEmpty(admin.getRelationAdminId())) {
                 return R.fail("已有绑定关系");
             }
             LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-            query.eq(TAdmin::getUsername,username);
+            query.eq(TAdmin::getUsername, username);
             List<TAdmin> list = tAdminService.list(query);
-            if(list.size()>0){
+            if (list.size() > 0) {
                 TAdmin parentAdmin = list.get(0);
-                if(StringUtils.isNotEmpty(parentAdmin.getRelationAdminId())&&parentAdmin.getRelationAdminId().equals(admin.getId().toString())){
+                if (StringUtils.isNotEmpty(parentAdmin.getRelationAdminId()) && parentAdmin.getRelationAdminId().equals(admin.getId().toString())) {
                     return R.fail("不能互为绑定关系");
-                }else{
+                } else {
                     admin.setRelationAdminId(String.valueOf(parentAdmin.getId()));
                     tAdminService.updateById(admin);
                 }
-            }else {
+            } else {
                 return R.fail("找不到账户");
             }
 
-        }else {
+        } else {
             return R.fail(ResponseCodesEnum.A0001);
         }
-        return R.ok(null,"绑定成功");
+        return R.ok(null, "绑定成功");
     }
 
     @ApiOperation(value = "获取所有关联(下级)账号信息")
     @GetMapping("/getAdminIdList")
     public ResponseModel<List<Long>> getAdminIdList(@RequestParam String adminId) {
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getRelationAdminId,adminId);
+        query.eq(TAdmin::getRelationAdminId, adminId);
         List<TAdmin> list = tAdminService.list(query);
-        List<Long> idList =new ArrayList<>();
-        for(TAdmin admin:list){
+        List<Long> idList = new ArrayList<>();
+        for (TAdmin admin : list) {
             idList.add(admin.getId());
         }
         return R.ok(idList);
     }
+
     @ApiOperation(value = "获取所有关联(下级)账号信息")
     @GetMapping("/getAdminList")
     public ResponseModel<?> getAdminList(String adminId) {
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getRelationAdminId,adminId);
+        query.eq(TAdmin::getRelationAdminId, adminId);
         List<TAdmin> list = tAdminService.list(query);
         return R.ok(list);
     }
+
     @ApiOperation(value = "获取账号信息byname")
     @GetMapping("/getAdminByUsername")
     public ResponseModel<TAdmin> getAdminByUsername(@RequestParam String username) {
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getUsername,username);
+        query.eq(TAdmin::getUsername, username);
         List<TAdmin> list = tAdminService.list(query);
-        if(list.size()>0){
+        if (list.size() > 0) {
             TAdmin tAdmin = list.get(0);
             return R.ok(tAdmin);
         }
         return R.ok();
     }
+
     @ApiOperation(value = "获取上级账号名")
     @GetMapping("/getRelationAdminUsername")
     public String getRelationAdminUsername(String relationAdminId) {
@@ -734,18 +831,18 @@ public class TAdminController {
     @GetMapping("/setRole")
     public ResponseModel<?> setRole() {
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-        query.eq(TAdmin::getType,"2");
+        query.eq(TAdmin::getType, "2");
         List<TAdmin> list = tAdminService.list(query);
-        if(list.size()>0){
-            for(TAdmin admin:list){
+        if (list.size() > 0) {
+            for (TAdmin admin : list) {
                 // 绑定商家角色
                 LambdaQueryWrapper<SysRole> query4 = Wrappers.lambdaQuery();
-                query4.eq(SysRole::getAdminId,"1");
-                query4.eq(SysRole::getRoleName,"商家");
+                query4.eq(SysRole::getAdminId, "1");
+                query4.eq(SysRole::getRoleName, "商家");
                 List<SysRole> list2 = sysRoleService.list(query4);
-                if(list2.size()>0){
+                if (list2.size() > 0) {
                     SysRole sysRole = list2.get(0);
-                    SysRole newSysRole =new SysRole();
+                    SysRole newSysRole = new SysRole();
                     newSysRole.setAdminId(admin.getId());
                     newSysRole.setMenuCodesJson(sysRole.getMenuCodesJson());
                     newSysRole.setRoleName("商家");
@@ -760,13 +857,14 @@ public class TAdminController {
 
         return R.ok();
     }
+
     @ApiOperation(value = "批量设置账户的关联上级")
     @GetMapping("/setRelation")
     public ResponseModel<?> setRelation() {
         List<TAdmin> list = tAdminService.list();
-        if(list.size()>0){
-            for(TAdmin admin:list){
-                if(admin.getParentId()!=null){
+        if (list.size() > 0) {
+            for (TAdmin admin : list) {
+                if (admin.getParentId() != null) {
                     admin.setRelationAdminId(admin.getParentId().toString());
                     tAdminService.updateById(admin);
                 }

+ 21 - 0
src/main/java/com/szwl/controller/TAirwallexWalletController.java

@@ -0,0 +1,21 @@
+package com.szwl.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wuhs
+ * @since 2023-07-29
+ */
+@RestController
+@RequestMapping("/tAirwallexWallet")
+public class TAirwallexWalletController {
+
+}
+

+ 2 - 1
src/main/java/com/szwl/controller/TMessageCodeController.java

@@ -63,7 +63,7 @@ public class TMessageCodeController {
                 if (list.size() > 0) {
                     return R.fail(ResponseCodesEnum.A0202, "用户手机号已存在");
                 }
-                //国内发送短信
+                // 国内发送短信
                 String result = tMessageCodeService.sentMessage("0", phoneOrEmail);
                 return R.ok(result);
             } else if (Pattern.matches(emailReg, phoneOrEmail)) {
@@ -75,6 +75,7 @@ public class TMessageCodeController {
                 if (list.size() > 0) {
                     return R.fail(ResponseCodesEnum.A0207, "用户邮箱已存在");
                 }
+                // 国内发送邮箱
                 String result = tMessageCodeService.sentEmail("0", phoneOrEmail);
                 return R.ok(result);
             } else {

+ 5 - 2
src/main/java/com/szwl/feign/bean/PayFeign.java

@@ -3,6 +3,7 @@ package com.szwl.feign.bean;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TAirwallexWallet;
 import com.szwl.model.entity.TOrder;
 import com.szwl.model.query.TAdminParam;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -13,8 +14,8 @@ import org.springframework.web.bind.annotation.RequestParam;
 
 import java.math.BigDecimal;
 
-
-@FeignClient(name = "pay-server")
+// url 指定pay-server所在的地址
+@FeignClient(name = "pay-server", url = "http://127.0.0.1:49013")
 public interface PayFeign {
 
     @GetMapping("/test/testPay")
@@ -30,4 +31,6 @@ public interface PayFeign {
     ResponseModel<?> updateOrder(@RequestBody TOrder order);
 //    @GetMapping("/tOrder/tradeServiceUniPay")
 //    String tradeServiceUniPay(String orderNo, BigDecimal amount, String productName, String productDesc, String commonParameter, String returnUrl, String notifyUrl, String frpCode, String isShowPic, String openId, String authCode, String appid, String transactionModel, String tradeMerchantNo, String buyerId, String isAlt, String altType, JSONArray altInfo, String altUrl, BigDecimal marketingAmount);
+    @PostMapping("/tAirwallexWallet/saveAirwallexWallet")
+    ResponseModel<?> saveAirwallexWallet(@RequestBody TAirwallexWallet airwallexWallet);
 }

+ 16 - 0
src/main/java/com/szwl/mapper/TAirwallexWalletMapper.java

@@ -0,0 +1,16 @@
+package com.szwl.mapper;
+
+import com.szwl.model.entity.TAirwallexWallet;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wuhs
+ * @since 2023-07-29
+ */
+public interface TAirwallexWalletMapper extends BaseMapper<TAirwallexWallet> {
+
+}

+ 17 - 0
src/main/java/com/szwl/mapper/xml/TAirwallexWalletMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.szwl.mapper.TAirwallexWalletMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.TAirwallexWallet">
+        <id column="admin_id" property="adminId" />
+        <result column="account_currency" property="accountCurrency" />
+        <result column="account_amount" property="accountAmount" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        admin_id, account_currency, account_amount
+    </sql>
+
+</mapper>

+ 56 - 0
src/main/java/com/szwl/model/dto/RegisterParamDTO.java

@@ -0,0 +1,56 @@
+package com.szwl.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+
+@ApiModel(value = "RegisterParam 对象", description = "用户注册")
+@Data
+@Accessors(chain = true)
+public class RegisterParamDTO {
+
+    @ApiModelProperty(value = "登录名")
+    private String username;
+
+    private String name;
+
+    private String password;
+
+    @ApiModelProperty(value = "是否国外;0:国内,1:国外")
+    private String ifForeign;
+
+//    @ApiModelProperty(value = "电话")
+//    private String phone;
+//
+//    @ApiModelProperty(value = "邮箱;")
+//    private String email;
+
+    @ApiModelProperty(value = "短信验证码")
+    private String code;
+
+    @ApiModelProperty(value = "公司平台,0或空为申泽,1为七云")
+    private String companyType;
+
+    @ApiModelProperty(value = "手机/邮箱;")
+    private String phoneOrEmail;
+
+//    private Date createDate;
+//
+//    private Date modifyDate;
+//
+//    private Boolean isAdmined;
+//
+//    private Boolean isEnabled;
+//
+//    private Integer loginFailureCount;
+//
+//    private Boolean isLocked;
+//
+//    private Integer type;
+//
+//    private String tradeMerchantNo;
+}

+ 37 - 0
src/main/java/com/szwl/model/entity/TAirwallexWallet.java

@@ -0,0 +1,37 @@
+package com.szwl.model.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wuhs
+ * @since 2023-07-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="TAirwallexWallet对象", description="")
+public class TAirwallexWallet implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "admin_id", type = IdType.ASSIGN_ID)
+    private Long adminId;
+
+    @ApiModelProperty(value = "钱包余额币种")
+    private String accountCurrency;
+
+    @ApiModelProperty(value = "账户余额")
+    private BigDecimal accountAmount;
+
+
+}

+ 1 - 0
src/main/java/com/szwl/model/entity/TMessageCode.java

@@ -33,6 +33,7 @@ public class TMessageCode implements Serializable {
 
     private Long adminId;
 
+    @ApiModelProperty(value = "手机/邮箱")
     private String phone;
 
     @ApiModelProperty(value = "短信验证码内容")

+ 8 - 0
src/main/java/com/szwl/model/utils/MailUtil.java

@@ -4,6 +4,7 @@ import javax.activation.DataHandler;
 import javax.activation.FileDataSource;
 import javax.mail.*;
 import javax.mail.internet.*;
+import java.io.UnsupportedEncodingException;
 import java.util.Properties;
 
 /**
@@ -11,9 +12,13 @@ import java.util.Properties;
  */
 public class MailUtil {
     private static final String ALIDM_SMTP_HOST = "smtp.mxhichina.com";
+//    private static final String ALIDM_SMTP_HOST = "smtp.qiye.aliyun.com";
 //    private static final String ALIDM_SMTP_HOST = "smtpdm.aliyun.com";
+
     private static final int ALIDM_SMTP_PORT = 25;// 或80
 
+//    private static final String SENDER_NAME = "Magic Candy";
+
     // 发件人的账号 和 密码
     private String user;
     private String password;
@@ -21,6 +26,7 @@ public class MailUtil {
     public MailUtil() {
 //        this("AfterSalesInfo@sunzee.net", "Sz123456");
         this("magic_candy_sunzee@sunzee.net", "Sz123456");
+//        this("magiccandy020@magiccandy.cn", "Sunzee020");
     }
 
     public MailUtil(String user, String password) {
@@ -48,6 +54,7 @@ public class MailUtil {
         try {
             // 设置发件人
             message.setFrom(new InternetAddress(user));
+//            message.setFrom(new InternetAddress(user, SENDER_NAME));
             Address[] a = new Address[1];
             a[0] = new InternetAddress(user);
             message.setReplyTo(a);
@@ -83,6 +90,7 @@ public class MailUtil {
         try {
             //发件人
             mm.setFrom(new InternetAddress(user));
+//            mm.setFrom(new InternetAddress(user, SENDER_NAME));
             //收件人
             mm.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail)); // 设置收件人
             // mm.setRecipient(Message.RecipientType.CC, new

+ 16 - 0
src/main/java/com/szwl/service/TAirwallexWalletService.java

@@ -0,0 +1,16 @@
+package com.szwl.service;
+
+import com.szwl.model.entity.TAirwallexWallet;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2023-07-29
+ */
+public interface TAirwallexWalletService extends IService<TAirwallexWallet> {
+
+}

+ 20 - 0
src/main/java/com/szwl/service/impl/TAirwallexWalletServiceImpl.java

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.TAirwallexWallet;
+import com.szwl.mapper.TAirwallexWalletMapper;
+import com.szwl.service.TAirwallexWalletService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2023-07-29
+ */
+@Service
+public class TAirwallexWalletServiceImpl extends ServiceImpl<TAirwallexWalletMapper, TAirwallexWallet> implements TAirwallexWalletService {
+
+}