lianghanqiang 4 rokov pred
rodič
commit
1c6141b6d3

+ 1 - 0
src/main/java/org/springblade/common/enums/ResCode.java

@@ -21,6 +21,7 @@ public enum ResCode implements IResultCode {
 
 	/*	动态密码	*/
 	ID_NOT_NULL(502,"ID串不能为空"),
+	SECRET_VALIDATE_ERROR(502,"授权码校验失败"),
 
 
 	/*	加密,解密模块	*/

+ 14 - 3
src/main/java/org/springblade/common/utils/OtpUtils.java

@@ -12,6 +12,7 @@ import java.security.GeneralSecurityException;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * @author: lianghanqiang
@@ -34,6 +35,16 @@ public class OtpUtils {
 	 */
 	private static final String SECRET_KEY = "";
 
+	/**
+	 * 参数名称 ID
+	 */
+	public static final String PARAMS_ID = "id";
+
+	/**
+	 * 参数名称 secret
+	 */
+	public static final String PARAMS_SECRET = "secret";
+
 	/**
 	 * 时间步长 单位:毫秒 作为口令变化的时间周期
 	 */
@@ -156,7 +167,7 @@ public class OtpUtils {
 	 * */
 	public static boolean validate(String id,String code) {
 		String s = generateMyTOTP(id);
-		return code.equals((Long.valueOf(id))+s);
+		return Objects.equals(s,code);
 	}
 
 
@@ -165,8 +176,8 @@ public class OtpUtils {
 	 * */
 	public static Map<String,String> decodeParams(String code) {
 		return new HashMap<String,String>(){{
-			put("id",code.substring(0,20));
-			put("secret",code.substring(code.length()-6));
+			put(PARAMS_ID,code.substring(0,19));
+			put(PARAMS_SECRET,code.substring(code.length()-6));
 		}};
 	}
 

+ 2 - 0
src/main/java/org/springblade/gateway/client_gateway/controller/ClientUserController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
 import org.springblade.common.enums.ResCode;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.api.R;
@@ -31,6 +32,7 @@ public class ClientUserController {
 
 	@PostMapping("/login")
 	@ApiOperation("C端小程序用户登录")
+	@SneakyThrows
 	public R userLogin(@RequestBody LoginDto loginDto){
 		LoginUser user = loginUserService.getOne(new QueryWrapper<LoginUser>().lambda().eq(LoginUser::getOpenid, loginDto.getOpenid()));
 		if(user==null){

+ 1 - 1
src/main/java/org/springblade/gateway/common_gateway/LdtSmsController.java → src/main/java/org/springblade/gateway/common_gateway/controller/LdtSmsController.java

@@ -1,4 +1,4 @@
-package org.springblade.gateway.common_gateway;
+package org.springblade.gateway.common_gateway.controller;
 
 import io.swagger.annotations.Api;
 import org.springblade.core.tool.api.R;

+ 1 - 1
src/main/java/org/springblade/gateway/common_gateway/PaymentController.java → src/main/java/org/springblade/gateway/common_gateway/controller/PaymentController.java

@@ -1,4 +1,4 @@
-package org.springblade.gateway.common_gateway;
+package org.springblade.gateway.common_gateway.controller;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 9 - 0
src/main/java/org/springblade/gateway/common_gateway/handle/OrderHandle.java

@@ -0,0 +1,9 @@
+package org.springblade.gateway.common_gateway.handle;
+
+/**
+ * @author: lianghanqiang
+ * @description:
+ * @since: 8/26/21 -- 1:51 PM
+ */
+public class OrderHandle {
+}

+ 4 - 3
src/main/java/org/springblade/gateway/shop_gateway/controller/AppAccountController.java

@@ -16,11 +16,13 @@ import org.springblade.gateway.shop_gateway.entity.dto.AppAccountDto;
 import org.springblade.ldt.account.entity.Account;
 import org.springblade.ldt.account.service.IAccountService;
 import org.springblade.modules.resource.utils.SmsUtil;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.validation.Valid;
 import java.util.Objects;
 
 /**
@@ -37,7 +39,7 @@ public class AppAccountController {
 	@PostMapping("login")
 	@ApiOperation(value = "商户商场登录")
 	@SneakyThrows
-	public R login(@RequestBody Account account) throws ServiceException  {
+	public R login(@RequestBody @Valid Account account) throws ServiceException  {
 
 		Account user = accountService.getOne(new QueryWrapper<Account>().lambda().eq(Account::getPhone, account.getPhone()));
 		Assert.notNull(user,() ->{throw new ServiceException(ResCode.USER_NOT_FOUNT);});
@@ -50,7 +52,7 @@ public class AppAccountController {
 	@PostMapping("register")
 	@ApiOperation(value = "注册账号")
 	@SneakyThrows
-	public R register(@RequestBody AppAccountDto appAccountDto) {
+	public R register(@RequestBody  @Valid AppAccountDto appAccountDto) {
 
 		Assert.isTrue(SmsUtil.validateMessage(null,appAccountDto.getSmsId(),appAccountDto.getValue(),appAccountDto.getPhone()),()->{
 			throw new ServiceException(ResCode.VALIDATE_FAIL);
@@ -61,7 +63,6 @@ public class AppAccountController {
 		Assert.isTrue(accountService.saveOrUpdate(account),()->{
 			throw new ServiceException(ResCode.SHOP_REGISTER_ERROR);
 		});
-
 		return R.data(account);
 
 	}

+ 19 - 3
src/main/java/org/springblade/gateway/shop_gateway/controller/ShopTradeController.java

@@ -1,12 +1,15 @@
 package org.springblade.gateway.shop_gateway.controller;
 
-import cn.hutool.core.lang.Assert;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang.NullArgumentException;
+import lombok.AllArgsConstructor;
+import org.springblade.common.enums.ResCode;
 import org.springblade.common.utils.OtpUtils;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.api.R;
 import org.springblade.gateway.shop_gateway.entity.dto.CodeOrder;
+import org.springblade.ldt.bills.service.IBillsService;
+import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,13 +25,26 @@ import java.util.Map;
 @RestController
 @RequestMapping("/shopTrade")
 @Api(tags = "小B端交易模块")
+@AllArgsConstructor
 public class ShopTradeController {
 
+	private IBillsService billsService;
+
 	@ApiOperation("授权码下单")
 	@PostMapping("initOrderByCode")
+//	@SneakyThrows
 	public R initOrderByCode(@RequestBody CodeOrder codeOrder){
+
+		//解析校验授权码
 		Map<String, String> decodeParams = OtpUtils.decodeParams(codeOrder.getAuthCode());
-		return R.success("");
+		Assert.isTrue(OtpUtils.validate(decodeParams.get(OtpUtils.PARAMS_ID),decodeParams.get(OtpUtils.PARAMS_SECRET)),
+			()->{ throw new ServiceException(ResCode.SECRET_VALIDATE_ERROR); });
+
+
+
+		//处理订单
+		return R.success("s");
+
 	}
 
 }

+ 4 - 0
src/main/java/org/springblade/gateway/shop_gateway/entity/dto/AppAccountDto.java

@@ -4,6 +4,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.ldt.account.entity.Account;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * @author cy-computer
  */
@@ -16,10 +18,12 @@ public class AppAccountDto extends Account {
 	/**
 	 * 验证码
 	 */
+	@NotBlank
 	private String value;
 
 	/**
 	 * 	验证码id
 	 * */
+	@NotBlank
 	private String smsId;
 }

+ 4 - 0
src/main/java/org/springblade/gateway/shop_gateway/entity/dto/CodeOrder.java

@@ -1,8 +1,10 @@
 package org.springblade.gateway.shop_gateway.entity.dto;
 
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * @author: lianghanqiang
@@ -11,6 +13,8 @@ import lombok.Data;
  */
 @Data
 @Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class CodeOrder extends BaseOrder {