diff --git a/src/main/java/com/sqx/modules/bl/sadjob/dao/BlSadJobDao.java b/src/main/java/com/sqx/modules/bl/sadjob/dao/BlSadJobDao.java new file mode 100644 index 0000000..c3213b7 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/sadjob/dao/BlSadJobDao.java @@ -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 { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/sadjob/entity/BlSadJob.java b/src/main/java/com/sqx/modules/bl/sadjob/entity/BlSadJob.java new file mode 100644 index 0000000..9054a39 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/sadjob/entity/BlSadJob.java @@ -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;//用户 + +} diff --git a/src/main/java/com/sqx/modules/bl/sadjob/service/BlSadJobService.java b/src/main/java/com/sqx/modules/bl/sadjob/service/BlSadJobService.java new file mode 100644 index 0000000..34be0d8 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/sadjob/service/BlSadJobService.java @@ -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 { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/sadjob/service/impl/BlSadJobServiceImpl.java b/src/main/java/com/sqx/modules/bl/sadjob/service/impl/BlSadJobServiceImpl.java new file mode 100644 index 0000000..ba7dd04 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/sadjob/service/impl/BlSadJobServiceImpl.java @@ -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 implements BlSadJobService { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java b/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java index 4e7d5dc..947e389 100644 --- a/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java +++ b/src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java @@ -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(); } diff --git a/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java b/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java index 0e6c0fa..56bea38 100644 --- a/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java +++ b/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java @@ -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 query = new QueryWrapper<>(); + query.eq("sfwc",0); + List 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); + } + } }