ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java
@@ -9,6 +9,8 @@ @Data @ApiModel("管理后台发放优惠券DTO") public class GrantCouponDto { @ApiModelProperty("类型 1按用户标签 2按用户所在地 3自定义发放") private Integer type; @ApiModelProperty("用户ids 逗号分隔") private String userIds; @ApiModelProperty("优惠券id") @@ -17,4 +19,9 @@ private Integer waysToObtain; @ApiModelProperty("结束时间 前端忽略") private LocalDateTime endTime; @ApiModelProperty("标签ids") private String tags; @ApiModelProperty("市code 多个逗号分割") private String cityCode; } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -5,8 +5,12 @@ import com.ruoyi.account.api.dto.CouponListDto; import com.ruoyi.account.api.dto.GrantCouponDto; import com.ruoyi.account.api.model.TAppCoupon; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.api.model.TAppUserCar; import com.ruoyi.account.api.model.TAppUserTag; import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; import com.ruoyi.account.service.TAppUserService; import com.ruoyi.account.service.TAppUserTagService; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; @@ -35,6 +39,7 @@ import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -180,12 +185,50 @@ return R.ok(tAppCouponService.pagelist(couponId)); } @Autowired private TAppUserTagService appUserTagService; @Autowired private TAppUserService appUserService; /** * 后台远程调用 给用户发放优惠券 */ @PostMapping("/grantCoupon") public R grantCoupon(@RequestBody GrantCouponDto dto){ List<TAppCoupon> res = new ArrayList<>(); switch (dto.getType()){ case 1: // 根据标签ids 查询用户ids List<Long> collect = appUserTagService.list(new QueryWrapper<TAppUserTag>() .in("user_tag_id", Arrays.asList(dto.getTags().split(",")))) .stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList()); for (Long l : collect) { TAppCoupon tAppCoupon = new TAppCoupon(); tAppCoupon.setAppUserId(l); tAppCoupon.setCouponId(dto.getCouponId()); tAppCoupon.setEndTime(dto.getEndTime()); tAppCoupon.setWaysToObtain(dto.getWaysToObtain()); tAppCoupon.setStatus(1); res.add(tAppCoupon); } tAppCouponService.saveBatch(res); break; case 2: // 根据市codes 查询用户ids List<Long> collect1 = appUserService.list(new QueryWrapper<TAppUser>() .in("city_code", Arrays.asList(dto.getCityCode().split(",")))) .stream().map(TAppUser::getId).collect(Collectors.toList()); for (Long l : collect1) { TAppCoupon tAppCoupon = new TAppCoupon(); tAppCoupon.setAppUserId(l); tAppCoupon.setCouponId(dto.getCouponId()); tAppCoupon.setEndTime(dto.getEndTime()); tAppCoupon.setWaysToObtain(dto.getWaysToObtain()); tAppCoupon.setStatus(1); res.add(tAppCoupon); } tAppCouponService.saveBatch(res); break; case 3: for (String s : dto.getUserIds().split(",")) { TAppCoupon tAppCoupon = new TAppCoupon(); tAppCoupon.setAppUserId(Long.valueOf(s)); @@ -196,6 +239,11 @@ res.add(tAppCoupon); } tAppCouponService.saveBatch(res); break; } return R.ok(); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -11,6 +11,7 @@ import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TOrderEvaluate; import com.ruoyi.order.api.query.ChargingOrderQuery; import com.ruoyi.order.api.query.TChargingCountQuery; import com.ruoyi.order.api.vo.ChargingOrderVO; import com.ruoyi.order.dto.GetMyChargingOrderList; @@ -71,8 +72,9 @@ @ResponseBody @PostMapping(value = "/chargingOrder") @ApiOperation(value = "充电桩订单列表", tags = {"管理后台-订单管理"}) public AjaxResult<PageInfo<ChargingOrderVO>> chargingOrder(@RequestBody OrderEvaluateVo dto){ return AjaxResult.success(); public AjaxResult<PageInfo<ChargingOrderVO>> chargingOrder(@RequestBody ChargingOrderQuery dto){ PageInfo<ChargingOrderVO> res = chargingOrderService.chargingOrder(dto); return AjaxResult.success(res); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -1,7 +1,10 @@ package com.ruoyi.order.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.query.ChargingOrderQuery; import com.ruoyi.order.api.vo.ChargingOrderVO; import com.ruoyi.order.dto.GetNoInvoicedOrder; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -42,4 +45,7 @@ */ List<TChargingOrder> getNoInvoicedOrder(@Param("appUserId") Long appUserId, @Param("month") String month, @Param("pageCurr") Integer pageCurr, @Param("pageSize") Integer pageSize); List<ChargingOrderVO> chargingOrder(@Param("pageInfo") PageInfo<ChargingOrderVO> pageInfo, ChargingOrderQuery dto, String startTime1, String startTime2, String endTime1, String endTime11); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.query.ChargingOrderQuery; import com.ruoyi.order.api.vo.ChargingOrderVO; import com.ruoyi.order.dto.*; import org.springframework.web.bind.annotation.RequestBody; @@ -78,4 +81,6 @@ * @return */ AjaxResult stopCharging(String id); PageInfo<ChargingOrderVO> chargingOrder(ChargingOrderQuery dto); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -17,20 +17,25 @@ import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; import com.ruoyi.order.api.query.ChargingOrderQuery; import com.ruoyi.order.api.vo.ChargingOrderVO; import com.ruoyi.order.dto.*; import com.ruoyi.order.mapper.TChargingOrderMapper; import com.ruoyi.order.service.TChargingOrderAccountingStrategyService; import com.ruoyi.order.service.TChargingOrderService; import com.ruoyi.other.api.domain.TVip; import com.ruoyi.payment.api.feignClient.WxPaymentClient; import com.ruoyi.payment.api.vo.NotifyV3PayDecodeRespBody; import com.ruoyi.payment.api.vo.PaymentOrder; import io.seata.spring.annotation.GlobalTransactional; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.math.BigDecimal; @@ -386,4 +391,27 @@ // todo 待完善 return AjaxResult.success(); } @Override public PageInfo<ChargingOrderVO> chargingOrder(ChargingOrderQuery dto) { String startTime1 = null; String startTime2 = null; String endTime1 = null; String endTime2 = null; if (StringUtils.hasLength(dto.getStartTime())){ String[] split = dto.getStartTime().split(" - "); startTime1 = split[0]; startTime2 = split[1]; } if (StringUtils.hasLength(dto.getEndTime())){ String[] split = dto.getEndTime().split(" - "); endTime1 = split[0]; endTime2 = split[1]; } PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2); pageInfo.setRecords(list); return pageInfo; } }