From 1a9ea85e5c0e1e7ab1ab55656938bf99c130cc2c Mon Sep 17 00:00:00 2001 From: qiaowei Date: Thu, 8 Aug 2019 15:01:29 +0800 Subject: [PATCH] =?utf8?q?=E6=96=B0=E5=A2=9E=E5=8D=A1=E5=8F=B7=E6=9F=A5?= =?utf8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- config/application-devel-pg.properties | 14 ++++++- .../dlpay/api/bean/QueryUserParam.java | 6 ++- .../dlpay/api/bean/UserInforResponse.java | 20 +++++++++ .../dlpay/paysdk/proxy/UserProxy.java | 9 ++-- .../paysdktest/CitizenCardPayProxyTest.java | 11 +++++ payapi/build.gradle | 6 ++- .../api/controller/user_api_controller.kt | 22 +++++++--- .../dlpay/api/service/card_service.kt | 4 ++ .../api/service/impl/card_service_impl.kt | 41 +++++++++++++++++++ .../dlpay/api/service/kafka_service.kt | 16 ++++++++ .../service/impl/framework_service_impl.kt | 6 ++- .../dlpay/mobile/AuthLoginHandler.kt | 1 - .../com/supwisdom/dlpay/mobile/MobileApi.kt | 10 +++-- 13 files changed, 146 insertions(+), 20 deletions(-) create mode 100644 payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserInforResponse.java create mode 100644 payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/kafka_service.kt diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties index 8e2b45ea..7c2ec225 100644 --- a/config/application-devel-pg.properties +++ b/config/application-devel-pg.properties @@ -31,4 +31,16 @@ shopbalance.updater.cron=- ############################################# spring.cloud.consul.enabled=false spring.cloud.consul.host=172.28.201.70 -spring.cloud.consul.port=8500 \ No newline at end of file +spring.cloud.consul.port=8500 + +#============== kafka =================== +# 指定kafka 代理地址,可以多个 +# spring.kafka.bootstrap-servers=192.168.153.135:9092 +#=============== provider ======================= +spring.kafka.producer.retries=3 +# 每次批量发送消息的数量 +spring.kafka.producer.batch-size=16384 +spring.kafka.producer.buffer-memory=33554432 +# 指定消息key和消息体的编解码方式 +spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer +spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer \ No newline at end of file diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryUserParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryUserParam.java index 55a5dcfb..0a2b9945 100644 --- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryUserParam.java +++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryUserParam.java @@ -15,10 +15,14 @@ public class QueryUserParam extends APIRequestParam { private String userid; @Sign private String uid; + @Sign + private String citizencardno; + @Sign + private String bankcardno; @Override public boolean checkParam() throws RequestParamCheckException { - if (StringUtils.isEmpty(userid) && StringUtils.isEmpty(uid)) { + if (StringUtils.isEmpty(userid) && StringUtils.isEmpty(uid)&& StringUtils.isEmpty(citizencardno)&& StringUtils.isEmpty(bankcardno)) { throw new RequestParamCheckException("用户唯一号不能为空"); } return true; diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserInforResponse.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserInforResponse.java new file mode 100644 index 00000000..b544f0ed --- /dev/null +++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/UserInforResponse.java @@ -0,0 +1,20 @@ +package com.supwisdom.dlpay.api.bean; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UserInforResponse extends ApiResponse { + private String userid; + private String cardno; + private String cardstatus; + private String transstatus; + private String expiredate; + private String name; + private String status; +} 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 index ddcf1983..a75f4c80 100644 --- 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 @@ -1,10 +1,8 @@ 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.api.bean.UserResponse; +import com.supwisdom.dlpay.api.bean.*; 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; @@ -18,4 +16,7 @@ public interface UserProxy { @PostMapping("/api/user/modify") UserResponse modifyAccount(@RequestBody ModifyUserParam param); + + @PostMapping("/api/user/querybycardno") + UserInforResponse querybycardno(@RequestBody QueryUserParam 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 8229dcfe..d5984eab 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 @@ -184,6 +184,17 @@ public class CitizenCardPayProxyTest { assertThat("qrcode query " + response.getRetmsg() + response.getException(), response.getRetcode(), equalTo(0)); } + @Test + public void queryUser(){ + ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy); + helper.login(appid, secret); + QueryUserParam param = new QueryUserParam(); + param.setCitizencardno("123456"); + + UserInforResponse response = userProxy.querybycardno(param); + assertThat("user query " + response.getRetmsg() + response.getException(), + response.getRetcode(), equalTo(0)); + } @Test public void thirdpay(){ diff --git a/payapi/build.gradle b/payapi/build.gradle index d5c3abf4..face7fa9 100644 --- a/payapi/build.gradle +++ b/payapi/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + plugins { id 'java' id 'org.springframework.boot' @@ -24,7 +26,7 @@ println("Build version: $payapiVersion") bootJar { mainClassName = payapiStartClass manifest { - attributes('Payapi-Version': payapiVersion) + attributes('Payapi-Version': payapiVersion,'Payapi-Buildtime':new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())) } } @@ -71,7 +73,7 @@ dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-consul-discovery:2.1.2.RELEASE' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' - + implementation: 'org.springframework.kafka:spring-kafka:2.2.8.RELEASE' runtime("org.springframework.boot:spring-boot-devtools") implementation 'org.postgresql:postgresql:42.2.5' 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 551b7c65..3c4500ee 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 @@ -4,17 +4,16 @@ 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.api.exception.RequestParamCheckException +import com.supwisdom.dlpay.api.service.CardService import com.supwisdom.dlpay.api.service.UserService import com.supwisdom.dlpay.exception.TransactionException +import com.supwisdom.dlpay.exception.TransactionProcessException import com.supwisdom.dlpay.framework.ResponseBodyBuilder import com.supwisdom.dlpay.framework.service.CommonService import com.supwisdom.dlpay.framework.util.TradeErrorCode import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.ResponseEntity -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 org.springframework.web.bind.annotation.* import java.net.URLDecoder import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse @@ -24,6 +23,8 @@ import javax.servlet.http.HttpServletResponse class UserAPIController { @Autowired private lateinit var useService: UserService + @Autowired + private lateinit var cardService: CardService @PostMapping("/open") fun openAccount(@RequestBody param: OpenUserParam): ResponseEntity { @@ -121,6 +122,15 @@ class UserAPIController { .transException(et, "业务处理错误")) } } - - + @PostMapping("/querybycardno") + fun querybycardno(@RequestBody param: QueryUserParam): ResponseEntity { + val ret = cardService.getPersonByCardno(param.citizencardno, param.bankcardno) + return if(ret.retcode==0){ + ResponseEntity.ok(ResponseBodyBuilder.create() + .success(ret,"ok")) + }else{ + ResponseEntity.ok(ResponseBodyBuilder.create() + .fail(ret.retcode, ret.retmsg)) + } + } } \ No newline at end of file diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/card_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/card_service.kt index 4b09146d..a25562a7 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/card_service.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/card_service.kt @@ -1,7 +1,9 @@ package com.supwisdom.dlpay.api.service +import com.supwisdom.dlpay.api.bean.UserInforResponse import com.supwisdom.dlpay.api.domain.TCard import com.supwisdom.dlpay.api.domain.TPerson +import com.supwisdom.dlpay.framework.ResponseBodyBuilder import org.springframework.transaction.annotation.Transactional interface CardService { @@ -11,5 +13,7 @@ interface CardService { @Transactional(rollbackFor = arrayOf(Exception::class), readOnly = true) fun getPersonByCitizencard(cardno: String, ignoreStatus: Boolean? = false): TPerson + @Transactional(rollbackFor = arrayOf(Exception::class), readOnly = true) + fun getPersonByCardno(citizencardno: String?, bankcardno:String?): UserInforResponse } \ No newline at end of file diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/card_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/card_service_impl.kt index 5a26d569..a9bcb829 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/card_service_impl.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/card_service_impl.kt @@ -1,11 +1,13 @@ package com.supwisdom.dlpay.api.service.impl +import com.supwisdom.dlpay.api.bean.UserInforResponse import com.supwisdom.dlpay.api.dao.CardDao import com.supwisdom.dlpay.api.dao.PersonDao import com.supwisdom.dlpay.api.domain.TCard import com.supwisdom.dlpay.api.domain.TPerson import com.supwisdom.dlpay.api.service.CardService import com.supwisdom.dlpay.exception.TransactionProcessException +import com.supwisdom.dlpay.framework.ResponseBodyBuilder import com.supwisdom.dlpay.framework.util.TradeDict import com.supwisdom.dlpay.framework.util.TradeErrorCode import com.supwisdom.dlpay.util.ConstantUtil @@ -40,4 +42,43 @@ class CardServiceImpl : CardService { return personDao.findByUserid(cityCard.userid) ?: throw TransactionProcessException(TradeErrorCode.ACCOUNT_NOT_EXISTS, "市民卡[$cardno]用户信息不存在!") } + + override fun getPersonByCardno(citizencardno: String?, bankcardno: String?): UserInforResponse { + var resp = UserInforResponse() + var cityCard:TCard + if (!citizencardno.isNullOrEmpty()) { + cityCard = cardDao.findCardByCardnoAndCardtype(citizencardno, ConstantUtil.CARDTYPE_CITIZENCARD) + if(cityCard==null){ + resp.retcode=1 + resp.retmsg = "市民卡不存在" + return resp + } + } else if (!bankcardno.isNullOrEmpty()) { + cityCard = cardDao.findCardByCardnoAndCardtype(bankcardno, ConstantUtil.CARDTYPE_BANKCARD) + if(cityCard==null){ + resp.retcode=1 + resp.retmsg = "银行卡不存在" + return resp + } + } else { + resp.retcode=1 + resp.retmsg = "参数错误" + return resp + } + resp.cardno = cityCard.cardno + resp.cardstatus = cityCard.status + resp.transstatus = cityCard.transStatus + resp.expiredate = cityCard.expiredate + val person = personDao.findByUserid(cityCard.userid) + if (person != null) { + resp.retcode=0 + resp.name = person.name + resp.userid = person.userid + resp.status = person.status + return resp + } + resp.retcode=1 + resp.retmsg = "用户不存在" + return resp + } } \ No newline at end of file diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/kafka_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/kafka_service.kt new file mode 100644 index 00000000..9322b683 --- /dev/null +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/kafka_service.kt @@ -0,0 +1,16 @@ +package com.supwisdom.dlpay.api.service + +import org.springframework.stereotype.Component +import org.springframework.kafka.core.KafkaTemplate +import org.springframework.beans.factory.annotation.Autowired + + + +@Component +class KafkaSendMsgService{ + @Autowired + private lateinit var kafkaTemplate: KafkaTemplate + fun sendMessage(topic:String,msg: String) { + kafkaTemplate.send(topic, msg) + } +} \ No newline at end of file diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt index d5a13dd4..38f1499c 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/framework/service/impl/framework_service_impl.kt @@ -30,9 +30,11 @@ class CommonServiceImpl : CommonService { override fun getSystemVersion(): String { return try { - Manifests.read("Payapi-Version") ?: "version 1.0" + var ver = Manifests.read("Payapi-Version") ?: "version 1.0" + ver += Manifests.read("Payapi-Buildtime") ?: "no" + ver } catch (ex: Exception) { -// ex.printStackTrace() + ex.printStackTrace() "unknown" } } diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt index 882695e0..b8ea4fcc 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt @@ -42,7 +42,6 @@ class AuthLoginSuccessHandler : SimpleUrlAuthenticationSuccessHandler() { @Autowired lateinit var userService: UserService - override fun onAuthenticationSuccess(request: HttpServletRequest, response: HttpServletResponse, authentication: Authentication) { logger.error(request.getParameter("platform")) val temp = authentication.principal as TBMobileUser diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt index bd499105..9d780206 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt @@ -18,6 +18,7 @@ import com.supwisdom.dlpay.mobile.service.MobileApiService import com.supwisdom.dlpay.system.service.DictionaryProxy import com.supwisdom.dlpay.util.ConstantUtil import com.supwisdom.dlpay.util.RSAKeysGenerate +import mu.KotlinLogging import org.apache.commons.lang.StringUtils import org.jose4j.jwt.ReservedClaimNames import org.springframework.beans.factory.annotation.Autowired @@ -49,6 +50,7 @@ class ApiInit { lateinit var apiJwtRepository: ApiJwtRepository @Autowired lateinit var systemUtilService: SystemUtilService + val logger = KotlinLogging.logger { } @RequestMapping("/time") fun time(): JsonResult { @@ -95,7 +97,8 @@ class ApiInit { val temp = redisTemplate.opsForValue().get(phone) if (temp.isNullOrEmpty()) { val code = RandomUtils.randomNumber(6) - System.out.println(code) + logger.error { code } + //TODO 先发送成功,再放入redis redisTemplate.opsForValue().set(phone, code, Duration.ofMinutes(5)) val rs = mobileApiService.sendSms(phone, code) if ("0" != rs.retcode) { @@ -247,6 +250,7 @@ class ApiV1 { lateinit var jwtConfig: JwtConfig @Autowired lateinit var qrcodeService:QRCodeService + val logger = KotlinLogging.logger { } @RequestMapping("/idtypes") fun idtypes(): JsonResult { @@ -366,13 +370,13 @@ class ApiV1 { mobileApiService.saveCard(card) mobileApiService.saveUser(user) } - System.out.println(resp.captcha) + logger.error { resp.captcha } var code = if (resp.captcha.isNullOrEmpty()) { RandomUtils.randomNumber(6) } else { resp.captcha } - System.out.println(code) + logger.error { code } redisTemplate.opsForValue().set(user.phone, code, Duration.ofMinutes(10)) var payseted = false if (!user.paypwd.isNullOrEmpty()) { -- 2.17.1