diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFavorable/mapper/xml/CardFavorableRecordMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFavorable/mapper/xml/CardFavorableRecordMapper.xml
index 63b0221d5..f10ee266f 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFavorable/mapper/xml/CardFavorableRecordMapper.xml
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFavorable/mapper/xml/CardFavorableRecordMapper.xml
@@ -123,7 +123,7 @@
LEFT JOIN card_exchange ce ON cer.card_exchange_id = ce.id
WHERE
cer.mt_user_id = #{cardFavorableDTOS.id}
- and ce.type = 0 or ce.type = 1
+ and ce.type = 0 or cer.mt_user_id = #{cardFavorableDTOS.id} and ce.type = 1
and cer.status = #{cardFavorableDTOS.useStatus}
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/controller/CardFuelRecordController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/controller/CardFuelRecordController.java
index c2dc3acfd..b21e9659b 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/controller/CardFuelRecordController.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/controller/CardFuelRecordController.java
@@ -173,5 +173,10 @@ public class CardFuelRecordController extends BaseController {
public ResponseObject selectFuelRecordCount(@Param("cardFuelRecord") CardFuelRecord cardFuelRecord) {
return getSuccessResult(this.cardFuelRecordService.selectFuelRecordCount(cardFuelRecord));
}
+
+ @GetMapping("testgtr")
+ public void test() {
+ this.cardFuelRecordService.expireOilToBalance();
+ }
}
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/entity/CardFuelRecord.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/entity/CardFuelRecord.java
index 21ffe6883..8737d3bad 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/entity/CardFuelRecord.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/entity/CardFuelRecord.java
@@ -32,6 +32,7 @@ public class CardFuelRecord extends BaseEntity {
* 会员名字
*/
private String name;
+ private String enchangeStatus;
/**
* 会员手机号码
*/
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/service/impl/CardFuelRecordServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/service/impl/CardFuelRecordServiceImpl.java
index c5a11a8a4..d10dd3b19 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/service/impl/CardFuelRecordServiceImpl.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/service/impl/CardFuelRecordServiceImpl.java
@@ -45,6 +45,7 @@ import com.fuint.business.userManager.mapper.UserBalanceMapper;
import com.fuint.business.userManager.service.UserBalanceService;
import com.fuint.business.userManager.vo.LJUserVo;
import com.fuint.common.util.RedisLock;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
@@ -57,6 +58,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@@ -69,6 +71,7 @@ import java.util.concurrent.TimeUnit;
* @since 2023-11-13 18:53:47
*/
@Service("cardFuelRecordService")
+@Slf4j
public class CardFuelRecordServiceImpl implements CardFuelRecordService {
@Resource
private CardFuelRecordMapper cardFuelRecordMapper;
@@ -701,36 +704,48 @@ public class CardFuelRecordServiceImpl implements CardFuelRecordService {
@Scheduled(cron = "0 0 1 * * ?")
public void expireOilToBalance() {
+ log.info("开始执行定时任务:过期油品转余额");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String format = simpleDateFormat.format(date);
//余额
List list = userBalanceService.list();
-// UserBalance userBalance = userBalanceService.getById(130);
- for (UserBalance userBalance : list) {
+ LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>();
+ queryWrapper1.eq(UserBalance::getMtUserId, 125);
+ List list1 = userBalanceService.list(queryWrapper1);
+ // UserBalance userBalance = userBalanceService.getById(125);
+ for (UserBalance userBalance : list1) {
String refuelMoney = userBalance.getRefuelMoney();
Double cardBalance = userBalance.getCardBalance();
if (ObjectUtils.isNotEmpty(userBalance.getChainStoreId()) && ObjectUtils.isNotEmpty(refuelMoney)) {
List jsonObjectList = JSONArray.parseArray(refuelMoney, JSONObject.class);
-
+ String oilType = "";
+ String type = "";
+ double refuelMoney1 = 0.0;
for (JSONObject jsonObject : jsonObjectList) {
- String oilType = jsonObject.getString("oilType");
- String type = jsonObject.getString("type");
- Integer refuelMoney1 = jsonObject.getInteger("refuelMoney");
+ oilType = jsonObject.getString("oilType");
+ type = jsonObject.getString("type");
+ refuelMoney1 = jsonObject.getDouble("refuelMoney");
+ }
if (ObjectUtils.isNotEmpty(oilType)) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CardFuelRecord::getChainStoreId, userBalance.getChainStoreId())
.eq(CardFuelRecord::getMtUserId, userBalance.getMtUserId())
.eq(CardFuelRecord::getOilType, oilType)
- .orderByAsc(CardFuelRecord::getCreateTime);
+ .orderByAsc(CardFuelRecord::getCreateTime)
+ .eq(CardFuelRecord::getEnchangeStatus, "0");
List cardFuelRecords = cardFuelRecordMapper.selectList(queryWrapper);
- Double oil = 0.0;
+ double oils = 0.00;
+ double oil = 0.00;
+
Integer index = -1;
for (CardFuelRecord cardFuelRecord : cardFuelRecords) {
- if(refuelMoney1 >= oil){
- oil += cardFuelRecord.getPayAmount()/cardFuelRecord.getLockupPrice();
+ if(refuelMoney1 > oil){
+ oils += cardFuelRecord.getPayAmount()/cardFuelRecord.getLockupPrice();
+ BigDecimal bd3 = BigDecimal.valueOf(oils).setScale(2, RoundingMode.HALF_UP);
+ oil = bd3.doubleValue();
index += 1;
}else {
// if (ObjectUtils.isNotEmpty(cardFuelRecord.getExpireTime())){
@@ -753,8 +768,60 @@ public class CardFuelRecordServiceImpl implements CardFuelRecordService {
// }
// }
}
+ if (CollectionUtil.isNotEmpty(cardFuelRecords) &&
+ ObjectUtils.isNotEmpty(cardFuelRecords.get(index).getExpireTime())){
+ String format1 = simpleDateFormat.format(cardFuelRecords.get(index).getExpireTime());
+ //如果到期 这次充值囤油的钱转到余额
+ if (format1.equals(format)){
+ CardFuelRecord cardFuelRecord1 = cardFuelRecords.get(index);
+ cardFuelRecord1.setEnchangeStatus("1");
+ cardFuelRecordMapper.updateById(cardFuelRecord1);
+ double restOils = 0.00;
+ if (oil > refuelMoney1){
+ restOils = cardFuelRecords.get(index).getIncomeLitres() - (oil - refuelMoney1);
+ }else {
+ restOils = cardFuelRecords.get(index).getIncomeLitres();
+ }
+
+ //升数对应减少
+ BigDecimal bd = BigDecimal.valueOf(restOils).setScale(2, RoundingMode.HALF_UP);
+ double restOil = bd.doubleValue();
+
+ Double lockupPrices = cardFuelRecords.get(index).getLockupPrice();
+ BigDecimal bd1 = BigDecimal.valueOf(lockupPrices).setScale(2, RoundingMode.HALF_UP);
+ double lockupPrice = bd1.doubleValue();
+
+ double restMoneys = restOil * lockupPrice;
+ BigDecimal bd2 = BigDecimal.valueOf(restMoneys).setScale(1, RoundingMode.HALF_UP);
+ double restMoney = bd2.doubleValue();
+
+// JSONObject jsonObject1 = new JSONObject();
+// jsonObject1.put("type", type);
+// jsonObject1.put("oilType", oilType);
+// jsonObject1.put("refuelMoney", refuelMoney1-restOil);
+
+ List refuelMoneysList = new ArrayList<>();
+ for (JSONObject object : jsonObjectList) {
+ RefuelMoney refuelMoney2 = new RefuelMoney();
+ if (object.get("oilType").equals(oilType)){
+ refuelMoney2.setRefuelMoney(String.valueOf(refuelMoney1-restOil));
+ }else {
+ refuelMoney2.setRefuelMoney(object.get("refuelMoney").toString());
+ }
+ refuelMoney2.setType(object.get("type").toString());
+ refuelMoney2.setOilType(object.get("oilType").toString());
+ refuelMoneysList.add(refuelMoney2);
+ }
+
+// jsonObjectList.add(jsonObject1);
+ String userBnlancce = jsonObjectList.toString();
+ userBalance.setRefuelMoney(com.alibaba.fastjson2.JSONObject.toJSONString(refuelMoneysList));
+ userBalance.setCardBalance(cardBalance + restMoney);
+ userBalanceService.updateUserBalance(userBalance);
+ }
+ }
}
- if (CollectionUtil.isNotEmpty(cardFuelRecords) &&
+ /*if (CollectionUtil.isNotEmpty(cardFuelRecords) &&
ObjectUtils.isNotEmpty(cardFuelRecords.get(index).getExpireTime())){
String format1 = simpleDateFormat.format(cardFuelRecords.get(index).getExpireTime());
//如果到期 这次充值囤油的钱转到余额
@@ -788,9 +855,9 @@ public class CardFuelRecordServiceImpl implements CardFuelRecordService {
userBalance.setCardBalance(cardBalance + restMoney);
userBalanceService.updateUserBalance(userBalance);
}
- }
+ }*/
}
- }
+
}
}
}
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java
index 9a20cb53b..27241f90b 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java
@@ -176,7 +176,10 @@ public class AllOrderInfoServiceImpl extends ServiceImpl i
growthAfter = growth + addVal;
// 如果会员成长值达到会员等级成长值,则修改会员的会员等级信息
for (int i = 0; i < records.size(); i++){
- if ((growthAfter-records.get(i).getGrowthValue())<100){
- balance.setGradeId(records.get(i).getId());
- }
- if (growthAfter>records.get(records.size()-1).getGrowthValue()){
- balance.setGradeId(records.get(records.size()-1).getId());
+ if (growthAfter i
growthAfter = growth + addVal;
// 如果会员成长值达到会员等级成长值,则修改会员的会员等级信息
for (int i = 0; i < records.size(); i++){
- if ((growthAfter-records.get(i).getGrowthValue())<100 && (growthAfter-records.get(i).getGrowthValue())>0){
- balance.setGradeId(records.get(i).getId());
- }
- if (growthAfter > records.get(records.size()-1).getGrowthValue()){
- balance.setGradeId(records.get(records.size()-1).getId());
+ if (growthAfter i
growthAfter = growth + addVal;
// 如果会员成长值达到会员等级成长值,则修改会员的会员等级信息
for (int i = 0; i < records.size(); i++){
- if ((growthAfter-records.get(i).getGrowthValue())<100){
- balance.setGradeId(records.get(i).getId());
- }
- if (growthAfter>records.get(records.size()-1).getGrowthValue()){
- balance.setGradeId(records.get(records.size()-1).getId());
+ if (growthAfter i
growthAfter = growth + addVal;
// 如果会员成长值达到会员等级成长值,则修改会员的会员等级信息
for (int i = 0; i < records.size(); i++){
- if ((growthAfter-records.get(i).getGrowthValue())<100){
- balance.setGradeId(records.get(i).getId());
- }
- if (growthAfter>records.get(records.size()-1).getGrowthValue()){
- balance.setGradeId(records.get(records.size()-1).getId());
+ if (growthAfter i
growthAfter = growth + addVal;
// 如果会员成长值达到会员等级成长值,则修改会员的会员等级信息
for (int i = 0; i < records.size(); i++){
- if ((growthAfter-records.get(i).getGrowthValue())<100 && (growthAfter-records.get(i).getGrowthValue())>0){
- balance.setGradeId(records.get(i).getId());
- }
- if (growthAfter > records.get(records.size()-1).getGrowthValue()){
- balance.setGradeId(records.get(records.size()-1).getId());
+ if (growthAfter i
growthAfter = growth + addVal;
// 如果会员成长值达到会员等级成长值,则修改会员的会员等级信息
for (int i = 0; i < records.size(); i++){
- if ((growthAfter-records.get(i).getGrowthValue())<100){
- balance.setGradeId(records.get(i).getId());
- }
- if (growthAfter>records.get(records.size()-1).getGrowthValue()){
- balance.setGradeId(records.get(records.size()-1).getId());
+ if (growthAfter