积分优化
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java
index 5483aa1..988afaa 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java
@@ -19,8 +19,4 @@
TPerson findByUserid(String userid);
Page<TPerson> findAllByNameContaining(String name, Pageable pageable);
-
- TPerson findByUseridAndAndName(String userid,String name);
-
- TPerson findByUseridAndIdtype(String userid,String idtype);
}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/PointsService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/PointsService.java
index b32f9cf..61f6fd6 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/PointsService.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/PointsService.java
@@ -11,6 +11,7 @@
import com.supwisdom.dlpay.system.bean.CitizenCardShowBean;
import com.supwisdom.dlpay.system.bean.LevelBean;
import com.supwisdom.dlpay.system.bean.PersonParamBean;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@@ -74,6 +75,10 @@
* 通过消费获得积分
*
* */
+ //消费进行积分处理
+ @Async
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ void consumePoints(String userid,Double amount,String billno) throws ParseException;
//单次消费进行积分处理
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
Boolean singleHandlePoints(String userid,Double amount,String billno) throws ParseException;
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/PointsServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/PointsServiceImpl.java
index c65cd8c..27d45b2 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/PointsServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/PointsServiceImpl.java
@@ -119,11 +119,15 @@
@Override
public PageResult getTPointsByname(LevelBean param) {
+ logger.error("通过卡号查询用户卡开始时间"+DateUtil.getNow());
TCard tCard = cardDao.findCardByCardnoAndCardtype(param.getIdno(), ConstantUtil.CARDTYPE_CITIZENCARD);
+ logger.error("通过卡号查询用户卡结束时间"+DateUtil.getNow());
if (tCard == null || StringUtil.isEmpty(tCard.getUserid())) {
return new PageResult<>(99, "未查询到该用户的信息");
}
- TPerson tPerson = personDao.findByUseridAndAndName(tCard.getUserid(), param.getName());
+ logger.error("通过用户id和名称查询用户信息开始时间"+DateUtil.getNow());
+ TPerson tPerson = personDao.findByUserid(tCard.getUserid());
+ logger.error("通过用户id和名称查询用户信息结束时间"+DateUtil.getNow());
if (tPerson == null) {
return new PageResult<>(99, "未查询到该用户的信息");
}
@@ -221,13 +225,20 @@
consumePointsDao.deleteById(tConsumePoints.getId());
return JsonResult.ok("成功");
}
-
+ @Override
+ public void consumePoints(String userid, Double amount, String billno) throws ParseException {
+ singleHandlePoints(userid,amount,billno);
+ dayHandlePoints(userid,billno);
+ monthHandlePoints(userid,billno);
+ }
@Override
public Boolean singleHandlePoints(String userid, Double amount, String billno) throws ParseException {
double rate = 1;
// 1.根据当天日期判断当天是否该用户的特殊日期或者生日,得到实际倍率
String nowDateTemp = DateUtil.getNow("yyyyMMdd");
- TPerson person = personDao.findByUseridAndIdtype(userid, "idcard");
+ logger.error("单次消费查询用户信息开始时间"+DateUtil.getNow());
+ TPerson person = personDao.findByUserid(userid);
+ logger.error("单次消费查询用户信息结束时间"+DateUtil.getNow());
if (person != null && !StringUtil.isEmpty(person.getIdno())) {
String nowDate = DateUtil.getNow("MMdd");
String brithdate = person.getIdno().substring(10, 14);
@@ -954,7 +965,9 @@
@Override
public JsonResult pointsCompensate() throws ParseException {
String yesterday = DateUtil.getYesterdayDay();
+ logger.error("查询用户流水开始时间"+DateUtil.getNow());
List<TPersondtl> tPersondtl = persondtlDao.findAllByTransdateAndReverseFlagAndStatusAndTradeflag("20200821", "none", "success","out");
+ logger.error("查询用户流水结束时间"+DateUtil.getNow());
//消费流水补偿
for(TPersondtl temp:tPersondtl){
singleHandlePoints(temp.getUserid(),temp.getAmount(),temp.getRefno());
@@ -962,7 +975,9 @@
monthHandlePoints(temp.getUserid(),temp.getRefno());
}
//退款流水补偿
+ logger.error("查询用户流水list开始时间"+DateUtil.getNow());
List<TPersondtl> tPersondtlReve = persondtlDao.findAllByTransdateAndReverseFlagAndStatusAndTradeflag("20200821", "refund", "success","out");
+ logger.error("查询用户流水list结束时间"+DateUtil.getNow());
for(TPersondtl temp:tPersondtlReve){
//退款怎么确认,refno和支付时一样吗
refundHandlePoints(temp.getUserid(),temp.getRefno());
@@ -972,12 +987,16 @@
public List<TPersondtl> getShopdtlByUseridAndTransdateAndReverseFlagAndStatus(String userid,String transdate,String reverseFlag,String status){
//TAccount account = accountDao.findByUserid(userid);
+ logger.error("查询用户流水list2开始时间"+DateUtil.getNow());
List<TPersondtl> tShopdtls = persondtlDao.findAllByUseridAndTransdateAndReverseFlagAndStatusAndTradeflag(userid, transdate, reverseFlag, status,"out");
+ logger.error("查询用户流水list2结束时间"+DateUtil.getNow());
return tShopdtls;
}
public List<TPersondtl> getShopdtlByUseridAndTransdateStartingWithAndReverseFlagAndStatus(String userid,String transdate,String reverseFlag,String status){
//TAccount account = accountDao.findByUserid(userid);
+ logger.error("查询用户流水list3开始时间"+DateUtil.getNow());
List<TPersondtl> tShopdtls = persondtlDao.findAllByUseridAndTransdateStartingWithAndReverseFlagAndStatusAndTradeflag(userid, transdate, reverseFlag, status,"out");
+ logger.error("查询用户流水list3结束时间"+DateUtil.getNow());
return tShopdtls;
}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
index f489996..2df8b69 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/PayApiApplication.kt
@@ -30,6 +30,7 @@
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer
import org.springframework.data.redis.serializer.StringRedisSerializer
import org.springframework.http.client.SimpleClientHttpRequestFactory
+import org.springframework.scheduling.annotation.EnableAsync
import org.springframework.scheduling.annotation.EnableScheduling
import org.springframework.stereotype.Component
import org.springframework.web.client.RestTemplate
@@ -39,6 +40,7 @@
@Configuration
@EnableRedisRepositories
+@EnableAsync
class AppConfig {
@Autowired
@@ -164,4 +166,4 @@
fun main(args: Array<String>) {
SpringApplication.run(PayApiApplication::class.java, * args)
-}
\ No newline at end of file
+}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
index dbb5681..e7cfca6 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_service.kt
@@ -109,11 +109,7 @@
}
if(-it.personDtl.amount>=0) {
//支付成功 进行积分处理
- pointsService.singleHandlePoints(it.personDtl.userid, -it.personDtl.amount, refno);
- pointsService.dayHandlePoints(it.personDtl.userid, refno);
- pointsService.monthHandlePoints(it.personDtl.userid, refno);
- // pointsService.pointsOutdate();
- pointsService.pointsCompensate();
+ pointsService.consumePoints(it.personDtl.userid, -it.personDtl.amount, refno);
}else {
//退款之后进行积分处理
pointsService.refundHandlePoints(it.personDtl.userid, it.reverseRefno);