添加盛安豆充值赠送的定时任务逻辑

This commit is contained in:
yangjun 2024-08-06 20:44:34 +08:00
parent b8a41972fe
commit d82dd32743
6 changed files with 157 additions and 0 deletions

View File

@ -0,0 +1,10 @@
package com.sqx.modules.bl.sadjob.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.bl.sadjob.entity.BlSadJob;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BlSadJobDao extends BaseMapper<BlSadJob> {
}

View File

@ -0,0 +1,35 @@
package com.sqx.modules.bl.sadjob.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("bl_sad_job")
public class BlSadJob implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Long id;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
public int payClassifyId;//优惠卷充值分类
public int daySumNum;//一共赠送多少天
public int dayNum;//已赠送多少天
public int dayMoney;//每天赠送多少
public int sfwc;//是否完成0未完成 1完成
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;//修改时间
public Long userId;//用户
}

View File

@ -0,0 +1,8 @@
package com.sqx.modules.bl.sadjob.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.bl.sadjob.entity.BlSadJob;
public interface BlSadJobService extends IService<BlSadJob> {
}

View File

@ -0,0 +1,12 @@
package com.sqx.modules.bl.sadjob.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.bl.sadjob.dao.BlSadJobDao;
import com.sqx.modules.bl.sadjob.entity.BlSadJob;
import com.sqx.modules.bl.sadjob.service.BlSadJobService;
import org.springframework.stereotype.Service;
@Service
public class BlSadJobServiceImpl extends ServiceImpl<BlSadJobDao, BlSadJob> implements BlSadJobService {
}

View File

@ -29,6 +29,8 @@ import com.sqx.modules.bl.order.service.UserPackageDetailService;
import com.sqx.modules.bl.order.service.UserPackageOrderService;
import com.sqx.modules.bl.order.service.UserPackageOrdersMappingService;
import com.sqx.modules.bl.order.service.UserPackageService;
import com.sqx.modules.bl.sadjob.entity.BlSadJob;
import com.sqx.modules.bl.sadjob.service.BlSadJobService;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.consortia.entity.Consortia;
@ -135,6 +137,10 @@ public class WxServiceImpl implements WxService {
private UserPackageOrderService userPackageOrderService;
@Autowired
UserPackageOrdersMappingService userPackageOrdersMappingService;
@Autowired
private UserSadDetailsService userSadDetailsService;
@Autowired
private BlSadJobService blSadJobService;
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -510,6 +516,42 @@ public class WxServiceImpl implements WxService {
payDetailsDao.insert(payDetails);
// return pay(payClassify.getPrice().doubleValue(), classify, userId, generalOrder,request);
payOrderResult(generalOrder);
//判断是否赠送盛安豆
if(StringUtils.isNotEmpty(payClassify.getDayNum()+"")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date=sdf.format(new Date());
userMoneyService.updateSad(1,userId,payClassify.getDayMoney());
UserSadDetails userMoneyDetails=new UserSadDetails();
//查询用户当前余额
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(userId);
//插入余额
userMoneyDetails.setBalance(userNowMoney.getSad());
//插入操作类型为已操作用户余额
userMoneyDetails.setManipulateType(2);
userMoneyDetails.setUserId(userId);
userMoneyDetails.setTitle("[充值赠送]标题:充值");
userMoneyDetails.setContent("获得盛安豆:"+payClassify.getDayMoney());
userMoneyDetails.setType(1);
userMoneyDetails.setMoney(userNowMoney.getSad());
userMoneyDetails.setCreateTime(date);
userMoneyDetails.setBlRole(2);
userMoneyDetails.setBlFlag(1);
userSadDetailsService.insert(userMoneyDetails);
//添加定时任务
BlSadJob blSadJob = new BlSadJob();
blSadJob.setCreateTime(new Date());
blSadJob.setUpdateTime(new Date());
blSadJob.setDayMoney(payClassify.getDayMoney());
blSadJob.setDaySumNum(payClassify.getDayNum());
blSadJob.setDayNum(1);
blSadJob.setUserId(userId);
blSadJob.setSfwc(0);
blSadJobService.save(blSadJob);
}
return Result.success();
}

View File

@ -1,6 +1,10 @@
package com.sqx.modules.task.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.modules.app.entity.UserMoney;
import com.sqx.modules.app.entity.UserSadDetails;
import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.app.service.UserSadDetailsService;
import com.sqx.modules.artificer.dao.ArtificerDao;
import com.sqx.modules.artificer.dao.BlArtificerZqhzDao;
import com.sqx.modules.artificer.dao.OrdersDao;
@ -9,6 +13,8 @@ import com.sqx.modules.artificer.entity.Artificer;
import com.sqx.modules.artificer.entity.BlArtificerZqhz;
import com.sqx.modules.artificer.entity.Orders;
import com.sqx.modules.artificer.entity.UserRecharge;
import com.sqx.modules.bl.sadjob.entity.BlSadJob;
import com.sqx.modules.bl.sadjob.service.BlSadJobService;
import com.sqx.modules.bl.userZxsc.dao.BlUserZxscDao;
import com.sqx.modules.bl.userZxsc.entity.BlUserZxsc;
import com.sqx.modules.common.dao.ArtificerPartitioningDetailsMapper;
@ -56,6 +62,13 @@ public class AllTaskServiceImpl implements AllTaskSercice {
@Autowired
private BlArtificerZqhzDao blArtificerZqhzDao;
@Autowired
private BlSadJobService blSadJobService;
@Autowired
private UserSadDetailsService userSadDetailsService;
@Autowired
private UserMoneyService userMoneyService;
/**
* 计算技师升级规则 每天半夜1点执行预留12点到01点之间的计算间隔用于触发其他计算逻辑
* A0,A1,A2,A3,A4,A5等
@ -287,4 +300,41 @@ public class AllTaskServiceImpl implements AllTaskSercice {
userRechargeDao.insert(userRecharge);
}
}
//赠送盛安豆定时任务
@Scheduled(cron = "0 00 21 * * ?")
public void updateSadJob() {
QueryWrapper<BlSadJob> query = new QueryWrapper<>();
query.eq("sfwc",0);
List<BlSadJob> list = blSadJobService.list(query);
for(BlSadJob par : list){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date=sdf.format(new Date());
userMoneyService.updateSad(1,par.getUserId(),par.getDayMoney());
UserSadDetails userMoneyDetails=new UserSadDetails();
//查询用户当前余额
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(par.getUserId());
//插入余额
userMoneyDetails.setBalance(userNowMoney.getSad());
//插入操作类型为已操作用户余额
userMoneyDetails.setManipulateType(2);
userMoneyDetails.setUserId(par.getUserId());
userMoneyDetails.setTitle("[充值赠送]标题:充值");
userMoneyDetails.setContent("获得盛安豆:"+par.getDayMoney());
userMoneyDetails.setType(1);
userMoneyDetails.setMoney(userNowMoney.getSad());
userMoneyDetails.setCreateTime(date);
userMoneyDetails.setBlRole(2);
userMoneyDetails.setBlFlag(1);
userSadDetailsService.insert(userMoneyDetails);
int day = par.getDayNum()+1;
par.setDayNum(day);
if(day == par.getDaySumNum()){
par.setSfwc(1);
}
blSadJobService.updateById(par);
}
}
}