ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TShoppingOrder.java
@@ -105,7 +105,7 @@ @TableField("remark") private String remark; @ApiModelProperty(value = "状态(1=待发货,2=待收货,3=已完成,4=已取消)") @ApiModelProperty(value = "状态(1=待发货,2=待收货,3=已完成,4=已取消 5=交易关闭)") @TableField("status") private Integer status; ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TVipOrder.java
@@ -101,5 +101,8 @@ @ApiModelProperty(value = "userUid") @TableField(exist = false) private String userUid; @ApiModelProperty(value = "购买用户") @TableField(exist = false) private String userPhone; } ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/GoodsDTO.java
@@ -14,6 +14,6 @@ private String name; @ApiModelProperty(value = "1现金购买 2积分兑换 ") private Integer type; @ApiModelProperty(value = "1全部 2已售罄 ") @ApiModelProperty(value = "1全部 2已售罄 3已下架") private Integer otherState; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TVipOrderController.java
@@ -70,6 +70,8 @@ @PostMapping("/addVipOrder") @ApiOperation(value = "添加会员订单", tags = {"管理后台-会员订单"}) public R<Long> addVipOrder(@RequestBody TVipOrder dto) { List<TVipOrder> list = vipOrderService.lambdaQuery().eq(TVipOrder::getCode, dto.getCode()).list(); if (!list.isEmpty())return R.fail("订单编号已存在"); vipOrderService.saveOrUpdate(dto); return R.ok(dto.getId()); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -525,6 +525,7 @@ if (data1!=null){ tShoppingOrder.setName(data1.getName()); } tShoppingOrder.setStatus(3); break; } if (tShoppingOrder.getAppUserId() != null){ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java
@@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.dto.GiveVipDto; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.api.model.TShoppingOrder; import com.ruoyi.order.api.model.TVipOrder; @@ -33,6 +35,8 @@ @Resource private VipClient vipClient; @Resource private AppUserClient appUserClient; @Override public PageInfo<TVipOrder> pageList(VipShoppingOrderQuery query) { String startTime1 = null; @@ -50,9 +54,12 @@ tVipOrder.setUid(tVipOrder.getId().toString()); tVipOrder.setUserUid(tVipOrder.getAppUserId().toString()); TVip data = vipClient.getInfo(tVipOrder.getVipId()).getData(); if (data!=null){ tVipOrder.setName(data.getName()); } TAppUser data1 = appUserClient.getUserById(tVipOrder.getAppUserId()).getData(); if (data1!=null)tVipOrder.setUserPhone(data1.getPhone()); } pageInfo.setRecords(list); return pageInfo; ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
New file @@ -0,0 +1,120 @@ package com.ruoyi.order.util.task; import com.alibaba.fastjson2.util.UUIDUtils; import com.alibaba.nacos.common.utils.UuidUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.order.api.model.TChargingBill; import com.ruoyi.order.service.TChargingBillService; import org.apache.logging.log4j.core.util.UuidUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; import java.util.stream.Collectors; /** * @author zhibing.pu * @date 2023/7/11 8:39 */ @Component public class TaskUtil { @Resource private TChargingBillService chargingBillService; @Resource private SiteClient siteClient; public static void main(String[] args) { LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1). withDayOfMonth(2); String string = firstDayOfLastMonth.toString(); // 将-替换为空字符串 string = string.replace("-", ""); System.err.println(string); } // 每月2号凌晨12点执行的定时任务 @Scheduled(cron = "0 0 0 2 * ?") public void taskMonth() { try { // 获取上个月的开始和结束日期 LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1). withDayOfMonth(2); String string = firstDayOfLastMonth.toString(); // 将-替换为空字符串 string = string.replace("-", ""); // 生成一次全站订单 TChargingBill tChargingBill = new TChargingBill(); // 订单生成规则JSD+20231201(账单所属月份)+1131304205(随机10位数)+001(当月账单序号,每月重置) Random random = new Random(); String randomDigits = random.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 .mapToObj(String::valueOf) .collect(Collectors.joining()); // 将其连接成一个字符串 tChargingBill.setCode("JSD"+string+randomDigits+"001" ); tChargingBill.setType(1); tChargingBill.setBillTime(LocalDateTime.now()); tChargingBill.setStatus(1); tChargingBill.setOrderState(2); chargingBillService.save(tChargingBill); // 每月二号给每个站点生成上月账单 List<Integer> collect = siteClient.getSiteAll().getData().stream().map(Site::getId).collect(Collectors.toList()); List<TChargingBill> tChargingBills = new ArrayList<>(); for (int i = 1; i <= collect.size(); i++) { TChargingBill tChargingBill1 = new TChargingBill(); Random random1 = new Random(); String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 .mapToObj(String::valueOf) .collect(Collectors.joining()); // 将其连接成一个字符串 tChargingBill1.setCode("JSD"+string+randomDigits1+i ); tChargingBill1.setType(2); tChargingBill1.setSiteId(collect.get(i)); tChargingBill1.setBillTime(LocalDateTime.now()); tChargingBill1.setStatus(1); tChargingBill1.setOrderState(2); tChargingBills.add(tChargingBill1); } if (!tChargingBills.isEmpty())chargingBillService.saveBatch(tChargingBills); } catch (Exception e) { e.printStackTrace(); } } // 每个月最后一天23点执行的定时任务 @Scheduled(cron = "0 0 23 L * ?") public void taskLastDay() { try { // 获取上个月的开始和结束日期 LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1). withDayOfMonth(1); LocalDate lastDayOfLastMonth = LocalDate.now().minusMonths(1). withDayOfMonth(firstDayOfLastMonth.lengthOfMonth()); // 将 LocalDate 转换为 LocalDateTime,并设定时间为一天的开始 LocalDateTime startDateTime = firstDayOfLastMonth.atStartOfDay(); LocalDateTime endDateTime = lastDayOfLastMonth.atTime(23, 59, 59); // 设定到最后一秒 // 构建查询条件 LambdaQueryWrapper<TChargingBill> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.ge(TChargingBill::getBillTime, Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant())) .le(TChargingBill::getBillTime, Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant())); // 使用 le 包括最后一天的记录 List<TChargingBill> list = chargingBillService.list(queryWrapper); for (TChargingBill tChargingBill : list) { tChargingBill.setStatus(2); } chargingBillService.updateBatchById(list); } catch (Exception e) { e.printStackTrace(); } } } ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
@@ -255,6 +255,7 @@ </if> and t1.payment_status = 2 AND t1.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} order by t1.create_time desc </select> <select id="sixBefore" resultType="com.ruoyi.order.dto.SixShopDto"> SELECT ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml
@@ -44,7 +44,9 @@ <if test="startTime1 != null and startTime1!=''"> and (t1.create_time between #{startTime1} and #{startTime2} </if> and t1.payment_status = 2 AND t1.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} order by t1.create_time desc </select> <select id="sixBefore" resultType="com.ruoyi.order.dto.SixVipDto"> SELECT ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -35,6 +35,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -180,6 +181,24 @@ public AjaxResult<PageInfo<TCoupon>> pageList(@RequestBody CouponQuery dto) { return AjaxResult.ok(tCouponService.pageList(dto)); } @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券列表分页查询") @PostMapping(value = "/pageList3") public AjaxResult<List<TCoupon>> pageList() { List<TCoupon> tCoupons = new ArrayList<>(); List<TCoupon> list = tCouponService.lambdaQuery().eq(TCoupon::getStatus, 1) .orderByDesc(TCoupon::getCreateTime).list(); for (TCoupon tCoupon : list) { if (tCoupon.getValidityPeriodMode()==1){ if (LocalDateTime.now().isBefore(tCoupon.getEndTime())){ tCoupons.add(tCoupon); } }else{ tCoupons.add(tCoupon); } } return AjaxResult.ok(tCoupons); } /** * 小程序远程调用 获取优惠券信息 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml
@@ -45,6 +45,9 @@ <if test="req.otherState != null and req.otherState == 2"> AND inventory = 0 </if> <if test="req.otherState != null and req.otherState ==3"> AND status = #{req.status} </if> AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} </where> ORDER BY create_time DESC