增加大理门户修改卡片信息接口
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryCardInfo.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryCardInfo.java
new file mode 100644
index 0000000..11f9437
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryCardInfo.java
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.api.bean;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
+public class QueryCardInfo {
+ private String id;
+ private String cardno;
+ private String cardtype;
+ private String cardphyid;
+ private String status;
+ private String transStatus;
+ private String expiredate;
+ private Boolean signed = false;
+ private String userid;
+ private String lastsaved;
+ private String tenantid = "";
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryCardResponse.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryCardResponse.java
new file mode 100644
index 0000000..61bb14f
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryCardResponse.java
@@ -0,0 +1,12 @@
+package com.supwisdom.dlpay.api.bean;
+
+import lombok.*;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+@ToString
+public class QueryCardResponse extends ApiResponse {
+ QueryCardInfo card;
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryPersonInfo.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryPersonInfo.java
new file mode 100644
index 0000000..0426249
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryPersonInfo.java
@@ -0,0 +1,30 @@
+package com.supwisdom.dlpay.api.bean;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
+public class QueryPersonInfo {
+ private String userid;
+ private String name;
+ private String sex;
+ private String status;
+ private String idtype;
+ private String idno;
+ private String country;
+ private String nation;
+ private String email;
+ private String tel;
+ private String mobile;
+ private String addr;
+ private String zipcode;
+ private String lastsaved;
+ private String tenantid = "";
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryPersonResponse.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryPersonResponse.java
new file mode 100644
index 0000000..035ff25
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/QueryPersonResponse.java
@@ -0,0 +1,12 @@
+package com.supwisdom.dlpay.api.bean;
+
+import lombok.*;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+@ToString
+public class QueryPersonResponse extends ApiResponse {
+ QueryPersonInfo person;
+}
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 2aece8f..45ea831 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
@@ -2,11 +2,12 @@
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;
import org.springframework.web.bind.annotation.RequestParam;
+import java.util.Map;
+
@FeignClient(value = "userProxy", url = "${payapi.url}")
public interface UserProxy {
@PostMapping("/api/user/open")
@@ -37,11 +38,21 @@
ApiResponse getUserPoints(@RequestBody UserPointsParam param);
@PostMapping("/api/user/queryPersonDtl")
- ApiResponse queryPersonDtl(@RequestBody QueryPersonDtlParam param);
+ Map<String, Object> queryPersonDtl(@RequestBody QueryPersonDtlParam param);
+
+ @PostMapping("/api/user/billcount")
+ Map<String, Object> billCount(@RequestParam("userid") String userid,@RequestParam("month") String month);
@PostMapping("/api/user/queryPerson")
- ApiResponse queryPerson(@RequestParam("userid") String userid);
+ QueryPersonResponse queryPerson(@RequestParam("userid") String userid);
@PostMapping("/api/user/queryCard")
- ApiResponse queryCard(@RequestBody QueryCardParam param);
+ QueryCardResponse queryCard(@RequestBody QueryCardParam param);
+
+ @PostMapping("/api/user/updateCardSign")
+ ApiResponse updateCardSign(@RequestParam("cardno") String cardno,@RequestParam("signed") Boolean signed);
+
+ @PostMapping("/api/user/updateCardTransStatus")
+ ApiResponse updateCardTransStatus(@RequestParam("cardno") String cardno,@RequestParam("status") String status);
+
}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/DtlGroupResultBean.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/DtlGroupResultBean.kt
new file mode 100644
index 0000000..0e7ab74
--- /dev/null
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/DtlGroupResultBean.kt
@@ -0,0 +1,8 @@
+package com.supwisdom.dlpay.api.bean
+
+import java.math.BigDecimal
+
+class DtlGroupResultBean {
+ var transtype:String = ""
+ var amount:BigDecimal = BigDecimal(0)
+}
\ No newline at end of file
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 04a0a82..e0100f2 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
@@ -6,18 +6,15 @@
import com.supwisdom.dlpay.api.service.KafkaSendMsgService
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 com.supwisdom.dlpay.system.bean.LevelBean
import com.supwisdom.dlpay.system.service.PointsService
+import org.apache.commons.beanutils.BeanUtils
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import java.net.URLDecoder
-import javax.servlet.http.HttpServletRequest
-import javax.servlet.http.HttpServletResponse
@RestController
@RequestMapping("/api/user")
@@ -203,21 +200,64 @@
.success("ok"))
}
+ @PostMapping("/billcount")
+ fun billCount(userid:String,month:String): ResponseEntity<Any> {
+ val page = useService.findDtlMonthCountByUserid(userid,month)
+ 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()
+ ?:return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(500, "未找到[userid=${userid}]的用户"))
- return ResponseEntity.ok(ResponseBodyBuilder.create().data("data", person)
- .success("ok"))
+ return ResponseEntity.ok(ResponseBodyBuilder.create()
+ .success(QueryPersonResponse().apply{
+ this.retcode = 0
+ this.retmsg = "ok"
+ val personInfo = QueryPersonInfo()
+ BeanUtils.copyProperties(personInfo,person)
+ this.person = personInfo
+ },"ok"))
}
@PostMapping("/queryCard")
fun queryCard(@RequestBody param: QueryCardParam): ResponseEntity<Any> {
val card = cardService.getCardByCardNoOrUserid(param)
- ?:ResponseEntity.ok(ResponseBodyBuilder.create()
+ ?:return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(500, "未找到指定条件的卡片"))
- return ResponseEntity.ok(ResponseBodyBuilder.create().data("data", card)
- .success("ok"))
+ return ResponseEntity.ok(ResponseBodyBuilder.create()
+ .success(QueryCardResponse().apply {
+ this.retcode = 0
+ this.retmsg = "ok"
+ val cardInfo = QueryCardInfo()
+ BeanUtils.copyProperties(cardInfo,card)
+ this.card = cardInfo
+ },"ok"))
+ }
+
+ @PostMapping("/updateCardSign")
+ fun updateCardSign(cardno:String,signed:Boolean):ResponseEntity<Any>{
+ val ret = cardService.updateCardSign(cardno, signed)
+ return if(ret.retcode==0){
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .success(ret,"ok"))
+ }else{
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(ret.retcode, ret.retmsg))
+ }
+ }
+
+ @PostMapping("/updateCardTransStatus")
+ fun updateCardTransStatus(cardno:String,status:String):ResponseEntity<Any>{
+ val ret = cardService.updateCardTransStatus(cardno, status)
+ return if(ret.retcode==0){
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .success(ret,"ok"))
+ }else{
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(ret.retcode, ret.retmsg))
+ }
}
}
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 7330e29..e99baab 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,5 +1,6 @@
package com.supwisdom.dlpay.api.service
+import com.supwisdom.dlpay.api.bean.ApiResponse
import com.supwisdom.dlpay.api.bean.CardsResponse
import com.supwisdom.dlpay.api.bean.QueryCardParam
import com.supwisdom.dlpay.api.bean.UserInforResponse
@@ -26,4 +27,10 @@
@Transactional(rollbackFor = arrayOf(Exception::class), readOnly = true)
fun getCardByCardNoOrUserid(param: QueryCardParam): TCard?
+
+ @Transactional(rollbackFor = arrayOf(Exception::class))
+ fun updateCardSign(cardno:String,signed:Boolean): ApiResponse
+
+ @Transactional(rollbackFor = arrayOf(Exception::class))
+ fun updateCardTransStatus(cardno:String,status:String): ApiResponse
}
\ 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 daa42d8..9a0c135 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,9 +1,6 @@
package com.supwisdom.dlpay.api.service.impl
-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.bean.*
import com.supwisdom.dlpay.api.dao.CardDao
import com.supwisdom.dlpay.api.dao.PersonDao
import com.supwisdom.dlpay.api.domain.TCard
@@ -172,4 +169,34 @@
}
return null
}
+
+ override fun updateCardSign(cardno: String, signed: Boolean): ApiResponse {
+ val result = ApiResponse().apply {
+ this.retcode = 1
+ this.retmsg = "卡片不存在"
+ }
+ val card = cardDao.findCardByCardnoAndCardtype(cardno, ConstantUtil.CARDTYPE_BANKCARD)
+ ?: return result
+ card.signed = signed
+ cardDao.save(card)
+ return result.apply {
+ this.retcode = 0
+ this.retmsg = "ok"
+ }
+ }
+
+ override fun updateCardTransStatus(cardno: String, status: String): ApiResponse {
+ val result = ApiResponse().apply {
+ this.retcode = 1
+ this.retmsg = "卡片不存在"
+ }
+ val card = cardDao.findCardByCardnoAndCardtype(cardno, ConstantUtil.CARDTYPE_BANKCARD)
+ ?: return result
+ card.transStatus = status
+ cardDao.save(card)
+ return result.apply {
+ this.retcode = 0
+ this.retmsg = "ok"
+ }
+ }
}
\ 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 8b40673..ce708b1 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
@@ -1,18 +1,25 @@
package com.supwisdom.dlpay.api.service.impl
+import com.supwisdom.dlpay.api.bean.DtlGroupResultBean
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
import com.supwisdom.dlpay.api.service.UserService
import com.supwisdom.dlpay.exception.TransactionProcessException
+import com.supwisdom.dlpay.framework.service.SystemUtilService
import com.supwisdom.dlpay.framework.util.*
+import org.hibernate.query.NativeQuery
+import org.hibernate.transform.Transformers
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.data.domain.PageRequest
import org.springframework.data.domain.Sort
import org.springframework.stereotype.Service
+import java.math.BigDecimal
+import javax.persistence.EntityManager
+import javax.persistence.PersistenceContext
+import javax.persistence.Query
/**
* Created by shuwei on 2019/4/15.
@@ -31,6 +38,8 @@
private lateinit var systemUtilService: SystemUtilService
@Autowired
private lateinit var persondtlDao: PersondtlDao
+ @PersistenceContext
+ private lateinit var em: EntityManager
override fun registerUser(param: OpenUserParam): TPerson {
@@ -185,6 +194,31 @@
return PageResult<TPersondtl>(persondtlDao.findByUseridAndStatusAndTransdateBetween(param.userid,TradeDict.DTL_STATUS_SUCCESS,param.month+"00",param.month+"32",pageable))
}
+ @Suppress("JpaQueryApiInspection")
+ override fun findDtlMonthCountByUserid(userid: String, month: String): Map<String, Any>? {
+ val totalSql = "select sum(cast(amount as decimal(18,2))) total from tb_persondtl where userid =:userid and transdate between :startdate and :enddate and status = 'success' and tradeflag = 'out'"
+ val totalQuery: Query = em.createNativeQuery(totalSql)
+ totalQuery.setParameter("userid", userid)
+ totalQuery.setParameter("startdate", month + "00")
+ totalQuery.setParameter("enddate", month + "32")
+ val list = totalQuery.resultList
+ val result = HashMap<String,Any>()
+ if (list.isNotEmpty()&&list[0]!=null) {
+ result["total"] = list[0] as BigDecimal
+ val groupSql = "select transdesc transtype,sum(cast(amount as decimal(18,2))) amount from tb_persondtl where userid =:userid and transdate between :startdate and :enddate and status = 'success' and tradeflag = 'out' group by transdesc"
+ val groupQuery = em.createNativeQuery(groupSql)
+ groupQuery.setParameter("userid", userid)
+ groupQuery.setParameter("startdate", month + "00")
+ groupQuery.setParameter("enddate", month + "32")
+ val nativeQuery = groupQuery.unwrap(NativeQuery::class.java)
+ nativeQuery.setResultTransformer(Transformers.aliasToBean(DtlGroupResultBean::class.java))
+ result["group"] = nativeQuery.resultList
+ } else {
+ result["total"] = 0
+ }
+ return result
+ }
+
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 30cb60c..26fc2ff 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
@@ -49,6 +49,9 @@
fun findPersondtlByUseridAndMonth(param: QueryPersonDtlParam) : PageResult<TPersondtl>
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
+ fun findDtlMonthCountByUserid(userid:String,month: String) : Map<String,Any>?
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
fun findPersondtlDetailByUserid(userid:String, billno :String) : TPersondtl?
}
\ No newline at end of file