From: yunpeng.ma Date: Wed, 30 Sep 2020 05:39:39 +0000 (+0800) Subject: 积分优化 X-Git-Tag: 1.0.27^2~4 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=896c148690e3f1b74113a6f66859e3303efc2b69;p=epayment%2Ffood_payapi.git 积分优化 --- 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 5483aa1c..988afaaa 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 @@ public interface PersonDao extends JpaRepository { TPerson findByUserid(String userid); Page 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 b32f9cf0..61f6fd66 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.CitizenCardSearchBean; 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 @@ public interface PointsService { * 通过消费获得积分 * * */ + //消费进行积分处理 + @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 c65cd8cc..27d45b21 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 @@ public class PointsServiceImpl implements PointsService { @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 @@ public class PointsServiceImpl implements PointsService { 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 @@ public class PointsServiceImpl implements PointsService { @Override public JsonResult pointsCompensate() throws ParseException { String yesterday = DateUtil.getYesterdayDay(); + logger.error("查询用户流水开始时间"+DateUtil.getNow()); List 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 @@ public class PointsServiceImpl implements PointsService { monthHandlePoints(temp.getUserid(),temp.getRefno()); } //退款流水补偿 + logger.error("查询用户流水list开始时间"+DateUtil.getNow()); List 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 class PointsServiceImpl implements PointsService { public List getShopdtlByUseridAndTransdateAndReverseFlagAndStatus(String userid,String transdate,String reverseFlag,String status){ //TAccount account = accountDao.findByUserid(userid); + logger.error("查询用户流水list2开始时间"+DateUtil.getNow()); List tShopdtls = persondtlDao.findAllByUseridAndTransdateAndReverseFlagAndStatusAndTradeflag(userid, transdate, reverseFlag, status,"out"); + logger.error("查询用户流水list2结束时间"+DateUtil.getNow()); return tShopdtls; } public List getShopdtlByUseridAndTransdateStartingWithAndReverseFlagAndStatus(String userid,String transdate,String reverseFlag,String status){ //TAccount account = accountDao.findByUserid(userid); + logger.error("查询用户流水list3开始时间"+DateUtil.getNow()); List 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 f4899968..2df8b69a 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.repository.configuration.EnableRedisReposi 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 @@ import java.net.Proxy @Configuration @EnableRedisRepositories +@EnableAsync class AppConfig { @Autowired @@ -164,4 +166,4 @@ class PayApiApplication : SpringBootServletInitializer() { fun main(args: Array) { 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 dbb56813..e7cfca63 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 @@ class TransactionServiceProxy { } 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);