积分账户和积分流水表
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/PointsAccountDao.java b/src/main/java/com/supwisdom/dlpay/api/dao/PointsAccountDao.java
new file mode 100644
index 0000000..aba2853
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/dao/PointsAccountDao.java
@@ -0,0 +1,10 @@
+package com.supwisdom.dlpay.api.dao;
+
+import com.supwisdom.dlpay.api.domain.TPointsAccount;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface PointsAccountDao extends JpaRepository<TPointsAccount, String> {
+ TPointsAccount findByUserid(String userid);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/PointsTransdtlDao.java b/src/main/java/com/supwisdom/dlpay/api/dao/PointsTransdtlDao.java
new file mode 100644
index 0000000..cf3c404
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/dao/PointsTransdtlDao.java
@@ -0,0 +1,9 @@
+package com.supwisdom.dlpay.api.dao;
+
+import com.supwisdom.dlpay.api.domain.TPointsTransdtl;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface PointsTransdtlDao extends JpaRepository<TPointsTransdtl, String> {
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPointsAccount.java b/src/main/java/com/supwisdom/dlpay/api/domain/TPointsAccount.java
new file mode 100644
index 0000000..1fda8a1
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/domain/TPointsAccount.java
@@ -0,0 +1,133 @@
+package com.supwisdom.dlpay.api.domain;
+
+import com.supwisdom.dlpay.framework.util.MD5;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * 积分账户表
+ */
+@Entity
+@Table(name = "TB_POINTS_ACCOUNT")
+public class TPointsAccount {
+ @Id
+ @Column(name = "USERID", nullable = false, length = 32)
+ private String userid;
+
+ @Column(name = "POINTS", nullable = false, precision = 15)
+ private Long points; //积分
+
+ @Column(name = "ACCUMPOINTS", precision = 15)
+ private Long accumPoints; //历史累计获取的积分
+
+ @Column(name = "SUMPAYPOINTS", precision = 15)
+ private Long sumpayPoints; //历史累计消费的积分
+
+ @Column(name = "TAC", precision = 15)
+ private String tac;
+
+ @Column(name = "LASTSAVED", precision = 15)
+ private String lastsaved;
+
+ public TPointsAccount() {
+ }
+
+ public TPointsAccount(String userid, Long points, Long accumPoints, Long sumpayPoints, String tac, String lastsaved) {
+ this.userid = userid;
+ this.points = points;
+ this.accumPoints = accumPoints;
+ this.sumpayPoints = sumpayPoints;
+ this.tac = tac;
+ this.lastsaved = lastsaved;
+ }
+
+ public String getUserid() {
+ return userid;
+ }
+
+ public void setUserid(String userid) {
+ this.userid = userid;
+ }
+
+ public Long getPoints() {
+ return points;
+ }
+
+ public void setPoints(Long points) {
+ this.points = points;
+ }
+
+ public Long getAccumPoints() {
+ return accumPoints;
+ }
+
+ public void setAccumPoints(Long accumPoints) {
+ this.accumPoints = accumPoints;
+ }
+
+ public Long getSumpayPoints() {
+ return sumpayPoints;
+ }
+
+ public void setSumpayPoints(Long sumpayPoints) {
+ this.sumpayPoints = sumpayPoints;
+ }
+
+ public String getTac() {
+ return tac;
+ }
+
+ public void setTac(String tac) {
+ this.tac = tac;
+ }
+
+ public String getLastsaved() {
+ return lastsaved;
+ }
+
+ public void setLastsaved(String lastsaved) {
+ this.lastsaved = lastsaved;
+ }
+
+ public String generateTac() {
+ String data = this.userid + this.points;
+ return MD5.generatePassword(data, this.userid);
+ }
+
+ public boolean tacCheck() {
+ String tac_c = generateTac();
+ if (tac_c.equalsIgnoreCase(this.tac) || this.tac == null) {
+ return true;
+ }
+ return false;
+ }
+
+ public void addPoints(int points) {
+ this.points = this.points + points;
+ if (points > 0) {
+ this.accumPoints = ((this.accumPoints == null ? 0 : this.accumPoints) + Math.abs(points)); //获得积分累加
+ } else {
+ this.sumpayPoints = ((this.sumpayPoints == null ? 0 : this.sumpayPoints) + Math.abs(points)); //消费积分累加
+ }
+ this.tac = this.generateTac();
+ }
+
+ public void addPoints(int points, boolean revflag) {
+ if (revflag) {
+ //冲正返回积分
+ this.points = this.points + points;
+ if (points > 0) {
+ this.sumpayPoints = ((this.sumpayPoints == null ? 0 : this.sumpayPoints) - Math.abs(points)); //消费积分累计冲正
+ } else {
+ this.accumPoints = ((this.accumPoints == null ? 0 : this.accumPoints) - Math.abs(points)); //获得积分累计冲正
+ }
+ this.tac = this.generateTac();
+ } else {
+ this.addPoints(points);
+ }
+ }
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java b/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java
new file mode 100644
index 0000000..f56a53a
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/api/domain/TPointsTransdtl.java
@@ -0,0 +1,138 @@
+package com.supwisdom.dlpay.api.domain;
+
+import javax.persistence.*;
+
+/**
+ * 积分流水表
+ */
+@Entity
+@Table(name = "TB_POINTS_TRANSDTL",
+ indexes = {@Index(name = "points_transdtl_idx", columnList = "billno")})
+public class TPointsTransdtl {
+ @Id
+ @Column(name="REFNO", nullable = false, length = 32)
+ private String refno;
+
+ @Column(name="USERID", nullable = false, length = 32)
+ private String userid;
+
+ @Column(name="ACCDATE", length = 8)
+ private String accdate;
+
+ @Column(name="POINTS", nullable = false, length = 15)
+ private Long points;
+
+ @Column(name="BEFPOINTS", length = 15)
+ private Long befpoints;
+
+ @Column(name="BEFPOINTS", length = 15)
+ private Long aftpoints;
+
+ @Column(name="STATUS", length = 15)
+ private String status;
+
+ @Column(name="BILLNO", length = 32)
+ private String billno; //关联的消费流水号
+
+ @Column(name="TRANSDATE", length = 8)
+ private String transdate;
+
+ @Column(name="TRANSTIME", length = 9)
+ private String transtime;
+
+ public TPointsTransdtl() {
+ }
+
+ public TPointsTransdtl(String refno, String userid, String accdate, Long points, Long befpoints, Long aftpoints, String status, String billno, String transdate, String transtime) {
+ this.refno = refno;
+ this.userid = userid;
+ this.accdate = accdate;
+ this.points = points;
+ this.befpoints = befpoints;
+ this.aftpoints = aftpoints;
+ this.status = status;
+ this.billno = billno;
+ this.transdate = transdate;
+ this.transtime = transtime;
+ }
+
+ public String getRefno() {
+ return refno;
+ }
+
+ public void setRefno(String refno) {
+ this.refno = refno;
+ }
+
+ public String getUserid() {
+ return userid;
+ }
+
+ public void setUserid(String userid) {
+ this.userid = userid;
+ }
+
+ public String getAccdate() {
+ return accdate;
+ }
+
+ public void setAccdate(String accdate) {
+ this.accdate = accdate;
+ }
+
+ public Long getPoints() {
+ return points;
+ }
+
+ public void setPoints(Long points) {
+ this.points = points;
+ }
+
+ public Long getBefpoints() {
+ return befpoints;
+ }
+
+ public void setBefpoints(Long befpoints) {
+ this.befpoints = befpoints;
+ }
+
+ public Long getAftpoints() {
+ return aftpoints;
+ }
+
+ public void setAftpoints(Long aftpoints) {
+ this.aftpoints = aftpoints;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getBillno() {
+ return billno;
+ }
+
+ public void setBillno(String billno) {
+ this.billno = billno;
+ }
+
+ public String getTransdate() {
+ return transdate;
+ }
+
+ public void setTransdate(String transdate) {
+ this.transdate = transdate;
+ }
+
+ public String getTranstime() {
+ return transtime;
+ }
+
+ public void setTranstime(String transtime) {
+ this.transtime = transtime;
+ }
+}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
index 69f081e..092d541 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
@@ -68,6 +68,7 @@
useService.findByUseridOrThirdUniqueIdenty(request.userid, request.uid, request.syscode).let {
if (null != it) {
val account = useService.findAccountByUserid(it.userid, null)
+ val pointacc = useService.findPointsAccountByUserid(it.userid)
ResponseEntity.ok(ResponseBodyBuilder.create()
.data("userid", it.userid)
.data("name", it.name)
@@ -80,8 +81,14 @@
} else {
it.availbal
}
- })
- .data("points", 0) //积分
+ }) //账户余额
+ .data("points", pointacc.let {
+ if (null == it) {
+ 0
+ } else {
+ it.points
+ }
+ }) //积分
.success())
}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
index 77c687f..e5f3353 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
@@ -4,9 +4,11 @@
import com.supwisdom.dlpay.api.dao.AccountDao
import com.supwisdom.dlpay.api.dao.PersonDao
import com.supwisdom.dlpay.api.dao.PersonIdentityDao
+import com.supwisdom.dlpay.api.dao.PointsAccountDao
import com.supwisdom.dlpay.api.domain.TAccount
import com.supwisdom.dlpay.api.domain.TPerson
import com.supwisdom.dlpay.api.domain.TPersonIdentity
+import com.supwisdom.dlpay.api.domain.TPointsAccount
import com.supwisdom.dlpay.framework.service.SystemUtilService
import com.supwisdom.dlpay.api.service.UserService
import com.supwisdom.dlpay.exception.TransactionProcessException
@@ -27,6 +29,8 @@
@Autowired
private lateinit var personIdentityDao: PersonIdentityDao
@Autowired
+ private lateinit var pointsAccountDao: PointsAccountDao
+ @Autowired
private lateinit var systemUtilService: SystemUtilService
override fun registerUser(param: OpenUserParam): TPerson {
@@ -107,4 +111,8 @@
}
}
+ override fun findPointsAccountByUserid(userid: String): TPointsAccount? {
+ return pointsAccountDao.findByUserid(userid)
+ }
+
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
index f01258d..0fe40a5 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
@@ -3,6 +3,7 @@
import com.supwisdom.dlpay.api.bean.OpenUserParam
import com.supwisdom.dlpay.api.domain.TAccount
import com.supwisdom.dlpay.api.domain.TPerson
+import com.supwisdom.dlpay.api.domain.TPointsAccount
import org.springframework.transaction.annotation.Propagation
import org.springframework.transaction.annotation.Transactional
@@ -26,4 +27,7 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
fun findAccountByUserid(userid: String, subjno:String?): TAccount?
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
+ fun findPointsAccountByUserid(userid: String): TPointsAccount?
+
}
\ No newline at end of file