ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserIntegralChangeFallbackFactory.java
@@ -27,6 +27,11 @@ public R addAppUserIntegralChange(TAppUserIntegralChange appUserIntegralChange) { return R.fail("添加积分变动记录失败:" + throwable.getMessage()); } @Override public R<TAppUserIntegralChange> getTAppUserIntegralChangeByOrderCode(String code) { return R.fail("根据订单code获取积分记录失败:" + throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java
@@ -7,6 +7,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; /** * @author zhibing.pu @@ -22,4 +23,13 @@ */ @PostMapping("/t-app-user-integral-change/addAppUserIntegralChange") R addAppUserIntegralChange(@RequestBody TAppUserIntegralChange appUserIntegralChange); /** * 根据订单code获取积分记录 * @param code * @return */ @PostMapping("/t-app-user-integral-change/addAppUserIntegralChange") R<TAppUserIntegralChange> getTAppUserIntegralChangeByOrderCode(@RequestParam("code") String code); } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java
@@ -1,6 +1,7 @@ package com.ruoyi.account.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.account.api.model.TAppUserIntegralChange; import com.ruoyi.account.service.TAppUserIntegralChangeService; import com.ruoyi.common.core.domain.R; @@ -40,5 +41,18 @@ appUserIntegralChangeService.save(appUserIntegralChange); return R.ok(); } /** * 根据订单code获取积分记录 * @param code * @return */ @ResponseBody @PostMapping("/getTAppUserIntegralChangeByOrderCode") public R<TAppUserIntegralChange> getTAppUserIntegralChangeByOrderCode(@RequestParam("code") String code){ TAppUserIntegralChange one = appUserIntegralChangeService.getOne(new LambdaQueryWrapper<TAppUserIntegralChange>().eq(TAppUserIntegralChange::getOrderCode, code)); return R.ok(one); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -55,6 +55,7 @@ import com.ruoyi.order.service.*; import com.ruoyi.order.service.impl.TChargingOrderServiceImpl; import com.ruoyi.order.util.PreviousSixMonths; import com.ruoyi.order.vo.EndOfChargePageInfo; import com.ruoyi.payment.api.feignClient.AliPaymentClient; import com.ruoyi.payment.api.feignClient.WxPaymentClient; import com.ruoyi.payment.api.vo.AliQueryOrder; @@ -1443,4 +1444,16 @@ chargingOrderService.updateById(chargingOrder); return R.ok(); } @ResponseBody @GetMapping(value = "/getEndOfChargePageInfo/{id}") @ApiOperation(value = "获取充电结束页面数据", tags = {"小程序-扫一扫"}) @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "订单id", required = true) }) public AjaxResult<EndOfChargePageInfo> getEndOfChargePageInfo(String id){ EndOfChargePageInfo endOfChargePageInfo = chargingOrderService.getEndOfChargePageInfo(id); return AjaxResult.success(endOfChargePageInfo); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -17,6 +17,8 @@ import com.ruoyi.order.api.vo.*; import com.ruoyi.order.dto.*; import com.ruoyi.order.vo.ChargingOrderListInfoVO; import com.ruoyi.order.vo.EndOfChargePageInfo; import java.time.LocalDate; import java.util.List; import java.util.Map; @@ -248,4 +250,12 @@ List<Map<String, Object>> countAllUserData(); List<Map<String, Object>> needElec1(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto); /** * 获取充电结束页面详情 * @param id * @return */ EndOfChargePageInfo getEndOfChargePageInfo(String id); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -47,6 +47,7 @@ import com.ruoyi.order.service.TChargingOrderService; import com.ruoyi.order.service.TOrderEvaluateService; import com.ruoyi.order.service.*; import com.ruoyi.order.vo.EndOfChargePageInfo; import com.ruoyi.other.api.domain.*; import com.ruoyi.order.vo.ChargingOrderListInfoVO; import com.ruoyi.other.api.feignClient.*; @@ -72,6 +73,8 @@ import java.time.LocalDateTime; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.time.format.TextStyle; import java.time.temporal.WeekFields; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -1137,6 +1140,7 @@ appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints()); appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1); appUserIntegralChange.setCreateTime(LocalDateTime.now()); appUserIntegralChange.setOrderCode(code1); appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); appUser1.setPoints(appUser1.getPoints() + num1); @@ -1251,6 +1255,7 @@ appUser.setPoints(appUser.getPoints() + integral); appUserIntegralChange.setCurrentIntegral(appUser.getPoints()); appUserIntegralChange.setCreateTime(LocalDateTime.now()); appUserIntegralChange.setOrderCode(chargingOrder.getCode()); appUserClient.updateAppUser(appUser); appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); } @@ -1989,6 +1994,7 @@ appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints()); appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1); appUserIntegralChange.setCreateTime(LocalDateTime.now()); appUserIntegralChange.setOrderCode(chargingOrder.getCode()); appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); appUser1.setPoints(appUser1.getPoints() + num1); @@ -2650,12 +2656,33 @@ public List<Map<String, Object>> needElec1(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) { return this.baseMapper.needElec1(siteIds,statisticsQueryDto); } public static void main(String[] args) { // String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm:ss")); // String format1 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm:ss")); // System.err.println(format+"至"+format1); // LocalDateTime parse = LocalDateTime.parse("2024-01-12 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // System.err.println(parse.format(DateTimeFormatter.ofPattern("yyyy-dd"))); /** * 获取充电结束页面详情 * @param id * @return */ @Override public EndOfChargePageInfo getEndOfChargePageInfo(String id) { EndOfChargePageInfo info = new EndOfChargePageInfo(); TChargingOrder chargingOrder = this.getById(id); info.setId(id); info.setCode(chargingOrder.getCode()); info.setPaymentAmount(chargingOrder.getPaymentAmount()); info.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount()); TAppUserIntegralChange integralChange = appUserIntegralChangeClient.getTAppUserIntegralChangeByOrderCode(chargingOrder.getCode()).getData(); info.setIntegral(null == integralChange ? 0 : integralChange.getCurrentIntegral() - integralChange.getHistoricalIntegral()); info.setRechargeAmount(chargingOrder.getRechargeAmount()); info.setRefundAmount(chargingOrder.getRefundAmount()); LocalDateTime startTime = chargingOrder.getStartTime(); LocalDateTime endTime = chargingOrder.getEndTime(); info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE)); info.setStartHour(startTime.format(DateTimeFormatter.ofPattern("HH:mm"))); info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE)); info.setEndHour(endTime.format(DateTimeFormatter.ofPattern("HH:mm"))); int hour = endTime.getHour() - startTime.getHour(); int second = endTime.getSecond() - startTime.getSecond(); info.setDuration(0 == hour ? String.format("%s分钟", second) : String.format("%s小时%s分钟", hour, second)); return info; } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
@@ -298,6 +298,7 @@ appUserIntegralChange.setHistoricalIntegral(points); appUserIntegralChange.setCurrentIntegral(points + num1); appUserIntegralChange.setCreateTime(LocalDateTime.now()); appUserIntegralChange.setOrderCode(orderEvaluate.getId().toString()); appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/EndOfChargePageInfo.java
New file @@ -0,0 +1,40 @@ package com.ruoyi.order.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; /** * @author zhibing.pu * @Date 2024/10/12 9:20 */ @Data @ApiModel public class EndOfChargePageInfo { @ApiModelProperty("订单id") private String id; @ApiModelProperty("充电金额") private BigDecimal paymentAmount; @ApiModelProperty("优惠金额") private BigDecimal couponDiscountAmount; @ApiModelProperty("积分") private Integer integral; @ApiModelProperty("订单编号") private String code; @ApiModelProperty("预充金额") private BigDecimal rechargeAmount; @ApiModelProperty("退还金额") private BigDecimal refundAmount; @ApiModelProperty("开始日期") private String startDay; @ApiModelProperty("开始时间") private String startHour; @ApiModelProperty("结束日期") private String endDay; @ApiModelProperty("结束时间") private String endHour; @ApiModelProperty("充电时长") private String duration; }