ソースを参照

接口参数接收修改

chao 4 年 前
コミット
248ec43e49

+ 40 - 23
src/main/java/com/caimei365/user/config/WebConfiguration.java

@@ -18,26 +18,43 @@ import java.util.Objects;
  * @author : Charles
  * @date : 2021/3/11
  */
-@Configuration
-public class WebConfiguration implements WebFluxConfigurer {
-
-    /**
-     * https://stackoverflow.com/questions/51192630/how-do-you-get-clients-ip-address-spring-webflux-websocket?rq=1
-     * https://stackoverflow.com/questions/50981136/how-to-get-client-ip-in-webflux
-     * https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#webflux-filters
-     * 由于在低版本的 spring-webflux 中不支持直接获得请求 IP(https://jira.spring.io/browse/SPR-16681),
-     * 因此从org.springframework.web.server.ServerWebExchange中获得 IP 后,在放到 header 里
-     */
-    @Component
-    public static class RetrieveClientIpWebFilter implements WebFilter {
-        @Override
-        public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
-            InetSocketAddress remoteAddress = exchange.getRequest().getRemoteAddress();
-            String clientIp = Objects.requireNonNull(remoteAddress).getAddress().getHostAddress();
-            ServerHttpRequest mutatedServerHttpRequest = exchange.getRequest().mutate().header("X-CLIENT-IP", clientIp).build();
-            ServerWebExchange mutatedServerWebExchange = exchange.mutate().request(mutatedServerHttpRequest).build();
-            return chain.filter(mutatedServerWebExchange);
-        }
-    }
-}
-
+//@Configuration
+//public class WebConfiguration implements WebFluxConfigurer {
+//
+//    /**
+//     * https://stackoverflow.com/questions/51192630/how-do-you-get-clients-ip-address-spring-webflux-websocket?rq=1
+//     * https://stackoverflow.com/questions/50981136/how-to-get-client-ip-in-webflux
+//     * https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#webflux-filters
+//     * 由于在低版本的 spring-webflux 中不支持直接获得请求 IP(https://jira.spring.io/browse/SPR-16681),
+//     * 因此从org.springframework.web.server.ServerWebExchange中获得 IP 后,在放到 header 里
+//     */
+//    @Component
+//    public static class RetrieveClientIpWebFilter implements WebFilter {
+//        @Override
+//        public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
+//            InetSocketAddress remoteAddress = exchange.getRequest().getRemoteAddress();
+//            String clientIp = Objects.requireNonNull(remoteAddress).getAddress().getHostAddress();
+//            ServerHttpRequest mutatedServerHttpRequest = exchange.getRequest().mutate().header("X-CLIENT-IP", clientIp).build();
+//            ServerWebExchange mutatedServerWebExchange = exchange.mutate().request(mutatedServerHttpRequest).build();
+//            return chain.filter(mutatedServerWebExchange);
+//        }
+//    }
+//
+//    /**
+//     * 全局跨域配置
+//     */
+//    /*@Override
+//    public void addCorsMappings(CorsRegistry registry) {
+//        registry.addMapping("/**")
+//            // 访问源地址
+//            //.allowedOrigins("*")
+//            .allowedOriginPatterns("*")
+//            // 访问源请求方法
+//            .allowedMethods("*")
+//            // 访问源请求头
+//            .allowedHeaders("*")
+//            .exposedHeaders("Content-Type", "X-Requested-With", "accept", "Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers")
+//            .allowCredentials(true).maxAge(3600);
+//    }*/
+//}
+//

+ 12 - 0
src/main/java/com/caimei365/user/controller/BaseApi.java

@@ -4,6 +4,8 @@ import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.service.BaseService;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -23,6 +25,16 @@ import java.util.Map;
 public class BaseApi {
 
     private final BaseService baseService;
+    @Value(value = "${swagger.enabled}")
+    private Boolean swaggerEnabled;
+
+    @GetMapping("/")
+    public String welcome(){
+        if (swaggerEnabled){
+            return "欢迎使用!<br><a href='http://47.119.112.46:18011/doc.html'>doc接口文档入口(beta)</a><br><a href='http://47.119.112.46:18011/swagger-ui/index.html'>swagger接口文档入口(beta)</a>";
+        }
+        return "欢迎使用!";
+    }
 
     /**
      * 获取图片验证码

+ 44 - 40
src/main/java/com/caimei365/user/controller/LoginApi.java

@@ -1,6 +1,10 @@
 package com.caimei365.user.controller;
 
 import com.caimei365.user.model.ResponseJson;
+import com.caimei365.user.model.dto.AuthAppletsDto;
+import com.caimei365.user.model.dto.AuthBindDto;
+import com.caimei365.user.model.dto.AuthInvitationDto;
+import com.caimei365.user.model.dto.LoginPasswordDto;
 import com.caimei365.user.model.vo.UserLoginVo;
 import com.caimei365.user.service.LoginService;
 import io.swagger.annotations.*;
@@ -29,17 +33,17 @@ public class LoginApi {
      *
      * spi旧接口:/user/login
      *
-     * @param mobileOrEmail 手机号或邮箱
-     * @param password 密码
-     * @return BaseUser
+     * @param loginPasswordDto {
+     *                           mobileOrEmail 手机号或邮箱
+     *                           password 密码
+     *                         }
+     * @return UserLoginVo
      */
     @ApiOperation("登录(用户名,密码)")
-    @ApiImplicitParams({
-        @ApiImplicitParam(required = true, name = "mobileOrEmail", value = "手机号或邮箱"),
-        @ApiImplicitParam(required = true, name = "password", value = "密码")
-    })
     @PostMapping("/password")
-    public ResponseJson<UserLoginVo> passwordLogin(String mobileOrEmail, String password) {
+    public ResponseJson<UserLoginVo> passwordLogin(LoginPasswordDto loginPasswordDto) {
+        String mobileOrEmail = loginPasswordDto.getMobileOrEmail();
+        String password = loginPasswordDto.getPassword();
         return loginService.passwordLogin(mobileOrEmail, password);
     }
 
@@ -48,18 +52,18 @@ public class LoginApi {
      *
      * spi旧接口:/club/authorization,小程序sessionKey(wxInfo)、PC端sessionKey(wxInfoMap)
      *
-     * @param code          微信授权code
-     * @param encryptedData 微信加密数据
-     * @param iv            加密算法的初始向量
+     * @param authAppletsDto {
+     *                           code          微信授权code
+     *                           encryptedData 微信加密数据
+     *                           iv            加密算法的初始向量
+     *                         }
      */
     @ApiOperation("微信授权登录(小程序)")
-    @ApiImplicitParams({
-        @ApiImplicitParam(required = true, name = "code", value = "微信授权code"),
-        @ApiImplicitParam(required = false, name = "encryptedData", value = "微信加密数据"),
-        @ApiImplicitParam(required = false, name = "iv", value = "加密算法的初始向量")
-    })
     @PostMapping("/auth/applets")
-    public ResponseJson<UserLoginVo> appletsAuthorization(String code, String encryptedData, String iv, @RequestHeader HttpHeaders headers) {
+    public ResponseJson<UserLoginVo> appletsAuthorization(AuthAppletsDto authAppletsDto, @RequestHeader HttpHeaders headers) {
+        String code = authAppletsDto.getCode();
+        String encryptedData = authAppletsDto.getEncryptedData();
+        String iv = authAppletsDto.getIv();
         return loginService.appletsAuthorization(code, encryptedData, iv, headers);
     }
 
@@ -162,21 +166,21 @@ public class LoginApi {
      *
      * spi旧接口:/club/invitationCode
      *
-     * @param invitationCode 邀请码
-     * @param nickName       微信昵称
-     * @param avatarUrl      微信头像(headimgurl)
-     * @param unionId        微信unionId
+     * @param authInvitationDto {
+     *                             invitationCode 邀请码
+     *                             nickName       微信昵称
+     *                             avatarUrl      微信头像(headimgurl)
+     *                             unionId        微信unionId
+     *                          }
      * @return UserLoginVo
      */
     @ApiOperation("运营人员邀请码授权登录")
-    @ApiImplicitParams({
-        @ApiImplicitParam(required = true, name = "invitationCode", value = "邀请码"),
-        @ApiImplicitParam(required = true, name = "nickName", value = "微信昵称"),
-        @ApiImplicitParam(required = true, name = "avatarUrl", value = "微信头像(headimgurl)"),
-        @ApiImplicitParam(required = true, name = "unionId", value = "微信unionId")
-    })
     @PostMapping("/auth/invitation")
-    public ResponseJson<UserLoginVo> invitationCodeLogin(String invitationCode, String nickName, String avatarUrl, String unionId) {
+    public ResponseJson<UserLoginVo> invitationCodeLogin(AuthInvitationDto authInvitationDto) {
+        String invitationCode = authInvitationDto.getInvitationCode();
+        String nickName = authInvitationDto.getNickName();
+        String avatarUrl = authInvitationDto.getAvatarUrl();
+        String unionId = authInvitationDto.getUnionId();
         return loginService.invitationCodeLogin(invitationCode, nickName, avatarUrl, unionId);
     }
 
@@ -185,21 +189,21 @@ public class LoginApi {
      *
      * spi旧接口:/club/bindingWx
      *
-     * @param userId    要绑定的用户Id(userID)
-     * @param mobile    手机号
-     * @param smsCode   手机验证码(verificationCode)
-     * @param unionId   微信unionId
-     * @return OperationPo
+     * @param authBindDto {
+     *                         userId    要绑定的用户Id(userID)
+     *                         mobile    手机号
+     *                         smsCode   手机验证码(verificationCode)
+     *                         unionId   微信unionId
+     *                     }
+     * @return UserLoginVo
      */
     @ApiOperation("运营人员绑定微信")
-    @ApiImplicitParams({
-        @ApiImplicitParam(required = true, name = "userId", value = "要绑定的用户Id"),
-        @ApiImplicitParam(required = true, name = "mobile", value = "手机号"),
-        @ApiImplicitParam(required = true, name = "smsCode", value = "手机验证码(verificationCode)"),
-        @ApiImplicitParam(required = true, name = "unionId", value = "微信unionId")
-    })
     @PostMapping("/auth/bind")
-    public ResponseJson<UserLoginVo> operationBindWeChat(Integer userId, String mobile, String smsCode, String unionId) {
+    public ResponseJson<UserLoginVo> operationBindWeChat(AuthBindDto authBindDto) {
+        Integer userId = authBindDto.getUserId();
+        String mobile = authBindDto.getMobile();
+        String smsCode = authBindDto.getSmsCode();
+        String unionId = authBindDto.getUnionId();
         return loginService.operationBindWeChat(userId, mobile, smsCode, unionId);
     }
 

+ 18 - 20
src/main/java/com/caimei365/user/controller/RegisterApi.java

@@ -41,23 +41,18 @@ public class RegisterApi {
      *                          unionId           微信unionId
      *                          nickName          微信昵称
      *                          avatarUrl         微信头像(旧:headimgurl)
+     *                          passWordConfirm   用户确认密码
+     *                          smsCode           短信验证码(旧:activationCode)
+     *                          isAgreed          是否同意勾选同意协议,1是,其他否
      *                        }
-     * @param passWordConfirm 用户确认密码
-     * @param smsCode         短信验证码(旧:activationCode)
-     * @param isAgreed        是否同意勾选同意协议,1是,其他否
      * @param headers         HttpHeaders
      * @return ClubPo
      */
     @ApiOperation("注册普通机构")
-    @ApiImplicitParams({
-        @ApiImplicitParam(required = true, name = "passWordConfirm", value = "用户确认密码"),
-        @ApiImplicitParam(required = true, name = "smsCode", value = "短信验证码"),
-        @ApiImplicitParam(required = true, name = "isAgreed", value = "是否同意勾选同意协议,1是,其他否")
-    })
     @Idempotent(prefix="idempotent_club", keys={"#baseUser"}, expire=5)
     @PostMapping("/club")
-    public ResponseJson clubRegister(ClubRegisterDto clubRegisterDto, String passWordConfirm, String smsCode, Integer isAgreed, @RequestHeader HttpHeaders headers) {
-        return registerService.clubRegister(clubRegisterDto, passWordConfirm, smsCode, isAgreed, headers);
+    public ResponseJson clubRegister(ClubRegisterDto clubRegisterDto, @RequestHeader HttpHeaders headers) {
+        return registerService.clubRegister(clubRegisterDto, headers);
     }
 
     /**
@@ -122,16 +117,16 @@ public class RegisterApi {
      *                  department             医美分类下的门诊和医院则需要填写科室
      *                  medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
      *                  mainProduct            主打项目(mainpro)
+     *                  isAgreed  是否同意勾选同意协议,1是,其他否
      *                  }
-     * @param isAgreed  是否同意勾选同意协议,1是,其他否
      * @param headers   HttpHeaders
      * @return ClubPo
      */
     @ApiOperation("协销拉机构上线(机构注册)")
     @ApiImplicitParam(required = true, name = "isAgreed", value = "是否同意勾选同意协议,1是,其他否")
     @PostMapping("/club/online")
-    public ResponseJson<ClubPo> clubOnline( ClubOnlineDto onlineDto, Integer isAgreed, @RequestHeader HttpHeaders headers) {
-        return registerService.clubOnline(onlineDto, isAgreed, headers);
+    public ResponseJson<ClubPo> clubOnline( ClubOnlineDto onlineDto, @RequestHeader HttpHeaders headers) {
+        return registerService.clubOnline(onlineDto, headers);
     }
 
     /**
@@ -142,7 +137,7 @@ public class RegisterApi {
      * @param shopRegisterDto ShopRegisterDto{
      *                        source                注册来源: 0网站 1小程序
      *                        name                  组织名称
-     *                        shortName                 供应商公司简称(shortName)
+     *                        shortName                 供应商公司简称(sname)
      *                        bindMobile            企业绑定手机号
      *                        email                 邮箱
      *                        password              密码
@@ -156,11 +151,11 @@ public class RegisterApi {
      *                        firstShopType         医疗=1和非医疗=2
      *                        secondShopType        医疗的二级分类 一类器械=1、二类器械 =2、三类器械=3、其他=4 /// 1和非医疗没有二级分类
      *                        mainProduct           主打项目(mainpro)
+     *                        passWordConfirm 用户确认密码
+     *                        smsCode         短信验证码(旧:activationCode)
+     *                        isAgreed        是否同意勾选同意协议,1是,其他否
+     *                        whichStep       注册步数: PC(0),小程序(1,2,3)
      *                    }
-     * @param passWordConfirm 用户确认密码
-     * @param smsCode         短信验证码(旧:activationCode)
-     * @param isAgreed        是否同意勾选同意协议,1是,其他否
-     * @param whichStep       注册步数: PC(0),小程序(1,2,3)
      * @param headers         HttpHeaders
      * @return ShopPo
      */
@@ -173,11 +168,14 @@ public class RegisterApi {
     })
     @Idempotent(prefix="idempotent_shop", keys={"#shopRegisterDto"}, expire=5)
     @PostMapping("/shop/applets")
-    public ResponseJson<ShopPo> shopRegister(ShopRegisterDto shopRegisterDto, String passWordConfirm, String smsCode, Integer isAgreed, Integer whichStep, @RequestHeader HttpHeaders headers) {
+    public ResponseJson<ShopPo> shopRegister(ShopRegisterDto shopRegisterDto, @RequestHeader HttpHeaders headers) {
+        String passWordConfirm = shopRegisterDto.getPassWordConfirm();
+        String smsCode = shopRegisterDto.getSmsCode();
+        Integer isAgreed = shopRegisterDto.getIsAgreed();
+        Integer whichStep = shopRegisterDto.getWhichStep();
         return registerService.shopRegister(shopRegisterDto, passWordConfirm, smsCode, isAgreed, whichStep, headers);
     }
 
-
 }
 
 

+ 11 - 13
src/main/java/com/caimei365/user/controller/ShopApi.java

@@ -71,24 +71,22 @@ public class ShopApi {
      *                        shopDesc                  公司介绍(info)
      *                        businessScope             经营范围
      *                        logo                      公司LOGO
+     *                        operationLicence          生产经营证书(productionLicence)
+     *                        hygienicLicense           卫生许可证
+     *                        taxLicense                税务登记证
+     *                        honorCertification        荣誉证书(certificateHonor)
+     *                        productCertification      产品证书
      *                    }
-     * @param operationLicence          生产经营证书(productionLicence)
-     * @param hygienicLicense           卫生许可证
-     * @param taxLicense                税务登记证
-     * @param honorCertification        荣誉证书(certificateHonor)
-     * @param productCertification      产品证书
      * @return ClubUpdateDto
      */
     @ApiOperation("更新供应商资料")
-    @ApiImplicitParams({
-        @ApiImplicitParam(required = true, name = "operationLicence", value = "生产经营证书(productionLicence)"),
-        @ApiImplicitParam(required = true, name = "hygienicLicense", value = "卫生许可证"),
-        @ApiImplicitParam(required = true, name = "taxLicense", value = "税务登记证"),
-        @ApiImplicitParam(required = true, name = "honorCertification", value = "荣誉证书(certificateHonor)"),
-        @ApiImplicitParam(required = true, name = "productCertification", value = "产品证书")
-    })
     @PostMapping("/info/update")
-    public ResponseJson updateShopUserInfo(ShopUpdateDto shopUpdateDto, String operationLicence, String hygienicLicense, String taxLicense, String honorCertification, String productCertification) {
+    public ResponseJson updateShopUserInfo(ShopUpdateDto shopUpdateDto) {
+        String operationLicence = shopUpdateDto.getOperationLicence();
+        String hygienicLicense = shopUpdateDto.getOperationLicence();
+        String taxLicense = shopUpdateDto.getOperationLicence();
+        String honorCertification = shopUpdateDto.getOperationLicence();
+        String productCertification = shopUpdateDto.getOperationLicence();
         return shopService.updateShopUserInfo(shopUpdateDto, operationLicence, hygienicLicense, taxLicense, honorCertification, productCertification);
     }
 

+ 34 - 0
src/main/java/com/caimei365/user/model/dto/AuthAppletsDto.java

@@ -0,0 +1,34 @@
+package com.caimei365.user.model.dto;
+
+import io.swagger.annotations.*;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/3/24
+ */
+@ApiModel("小程序微信授权")
+@Data
+public class AuthAppletsDto implements Serializable {
+    /**
+     * 微信授权code
+     */
+    @NotNull
+    @ApiModelProperty("微信授权code")
+    private String code;
+    /**
+     * 微信加密数据
+     */
+    @ApiModelProperty("微信加密数据")
+    private String encryptedData;
+    /**
+     * 加密算法的初始向量
+     */
+    @ApiModelProperty("加密算法的初始向量")
+    private String iv;
+}

+ 44 - 0
src/main/java/com/caimei365/user/model/dto/AuthBindDto.java

@@ -0,0 +1,44 @@
+package com.caimei365.user.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/3/24
+ */
+@ApiModel("运营人员绑定微信")
+@Data
+public class AuthBindDto implements Serializable {
+    /**
+     * 要绑定的用户Id
+     */
+    @NotNull
+    @ApiModelProperty("要绑定的用户Id")
+    private Integer userId;
+    /**
+     * 手机号
+     */
+    @NotNull
+    @ApiModelProperty("手机号")
+    private String mobile;
+    /**
+     * 手机验证码
+     */
+    @NotNull
+    @ApiModelProperty("手机验证码")
+    private String smsCode;
+    /**
+     * 微信unionId
+     */
+    @NotNull
+    @ApiModelProperty("微信unionId")
+    private String unionId;
+
+}

+ 40 - 0
src/main/java/com/caimei365/user/model/dto/AuthInvitationDto.java

@@ -0,0 +1,40 @@
+package com.caimei365.user.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/3/24
+ */
+@ApiModel("运营人员邀请码授权登录")
+@Data
+public class AuthInvitationDto implements Serializable {
+    /**
+     * 邀请码
+     */
+    @NotNull
+    @ApiModelProperty("邀请码")
+    private String invitationCode;
+    /**
+     * 微信昵称
+     */
+    @ApiModelProperty("微信昵称")
+    private String nickName;
+    /**
+     * 微信头像(headimgurl)
+     */
+    @ApiModelProperty("微信头像(headimgurl)")
+    private String avatarUrl;
+    /**
+     * 微信unionId
+     */
+    @ApiModelProperty("微信unionId")
+    private String unionId;
+}

+ 6 - 0
src/main/java/com/caimei365/user/model/dto/ClubOnlineDto.java

@@ -3,6 +3,7 @@ package com.caimei365.user.model.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 /**
@@ -103,4 +104,9 @@ public class ClubOnlineDto implements Serializable {
      */
     @ApiModelProperty("主打项目(mainpro)")
     private String mainProduct;
+    /**
+     * 是否同意勾选同意协议,1是,其他否
+     */
+    @ApiModelProperty("是否同意勾选同意协议,1是,其他否")
+    private Integer isAgreed;
 }

+ 18 - 0
src/main/java/com/caimei365/user/model/dto/ClubRegisterDto.java

@@ -38,6 +38,24 @@ public class ClubRegisterDto implements Serializable {
     @NotNull
     @ApiModelProperty("密码")
     private String password;
+    /**
+     * 用户确认密码
+     */
+    @NotNull
+    @ApiModelProperty("用户确认密码")
+    private String passWordConfirm;
+    /**
+     * 短信验证码
+     */
+    @NotNull
+    @ApiModelProperty("短信验证码(旧:activationCode)")
+    private String smsCode;
+    /**
+     * 是否同意勾选同意协议,1是,其他否
+     */
+    @NotNull
+    @ApiModelProperty("是否同意勾选同意协议,1是,其他否")
+    private Integer isAgreed;
     /**
      * 微信unionId
      */

+ 31 - 0
src/main/java/com/caimei365/user/model/dto/LoginPasswordDto.java

@@ -0,0 +1,31 @@
+package com.caimei365.user.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/3/24
+ */
+@ApiModel("密码登录参数")
+@Data
+public class LoginPasswordDto implements Serializable {
+    /**
+     * 手机号或邮箱
+     */
+    @NotNull
+    @ApiModelProperty("手机号或邮箱")
+    private String mobileOrEmail;
+    /**
+     * 密码
+     */
+    @NotNull
+    @ApiModelProperty("密码")
+    private String password;
+}

+ 24 - 0
src/main/java/com/caimei365/user/model/dto/ShopRegisterDto.java

@@ -48,6 +48,30 @@ public class ShopRegisterDto implements Serializable {
     @NotNull
     @ApiModelProperty("密码")
     private String password;
+    /**
+     * 用户确认密码
+     */
+    @NotNull
+    @ApiModelProperty("用户确认密码")
+    private String passWordConfirm;
+    /**
+     * 短信验证码
+     */
+    @NotNull
+    @ApiModelProperty("短信验证码(旧:activationCode)")
+    private String smsCode;
+    /**
+     * 是否同意勾选同意协议,1是,其他否
+     */
+    @NotNull
+    @ApiModelProperty("是否同意勾选同意协议,1是,其他否")
+    private Integer isAgreed;
+    /**
+     * 密码
+     */
+    @NotNull
+    @ApiModelProperty("注册步数: PC(0),小程序(1,2,3)")
+    private Integer whichStep;
     /**
      * 联系人
      */

+ 30 - 0
src/main/java/com/caimei365/user/model/dto/ShopUpdateDto.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * Description
@@ -143,4 +144,33 @@ public class ShopUpdateDto implements Serializable {
      */
     @ApiModelProperty("公司LOGO")
     private String logo;
+    /**
+     * 荣誉证书
+     */
+    @ApiModelProperty("荣誉证书")
+    private List<String> honorCertification;
+
+    /**
+     * 生产经营证书
+     */
+    @ApiModelProperty("生产经营证书")
+    private String operationLicence;
+
+    /**
+     * 产品证书
+     */
+    @ApiModelProperty("产品证书")
+    private List<String> productCertification;
+
+    /**
+     * 卫生许可证
+     */
+    @ApiModelProperty("卫生许可证")
+    private String hygienicLicense;
+
+    /**
+     * 税务登记证
+     */
+    @ApiModelProperty("税务登记证")
+    private String taxLicense;
 }

+ 6 - 6
src/main/java/com/caimei365/user/service/RegisterService.java

@@ -27,14 +27,14 @@ public interface RegisterService {
      *                          unionId           微信unionId
      *                          nickName          微信昵称
      *                          avatarUrl         微信头像(旧:headimgurl)
+     *                          passWordConfirm   用户确认密码
+     *                          smsCode           短信验证码(旧:activationCode)
+     *                          isAgreed          是否同意勾选同意协议,1是,其他否
      *                        }
-     * @param passWordConfirm 用户确认密码
-     * @param smsCode         短信验证码(旧:activationCode)
-     * @param isAgreed        是否同意勾选同意协议,1是,其他否
      * @param headers         HttpHeaders
      * @return void
      */
-    ResponseJson clubRegister(ClubRegisterDto clubRegisterDto, String passWordConfirm, String smsCode, Integer isAgreed, HttpHeaders headers);
+    ResponseJson clubRegister(ClubRegisterDto clubRegisterDto, HttpHeaders headers);
 
     /**
      * 普通机构升级会员机构
@@ -92,12 +92,12 @@ public interface RegisterService {
      *                  department             医美分类下的门诊和医院则需要填写科室
      *                  medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
      *                  mainProduct            主打项目(mainpro)
+     *                  isAgreed  是否同意勾选同意协议,1是,其他否
      *                  }
-     * @param isAgreed  是否同意勾选同意协议,1是,其他否
      * @param headers   HttpHeaders
      * @return ClubPo
      */
-    ResponseJson<ClubPo> clubOnline(ClubOnlineDto onlineDto, Integer isAgreed, HttpHeaders headers);
+    ResponseJson<ClubPo> clubOnline(ClubOnlineDto onlineDto, HttpHeaders headers);
 
     /**
      * 小程序端分步供应商注册

+ 9 - 5
src/main/java/com/caimei365/user/service/impl/LoginServiceImpl.java

@@ -243,16 +243,20 @@ public class LoginServiceImpl implements LoginService {
         // 为了过期续签,将token存入redis,并设置超时时间
         redisService.set(token, token, JwtUtil.getExpireTime());
         loginUser.setToken(token);
-        if (loginUser.getClubStatus() == 91 || loginUser.getShopStatus() == 91) {
-            //机构 / 供应商
+        if (null != loginUser.getClubStatus() && 91 == loginUser.getClubStatus()) {
+            //机构
             return ResponseJson.error(-2, "您的企业账号已被冻结,请联系客服处理", null);
         }
         // 供应商
-        if (loginUser.getUserIdentity() == 3) {
-            if (loginUser.getShopStatus() == 3) {
+        if (3 == loginUser.getUserIdentity() && null != loginUser.getShopStatus()) {
+
+            if (3 == loginUser.getShopStatus()) {
                 return ResponseJson.error(-2, "您的企业账号正在加速审核中,审核通过后即可登录", null);
             }
-            if (loginUser.getShopStatus() == 92) {
+            if (91 == loginUser.getShopStatus()) {
+                return ResponseJson.error(-2, "您的企业账号已被冻结,请联系客服处理", null);
+            }
+            if (92 == loginUser.getShopStatus()) {
                 return ResponseJson.error(-3, "您的企业账号审核未通过", loginUser);
             }
         }

+ 21 - 19
src/main/java/com/caimei365/user/service/impl/RegisterServiceImpl.java

@@ -24,6 +24,7 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
@@ -53,40 +54,40 @@ public class RegisterServiceImpl implements RegisterService {
      * 普通机构入驻(注册)
      *
      * @param clubRegisterDto ClubRegisterDto{
-     *                        source            注册来源: 0网站 1小程序
-     *                        userName          用户名
-     *                        bindMobile        企业绑定手机号
-     *                        password          密码
-     *                        unionId           微信unionId
-     *                        nickName          微信昵称
-     *                        avatarUrl         微信头像(旧:headimgurl)
+     *                          source            注册来源: 0网站 1小程序
+     *                          userName          用户名
+     *                          bindMobile        企业绑定手机号
+     *                          password          密码
+     *                          unionId           微信unionId
+     *                          nickName          微信昵称
+     *                          avatarUrl         微信头像(旧:headimgurl)
+     *                          passWordConfirm   用户确认密码
+     *                          smsCode           短信验证码(旧:activationCode)
+     *                          isAgreed          是否同意勾选同意协议,1是,其他否
      *                        }
-     * @param passWordConfirm 用户确认密码
-     * @param smsCode         短信验证码(旧:activationCode)
-     * @param isAgreed        是否同意勾选同意协议,1是,其他否
      * @param headers         HttpHeaders
      * @return ClubPo
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResponseJson clubRegister(ClubRegisterDto clubRegisterDto, String passWordConfirm, String smsCode, Integer isAgreed, HttpHeaders headers) {
+    public ResponseJson clubRegister(ClubRegisterDto clubRegisterDto, HttpHeaders headers) {
         // 打印IP
         String ip = headers.getFirst("X-CLIENT-IP");
         log.info("机构注册 X-CLIENT-IP : " + ip);
         // 参数校验
         if (StringUtils.isBlank(clubRegisterDto.getUserName()) || StringUtils.isBlank(clubRegisterDto.getBindMobile())
-            || StringUtils.isBlank(clubRegisterDto.getPassword()) || StringUtils.isBlank(passWordConfirm) ||
-            StringUtils.isBlank(smsCode)) {
+            || StringUtils.isBlank(clubRegisterDto.getPassword()) || StringUtils.isBlank(clubRegisterDto.getPassWordConfirm()) ||
+            StringUtils.isBlank(clubRegisterDto.getSmsCode())) {
             return ResponseJson.error("参数异常");
         }
-        if (1 != isAgreed) {
+        if (1 != clubRegisterDto.getIsAgreed()) {
             return ResponseJson.error("请勾选同意协议");
         }
-        if (!clubRegisterDto.getPassword().equals(passWordConfirm)) {
+        if (!clubRegisterDto.getPassword().equals(clubRegisterDto.getPassWordConfirm())) {
             return ResponseJson.error("输入的密码不一致");
         }
         // 手机号与验证码校验
-        String result = mobileAndCodeValidate(clubRegisterDto.getBindMobile(), smsCode);
+        String result = mobileAndCodeValidate(clubRegisterDto.getBindMobile(), clubRegisterDto.getSmsCode());
         if (result != null) {return ResponseJson.error(result);}
         /*
             组装用户数据 user
@@ -118,7 +119,7 @@ public class RegisterServiceImpl implements RegisterService {
         // 设置密码
         user.setPassword(Md5Util.md5(clubRegisterDto.getPassword()));
         // 同意协议
-        user.setAgreeFlag(isAgreed);
+        user.setAgreeFlag(1);
         // 用户状态,1正常,0冻结
         user.setValidFlag(1);
         // 协销Id,默认采美官方
@@ -359,13 +360,14 @@ public class RegisterServiceImpl implements RegisterService {
      *                  department             医美分类下的门诊和医院则需要填写科室
      *                  medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
      *                  mainProduct            主打项目(mainpro)
+     *                  isAgreed  是否同意勾选同意协议,1是,其他否
      *                  }
-     * @param isAgreed  是否同意勾选同意协议,1是,其他否
      * @param headers   HttpHeaders
      * @return ClubPo
      */
     @Override
-    public ResponseJson<ClubPo> clubOnline(ClubOnlineDto onlineDto, Integer isAgreed, HttpHeaders headers) {
+    public ResponseJson<ClubPo> clubOnline(ClubOnlineDto onlineDto, HttpHeaders headers) {
+        Integer isAgreed = onlineDto.getIsAgreed();
         // 打印IP
         String ip = headers.getFirst("X-CLIENT-IP");
         log.info("协销拉机构上线 X-CLIENT-IP : " + ip);