From 18d2ac4785e5ff819fe077bdd4eb4ee9731ab454 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 24 十月 2024 11:46:26 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java | 12 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java | 1 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 20 ++ ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java | 10 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 11 + ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java | 5 ruoyi-service/ruoyi-chargingPile/src/main/resources/template/结算汇总.xlsx | 0 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java | 6 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java | 47 ++++- ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java | 1 ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml | 10 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml | 21 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java | 1 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 37 ++++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java | 99 ++++++++++++ ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 61 +++--- ruoyi-service/ruoyi-chargingPile/src/main/resources/template/充电桩申请记录.xlsx | 0 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java | 4 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 71 ++++++++ 23 files changed, 352 insertions(+), 74 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java index 1ab909b..865d080 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java @@ -88,6 +88,8 @@ private String couponIds; @TableField(exist = false) private String vipName; + @TableField(exist = false) + private Integer type; diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java index ab55bc6..20929f8 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java @@ -5,6 +5,7 @@ import com.ruoyi.common.core.dto.ExchangeDto; import com.ruoyi.order.api.feignClient.OrderClient; import com.ruoyi.order.api.model.ChargingListQuery; +import com.ruoyi.order.api.model.TGrantVip; import com.ruoyi.order.api.model.TShoppingOrder; import com.ruoyi.order.api.model.TVipOrder; import com.ruoyi.order.api.query.TActivityStatisticsQuery; @@ -35,6 +36,11 @@ @Override + public R managementGiveVip(TGrantVip grantVip) { + return R.fail("管理后台赠送会员:" + cause.getMessage()); + } + + @Override public R<List<Integer>> getSalesCountByGoodsId(String goodsIds) { return R.fail("根据商品订单ids查询销量:" + cause.getMessage()); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java index 300a830..210327e 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java @@ -6,6 +6,7 @@ import com.ruoyi.common.core.dto.ExchangeDto; import com.ruoyi.order.api.factory.OrderFallbackFactory; import com.ruoyi.order.api.model.ChargingListQuery; +import com.ruoyi.order.api.model.TGrantVip; import com.ruoyi.order.api.model.TShoppingOrder; import com.ruoyi.order.api.model.TVipOrder; import com.ruoyi.order.api.query.TActivityStatisticsQuery; @@ -23,7 +24,8 @@ */ @FeignClient(contextId = "OrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = OrderFallbackFactory.class) public interface OrderClient { - + @PostMapping(value = "/t-charging-order/management/give/vip") + public R managementGiveVip(@RequestBody TGrantVip grantVip); @GetMapping("/t-exchange-order/getSalesCountByGoodsIds/{goodsIds}") R<List<Integer>> getSalesCountByGoodsId(@PathVariable("goodsIds") String goodsIds); diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java index 57bc9ba..cd6ebc7 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java @@ -14,8 +14,11 @@ public class ChargingOrderListVO { @ApiModelProperty(value = "电站名称") private String siteName; + @ApiModelProperty(value = "订单状态") private Integer status; + @ApiModelProperty(value = "充值支付状态(1=待支付,2=已支付)") + private Integer rechargePaymentStatus; @ApiModelProperty(value = "电站id") private Integer siteId; @ApiModelProperty(value = "充电桩id") @@ -40,6 +43,8 @@ private BigDecimal electricity; @ApiModelProperty(value = "充电到账金额") private BigDecimal orderAmount; + @ApiModelProperty(value = "会员抵扣金额") + private BigDecimal vipDiscountAmount; @ApiModelProperty(value = "车牌号") private String licensePlate; @ApiModelProperty(value = "客户手机号") @@ -61,6 +66,11 @@ @ApiModelProperty(value = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime startTime; + @ApiModelProperty(value = "最后支付时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime payTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime createTime; @ApiModelProperty(value = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime endTime; diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java index b443083..29445d2 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java @@ -17,6 +17,8 @@ @ApiModelProperty(value = "用户手机号") private String phone; + @ApiModelProperty(value = "用户id") + private Long appUserId; @ApiModelProperty(value = "参与类型 优惠券 会员抵扣 会员活动 赠送会员") private String type; diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java index 17df5bc..be390c2 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/VipInfoDto.java @@ -42,4 +42,5 @@ @ApiModelProperty(value = "会员名称") private String name; + private Integer type; } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java index e8dc672..7944129 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java @@ -225,7 +225,9 @@ */ @PostMapping("/grantCoupon") public R grantCoupon(@RequestBody GrantCouponDto dto){ + if (dto.getWaysToObtain()==null){ dto.setWaysToObtain(3); + } List<TAppCoupon> res = new ArrayList<>(); TCoupon coupon = otherClient.getCouponById(dto.getCouponId()).getData(); diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java index f035710..f06c968 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java @@ -19,6 +19,7 @@ import com.ruoyi.common.core.dto.PointChangeDto; import com.ruoyi.common.core.enums.status.AppUserStatusEnum; import com.ruoyi.common.core.utils.JwtUtils; +import com.ruoyi.common.core.utils.OrderCodeUtil; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -33,8 +34,10 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.feignClient.ExchangeOrderClient; +import com.ruoyi.order.api.feignClient.OrderClient; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TExchangeOrder; +import com.ruoyi.order.api.model.TGrantVip; import com.ruoyi.other.api.domain.*; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.dto.UnitListQueryDto; @@ -51,6 +54,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -76,6 +80,8 @@ private TAppUserService appUserService; @Resource private TAppUserTagService appUserTagService; + @Autowired + private OrderClient orderClient; @Resource private TAppUserVipDetailService tAppUserVipDetailService; @@ -332,6 +338,13 @@ appUser.setLastDays( Duration.between(LocalDateTime.now(), appUser.getVipEndTime()).toDays()); appUser.setUid(appUser.getId().toString()); + + TAppUserCar one1 = appUserCarService.lambdaQuery().eq(TAppUserCar::getAppUserId, appUser.getId()).orderByDesc(BasePojo::getCreateTime).last("limit 1").one(); + if (one1!=null){ + CarNumDto carNumDto = CarUtil.carNum(one1.getLicensePlate()); + appUser.setPlace(carNumDto.getProvince()+carNumDto.getCity()); + + } } return R.ok(page); } @@ -719,9 +732,31 @@ } else if (giveVipDto.getType() == 3) { plusDay = 12; } - //增加vipDetail + BigDecimal bigDecimal = new BigDecimal("0"); + TVip info = vipClient.getInfo1(giveVipDto.getVipId()).getData(); + switch (giveVipDto.getType()){ + case 1: + bigDecimal = bigDecimal.add(info.getMonthlyCard()); + break; + case 2: + bigDecimal = bigDecimal.add(info.getSeasonCard()); + break; + case 3: + bigDecimal = bigDecimal.add(info.getAnnualCard()); + break; + } + //增加vipDetail giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay,giveVipDto.getType()); appUserService.updateById(nowUser); + // 新增后台赠送记录 + TGrantVip tGrantVip = new TGrantVip(); + tGrantVip.setCode(OrderCodeUtil.getOrderCode("ZS")); + tGrantVip.setAppUserId(nowUser.getId()); + tGrantVip.setVipId(giveVipDto.getVipId()); + tGrantVip.setOrderAmount(bigDecimal); + tGrantVip.setCreateTime(LocalDateTime.now()); + tGrantVip.setAppUserId(nowUser.getId()); + orderClient.managementGiveVip(tGrantVip); } return R.ok(); } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java index 6802f7c..196895d 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java @@ -64,6 +64,7 @@ if(null != tAppUserVipDetail.getVipId()){ TVip data = vipClient.getInfo1(tAppUserVipDetail.getVipId()).getData(); tAppUserVipDetail.setVipName(data.getName()); + tAppUserVipDetail.setType(data.getType()); } } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java index 66ff91a..19d5fe3 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java @@ -54,6 +54,7 @@ if(Objects.isNull(appUser)){ appUser = new TAppUser(); appUser.setPhone(appletUserDecodeData.getPhoneNumber()); + appUser.setInviteUserId(inviteUserId); } } if(Objects.nonNull(appUser.getStatus())){ @@ -68,14 +69,15 @@ break; } } - appUser.setInviteUserId(inviteUserId); appUser.setAvatar(appletUserDecodeData.getAvatarUrl()); appUser.setCity(appletUserDecodeData.getCity()); appUser.setName(appletUserDecodeData.getNickName()); appUser.setProvince(appletUserDecodeData.getProvince()); appUser.setWxOpenid(appletUserDecodeData.getOpenId()); this.saveOrUpdate(appUser); - inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); + if(Objects.nonNull(inviteUserId)){ + inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); + } return this.getUserInfo(appUser); } @@ -95,6 +97,7 @@ if(Objects.isNull(appUser)){ appUser = new TAppUser(); appUser.setPhone(phone); + appUser.setInviteUserId(inviteUserId); } } if(Objects.nonNull(appUser.getStatus())){ @@ -109,10 +112,11 @@ break; } } - appUser.setInviteUserId(inviteUserId); appUser.setAliOpenid(response.getOpenId()); this.saveOrUpdate(appUser); - inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); + if(Objects.nonNull(inviteUserId)){ + inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); + } return this.getUserInfo(appUser); } // @Override diff --git "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" index fc621e2..763334e 100644 --- "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" +++ "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" Binary files differ diff --git "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\347\273\223\347\256\227\346\261\207\346\200\273.xlsx" "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\347\273\223\347\256\227\346\261\207\346\200\273.xlsx" index 738da66..e66c778 100644 --- "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\347\273\223\347\256\227\346\261\207\346\200\273.xlsx" +++ "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\347\273\223\347\256\227\346\261\207\346\200\273.xlsx" Binary files differ diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java index 62bd3c0..b5f7dd1 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java @@ -5,10 +5,15 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import com.ruoyi.account.api.feignClient.AppUserCarClient; import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.account.api.model.TAppUserCar; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient; import com.ruoyi.chargingPile.api.feignClient.SiteClient; +import com.ruoyi.chargingPile.api.model.Partner; +import com.ruoyi.chargingPile.api.model.Site; +import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.WebUtils; @@ -46,9 +51,11 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.math.BigDecimal; import java.net.URLEncoder; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -80,17 +87,103 @@ ChargingOrderListInfoVO res = chargingOrderService.chargingInfo(uid); return AjaxResult.success(res); } + @Autowired + private SiteClient siteClient; + @Autowired + private AppUserClient appUserClient; + @Autowired + private ChargingGunClient chargingGunClient; + @Autowired + private AppUserCarClient appUserCarClient; @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"}) @PutMapping("/export") public void export(@RequestBody ChargingListQuery dto) { ChargingOrderTimeVO res = chargingOrderService.chargingList(dto); List<TChargingOrderExport> tChargingOrderExports = new ArrayList<>(); - List<ChargingOrderListVO> exportList = res.getExportList(); + List<ChargingOrderListVO> exportList = res.getList().getRecords(); + int i = 0; for (ChargingOrderListVO chargingOrderListVO : exportList) { TChargingOrderExport tChargingOrderExport = new TChargingOrderExport(); - BeanUtils.copyProperties(chargingOrderListVO,tChargingOrderExport); - tChargingOrderExports.add(tChargingOrderExport); + List<Site> data = siteClient.getSiteByIds(Arrays.asList(chargingOrderListVO.getSiteId())).getData(); + TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData(); + TChargingGun data4 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData(); + if (data!=null&&(!data.isEmpty())){ + tChargingOrderExport.setSiteCode(data.get(0).getCode()); + tChargingOrderExport.setSiteName(chargingOrderListVO.getSiteName()); + tChargingOrderExport.setCity(data.get(0).getCity()); + tChargingOrderExport.setCityName(data.get(0).getDistricts()); + tChargingOrderExport.setSiteType(data.get(0).getSiteType()); + tChargingOrderExport.setStatus(data.get(0).getStatus()+""); + Partner data2 = siteClient.getPartnerR(data.get(0).getPartnerId()).getData(); + if (data2!=null){ + tChargingOrderExport.setPartner(data2.getName()); + } + } + tChargingOrderExport.setSaleType("1"); + tChargingOrderExport.setBusinessCategory("1"); + tChargingOrderExport.setId(i); + tChargingOrderExport.setCode(chargingOrderListVO.getCode()); + tChargingOrderExport.setTerminalName(chargingOrderListVO.getTerminalName()); +// tChargingOrderExport.setName(); + tChargingOrderExport.setOrderClassification("1"); + tChargingOrderExport.setStartType("扫码"); + tChargingOrderExport.setOne("小程序"); + tChargingOrderExport.setTwo("小程序"); + tChargingOrderExport.setCreateTime(chargingOrderListVO.getCreateTime()+""); + tChargingOrderExport.setStartTime(chargingOrderListVO.getStartTime()+""); + tChargingOrderExport.setEndTime(chargingOrderListVO.getEndTime()+""); + tChargingOrderExport.setRechargePaymentStatus(chargingOrderListVO.getRechargePaymentStatus()+""); + tChargingOrderExport.setType("充电订单"); + tChargingOrderExport.setChargingType("单桩双充"); + tChargingOrderExport.setEndmode(chargingOrderListVO.getEndMode()+""); + tChargingOrderExport.setChargingEndAccount("平台"); + tChargingOrderExport.setIsFree("否"); + tChargingOrderExport.setElectrovalence(chargingOrderListVO.getElectrovalence()+""); + tChargingOrderExport.setServiceCharge(chargingOrderListVO.getServiceCharge()+""); + tChargingOrderExport.setTotal(chargingOrderListVO.getPaymentAmount()+""); + tChargingOrderExport.setChargingCapacity(chargingOrderListVO.getElectricity()+""); +// tChargingOrderExport.setElectrovalencePrice(); +// tChargingOrderExport.setServiceChargePrice(); +// tChargingOrderExport.setServiceChargePriceLook(); +// tChargingOrderExport.setCumulativeChargingTime(); + tChargingOrderExport.setStartSoc(chargingOrderListVO.getStartSoc()); + tChargingOrderExport.setEndtSoc(chargingOrderListVO.getEndSoc()); + tChargingOrderExport.setIsSoc("否"); + tChargingOrderExport.setIsSocType(""); + tChargingOrderExport.setIsSocNum("0"); + tChargingOrderExport.setUserType("普通个人用户"); +// tChargingOrderExport.setVipType(); + tChargingOrderExport.setIsPlus(chargingOrderListVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0?"是":"否"); + if (data3!=null){ + tChargingOrderExport.setRealName(data3.getName()); + tChargingOrderExport.setPhone(data3.getPhone()); + tChargingOrderExport.setNickName(data3.getName()); + } + if (data4!=null){ + tChargingOrderExport.setDeviceCode(data4.getCode()); + } + tChargingOrderExport.setAccountType("个人"); + List<TAppUserCar> data1 = appUserCarClient.getCarByIds(Arrays.asList(chargingOrderListVO.getAppUserCarId())).getData(); + if (data1!=null&&(!data1.isEmpty())){ + tChargingOrderExport.setCarNumber(data1.get(0).getLicensePlate()); + tChargingOrderExport.setCarType(data1.get(0).getVehicleModel()); + tChargingOrderExport.setCarBrand(data1.get(0).getVehicleBrand()); + + + } + tChargingOrderExport.setOrderCode(chargingOrderListVO.getCode()); + tChargingOrderExport.setIsSingle("是"); + tChargingOrderExport.setPayTime(chargingOrderListVO.getPayTime()+""); + tChargingOrderExport.setElectrovalenceSiteName("四川明星新能源科技有限公司"); + tChargingOrderExport.setCompanyNameAdmin("四川明星新能源科技有限公司"); + tChargingOrderExport.setMoneyType("线上计费"); + tChargingOrderExport.setDeviceType("设备直连(自由集控)"); + tChargingOrderExport.setSettlementCompanyName("四川明星新能源科技有限公司"); + tChargingOrderExport.setPrePaymentType("先付后退"); + tChargingOrderExport.setIsSecurity("是"); + tChargingOrderExports.add(tChargingOrderExport); + i++; } Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TChargingOrderExport.class, tChargingOrderExports); HttpServletResponse response = WebUtils.response(); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index 401f10d..f41efe0 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -92,7 +92,8 @@ private TokenService tokenService; @Autowired private TOrderEvaluateService orderEvaluateService; - + @Autowired + private TGrantVipService tGrantVipService; @Resource private WxPaymentClient wxPaymentClient; @@ -133,6 +134,15 @@ @Resource private TOrderInvoiceService invoiceService; + /** + * 远程调用 增加管理后台赠送会员记录 + * @return + */ + @ResponseBody + @PostMapping(value = "/management/give/vip") + public R managementGiveVip(@RequestBody TGrantVip grantVip) { + return R.ok(tGrantVipService.save(grantVip)); + } /** * 远程调用根据枪id 查询最新的订单id 用户后台结束充电 @@ -333,7 +343,7 @@ chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()!=null?byId.getTotalElectricity().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":""); chargingOrderInfoVO.setTotalPower(byId.getPower()!=null?byId.getPower().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":""); if (byId.getAppUserCarId()!=null){ - List<TAppUserCar> data = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData(); + List<TAppUserCar> data = appUserCarClient.getCarByIds(Arrays.asList(byId.getAppUserCarId())).getData(); if (!data.isEmpty()){ chargingOrderInfoVO.setLicensePlate(data.get(0).getLicensePlate()); chargingOrderInfoVO.setVehicleBrand(data.get(0).getVehicleBrand()); @@ -635,10 +645,36 @@ } LocalDate sixBefore = PreviousSixMonths.get(); //通过siteIds进行sql查询统计 + List<SixChargingDto> sixChargingDtos = generateLastSixMonths(); List<SixChargingDto> chargingDtos = chargingOrderService.charge(sixBefore, siteIds); + for (SixChargingDto sixChargingDto : sixChargingDtos) { + for (SixChargingDto chargingDto : chargingDtos) { + if (sixChargingDto.getMonth().equals(chargingDto.getMonth())){ + BeanUtils.copyProperties(chargingDto,sixChargingDto); + } + } - return R.ok(chargingDtos); + } + return R.ok(sixChargingDtos); + + } + + + public static List<SixChargingDto> generateLastSixMonths() { + LocalDate today = LocalDate.now(); + List<SixChargingDto> months = new ArrayList<>(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM"); + + for (int i = 5; i >= 0; i--) { + LocalDate date = today.minusMonths(i); + String month = date.format(formatter); + SixChargingDto sixChargingDto = new SixChargingDto(); + sixChargingDto.setMonth(month); + months.add(sixChargingDto); + } + + return months; } @ResponseBody @@ -672,7 +708,33 @@ //count近6个月的数据 LocalDate sixBefore = PreviousSixMonths.get(); List<SixShopDto> sixShopDtos = shoppingOrderService.sixBefore(sixBefore,status); - return R.ok(sixShopDtos); + List<SixShopDto> sixChargingDtos = generateLastSixMonths1(); + for (SixShopDto sixChargingDto : sixChargingDtos) { + for (SixShopDto chargingDto : sixShopDtos) { + if (sixChargingDto.getMonth().equals(chargingDto.getMonth())){ + BeanUtils.copyProperties(chargingDto,sixChargingDto); + } + } + + } + + return R.ok(sixChargingDtos); + } + + public static List<SixShopDto> generateLastSixMonths1() { + LocalDate today = LocalDate.now(); + List<SixShopDto> months = new ArrayList<>(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM"); + + for (int i = 5; i >= 0; i--) { + LocalDate date = today.minusMonths(i); + String month = date.format(formatter); + SixShopDto sixChargingDto = new SixShopDto(); + sixChargingDto.setMonth(month); + months.add(sixChargingDto); + } + + return months; } @ResponseBody @@ -811,7 +873,6 @@ LocalDate mondayThisWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); start = statisticsQueryDto.getStartTime(); end = statisticsQueryDto.getEndTime(); - System.out.println("本周一是: " + mondayThisWeek); } else if (statisticsQueryDto.getDayType()==3){ diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java index 4b5a40a..ad43d21 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/PayOrderDto.java @@ -26,6 +26,7 @@ private Integer status; @ApiModelProperty("订单金额") private Double orderAmount; + private Double rechargeAmount; @ApiModelProperty("支付金额") private Double paymentAmount; @ApiModelProperty("下单时间") diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java index 08c1165..8ea61be 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/TChargingOrderExport.java @@ -18,6 +18,7 @@ private String siteCode; @Excel(name = "电站名称",width = 30) private String siteName; + @Excel(name = "终端名称",width = 30) private String terminalName; @Excel(name = "所属城市",width = 30) @@ -30,6 +31,8 @@ private Integer siteType; @Excel(name = "售电模式",width = 30,replace = {"正常使用_1","维修中_2","关闭下线_3"}) private String saleType; + @Excel(name = "站点状态",width = 30,replace = {"正常使用_1","维修中_2","关闭下线_3"}) + private String status; @Excel(name = "运营类型",width = 30,replace = {"直营_1","非直营_2"}) private String businessCategory; @Excel(name = "计费模板",width = 30) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java index 3ce44cb..110fe78 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java @@ -23,6 +23,7 @@ import com.ruoyi.order.mapper.TChargingBillMapper; import com.ruoyi.order.mapper.TChargingOrderMapper; import com.ruoyi.order.service.TChargingBillService; +import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; import org.omg.CORBA.PRIVATE_MEMBER; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -318,8 +319,9 @@ chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); chargingBillListVO.setUid(chargingBillListVO.getId().toString()); - // 根据账单的出账时间 查询上个月的充电订单 - LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); +// LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); + // todo 临时修改为查询昨天的充电订单 + LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1); // 账单周期 chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); // 获取 LocalDate 对象 @@ -359,7 +361,7 @@ if (tChargingOrder.getElectrovalence()!=null){ electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence()); } - if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() == 2){ + if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus()!=null&& tChargingOrder.getRefundStatus()==2){ refundAmount = refundAmount.add(tChargingOrder.getRefundAmount()); } // 累加累计服务费 @@ -642,6 +644,9 @@ chargingBillListVO.setChargingSecond(chargingSecond); } for (ChargingBillListVO chargingBillListVO : list1) { + if (chargingBillListVO.getType() ==1){ + continue; + } LocalDateTime billTime = chargingBillListVO.getBillTime(); // 将其转化为yyyy-MM格式字符串 chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index 14b5a07..3e1118a 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -1158,6 +1158,16 @@ public R<PageInfo<PayOrderDto>> payOrderQuery(PayOrderQueryDto payOrderQueryDto) { PageInfo<PayOrderDto> pageInfo = new PageInfo<>(payOrderQueryDto.getPageCurr(),payOrderQueryDto.getPageSize()); List<PayOrderDto> list = this.baseMapper.payOrderQuery(pageInfo,payOrderQueryDto); + for (PayOrderDto payOrderDto : list) { + if (payOrderDto.getType()==2||payOrderDto.getType()==3){ + payOrderDto.setFinalAmount(payOrderDto.getOrderAmount()); + } + if (payOrderDto.getType()==1&&payOrderDto.getStatus()==3){ + payOrderDto.setFinalAmount(payOrderDto.getRechargeAmount()); + payOrderDto.setOrderAmount(payOrderDto.getRechargeAmount()); + payOrderDto.setPaymentAmount(payOrderDto.getRechargeAmount()); + } + } pageInfo.setRecords(list); return R.ok(pageInfo); } @@ -1311,7 +1321,9 @@ carId.add(chargingOrderListVO.getAppUserCarId()); if (!carId.isEmpty()){ List<TAppUserCar> data4 = appUserCarClient.getCarByIds(carId).getData(); - if (data4!=null && !data4.isEmpty()) chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate()); + if (data4!=null && !data4.isEmpty()) { + chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate()); + } } } chargingOrderListVO.setPhone(data3.getPhone()); @@ -1969,7 +1981,7 @@ } @Override public List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto) { - return this.baseMapper.usersByQuery(statisticsQueryDto); + return this.baseMapper.usersByQuery1(statisticsQueryDto); } @Override @@ -2033,7 +2045,7 @@ chargingOrderRefund.setRefundTitle("后台退款"); chargingOrderRefund.setRefundContent("后台退款"); chargingOrderRefund.setRefundReason("后台退款"); - chargingOrderRefund.setRefundRemark("后台退款"); + chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark()); chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount())); chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount()); @@ -2094,7 +2106,7 @@ chargingOrderRefund.setRefundTitle("后台退款"); chargingOrderRefund.setRefundContent("后台退款"); chargingOrderRefund.setRefundReason("后台退款"); - chargingOrderRefund.setRefundRemark("后台退款"); + chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark()); chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount())); chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount()); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java index 05e1997..4783fdf 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java @@ -117,6 +117,10 @@ BigDecimal grantVip = new BigDecimal("0"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (TActivityStatisticslVO tActivityStatisticslVO : list1) { + TAppUser data = appUserClient.getUserById(tActivityStatisticslVO.getAppUserId()).getData(); + if (data!=null){ + tActivityStatisticslVO.setPhone(data.getPhone()); + } // 判断享有了哪些类型 switch (tActivityStatisticslVO.getOrderType()){ case 1: @@ -187,6 +191,7 @@ } } for (TActivityStatisticslVO tActivityStatisticslVO : list) { + // 判断享有了哪些类型 switch (tActivityStatisticslVO.getOrderType()){ case 1: diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml index b995f9a..1b22fd9 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml @@ -121,6 +121,7 @@ title, `status`, order_amount, + recharge_amount, payment_amount , create_time, end_time, @@ -381,7 +382,7 @@ type, SUM( charging_capacity ) as charging_capacity , SUM( period_service_price ) as period_electric_price, - SUM(period_electric_price+period_service_price) as total_amount + SUM(period_electric_price) as total_amount FROM t_charging_order_accounting_strategy <where> @@ -398,9 +399,9 @@ <select id="getDateData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d %H' ) as time, - SUM(service_charge) as servicecharge, - SUM(electrovalence) as electrovalence, - SUM(payment_amount) AS paymentAmount, + CAST(SUM(service_charge-coupon_discount_amount) AS DECIMAL(20, 6)) as servicecharge, + CAST(SUM(charging_capacity) AS DECIMAL(20, 6)) as electrovalence, + CAST(SUM(electrovalence) AS DECIMAL(20, 4)) AS paymentAmount, count(1) as orderCount FROM t_charging_order @@ -422,9 +423,9 @@ <select id="getWeekData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, - SUM(service_charge) as servicecharge, - SUM(electrovalence) as electrovalence, - SUM(payment_amount) AS paymentAmount, + SUM(service_charge-coupon_discount_amount) as servicecharge, + SUM(charging_capacity) as electrovalence, + SUM(electrovalence) AS paymentAmount, count(1) as orderCount FROM t_charging_order @@ -446,9 +447,9 @@ <select id="getMonthData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, - SUM(service_charge) as servicecharge, - SUM(electrovalence) as electrovalence, - SUM(payment_amount) AS paymentAmount, + SUM(service_charge-coupon_discount_amount) as servicecharge, + SUM(charging_capacity) as electrovalence, + SUM(electrovalence) AS paymentAmount, count(1) as orderCount FROM t_charging_order @@ -470,9 +471,9 @@ <select id="getYearData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, - SUM(service_charge) as servicecharge, - SUM(electrovalence) as electrovalence, - SUM(payment_amount) AS paymentAmount, + SUM(service_charge-coupon_discount_amount) as servicecharge, + SUM(charging_capacity) as electrovalence, + SUM(electrovalence) AS paymentAmount, count(1) as orderCount FROM @@ -496,8 +497,8 @@ <select id="getByDate" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, - SUM(service_charge) as servicecharge, - SUM(electrovalence) as electrovalence, + SUM(service_charge-coupon_discount_amount) as servicecharge, + SUM(charging_capacity) as electrovalence, count(1) as orderCount FROM t_charging_order @@ -564,11 +565,11 @@ </select> <select id="queryPowerLevel" resultType="java.util.Map"> SELECT - count(CASE WHEN power BETWEEN 0 AND 30 THEN 1 ELSE 0 END) AS count_0_30, - count(CASE WHEN power BETWEEN 31 AND 60 THEN 1 ELSE 0 END) AS count_31_60, - count(CASE WHEN power BETWEEN 61 AND 120 THEN 1 ELSE 0 END) AS count_61_120, - count(CASE WHEN power BETWEEN 121 AND 300 THEN 1 ELSE 0 END) AS count_121_300, - count(CASE WHEN power > 300 THEN 1 ELSE 0 END) AS count_above_300 + SUM(CASE WHEN power BETWEEN 0 AND 30 THEN 1 ELSE 0 END) AS count_0_30, + SUM(CASE WHEN power BETWEEN 31 AND 60 THEN 1 ELSE 0 END) AS count_31_60, + SUM(CASE WHEN power BETWEEN 61 AND 120 THEN 1 ELSE 0 END) AS count_61_120, + SUM(CASE WHEN power BETWEEN 121 AND 300 THEN 1 ELSE 0 END) AS count_121_300, + SUM(CASE WHEN power > 300 THEN 1 ELSE 0 END) AS count_above_300 FROM t_charging_order WHERE @@ -580,25 +581,25 @@ #{siteId} </foreach> </if> - <if test="statisticsQueryDto.dayType =1"> + <if test="statisticsQueryDto.dayType ==1"> AND DATE(create_time) = CURDATE() </if> - <if test="statisticsQueryDto.dayType =2"> + <if test="statisticsQueryDto.dayType ==2"> AND WEEKOFYEAR(create_time) = WEEKOFYEAR(CURDATE()) </if> - <if test="statisticsQueryDto.dayType =3"> + <if test="statisticsQueryDto.dayType ==3"> AND MONTH(create_time) = MONTH(CURDATE()) </if> - <if test="statisticsQueryDto.dayType =4"> + <if test="statisticsQueryDto.dayType ==4"> AND YEAR(create_time) = YEAR(CURDATE()) </if> - <if test="statisticsQueryDto.dayType =5"> - <if test="statisticsQueryDto.startTime != null"> + <if test="statisticsQueryDto.dayType ==5"> + AND create_time >= #{statisticsQueryDto.startTime} - </if> - <if test="statisticsQueryDto.endTime != null"> + + AND create_time <= #{statisticsQueryDto.endTime} - </if> + </if> </select> @@ -606,7 +607,7 @@ SELECT - DATE_FORMAT( create_time, '%Y-%m-%d %H' ) AS time, + DATE_FORMAT( create_time, '%H:00' ) AS time, count(1) AS counts FROM charging_pile_account.t_app_user diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml index d0401f3..ae289b4 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml @@ -49,6 +49,7 @@ t9.vip_discount_amount as vipDiscountAmount, t9.payment_amount as paymentAmount, t9.create_time as createTime, + t9.app_user_id as appUserId, 1 as orderType from t_charging_order t9 where t9.id = 0 limit 1 @@ -60,6 +61,7 @@ t1.vip_discount_amount as vipDiscountAmount, t1.payment_amount as paymentAmount, t1.create_time as createTime, + t1.app_user_id as appUserId, 1 as orderType from t_charging_order t1 where 1 = 1 @@ -67,10 +69,13 @@ and t1.code LIKE CONCAT('%',#{req.code},'%') </if> <if test="req.type != null and req.type != '' and req.type == 1"> - and t1.coupon_discount_amount IS NOT NULL and t1.coupon_discount_amount != 0 + and t1.coupon_discount_amount > 0 </if> <if test="req.type != null and req.type != '' and req.type == 2"> - and t1.vip_discount_amount IS NOT NULL and t1.vip_discount_amount != 0 + and t1.vip_discount_amount > 0 + </if> + <if test="req.type == null "> + and (t1.vip_discount_amount > 0 or t1.coupon_discount_amount > 0) </if> <if test="null != req.userIds and req.userIds.size()>0" > and t1.app_user_id in @@ -95,11 +100,12 @@ <if test="req.orderType == null or req.orderType == 2"> <if test="req.type == null or req.type == 1 or req.type == 2"> union all - select t2.code ,t2.order_amount as orderAmount, + select t2.code ,t2.order_amount as paymentAmount, t2.coupon_discount_amount as couponDiscountAmount, t2.vip_discount_amount as vipDiscountAmount, - t2.payment_amount as paymentAmount, + t2.payment_amount as orderAmount, t2.create_time as createTime, + t2.app_user_id as appUserId, 2 as orderType from t_shopping_order t2 where 1 = 1 @@ -136,6 +142,7 @@ t3.discount_amount as vipDiscountAmount, t3.payment_amount as paymentAmount, t3.create_time as createTime, + t3.app_user_id as appUserId, 3 as orderType from t_vip_order t3 where 1 = 1 @@ -144,7 +151,7 @@ and t3.code LIKE CONCAT('%',#{req.code},'%') </if> <if test="req.type == null "> - and t3.discount_amount IS NOT NULL and t3.discount_amount != 0 + and t3.discount_amount > 0 </if> <if test="null != req.userIds and req.userIds.size()>0" > and t3.app_user_id in @@ -167,6 +174,7 @@ t4.discount_amount as vipDiscountAmount, t4.payment_amount as paymentAmount, t4.create_time as createTime, + t4.app_user_id as appUserId, 4 as orderType from t_vip_order t4 where 1 = 1 @@ -175,7 +183,7 @@ and t4.code LIKE CONCAT('%',#{req.code},'%') </if> <if test="req.type == null "> - and t4.discount_amount IS NOT NULL and t4.discount_amount != 0 + and t4.discount_amount > 0 </if> <if test="null != req.userIds and req.userIds.size()>0" > and t4.app_user_id in @@ -198,6 +206,7 @@ 0 as vipDiscountAmount, 0 as paymentAmount, t5.create_time as createTime, + t5.app_user_id as appUserId, 4 as orderType from t_grant_vip t5 where 1 = 1 diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java index af162fb..2c4166f 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java @@ -2,11 +2,15 @@ import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.account.api.dto.SendCouponDto; import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.feignClient.AppUserVipDetailClient; import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.account.api.model.TAppUserVipDetail; +import com.ruoyi.account.api.vo.GetAppUserVipDetail; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.BasePage; @@ -222,6 +226,9 @@ @Resource private AppUserClient appUserClient; + @Resource + private AppUserVipDetailClient vipDetailClient; + @ApiOperation(value = "当前生效会员信息", tags = {"小程序-个人中心"}) @GetMapping("/recent/vipInfo") public R<List<VipInfoDto>> recentVipInfo() { @@ -230,7 +237,17 @@ if (data.getVipEndTime()!=null&&data.getVipEndTime().isAfter(LocalDateTime.now())) { List<VipInfoDto> vipInfoDtos = new ArrayList<>(); - List<TVip> vips = vipService.lambdaQuery().eq(TVip::getId, data.getVipId()).list(); + +// List<TVip> vips = vipService.lambdaQuery().eq(TVip::getId, data.getVipId()).list(); + List<TVip> vips = new ArrayList<>(); + GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail(); + getAppUserVipDetail.setAppUserId(userId); + getAppUserVipDetail.setVipId(data.getVipId()); + R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail); + TAppUserVipDetail data1 = appUserVipDetail.getData(); + String vipJson = data1.getVipJson(); + TVip tVip = JSON.parseObject(vipJson, TVip.class); + vips.add(tVip); LocalDateTime now = LocalDateTime.now(); for (TVip vip : vips) { VipInfoDto vipInfoDto = new VipInfoDto(); @@ -255,19 +272,20 @@ vipInfoDto.setMallExclusivePrice(vip.getMallExclusivePrice()); vipInfoDto.setName(vip.getName()); vipInfoDto.setId(vip.getId()); - List<SendCouponDto> javaList = JSON.parseArray(vip.getCoupon()).toJavaList(SendCouponDto.class); - List<VipCouponDto> vipCouponDtos = new ArrayList<>(); - if (!javaList.isEmpty()) { - for (SendCouponDto sendCouponDto : javaList) { - VipCouponDto vipCouponDto = new VipCouponDto(); - TCoupon byId = couponService.getById(sendCouponDto.getId()); - vipCouponDto.setNum(sendCouponDto.getNumber()); - vipCouponDto.setTCoupon(byId); - vipCouponDtos.add(vipCouponDto); + if (vip.getCoupon()!=null) { + List<SendCouponDto> javaList = JSON.parseArray(vip.getCoupon()).toJavaList(SendCouponDto.class); + List<VipCouponDto> vipCouponDtos = new ArrayList<>(); + if (!javaList.isEmpty()) { + for (SendCouponDto sendCouponDto : javaList) { + VipCouponDto vipCouponDto = new VipCouponDto(); + TCoupon byId = couponService.getById(sendCouponDto.getId()); + vipCouponDto.setNum(sendCouponDto.getNumber()); + vipCouponDto.setTCoupon(byId); + vipCouponDtos.add(vipCouponDto); + } } - } - vipInfoDto.setVipCouponDtos(vipCouponDtos); + vipInfoDto.setVipCouponDtos(vipCouponDtos); //计算总折扣 BigDecimal total = BigDecimal.ZERO; @@ -280,9 +298,14 @@ total.add(tCoupon.getDiscountAmount()); } } + vipInfoDto.setTotalDiscount(total); + vipInfoDto.setTimeAmount(vip.getMaximumDeduction().multiply(BigDecimal.valueOf(vip.getDiscountTimes()))); + } + vipInfoDto.setType(vip.getType()); vipInfoDtos.add(vipInfoDto); + } return R.ok(vipInfoDtos); diff --git a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml index fc51ae5..1ff4d3a 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml +++ b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml @@ -23,7 +23,7 @@ nacos: discovery: # 服务注册地址 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb @@ -31,7 +31,7 @@ password: nacos config: # 配置中心地址 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP name: ${spring.application.name} @@ -56,7 +56,7 @@ type: nacos nacos: # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP data-id: seata-server.properties @@ -74,7 +74,7 @@ nacos: application: seata-server # 开发环境 - server-addr: 192.168.110.169:8848 + server-addr: 127.0.0.1:8848 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb group: DEFAULT_GROUP username: nacos @@ -89,7 +89,7 @@ nacos: discovery: # 开发环境 - server-addr: 192.168.110.169:8848 # nacos注册中心地址 + server-addr: 127.0.0.1:8848 # nacos注册中心地址 namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间 group: DEFAULT_GROUP application: seata-server #Nacos 中 Seata 名称 -- Gitblit v1.7.1