From: Tang Cheng Date: Mon, 8 Jul 2019 14:18:09 +0000 (+0800) Subject: 增加了user,shop 相关接口 X-Git-Tag: 1.0.0^2~95 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=220ba3dd7fb1da2c1346d62a4bf5ee4333cfe4e8;p=epayment%2Ffood_payapi.git 增加了user,shop 相关接口 --- diff --git a/common/src/main/java/com/supwisdom/dlpay/api/annotation/Sex.java b/common/src/main/java/com/supwisdom/dlpay/api/annotation/Sex.java new file mode 100644 index 00000000..46978074 --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/annotation/Sex.java @@ -0,0 +1,19 @@ +package com.supwisdom.dlpay.api.annotation; + +import com.supwisdom.dlpay.api.validator.StatusValidator; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +@Constraint(validatedBy = {StatusValidator.class}) +@Documented +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface Sex { + String message() default "不正确的性别 , 应该是 'male', 'female','unknown' 其中之一"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/annotation/ShopType.java b/common/src/main/java/com/supwisdom/dlpay/api/annotation/ShopType.java new file mode 100644 index 00000000..d869ffe2 --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/annotation/ShopType.java @@ -0,0 +1,20 @@ +package com.supwisdom.dlpay.api.annotation; + +import com.supwisdom.dlpay.api.validator.ShopTypeValidator; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + + +@Constraint(validatedBy = {ShopTypeValidator.class}) +@Documented +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface ShopType { + String message() default "不正确的状态 , 应该是 '1', '2' 其中之一"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} \ No newline at end of file diff --git a/common/src/main/java/com/supwisdom/dlpay/api/annotation/UserStatus.java b/common/src/main/java/com/supwisdom/dlpay/api/annotation/UserStatus.java new file mode 100644 index 00000000..3b034fb2 --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/annotation/UserStatus.java @@ -0,0 +1,20 @@ +package com.supwisdom.dlpay.api.annotation; + + +import com.supwisdom.dlpay.api.validator.StatusValidator; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +@Constraint(validatedBy = {StatusValidator.class}) +@Documented +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface UserStatus { + String message() default "不正确的状态 , 应该是 'open', 'closed', 'losed' 其中之一"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/bean/ModifyUserParam.java b/common/src/main/java/com/supwisdom/dlpay/api/bean/ModifyUserParam.java new file mode 100644 index 00000000..37a5b844 --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/bean/ModifyUserParam.java @@ -0,0 +1,63 @@ +package com.supwisdom.dlpay.api.bean; + +import com.supwisdom.dlpay.api.APIRequestParam; +import com.supwisdom.dlpay.api.annotation.Sign; +import com.supwisdom.dlpay.api.exception.RequestParamCheckException; +import com.supwisdom.dlpay.api.util.Constants; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.StringUtils; + +import javax.validation.constraints.NotEmpty; + +@Getter +@Setter +public class ModifyUserParam extends APIRequestParam { + @Sign + @NotEmpty(message = "用户唯一号不能为空") + private String userid; + @Sign + private String uid; + @Sign + private String name; + @Sign + private String sex; + @Sign + private String idtype; + @Sign + private String idno; + @Sign + private String mobile; + @Sign + private String tel; + @Sign + private String email; + @Sign + private String address; + @Sign + private String zipcode; + + @Override + public boolean checkParam() throws RequestParamCheckException { + if (!StringUtils.isEmpty(sex) && !Constants.SEX_MALE.equals(sex) && !Constants.SEX_FEMALE.equals(sex)) { + throw new RequestParamCheckException("性别非法[male|female]"); + } + if (!StringUtils.isEmpty(idtype)) { + throw new RequestParamCheckException("证件类型非法"); + } + if (!StringUtils.isEmpty(idno) && !StringUtils.isAlphanumeric(idno)) { + throw new RequestParamCheckException("证件号不能为空,且仅支持数字和字母"); + } + if (!StringUtils.isEmpty(idno) && StringUtils.isEmpty(idtype)) { + throw new RequestParamCheckException("证件号不能为空时,请指定证件类型"); + } + if (!StringUtils.isEmpty(mobile) && !StringUtils.isNumeric(mobile)) { + throw new RequestParamCheckException("手机号格式错误"); + } + if (!StringUtils.isEmpty(email)) { + throw new RequestParamCheckException("邮箱格式错误"); + } + return true; + } +} + diff --git a/common/src/main/java/com/supwisdom/dlpay/api/bean/NewUserCheck.java b/common/src/main/java/com/supwisdom/dlpay/api/bean/NewUserCheck.java new file mode 100644 index 00000000..08ec2f4a --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/bean/NewUserCheck.java @@ -0,0 +1,4 @@ +package com.supwisdom.dlpay.api.bean; + +public interface NewUserCheck { +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenShopParam.java b/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenShopParam.java new file mode 100644 index 00000000..ffbd2a6e --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenShopParam.java @@ -0,0 +1,47 @@ +package com.supwisdom.dlpay.api.bean; + +import com.supwisdom.dlpay.api.APIRequestParam; +import com.supwisdom.dlpay.api.annotation.Sign; +import com.supwisdom.dlpay.api.exception.RequestParamCheckException; +import com.supwisdom.dlpay.api.annotation.ShopType; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Getter +@Setter +public class OpenShopParam extends APIRequestParam { + @Sign + @NotEmpty(message = "商户唯一号不能为空") + private String shopUniqueId; + @Sign + @NotNull(message = "商户类型不能为空") + @ShopType + private Integer shoptype; + @Sign + private Integer fshopid; + @Sign + @NotEmpty(message = "商户名称不能为空") + private String shopname; + @Sign + private String contactman; + @Sign + private String idtype; + @Sign + private String idno; + @Sign + private String mobile; + @Sign + private String email; + @Sign + private String address; + @Sign + private String zipcode; + + @Override + public boolean checkParam() throws RequestParamCheckException { + return true; + } +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java b/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java new file mode 100644 index 00000000..d76fc806 --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/bean/OpenUserParam.java @@ -0,0 +1,60 @@ +package com.supwisdom.dlpay.api.bean; + +import com.supwisdom.dlpay.api.APIRequestParam; +import com.supwisdom.dlpay.api.annotation.Sex; +import com.supwisdom.dlpay.api.annotation.Sign; +import com.supwisdom.dlpay.api.exception.RequestParamCheckException; +import com.supwisdom.dlpay.api.util.Constants; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.StringUtils; + +import javax.validation.constraints.Email; +import javax.validation.constraints.NotEmpty; + +@Setter +@Getter +public class OpenUserParam extends APIRequestParam { + @Sign + @NotEmpty(message = "用户唯一号不能为空") + private String uid; + @Sign + @NotEmpty(message = "姓名不能为空") + private String name; + @Sign + @Sex + private String sex; + @Sign + @NotEmpty(message = "证件类型非法") + private String idtype; + @Sign + @NotEmpty(message = "证件号不能为空,且仅支持数字和字母") + private String idno; + @Sign + @NotEmpty(message = "手机号格式错误") + private String mobile; + @Sign + private String tel; + @Sign + @Email + private String email; + @Sign + private String address; + @Sign + private String zipcode; + + @Override + public boolean checkParam() throws RequestParamCheckException { + if (!Constants.SEX_MALE.equals(sex) && !Constants.SEX_FEMALE.equals(sex)) { + throw new RequestParamCheckException("性别非法[male|female]"); + } + if (StringUtils.isEmpty(idno) || !StringUtils.isAlphanumeric(idno)) { + throw new RequestParamCheckException("证件号不能为空,且仅支持数字和字母"); + } + if (!StringUtils.isEmpty(mobile) && !StringUtils.isNumeric(mobile)) { + throw new RequestParamCheckException("手机号格式错误"); + } + return true; + } +} + diff --git a/common/src/main/java/com/supwisdom/dlpay/api/bean/QueryShopParam.java b/common/src/main/java/com/supwisdom/dlpay/api/bean/QueryShopParam.java new file mode 100644 index 00000000..6d1ee9a1 --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/bean/QueryShopParam.java @@ -0,0 +1,26 @@ +package com.supwisdom.dlpay.api.bean; + +import com.supwisdom.dlpay.api.APIRequestParam; +import com.supwisdom.dlpay.api.annotation.Sign; +import com.supwisdom.dlpay.api.exception.RequestParamCheckException; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.StringUtils; + +@Getter +@Setter +public class QueryShopParam extends APIRequestParam { + @Sign + private Integer shopid; + @Sign + private String shopaccno; + @Sign + private String shopUniqueId; + + @Override + public boolean checkParam() throws RequestParamCheckException { + if (StringUtils.isEmpty(shopUniqueId) && null == shopid && StringUtils.isEmpty(shopaccno)) + throw new RequestParamCheckException("商户唯一标志不能为空"); + return true; + } +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/bean/QueryUserParam.java b/common/src/main/java/com/supwisdom/dlpay/api/bean/QueryUserParam.java new file mode 100644 index 00000000..55a5dcfb --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/bean/QueryUserParam.java @@ -0,0 +1,26 @@ +package com.supwisdom.dlpay.api.bean; + +import com.supwisdom.dlpay.api.APIRequestParam; +import com.supwisdom.dlpay.api.annotation.Sign; +import com.supwisdom.dlpay.api.exception.RequestParamCheckException; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.StringUtils; + + +@Getter +@Setter +public class QueryUserParam extends APIRequestParam { + @Sign + private String userid; + @Sign + private String uid; + + @Override + public boolean checkParam() throws RequestParamCheckException { + if (StringUtils.isEmpty(userid) && StringUtils.isEmpty(uid)) { + throw new RequestParamCheckException("用户唯一号不能为空"); + } + return true; + } +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/util/Constants.java b/common/src/main/java/com/supwisdom/dlpay/api/util/Constants.java new file mode 100644 index 00000000..da6d48f3 --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/util/Constants.java @@ -0,0 +1,6 @@ +package com.supwisdom.dlpay.api.util; + +public class Constants { + public static final String SEX_MALE = "male"; + public static final String SEX_FEMALE = "female"; +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/validator/SexValidator.java b/common/src/main/java/com/supwisdom/dlpay/api/validator/SexValidator.java new file mode 100644 index 00000000..5a38bb42 --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/validator/SexValidator.java @@ -0,0 +1,22 @@ +package com.supwisdom.dlpay.api.validator; + + +import com.supwisdom.dlpay.api.annotation.Sex; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.Collections; + + +public class SexValidator implements ConstraintValidator { + private final String[] ALL_TYPE = {"male", "female", "unknown"}; + + @Override + public boolean isValid(String value, ConstraintValidatorContext context) { + return Collections.singletonList(ALL_TYPE).contains(value); + } + + @Override + public void initialize(Sex constraintAnnotation) { + } +} diff --git a/common/src/main/java/com/supwisdom/dlpay/api/validator/ShopTypeValidator.java b/common/src/main/java/com/supwisdom/dlpay/api/validator/ShopTypeValidator.java new file mode 100644 index 00000000..cdb3491d --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/validator/ShopTypeValidator.java @@ -0,0 +1,20 @@ +package com.supwisdom.dlpay.api.validator; + +import com.supwisdom.dlpay.api.annotation.ShopType; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.Collections; + +public class ShopTypeValidator implements ConstraintValidator { + private final int[] ALL_TYPE = {1, 2}; + + @Override + public boolean isValid(Integer value, ConstraintValidatorContext context) { + return Collections.singletonList(ALL_TYPE).contains(value); + } + + @Override + public void initialize(ShopType constraintAnnotation) { + } +} \ No newline at end of file diff --git a/common/src/main/java/com/supwisdom/dlpay/api/validator/StatusValidator.java b/common/src/main/java/com/supwisdom/dlpay/api/validator/StatusValidator.java new file mode 100644 index 00000000..84b8e5bb --- /dev/null +++ b/common/src/main/java/com/supwisdom/dlpay/api/validator/StatusValidator.java @@ -0,0 +1,22 @@ +package com.supwisdom.dlpay.api.validator; + +import com.supwisdom.dlpay.api.annotation.UserStatus; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.Arrays; + +public class StatusValidator implements ConstraintValidator { + private final String[] ALL_STATUS = {"open", "closed", "losed"}; + + @Override + public boolean isValid(String value, ConstraintValidatorContext context) { + if (Arrays.asList(ALL_STATUS).contains(value)) + return true; + return false; + } + + @Override + public void initialize(UserStatus constraintAnnotation) { + } +} diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/ApiLoginHelper.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/ApiLoginHelper.java index d0956038..3bb233c9 100644 --- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/ApiLoginHelper.java +++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/ApiLoginHelper.java @@ -39,4 +39,12 @@ public class ApiLoginHelper { } JwtContext.setJwt(login.getJwt()); } + + public void refresh() { + ApiLoginResponse response = apiLoginProxy.refresh(); + if (response.getRetcode() != 0) { + throw new RuntimeException("刷新JWT错误: " + response.getRetcode() + ", " + response.getException()); + } + JwtContext.setJwt(response.getJwt()); + } } diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/bean/ShopResponse.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/bean/ShopResponse.java new file mode 100644 index 00000000..f4cec8cd --- /dev/null +++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/bean/ShopResponse.java @@ -0,0 +1,11 @@ +package com.supwisdom.dlpay.paysdk.bean; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ShopResponse extends ApiResponse { + private Integer shopid; + private String shopaccno; +} diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/bean/UserResponse.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/bean/UserResponse.java new file mode 100644 index 00000000..a646aeda --- /dev/null +++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/bean/UserResponse.java @@ -0,0 +1,18 @@ +package com.supwisdom.dlpay.paysdk.bean; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class UserResponse extends ApiResponse { + private String userid; + private String uid; + private String name; + private String idtype; + private String idno; + private String mobile; + private String email; + private String status; + private Double balance; +} diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ApiLoginProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ApiLoginProxy.java index f9e5a678..22d54277 100644 --- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ApiLoginProxy.java +++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ApiLoginProxy.java @@ -17,15 +17,15 @@ public interface ApiLoginProxy { @RequestMapping(value = "/api/auth/gettoken/{clientid}", method = RequestMethod.GET) ApiLoginInitResponse loginInitWithClientId(@RequestParam("appid") String appid, - @PathVariable(value = "clientid") String clientid); + @PathVariable(value = "clientid") String clientid); @RequestMapping(value = "/api/auth/authentication", method = RequestMethod.GET) ApiLoginResponse login(@RequestParam("appid") String appid, @RequestParam("secret") String secret); @RequestMapping(value = "/api/auth/authentication/{clientid}", method = RequestMethod.GET) ApiLoginResponse loginWithClientId(@RequestParam("appid") String appid, @RequestParam("secret") String secret, - @PathVariable(value = "clientid") String clientid); + @PathVariable(value = "clientid") String clientid); @RequestMapping(value = "/api/auth/refresh", method = RequestMethod.GET) - ApiLoginResponse refresh(HttpServletRequest request); + ApiLoginResponse refresh(); } diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ShopProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ShopProxy.java new file mode 100644 index 00000000..e965ded7 --- /dev/null +++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ShopProxy.java @@ -0,0 +1,18 @@ +package com.supwisdom.dlpay.paysdk.proxy; + +import com.supwisdom.dlpay.api.bean.OpenShopParam; +import com.supwisdom.dlpay.api.bean.QueryShopParam; +import com.supwisdom.dlpay.paysdk.bean.ShopResponse; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(name = "shopProxy", url = "${payapi.url}") +public interface ShopProxy { + @PostMapping("/open") + ShopResponse openAccount(@RequestBody OpenShopParam param); + + @GetMapping("/query") + ShopResponse queryShop(@RequestBody QueryShopParam param); +} diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java new file mode 100644 index 00000000..3420e6ce --- /dev/null +++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/UserProxy.java @@ -0,0 +1,21 @@ +package com.supwisdom.dlpay.paysdk.proxy; + +import com.supwisdom.dlpay.api.bean.ModifyUserParam; +import com.supwisdom.dlpay.api.bean.OpenUserParam; +import com.supwisdom.dlpay.api.bean.QueryUserParam; +import com.supwisdom.dlpay.paysdk.bean.UserResponse; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(value = "userProxy", url = "${payapi.url}") +public interface UserProxy { + @PostMapping("/api/user/open") + UserResponse openAccount(@RequestBody OpenUserParam param); + + @PostMapping("/api/user/query") + UserResponse queryAccount(@RequestBody QueryUserParam param); + + @PostMapping("/api/user/modify") + UserResponse modifyAccount(@RequestBody ModifyUserParam param); +} diff --git a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java index 48389296..a8ea0abe 100644 --- a/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java +++ b/payapi-sdk/src/test/java/com/supwisdom/dlpay/paysdktest/CitizenCardPayProxyTest.java @@ -16,6 +16,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.FeignAutoConfiguration; import org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration; import org.springframework.context.annotation.ComponentScan; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import static org.hamcrest.MatcherAssert.assertThat; @@ -31,6 +32,7 @@ import static org.hamcrest.Matchers.equalTo; HttpMessageConvertersAutoConfiguration.class}) @EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk") @ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"}) +@TestPropertySource() public class CitizenCardPayProxyTest { private final static String appid = "700001"; private final static String secret = "5f788ce433ec44f299351cdf7f137e81"; diff --git a/libs/ojdbc6.jar b/payapi/libs/ojdbc6.jar similarity index 100% rename from libs/ojdbc6.jar rename to payapi/libs/ojdbc6.jar diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt index 87573a00..564689ef 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt @@ -8,150 +8,6 @@ import com.supwisdom.dlpay.framework.util.* import com.supwisdom.dlpay.util.ConstantUtil import com.supwisdom.dlpay.util.DESedeUtil -// ============================ USER ============================ // -class OpenUserParam : APIRequestParam() { - @Sign - var uid: String = "" //第三方用户ID,必传 - @Sign - var name: String = "" //必传 - @Sign - var sex: String? = null - @Sign - var idtype: String = "" //必传 - @Sign - var idno: String = "" //必传 - @Sign - var mobile: String? = null - @Sign - var tel: String? = null - @Sign - var email: String? = null - @Sign - var address: String? = null - @Sign - var zipcode: String? = null - - override fun checkParam(): Boolean { - if (StringUtil.isEmpty(uid)) throw RequestParamCheckException("用户唯一号不能为空") - if (StringUtil.isEmpty(name)) throw RequestParamCheckException("姓名不能为空") - if (!StringUtil.isEmpty(sex) && ConstantUtil.SEX_MALE != sex && ConstantUtil.SEX_FEMALE != sex) throw RequestParamCheckException("性别非法[male|female]") - if (StringUtil.isEmpty(idtype) || !ConstantUtil.IDTYPE_DICTS.contains(idtype)) throw RequestParamCheckException("证件类型非法") - if (StringUtil.isEmpty(idno) || !StringUtil.isCharAndNum(idno)) throw RequestParamCheckException("证件号不能为空,且仅支持数字和字母") - if (ConstantUtil.IDTYPE_IDENTITY == idtype && !StringUtil.isIdentity(idno)) throw RequestParamCheckException("身份证格式错误") - if (!StringUtil.isEmpty(mobile) && !StringUtil.isMobile(mobile)) throw RequestParamCheckException("手机号格式错误") - if (!StringUtil.isEmpty(email) && !StringUtil.isEmail(email)) throw RequestParamCheckException("邮箱格式错误") - - return true - } -} - -class QueryUserParam : APIRequestParam() { - @Sign - var userid: String? = null // 用户ID二选一 (两者都传取userid) - @Sign - var uid: String? = null // 用户ID二选一 - - override fun checkParam(): Boolean { - if (StringUtil.isEmpty(userid) && StringUtil.isEmpty(uid)) throw RequestParamCheckException("用户唯一号不能为空") - - return true - } -} - -class ModifyUserParam : APIRequestParam() { - @Sign - var userid: String? = null // 用户ID二选一 (两者都传取userid) - @Sign - var uid: String? = null // 用户ID二选一 - @Sign - var name: String? = null - @Sign - var sex: String? = null - @Sign - var idtype: String? = null - @Sign - var idno: String? = null - @Sign - var mobile: String? = null - @Sign - var tel: String? = null - @Sign - var email: String? = null - @Sign - var address: String? = null - @Sign - var zipcode: String? = null - - override fun checkParam(): Boolean { - if (StringUtil.isEmpty(userid) && StringUtil.isEmpty(uid)) throw RequestParamCheckException("用户唯一号不能为空") - if (!StringUtil.isEmpty(sex) && ConstantUtil.SEX_MALE != sex && ConstantUtil.SEX_FEMALE != sex) throw RequestParamCheckException("性别非法[male|female]") - if (!StringUtil.isEmpty(idtype) && !ConstantUtil.IDTYPE_DICTS.contains(idtype)) throw RequestParamCheckException("证件类型非法") - if (!StringUtil.isEmpty(idno) && !StringUtil.isCharAndNum(idno)) throw RequestParamCheckException("证件号不能为空,且仅支持数字和字母") - if (!StringUtil.isEmpty(idno) && StringUtil.isEmpty(idtype)) throw RequestParamCheckException("证件号不能为空时,请指定证件类型") - if (!StringUtil.isEmpty(idno) && ConstantUtil.IDTYPE_IDENTITY == idtype && !StringUtil.isIdentity(idno)) throw RequestParamCheckException("身份证格式错误") - if (!StringUtil.isEmpty(mobile) && !StringUtil.isMobile(mobile)) throw RequestParamCheckException("手机号格式错误") - if (!StringUtil.isEmpty(email) && !StringUtil.isEmail(email)) throw RequestParamCheckException("邮箱格式错误") - - return true - } -} - - -// ============================ SHOP ============================ // -class OpenShopParam : APIRequestParam() { - @Sign - var shopUniqueId: String = "" //必传 - @Sign - var shoptype: Int = 1 - @Sign - var fshopid: Int? = null - @Sign - var shopname: String = "" //必传 - @Sign - var contactman: String? = null - @Sign - var idtype: String? = null - @Sign - var idno: String? = null - @Sign - var mobile: String? = null - @Sign - var email: String? = null - @Sign - var address: String? = null - @Sign - var zipcode: String? = null - - override fun checkParam(): Boolean { - if (StringUtil.isEmpty(shopUniqueId)) throw RequestParamCheckException("商户唯一号不能为空") - if (ConstantUtil.SHOPTYPE_GROUP != shoptype && ConstantUtil.SHOPTYPE_LEAF != shoptype) throw RequestParamCheckException("请指定商户类型") - if (StringUtil.isEmpty(shopname)) throw RequestParamCheckException("商户名称不能为空") - if (!StringUtil.isEmpty(idtype) && !ConstantUtil.IDTYPE_DICTS.contains(idtype)) throw RequestParamCheckException("证件类型非法") - if (!StringUtil.isEmpty(idno) && !StringUtil.isCharAndNum(idno)) throw RequestParamCheckException("证件号不能为空,且仅支持数字和字母") - if (!StringUtil.isEmpty(idno) && StringUtil.isEmpty(idtype)) throw RequestParamCheckException("证件号不能为空时,请指定证件类型") - if (!StringUtil.isEmpty(mobile) && !StringUtil.isMobile(mobile)) throw RequestParamCheckException("手机号格式错误") - if (!StringUtil.isEmpty(email) && !StringUtil.isEmail(email)) throw RequestParamCheckException("邮箱格式错误") - - return true - } -} - -class QueryShopParam : APIRequestParam() { - @Sign - var shopid: Int? = null //注册时返回的shopid - @Sign - var shopaccno: String? = null //注册时返回的shopaccno - @Sign - var shopUniqueId: String? = null //注册传的商户唯一号 - - override fun checkParam(): Boolean { - if (StringUtil.isEmpty(shopUniqueId) && null == shopid && StringUtil.isEmpty(shopaccno)) throw RequestParamCheckException("商户唯一标志不能为空") - - return true - } -} - - class DaliDatasyncParam { var app_id: String = "" var data: String = "" diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt index 4cbb21eb..48bff6e4 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt @@ -24,12 +24,8 @@ class ShopAPIController { private lateinit var commonService: CommonService @PostMapping("/open") - fun openAccount(@RequestBody param: OpenShopParam, request: HttpServletRequest, response: HttpServletResponse): ResponseEntity { + fun openAccount(@RequestBody param: OpenShopParam): ResponseEntity { try { - if (!param.checkParam() || !param.checkSign(commonService.getAppidSecretByRequest(request))) { - return ResponseEntity.ok(ResponseBodyBuilder.create() - .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误")) - } shopService.findByThirdUniqueId(param.shopUniqueId)?.let { return ResponseEntity.ok(ResponseBodyBuilder.create() .fail(TradeErrorCode.BUSINESS_SHOP_EXISTS, "该商户唯一号[${param.shopUniqueId}]已经存在")) @@ -54,13 +50,8 @@ class ShopAPIController { } @GetMapping("/query") - fun queryShop(@RequestBody param: QueryShopParam, request: HttpServletRequest, response: HttpServletResponse): ResponseEntity { + fun queryShop(@RequestBody param: QueryShopParam): ResponseEntity { try { - if (param.checkParam() && param.checkSign(commonService.getAppidSecretByRequest(request))) { - return ResponseEntity.ok(ResponseBodyBuilder.create() - .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误")) - } - shopService.findByShopBySearch(param.shopid, param.shopaccno, param.shopUniqueId)?.let { return ResponseEntity.ok(ResponseBodyBuilder.create() .data("shop", it) diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt index 4d63b19f..551b7c65 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt @@ -24,17 +24,10 @@ import javax.servlet.http.HttpServletResponse class UserAPIController { @Autowired private lateinit var useService: UserService - @Autowired - private lateinit var commonService: CommonService @PostMapping("/open") - fun openAccount(@RequestBody param: OpenUserParam, request: HttpServletRequest, response: HttpServletResponse): ResponseEntity { + fun openAccount(@RequestBody param: OpenUserParam): ResponseEntity { try { - - if (!param.checkParam() || !param.checkSign(commonService.getAppidSecretByRequest(request))) { - return ResponseEntity.ok(ResponseBodyBuilder.create() - .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误")) - } useService.findByThirdUniqueIdenty(param.uid).let { if (null != it) { return ResponseEntity.ok(ResponseBodyBuilder.create() @@ -60,13 +53,8 @@ class UserAPIController { } @PostMapping("/query") - fun queryAccount(@RequestBody param: QueryUserParam, request: HttpServletRequest, response: HttpServletResponse): ResponseEntity { + fun queryAccount(@RequestBody param: QueryUserParam): ResponseEntity { try { - if (param.checkParam() && param.checkSign(commonService.getAppidSecretByRequest(request))) { - return ResponseEntity.ok(ResponseBodyBuilder.create() - .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误")) - } - useService.findByUseridOrThirdUniqueIdenty(param.userid, param.uid).let { if (null != it) { val account = useService.findAccountByUserid(it.userid, null) @@ -109,12 +97,8 @@ class UserAPIController { } @PostMapping("/modify") - fun modifyAccount(@RequestBody param: ModifyUserParam, request: HttpServletRequest, response: HttpServletResponse): ResponseEntity { + fun modifyAccount(@RequestBody param: ModifyUserParam): ResponseEntity { try { - if (param.checkParam() && param.checkSign(commonService.getAppidSecretByRequest(request))) { - return ResponseEntity.ok(ResponseBodyBuilder.create() - .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误")) - } useService.findByUseridOrThirdUniqueIdenty(param.userid, param.uid)?.let { param.name = param.name?.let { URLDecoder.decode(param.name, Charsets.UTF_8.toString()) } //解码 param.address = param.address?.let { URLDecoder.decode(param.address, Charsets.UTF_8.toString()) } //解码