From: Xia Kaixiang Date: Mon, 6 May 2019 03:26:09 +0000 (+0800) Subject: 积分账户和积分流水表 X-Git-Tag: 1.0.0^2~237 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=a14c27b17ceb53a45ec6144402f29fff542a83fc;p=epayment%2Ffood_payapi.git 积分账户和积分流水表 --- 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 00000000..aba2853b --- /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 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 00000000..cf3c404b --- /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 { +} 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 00000000..1fda8a1a --- /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 00000000..f56a53a9 --- /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 69f081e1..092d5415 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 @@ class UserAPIController { 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 @@ class UserAPIController { } 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 77c687f5..e5f3353a 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.bean.OpenUserParam 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 @@ class UserServiceImpl : UserService { @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 @@ class UserServiceImpl : UserService { } } + 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 f01258d9..0fe40a53 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 @@ package com.supwisdom.dlpay.api.service 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 @@ interface UserService { @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