支付回调--修改--修改资源位被占用的起止时间

This commit is contained in:
haotian 2025-01-10 11:05:01 +08:00
parent 414c48d479
commit 4d639cc03f

View File

@ -4,24 +4,16 @@ package com.ruoyi.web.controller.app.pay;
import com.jeequan.jeepay.util.JeepayKit;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.OrderInfo;
import com.ruoyi.system.domain.SysOrder;
import com.ruoyi.system.domain.SysSource;
import com.ruoyi.system.domain.UserWork;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.vo.OrderCacheVo;
import com.ruoyi.system.service.IOrderInfoService;
import com.ruoyi.system.service.ISysOrderService;
import com.ruoyi.system.service.ISysSourceService;
import com.ruoyi.system.service.IUserWorkService;
import com.ruoyi.system.service.*;
import com.ruoyi.web.controller.app.baidu.GsonUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.*;
@ -41,12 +33,17 @@ public class PayBackController {
@Autowired
private ISysSourceService sysSourceService;
// @Autowired
// private IUserWorkService userWorkService;
@Autowired
private IUserWorkService userWorkService;
private IDailySourceService dailySourceService;
@Transactional
@PostMapping("/wxRechargeCallback/{mchOrderNo}")
@GetMapping("/wxRechargeCallback/{mchOrderNo}")
public String wxRechargeCallback(HttpServletRequest req, @PathVariable String mchOrderNo){
System.out.println("调用回调, 订单号: "+mchOrderNo);
System.out.println(redisCache.hasKey(mchOrderNo));
// //--------------------------------------------旧版--------------------------------------------
// String result = "failure";
@ -94,16 +91,18 @@ public class PayBackController {
sysSource.setSourceStatus("1");
// 将LocalDate转换为ZonedDateTime指定时区例如系统默认时区----------------看看要不要把时间转换成LocalDate
ZonedDateTime zoneStartTime = orderCacheVo.getStartTime().atStartOfDay(ZoneId.of("Asia/Shanghai"));
sysSource.setStartTime(Date.from(zoneStartTime.toInstant()));
// ZonedDateTime zoneStartTime = orderCacheVo.getStartTime().atStartOfDay(ZoneId.of("Asia/Shanghai"));
ZonedDateTime zoneEndTime = orderCacheVo.getEndTime().atStartOfDay(ZoneId.of("Asia/Shanghai"));
sysSource.setEndTime(Date.from(zoneEndTime.toInstant()));
// 设置资源位起止时间
sysSource.setStartTime(orderCacheVo.getStartTime());
sysSource.setEndTime(orderCacheVo.getEndTime());
// 设置workId
sysSource.setWorkId(orderCacheVo.getWorkId());
// //---------- 更新资源位上的作品-----------------这时应该不更新------------系统的定时任务更新-------
// //---------- 更新资源位上的作品------这时应该不更新------------系统的定时任务更新-------
// UserWork userWork = userWorkService.selectUserWorkByWorkId(orderCacheVo.getWorkId());
// sysSource.setWorkAddress(userWork.getWorkAddress());
// //------------更新资源位上的作品 end -------------------------------------------------------------
@ -111,6 +110,10 @@ public class PayBackController {
// 更新资源位信息
sysSourceService.updateSysSource(sysSource);
// 删除缓存中资源位信息
redisCache.deleteObject("order_"+orderCacheVo.getSourceId());
//------------------------------------------更新资源位表 sys_source end------------------------------------------
@ -119,6 +122,21 @@ public class PayBackController {
// 没必要一个作品可能对应多个资源位------------user_work只能对应一个source_id-------------
//------------------------------------------更新作品表 user_work 中的 source_id end-------------------------------
//---------------------------------------daily_source 资源位 b_bought+1-----------------------------------------
LocalDate now = LocalDate.now();
DailySource dailySource = dailySourceService.getDailySourceBySourceIdAndDate(orderCacheVo.getSourceId(), now);
if (dailySource != null){
dailySource.setBought(dailySource.getBought()+1);
}
else{
dailySource = new DailySource();
dailySource.setSourceId(orderCacheVo.getSourceId());
dailySource.setDate(now);
}
System.out.println(dailySource);
//---------------------------------------daily_source 资源位 b_bought+1 end-------------------------------------
}
SysOrder sysOrder = new SysOrder();
@ -137,6 +155,10 @@ public class PayBackController {
sysOrderService.insertSysOrder(sysOrder);
// 删除订单缓存数据
redisCache.deleteObject(mchOrderNo);
System.out.println(list);
return "";