增加大理门户查询数据接口
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryCardParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryCardParam.java
new file mode 100644
index 0000000..f9c6c03
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryCardParam.java
@@ -0,0 +1,30 @@
+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;
+
+import javax.validation.constraints.NotEmpty;
+
+@Getter
+@Setter
+public class QueryCardParam extends APIRequestParam {
+  @Sign
+  private String cardno;
+  @Sign
+  private String userid;
+  @Sign
+  @NotEmpty(message = "卡片类型不能为空")
+  private String cardtype;
+
+  @Override
+  public boolean checkParam() throws RequestParamCheckException {
+    if (StringUtils.isEmpty(cardno) && StringUtils.isEmpty(cardno)) {
+      throw new RequestParamCheckException("卡号或用户ID不能全为空");
+    }
+    return true;
+  }
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryPersonDtlParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryPersonDtlParam.java
new file mode 100644
index 0000000..35d0b9d
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryPersonDtlParam.java
@@ -0,0 +1,31 @@
+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 javax.validation.constraints.NotEmpty;
+
+@Getter
+@Setter
+public class QueryPersonDtlParam extends APIRequestParam {
+  @Sign
+  @NotEmpty(message = "userid不能为空")
+  private String userid;
+  @Sign
+  @NotEmpty(message = "查询月份不能为空")
+  private String month;
+  @Sign
+  @NotEmpty(message = "起始页不能为空")
+  private Integer pageno;
+  @Sign
+  @NotEmpty(message = "每页条数不能为空")
+  private Integer pagesize;
+
+  @Override
+  public boolean checkParam() throws RequestParamCheckException {
+    return true;
+  }
+}
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 c803535..2aece8f 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
@@ -5,6 +5,7 @@
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 @FeignClient(value = "userProxy", url = "${payapi.url}")
 public interface UserProxy {
@@ -34,4 +35,13 @@
 
   @PostMapping("/api/user/getUserPoints")
   ApiResponse getUserPoints(@RequestBody UserPointsParam param);
+
+  @PostMapping("/api/user/queryPersonDtl")
+  ApiResponse queryPersonDtl(@RequestBody QueryPersonDtlParam param);
+
+  @PostMapping("/api/user/queryPerson")
+  ApiResponse queryPerson(@RequestParam("userid") String userid);
+
+  @PostMapping("/api/user/queryCard")
+  ApiResponse queryCard(@RequestBody QueryCardParam param);
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java
index 1826197..0f39c37 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersondtlDao.java
@@ -15,6 +15,7 @@
 @Repository
 public interface PersondtlDao extends JpaRepository<TPersondtl, String>,JpaSpecificationExecutor<TPersondtl> {
     Page<TPersondtl> findByUseridAndStatus(String userid,String status, Pageable pageable);
+    Page<TPersondtl> findByUseridAndStatusAndTransdateBetween(String userid, String status,String startdate,String enddate, Pageable pageable);
 
     @Query("select count(t.refno) as totalcnt,sum(t.amount) as totalamt from TPersondtl t where t.status='success' and t.accdate=?1 and t.sourceType=?2 and t.tenantid=?3 ")
     CountAmountBean getPersondtlSumInfo(String accdate, String sourcetype, String tenantid);
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 94b077b..04a0a82 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
@@ -195,4 +195,29 @@
         return  ResponseEntity.ok(ResponseBodyBuilder.create().data("page", ret!!)
                     .success("ok"))
     }
+
+    @PostMapping("/queryPersonDtl")
+    fun queryPersonDtl(@RequestBody param: QueryPersonDtlParam): ResponseEntity<Any> {
+        val page = useService.findPersondtlByUseridAndMonth(param)
+        return  ResponseEntity.ok(ResponseBodyBuilder.create().data("data", page)
+                .success("ok"))
+    }
+
+    @PostMapping("/queryPerson")
+    fun queryPersonDtl( userid:String ): ResponseEntity<Any> {
+        val person = useService.findPersonByUserid(userid)
+                ?:ResponseEntity.ok(ResponseBodyBuilder.create()
+                        .fail(500, "未找到[userid=${userid}]的用户"))
+        return  ResponseEntity.ok(ResponseBodyBuilder.create().data("data", person)
+                .success("ok"))
+    }
+
+    @PostMapping("/queryCard")
+    fun queryCard(@RequestBody param: QueryCardParam): ResponseEntity<Any> {
+        val card = cardService.getCardByCardNoOrUserid(param)
+                ?:ResponseEntity.ok(ResponseBodyBuilder.create()
+                        .fail(500, "未找到指定条件的卡片"))
+        return  ResponseEntity.ok(ResponseBodyBuilder.create().data("data", card)
+                .success("ok"))
+    }
 }
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 b262bbb..7330e29 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,6 +1,7 @@
 package com.supwisdom.dlpay.api.service
 
 import com.supwisdom.dlpay.api.bean.CardsResponse
+import com.supwisdom.dlpay.api.bean.QueryCardParam
 import com.supwisdom.dlpay.api.bean.UserInforResponse
 import com.supwisdom.dlpay.api.domain.TCard
 import com.supwisdom.dlpay.api.domain.TPerson
@@ -22,4 +23,7 @@
 
     @Transactional(rollbackFor = arrayOf(Exception::class), readOnly = true)
     fun getPersonByUserid(userid: String): UserInforResponse
+
+    @Transactional(rollbackFor = arrayOf(Exception::class), readOnly = true)
+    fun getCardByCardNoOrUserid(param: QueryCardParam): TCard?
 }
\ 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 095115d..daa42d8 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
@@ -2,6 +2,7 @@
 
 import com.supwisdom.dlpay.api.bean.CardsResponse
 import com.supwisdom.dlpay.api.bean.CitizenCardInfo
+import com.supwisdom.dlpay.api.bean.QueryCardParam
 import com.supwisdom.dlpay.api.bean.UserInforResponse
 import com.supwisdom.dlpay.api.dao.CardDao
 import com.supwisdom.dlpay.api.dao.PersonDao
@@ -9,6 +10,7 @@
 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.util.StringUtil
 import com.supwisdom.dlpay.framework.util.TradeDict
 import com.supwisdom.dlpay.framework.util.TradeErrorCode
 import com.supwisdom.dlpay.util.ConstantUtil
@@ -161,4 +163,13 @@
         resp.retmsg = "查询成功"
         return resp
     }
+
+    override fun getCardByCardNoOrUserid(param: QueryCardParam): TCard? {
+        if (!StringUtil.isEmpty(param.cardno)) {
+            return cardDao.findCardByCardnoAndCardtype(param.cardno,param.cardtype)
+        }else if (!StringUtil.isEmpty(param.userid)) {
+            return cardDao.findCardByUseridAndCardtype(param.userid,param.cardtype)
+        }
+        return null
+    }
 }
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
index 3256e61..8b40673 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
@@ -2,6 +2,7 @@
 
 import com.supwisdom.dlpay.api.bean.ModifyUserParam
 import com.supwisdom.dlpay.api.bean.OpenUserParam
+import com.supwisdom.dlpay.api.bean.QueryPersonDtlParam
 import com.supwisdom.dlpay.api.dao.*
 import com.supwisdom.dlpay.api.domain.*
 import com.supwisdom.dlpay.framework.service.SystemUtilService
@@ -179,6 +180,11 @@
         return PageResult<TPersondtl>(persondtlDao.findByUseridAndStatus(userid,TradeDict.DTL_STATUS_SUCCESS,pageable))
     }
 
+    override fun findPersondtlByUseridAndMonth(param: QueryPersonDtlParam): PageResult<TPersondtl> {
+        var pageable = PageRequest.of(param.pageno - 1, param.pagesize, Sort.Direction.DESC, "transdate","transtime")
+        return PageResult<TPersondtl>(persondtlDao.findByUseridAndStatusAndTransdateBetween(param.userid,TradeDict.DTL_STATUS_SUCCESS,param.month+"00",param.month+"32",pageable))
+    }
+
     override fun findPersondtlDetailByUserid(userid: String, billno: String): TPersondtl? {
         var dtl = persondtlDao.findById(billno)
         if(dtl.isPresent){
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
index f758859..30cb60c 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
@@ -2,6 +2,7 @@
 
 import com.supwisdom.dlpay.api.bean.ModifyUserParam
 import com.supwisdom.dlpay.api.bean.OpenUserParam
+import com.supwisdom.dlpay.api.bean.QueryPersonDtlParam
 import com.supwisdom.dlpay.api.domain.*
 import com.supwisdom.dlpay.framework.util.PageResult
 import org.springframework.transaction.annotation.Propagation
@@ -45,6 +46,9 @@
     fun findPersondtlByUserid(userid:String, pageno :Int) : PageResult<TPersondtl>
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
+    fun findPersondtlByUseridAndMonth(param: QueryPersonDtlParam) : PageResult<TPersondtl>
+
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
     fun findPersondtlDetailByUserid(userid:String, billno :String) : TPersondtl?
 
 }
\ No newline at end of file