浏览代码

fix: 红包扣减

xdd 1 周之前
父节点
当前提交
b554b5f403

+ 12 - 0
fs-admin/src/main/java/com/fs/task/StoreTask.java

@@ -5,6 +5,8 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.company.service.ICompanyService;
+import com.fs.company.vo.RedPacketMoneyVO;
+import com.fs.course.mapper.FsCourseRedPacketLogMapper;
 import com.fs.course.service.IFsCourseWatchLogService;
 import com.fs.erp.domain.ErpDeliverys;
 import com.fs.erp.domain.ErpGoods;
@@ -121,6 +123,9 @@ public class StoreTask
     @Autowired
     private ConfigUtil configUtil;
 
+    @Autowired
+    private FsCourseRedPacketLogMapper fsCourseRedPacketLogMapper;
+
     public void PushErp() throws ParseException {
         List<Long> ids = fsStoreOrderMapper.selectFsStoreOrderNoCreateOms();
         for (Long id : ids) {
@@ -130,6 +135,13 @@ public class StoreTask
 
     }
 
+    public void redPacketSubMoney() throws Exception
+    {
+        List<RedPacketMoneyVO> redPacketMoneyVOS = fsCourseRedPacketLogMapper.selectFsCourseRedPacketLogByCompany();
+        for (RedPacketMoneyVO redPacketMoneyVO : redPacketMoneyVOS) {
+            companyService.subtractCompanyMoney(redPacketMoneyVO.getMoney(),redPacketMoneyVO.getCompanyId());
+        }
+    }
 
     //每5分钟执行一次
     public void deliveryOp()

+ 1 - 0
fs-service-system/src/main/java/com/fs/company/service/ICompanyService.java

@@ -117,4 +117,5 @@ public interface ICompanyService
     List<OptionsVO> selectCompanyListByMap(Map<String, Object> params);
 
 
+    void subtractCompanyMoney(BigDecimal money, Long companyId);
 }

+ 20 - 0
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyServiceImpl.java

@@ -463,6 +463,26 @@ public class CompanyServiceImpl implements ICompanyService
         return companyMapper.selectCompanyListByMap(params);
     }
 
+    @Override
+    @Transactional
+    public void subtractCompanyMoney(BigDecimal money, Long companyId) {
+        if(companyId!=null&&companyId>0){
+            Company company=companyMapper.selectCompanyByIdForUpdate(companyId);
+            if(company!=null){
+                logger.info("扣除红包金额:"+money);
+                company.setMoney(company.getMoney().subtract(money));
+                companyMapper.updateCompany(company);
+                CompanyMoneyLogs log=new CompanyMoneyLogs();
+                log.setCompanyId(company.getCompanyId());
+                log.setRemark("扣除昨日红包金额");
+                log.setMoney(money.multiply(new BigDecimal(-1)));
+                log.setLogsType(15);
+                log.setBalance(company.getMoney());
+                log.setCreateTime(new Date());
+                moneyLogsMapper.insertCompanyMoneyLogs(log);
+            }
+        }
+    }
 
 
 }