|
@@ -17,6 +17,7 @@
|
|
package org.springblade.modules.api.controller;
|
|
package org.springblade.modules.api.controller;
|
|
|
|
|
|
import cn.hutool.core.util.DesensitizedUtil;
|
|
import cn.hutool.core.util.DesensitizedUtil;
|
|
|
|
+import cn.hutool.core.util.IdcardUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.PhoneUtil;
|
|
import cn.hutool.core.util.PhoneUtil;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -42,7 +43,9 @@ import org.springblade.core.sms.model.SmsCode;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.support.Kv;
|
|
import org.springblade.core.tool.support.Kv;
|
|
import org.springblade.core.tool.utils.*;
|
|
import org.springblade.core.tool.utils.*;
|
|
|
|
+import org.springblade.modules.api.request.MerchantRegisterRequest;
|
|
import org.springblade.modules.auth.enums.UserEnum;
|
|
import org.springblade.modules.auth.enums.UserEnum;
|
|
|
|
+import org.springblade.modules.auth.granter.PasswordTokenGranter;
|
|
import org.springblade.modules.auth.provider.ITokenGranter;
|
|
import org.springblade.modules.auth.provider.ITokenGranter;
|
|
import org.springblade.modules.auth.provider.TokenGranterBuilder;
|
|
import org.springblade.modules.auth.provider.TokenGranterBuilder;
|
|
import org.springblade.modules.auth.provider.TokenParameter;
|
|
import org.springblade.modules.auth.provider.TokenParameter;
|
|
@@ -56,6 +59,8 @@ import org.springblade.modules.resource.builder.sms.SmsBuilder;
|
|
import org.springblade.modules.system.entity.User;
|
|
import org.springblade.modules.system.entity.User;
|
|
import org.springblade.modules.system.entity.UserApp;
|
|
import org.springblade.modules.system.entity.UserApp;
|
|
import org.springblade.modules.system.entity.UserInfo;
|
|
import org.springblade.modules.system.entity.UserInfo;
|
|
|
|
+import org.springblade.modules.system.entity.UserMerchant;
|
|
|
|
+import org.springblade.modules.system.service.IUserMerchantService;
|
|
import org.springblade.modules.system.service.IUserService;
|
|
import org.springblade.modules.system.service.IUserService;
|
|
import org.springblade.modules.system.service.IUserWeChatService;
|
|
import org.springblade.modules.system.service.IUserWeChatService;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -63,6 +68,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import javax.validation.Valid;
|
|
|
|
|
|
import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
|
|
import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
|
|
import static org.springblade.modules.resource.utils.SmsUtil.VALIDATE_FAIL;
|
|
import static org.springblade.modules.resource.utils.SmsUtil.VALIDATE_FAIL;
|
|
@@ -87,6 +93,7 @@ public class LoginController extends BladeController {
|
|
private final JwtProperties jwtProperties;
|
|
private final JwtProperties jwtProperties;
|
|
private final UserAppService userAppService;
|
|
private final UserAppService userAppService;
|
|
private final IUserWeChatService userWeChatService;
|
|
private final IUserWeChatService userWeChatService;
|
|
|
|
+ private final IUserMerchantService iUserMerchantService;
|
|
|
|
|
|
@ApiLog("用户注册")
|
|
@ApiLog("用户注册")
|
|
@PostMapping("/user-register")
|
|
@PostMapping("/user-register")
|
|
@@ -155,6 +162,7 @@ public class LoginController extends BladeController {
|
|
userScores.setDataType(1);
|
|
userScores.setDataType(1);
|
|
userScores.setDataRemarks(dataRemarks);
|
|
userScores.setDataRemarks(dataRemarks);
|
|
userScoresService.save(userScores);
|
|
userScoresService.save(userScores);
|
|
|
|
+
|
|
//修改用户信誉积分
|
|
//修改用户信誉积分
|
|
UserApp userAppUpdate = new UserApp();
|
|
UserApp userAppUpdate = new UserApp();
|
|
userAppUpdate.setId(userAppQuery.getId());
|
|
userAppUpdate.setId(userAppQuery.getId());
|
|
@@ -195,17 +203,16 @@ public class LoginController extends BladeController {
|
|
@ApiParam(value = "微信小程序code") @RequestParam(required = false) String code) {
|
|
@ApiParam(value = "微信小程序code") @RequestParam(required = false) String code) {
|
|
|
|
|
|
String tenantId = WebUtil.getRequest().getHeader(TokenUtil.TENANT_HEADER_KEY);
|
|
String tenantId = WebUtil.getRequest().getHeader(TokenUtil.TENANT_HEADER_KEY);
|
|
- String grantType = WebUtil.getRequest().getParameter("grant_type");
|
|
|
|
String refreshToken = WebUtil.getRequest().getParameter("refresh_token");
|
|
String refreshToken = WebUtil.getRequest().getParameter("refresh_token");
|
|
String userType = Func.toStr(WebUtil.getRequest().getHeader(TokenUtil.USER_TYPE_HEADER_KEY), UserEnum.APP.getName());
|
|
String userType = Func.toStr(WebUtil.getRequest().getHeader(TokenUtil.USER_TYPE_HEADER_KEY), UserEnum.APP.getName());
|
|
TokenParameter tokenParameter = new TokenParameter();
|
|
TokenParameter tokenParameter = new TokenParameter();
|
|
tokenParameter.getArgs().set("tenantId", tenantId)
|
|
tokenParameter.getArgs().set("tenantId", tenantId)
|
|
.set("username", username)
|
|
.set("username", username)
|
|
- .set("password", DigestUtil.md5Hex(password))
|
|
|
|
- .set("grantType", grantType)
|
|
|
|
|
|
+ .set("password", password)
|
|
|
|
+ .set("grantType", PasswordTokenGranter.GRANT_TYPE)
|
|
.set("refreshToken", refreshToken)
|
|
.set("refreshToken", refreshToken)
|
|
.set("userType", userType);
|
|
.set("userType", userType);
|
|
- ITokenGranter granter = TokenGranterBuilder.getGranter(grantType);
|
|
|
|
|
|
+ ITokenGranter granter = TokenGranterBuilder.getGranter(PasswordTokenGranter.GRANT_TYPE);
|
|
UserInfo userInfo = granter.grant(tokenParameter);
|
|
UserInfo userInfo = granter.grant(tokenParameter);
|
|
if (userInfo == null || userInfo.getUser() == null) {
|
|
if (userInfo == null || userInfo.getUser() == null) {
|
|
return R.fail("用户名或密码不正确");
|
|
return R.fail("用户名或密码不正确");
|
|
@@ -322,6 +329,53 @@ public class LoginController extends BladeController {
|
|
return R.success("退出成功");
|
|
return R.success("退出成功");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ApiLog("商家注册")
|
|
|
|
+ @PostMapping("/merchant-register")
|
|
|
|
+ @ApiOperationSupport(order = 6)
|
|
|
|
+ @ApiOperation(value = "商家注册", notes = "商家注册")
|
|
|
|
+ @Transactional
|
|
|
|
+ public R<Void> merchantRegister(@Valid @RequestBody MerchantRegisterRequest request) {
|
|
|
|
+ if (!PhoneUtil.isPhone(request.getPhone())){
|
|
|
|
+ return R.fail("请输入正确的手机号!");
|
|
|
|
+ }
|
|
|
|
+ if (!IdcardUtil.isValidCard(request.getIdCard())) {
|
|
|
|
+ return R.fail("请输入正确的身份证号!");
|
|
|
|
+ }
|
|
|
|
+ if (!request.getPassword().equals(request.getRePassword())) {
|
|
|
|
+ return R.fail("密码不一致");
|
|
|
|
+ }
|
|
|
|
+ User query1 = userService.getOne(Wrappers.<User>query().lambda().eq(User::getAccount, request.getPhone()));
|
|
|
|
+ if (query1 != null){
|
|
|
|
+ return R.fail("手机号已注册!");
|
|
|
|
+ }
|
|
|
|
+ boolean flg = captchaCode(request.getPhone(), request.getCaptchaId(), request.getCaptchaCode());
|
|
|
|
+ if (!flg){
|
|
|
|
+ return R.fail(VALIDATE_FAIL);
|
|
|
|
+ }
|
|
|
|
+ String tenantId = WebUtil.getRequest().getHeader(TokenUtil.TENANT_HEADER_KEY);
|
|
|
|
+ User user = new User();
|
|
|
|
+ user.setAccount(request.getPhone());
|
|
|
|
+ user.setPhone(request.getPhone());
|
|
|
|
+ user.setTenantId(tenantId);
|
|
|
|
+ user.setUserType(UserEnum.MERCHANT.getCategory());
|
|
|
|
+ user.setPassword(DigestUtil.encrypt(request.getPassword()));
|
|
|
|
+ user.setName(request.getMerchantName());
|
|
|
|
+ user.setRealName(request.getName());
|
|
|
|
+ userService.save(user);
|
|
|
|
+
|
|
|
|
+ UserMerchant userMerchant = new UserMerchant();
|
|
|
|
+ userMerchant.setUserId(user.getId());
|
|
|
|
+ userMerchant.setAddress(request.getAddress());
|
|
|
|
+ userMerchant.setIdCard(request.getIdCard());
|
|
|
|
+ userMerchant.setBusinessLicence(request.getBusinessLicence());
|
|
|
|
+ userMerchant.setParentId(0L);
|
|
|
|
+ iUserMerchantService.save(userMerchant);
|
|
|
|
+
|
|
|
|
+ return R.success("注册成功");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
private boolean captchaCode(String phone, String captchaId, String captchaCode){
|
|
private boolean captchaCode(String phone, String captchaId, String captchaCode){
|
|
String key = "blade:sms::captcha:" + phone + ":" + captchaId;
|
|
String key = "blade:sms::captcha:" + phone + ":" + captchaId;
|
|
String cache = bladeRedis.get(key);
|
|
String cache = bladeRedis.get(key);
|