linxk 3 hafta önce
ebeveyn
işleme
e405f5dae8

+ 2 - 1
cif-service/src/main/java/com/txz/cif/core/ResultCode.java

@@ -58,7 +58,8 @@ public enum ResultCode {
     UKEY_IS_SOLD("2001", "Ukey已售出,请联系管理员" ),
     USERID_IS_ERROR("1067", "用户id异常" ),
     LOGINACCOUNT_IS_NULL("1068", "登录账号不能为空"),
-    ORG_IS_NULL("1069", "组织机构未找到" );
+    ORG_IS_NULL("1069", "组织机构未找到" ),
+    USER_IS_EXIST("7008", "用户已注册"),;
 
     private final String code;   //状态码
     private final String message;

+ 55 - 0
cif-service/src/main/java/com/txz/cif/web/UserApiController.java

@@ -9,6 +9,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.SecureUtil;
 import com.github.pagehelper.PageHelper;
@@ -18,6 +19,7 @@ import com.txz.cif.web.bo.UserBo;
 import com.txz.cif.web.bo.UserInfoBO;
 import com.txz.cif.web.para.LoginAccountParameters;
 import com.txz.cif.web.para.MyUserParam;
+import com.txz.cif.web.para.RegisterAccountParameters;
 import com.txz.cif.web.para.UserInfoForm;
 import com.txz.cif.core.*;
 import com.txz.cif.model.*;
@@ -178,6 +180,59 @@ public class UserApiController extends AbstractApiController {
         return ResultGenerator.genSuccessResult(user.generator());
     }
 
+
+    @PostMapping("/register")
+    @ApiOperation(value = "注册",httpMethod = "POST")
+    public Result register(@RequestBody RegisterAccountParameters params) {
+        if(params == null){
+            return ResultGenerator.genFailResult(ResultCode.OBJECT_IS_NULL);
+        }
+        if(StrUtil.isBlank(params.getPhone())){
+            return ResultGenerator.genFailResult(ResultCode.ACCOUNT_IS_NULL);
+        }
+        Condition condition = new Condition(User.class);
+        condition.createCriteria().andEqualTo("phoneNo",params.getPhone());
+        List<User> users = userService.findByCondition(condition);
+        if(CollUtil.isNotEmpty(users)){
+            return ResultGenerator.genFailResult(ResultCode.USER_IS_EXIST);
+        }
+        String salt = RandomUtil.randomString(4);
+        String pwd2 = SecureUtil.md5(params.getPwd() + salt).toUpperCase();
+        log.error("[密码]"+params.getPhone() + " :"+pwd2);
+
+        String code = getInviteCode(0);
+        if (code == null){
+            return ResultGenerator.genFailResult(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        User parent = userService.findBy("invitedCode", params.getCode());
+        User user = User.builder().createTime(DateUtil.date()).invitedCode(code)
+                .name(params.getName())
+                .status((byte)1) .phoneNo(params.getPhone()).pwd(pwd2).salt(salt).build();
+        if (parent != null){
+            user.setPid(parent.getId());
+            if (parent.getPid() != null){
+                user.setPpid(parent.getPid());
+            }
+        }
+        user.setVipLevel(1);
+        userService.saveUseGeneratedKeys(user);
+        user.setPwd("***");
+        user.setSalt("***");
+        return ResultGenerator.genSuccessResult(user);
+    }
+
+    private String getInviteCode(int index) {
+        if (index > 10000){
+            return null;
+        }
+        String s = RandomUtil.randomString(8);
+        User inviteCode = userService.findBy("inviteCode", s);
+        if (inviteCode == null){
+            return s;
+        }
+        return getInviteCode(index + 1);
+    }
+
     /**
      * 通过旧密码设置密码
      *

+ 42 - 0
cif-service/src/main/java/com/txz/cif/web/para/RegisterAccountParameters.java

@@ -0,0 +1,42 @@
+package com.txz.cif.web.para;
+
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 账号登录参数
+ */
+@Data
+@ApiModel("账号注册参数")
+public class RegisterAccountParameters {
+
+    @ApiModelProperty(name="pwd",value = "登录密码",required=true)
+    private String pwd;
+
+    @ApiModelProperty(name="pwd",value = "邀请码",required=true)
+    private String code;
+
+    @ApiModelProperty(name="type",value = "类型 1居民 2清洁工人 5业务员 6审核员",required=true)
+    private Integer type;
+
+    @ApiModelProperty(name="companyId",value = "公司id",required=true)
+    private Integer companyId;
+
+    @ApiModelProperty(name="address",value = "地址",required=false)
+    private String address;
+
+    @ApiModelProperty(name="phone",value = "电话号码",required=false)
+    private String phone;
+
+    @ApiModelProperty(name="name",value = "名字",required=false)
+    private String name;
+
+
+
+    @Override
+    public String toString() {
+        return JSONObject.toJSONString(this);
+    }
+}