From 6b79e22056bcc2c14d3e20802174b89bc2a0a204 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期五, 09 八月 2024 10:12:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserDetailDto.java | 19 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java | 14 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/query/ExchangeRecordGoodsQuery.java | 17 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java | 4 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserTagMapper.xml | 2 ruoyi-service/ruoyi-other/src/main/resources/mapper/TCouponMapper.xml | 19 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/SiteQuery.java | 29 + ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java | 4 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TInvoiceInformationMapper.xml | 2 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java | 14 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java | 57 ++ ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java | 19 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java | 18 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java | 36 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java | 55 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppUserVipDetailMapper.java | 16 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java | 5 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/SiteStatusEnum.java | 46 + ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteVO.java | 25 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java | 10 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml | 61 ++ ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java | 8 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java | 7 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TInviteUserMapper.xml | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCompanyController.java | 6 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java | 33 + ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserCarMapper.xml | 2 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserMapper.xml | 2 ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | 3 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java | 1 ruoyi-service/ruoyi-account/pom.xml | 12 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TCouponService.java | 4 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java | 26 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java | 10 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml | 80 +++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java | 15 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java | 58 ++ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 133 ++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java | 9 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java | 43 + ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/CouponQuery.java | 22 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 17 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java | 32 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java | 16 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java | 39 + ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserSignMapper.xml | 2 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyDetailVO.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserTagController.java | 28 + ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java | 6 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java | 27 + /dev/null | 166 ------ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java | 78 +++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TCouponServiceImpl.java | 29 + ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserAddressMapper.xml | 2 ruoyi-service/ruoyi-other/pom.xml | 6 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java | 11 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java | 61 ++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TCouponMapper.java | 8 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TFaultMessage.java | 6 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java | 21 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserIntegralChangeMapper.xml | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java | 1 63 files changed, 1,304 insertions(+), 206 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserDetailDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserDetailDto.java new file mode 100644 index 0000000..cf8da17 --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserDetailDto.java @@ -0,0 +1,19 @@ +package com.ruoyi.account.api.dto; + +import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.account.api.model.TAppUserCar; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; +@Data +public class UserDetailDto extends TAppUser { + @ApiModelProperty("累计充电数") + private Long orderCount; + @ApiModelProperty("单位名称") + private String unitName; + + @ApiModelProperty("车辆列表") + List<TAppUserCar> carList; + +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java new file mode 100644 index 0000000..876d173 --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java @@ -0,0 +1,14 @@ +package com.ruoyi.account.api.dto; + +import com.ruoyi.common.core.web.page.BasePage; +import lombok.Data; + +@Data +public class UserListQueryDto extends BasePage { + String userPhone; + String cityCode; + Integer status; + Integer userTagId; + Integer vipTypeId; + Integer companyId; +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java new file mode 100644 index 0000000..370b476 --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java @@ -0,0 +1,39 @@ +package com.ruoyi.account.api.factory; + +import com.ruoyi.account.api.feignClient.AppCouponClient; +import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.common.core.domain.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 门店服务降级处理 + * + * @author ruoyi + */ +@Component +public class AppCouponFallbackFactory implements FallbackFactory<AppCouponClient> +{ + private static final Logger log = LoggerFactory.getLogger(AppCouponFallbackFactory.class); + + @Override + public AppCouponClient create(Throwable throwable) { + log.error("用户优惠券记录调用失败:{}", throwable.getMessage()); + return new AppCouponClient() { + + @Override + public R<List<Integer>> getCountByCouponIds(String couponIds) { + return null; + } + + @Override + public R<Integer> getUseCountByCouponId(Integer couponId) { + return null; + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java new file mode 100644 index 0000000..595543c --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java @@ -0,0 +1,32 @@ +package com.ruoyi.account.api.feignClient; + +import com.ruoyi.account.api.factory.AppCouponFallbackFactory; +import com.ruoyi.account.api.factory.AppUserFallbackFactory; +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.List; + +/** + * 用户服务 + * @author ruoyi + */ +@FeignClient(contextId = "AppCouponClient", value = ServiceNameConstants.CONTRACT_ACCOUNT, fallbackFactory = AppCouponFallbackFactory.class) +public interface AppCouponClient { + + /** + * 管理后台远程调用 根据优惠券ids 查询对应的发放数量 + * @return 优惠券ids 查询每个优惠券的发放数量 + */ + @PostMapping("/t-app-coupon/getCountByCouponIds") + public R<List<Integer>> getCountByCouponIds(String couponIds); + /** + * 管理后台远程调用 根据优惠券id 查询对应的使用数量 + * @param couponId + * @return + */ + @PostMapping("/t-app-coupon/getUseCountByCouponId") + public R<Integer> getUseCountByCouponId(Integer couponId); +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java index 882c0a5..0f6d8d1 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java @@ -73,7 +73,9 @@ @ApiModelProperty(value = "状态(1=未使用,2=已使用)") @TableField("status") private Integer status; - + @ApiModelProperty(value = "订单id 后台发放的优惠券没有订单id") + @TableField("orderId") + private Long orderId; diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java index 0bfa1c3..0a731d5 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUser.java @@ -104,4 +104,14 @@ private LocalDateTime lastLoginTime; + + + @ApiModelProperty(value = "标签名称") + @TableField(exist = false) + private String tagName; + @ApiModelProperty(value = "vip名称") + @TableField(exist = false) + private String vipName; + + } 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 new file mode 100644 index 0000000..9ca255a --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java @@ -0,0 +1,57 @@ +package com.ruoyi.account.api.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * + * </p> + * + * @author luodangjia + * @since 2024-08-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_app_user_vip_detail") +@ApiModel(value="TAppUserVipDetail对象", description="") +public class TAppUserVipDetail implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + @ApiModelProperty(value = "用户id") + @TableField("app_user_id") + private Long appUserId; + + @ApiModelProperty(value = "剩余充电次数") + @TableField("charge_num") + private Integer chargeNum; + + @ApiModelProperty(value = "会员id") + @TableField("vip_id") + private Integer vipId; + + @ApiModelProperty(value = "会员开始时间") + @TableField("start_time") + private LocalDateTime startTime; + + @ApiModelProperty(value = "会员结束时间") + @TableField("end_time") + private LocalDateTime endTime; + + @TableField("create_time") + private LocalDateTime createTime; + + +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/query/ExchangeRecordGoodsQuery.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/query/ExchangeRecordGoodsQuery.java new file mode 100644 index 0000000..894791d --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/query/ExchangeRecordGoodsQuery.java @@ -0,0 +1,17 @@ +package com.ruoyi.account.api.query; + +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("管理后台 优惠券兑换记录") +public class ExchangeRecordGoodsQuery extends BasePage { + @ApiModelProperty(value = "用户手机号") + private String phone; + @ApiModelProperty(value = "状态1未使用 2已使用 3已过期 4已取消") + private Integer status; + @ApiModelProperty(value = "优惠券id",required = true) + private Integer couponId; +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java new file mode 100644 index 0000000..43c0f6d --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java @@ -0,0 +1,36 @@ +package com.ruoyi.account.api.vo; + +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@ApiModel("管理后台 优惠券兑换记录列表返回VO") +public class ExchangeRecordVO { + @ApiModelProperty(value = "获得时间") + private String createTime; + @ApiModelProperty(value = "获得用户") + private String phone; + @ApiModelProperty(value = "优惠金额") + private String discountAmount; + @ApiModelProperty(value = "使用门槛") + private String meetTheConditions; + @ApiModelProperty(value = "使用状态 1未使用 2已使用 3已过期 4已取消") + private Integer status; + @ApiModelProperty(value = "失效时间") + private String endTime1; + @ApiModelProperty(value = "失效时间 前端忽略") + private LocalDateTime endTime; + @ApiModelProperty(value = "关联订单") + private String orderId; + @ApiModelProperty(value = " 前端忽略 获取方式 1=积分兑换 2现金购买") + private Integer waysToObtain; + @ApiModelProperty(value = " 是否删除0否1是") + private Integer delFlag; + @ApiModelProperty(value = "三方支付流水号 前端忽略") + private String serialNumber; + +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 9e16de7..9743c88 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,2 @@ -com.ruoyi.account.api.factory.AppUserFallbackFactory \ No newline at end of file +com.ruoyi.account.api.factory.AppUserFallbackFactory +com.ruoyi.account.api.factory.AppCouponFallbackFactory \ No newline at end of file diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppCouponMapper.xml b/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppCouponMapper.xml deleted file mode 100644 index 002b4a4..0000000 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppCouponMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.ruoyi.account.api.mapper.TAppCouponMapper"> - - <!-- 通用查询映射结果 --> - <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TAppCoupon"> - <id column="id" property="id" /> - <result column="app_user_id" property="appUserId" /> - <result column="coupon_id" property="couponId" /> - <result column="end_time" property="endTime" /> - <result column="ways_to_obtain" property="waysToObtain" /> - <result column="redeem_points" property="redeemPoints" /> - <result column="payment_amount" property="paymentAmount" /> - <result column="payment_type" property="paymentType" /> - <result column="serial_number" property="serialNumber" /> - <result column="payment_time" property="paymentTime" /> - <result column="status" property="status" /> - <result column="create_time" property="createTime" /> - <result column="del_flag" property="delFlag" /> - </resultMap> - - <!-- 通用查询结果列 --> - <sql id="Base_Column_List"> - id, app_user_id, coupon_id, end_time, ways_to_obtain, redeem_points, payment_amount, payment_type, serial_number, payment_time, status, create_time, del_flag - </sql> - -</mapper> diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TFaultMessage.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TFaultMessage.java index 236e989..3301e51 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TFaultMessage.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TFaultMessage.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.validator.constraints.Length; import java.io.Serializable; import java.time.LocalDateTime; @@ -46,6 +47,11 @@ @TableField("status") private Integer status; + @ApiModelProperty(value = "故障内容") + @Length(max = 200, message = "故障内容长度不能超过200") + @TableField("content") + private String content; + @ApiModelProperty(value = "故障时间") @TableField("down_time") private LocalDateTime downTime; diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TSite.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TSite.java deleted file mode 100644 index b099b24..0000000 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TSite.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.ruoyi.chargingPile.api.model; - -import com.baomidou.mybatisplus.annotation.*; -import com.ruoyi.common.core.web.domain.BasePojo; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serializable; -import java.time.LocalDateTime; - -/** - * <p> - * - * </p> - * - * @author xiaochen - * @since 2024-08-08 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@TableName("t_site") -@ApiModel(value="TSite对象", description="") -public class TSite extends BasePojo { - - private static final long serialVersionUID = 1L; - - @ApiModelProperty(value = "主键") - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - @ApiModelProperty(value = "合作商id") - @TableField("partner_id") - private Integer partnerId; - - @ApiModelProperty(value = "站点编号") - @TableField("code") - private String code; - - @ApiModelProperty(value = "站点名称") - @TableField("name") - private String name; - - @ApiModelProperty(value = "站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用))") - @TableField("site_type") - private Integer siteType; - - @ApiModelProperty(value = "经营类型(1=直营,2=非直营)") - @TableField("business_category") - private Integer businessCategory; - - @ApiModelProperty(value = "站点状态(1=正常使用,2=维修中,3=关闭下线)") - @TableField("status") - private Integer status; - - @ApiModelProperty(value = "建设场所(0=其他,1=居民区,2=公共机构,3=企事业单位,4=写字楼,5=工业园区,6=交通枢纽,7=大型文体设施,8=城市绿地,9=大型建筑配建停车场,10=路边停车位,11=城际高速服务区)") - @TableField("construction_site") - private Integer constructionSite; - - @ApiModelProperty(value = "站点环境图") - @TableField("img_url") - private String imgUrl; - - @ApiModelProperty(value = "省名称") - @TableField("province") - private String province; - - @ApiModelProperty(value = "省区划代码") - @TableField("province_code") - private String provinceCode; - - @ApiModelProperty(value = "市名称") - @TableField("city") - private String city; - - @ApiModelProperty(value = "市区划代码") - @TableField("city_code") - private String cityCode; - - @ApiModelProperty(value = "区县名称") - @TableField("districts") - private String districts; - - @ApiModelProperty(value = "区县区划代码") - @TableField("districts_code") - private String districtsCode; - - @ApiModelProperty(value = "经度") - @TableField("lon") - private String lon; - - @ApiModelProperty(value = "纬度") - @TableField("lat") - private String lat; - - @ApiModelProperty(value = "详细地址") - @TableField("address") - private String address; - - @ApiModelProperty(value = "国家代码") - @TableField("country_code") - private String countryCode; - - @ApiModelProperty(value = "站点电话") - @TableField("phone") - private String phone; - - @ApiModelProperty(value = "服务电话") - @TableField("service_phone") - private String servicePhone; - - @ApiModelProperty(value = "站点引导") - @TableField("guide") - private String guide; - - @ApiModelProperty(value = "开始服务时间") - @TableField("start_service_time") - private String startServiceTime; - - @ApiModelProperty(value = "结束服务时间") - @TableField("end_service_time") - private String endServiceTime; - - @ApiModelProperty(value = "站内提供服务") - @TableField("service_description") - private String serviceDescription; - - @ApiModelProperty(value = "车型描述") - @TableField("vehicle_description") - private String vehicleDescription; - - @ApiModelProperty(value = "车位数") - @TableField("parking_space") - private Integer parkingSpace; - - @ApiModelProperty(value = "充电费率描述") - @TableField("rate_description") - private String rateDescription; - - @ApiModelProperty(value = "超时占位费说明") - @TableField("space_charge_explain") - private String spaceChargeExplain; - - @ApiModelProperty(value = "计费策略id") - @TableField("accounting_strategy_id") - private Integer accountingStrategyId; - - @ApiModelProperty(value = "建站时间") - @TableField("establishment_time") - private LocalDateTime establishmentTime; - - @ApiModelProperty(value = "排序") - @TableField("sort") - private Integer sort; - - @ApiModelProperty(value = "备注") - @TableField("remark") - private String remark; - - @ApiModelProperty(value = "评分") - @TableField("mark") - private Integer mark; - - -} diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/SiteQuery.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/SiteQuery.java new file mode 100644 index 0000000..7eb33df --- /dev/null +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/SiteQuery.java @@ -0,0 +1,29 @@ +package com.ruoyi.chargingPile.api.query; + +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "SiteQuery对象",description = "站点查询条件") +public class SiteQuery extends BasePage { + + @ApiModelProperty(value = "站点名称") + private String name; + + @ApiModelProperty(value = "排序方式 1=离我最近 2=价格较低 3=空闲较多") + @NotNull(message = "排序方式不能为空") + private Integer sortType; + + @ApiModelProperty(value = "经度") + @NotNull(message = "地址经度不能为空") + private String lon; + + @ApiModelProperty(value = "纬度") + @NotNull(message = "地址纬度不能为空") + private String lat; + +} diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteVO.java new file mode 100644 index 0000000..ba71ee4 --- /dev/null +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteVO.java @@ -0,0 +1,25 @@ +package com.ruoyi.chargingPile.api.vo; + +import com.ruoyi.chargingPile.api.model.Site; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "SiteVO对象", description = "站点信息") +public class SiteVO extends Site { + + @ApiModelProperty(value = "快充数量") + private Integer fastCount; + @ApiModelProperty(value = "超充数量") + private Integer superCount; + @ApiModelProperty(value = "慢充数量") + private Integer slowCount; + @ApiModelProperty(value = "普通电价") + private BigDecimal electrovalence; + @ApiModelProperty(value = "会员电价") + private BigDecimal vipElectrovalence; + +} diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyDetailVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyDetailVO.java index 63c2588..caa1742 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyDetailVO.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TAccountingStrategyDetailVO.java @@ -11,7 +11,7 @@ @ApiModel(value = "TAccountingStrategyDetailVO",description = "计费策略明细") public class TAccountingStrategyDetailVO extends TAccountingStrategyDetail { - @ApiModelProperty(value = "原价服务费") + @ApiModelProperty(value = "总价") private BigDecimal totalPrice; @ApiModelProperty(value = "会员折扣") diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java index cb381c7..3f8d2c1 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java @@ -1,5 +1,6 @@ package com.ruoyi.order.api.factory; +import com.ruoyi.common.core.domain.R; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,7 +21,12 @@ public ChargingOrderClient create(Throwable throwable) { log.error("充电订单调用失败:{}", throwable.getMessage()); return new ChargingOrderClient() { - + + @Override + public R<Long> useOrderCount(Long userId) { + return R.fail("订单计数:" + throwable.getMessage()); + + } }; } } 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 165973b..0ad9005 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 @@ -1,10 +1,14 @@ package com.ruoyi.order.api.factory; +import com.ruoyi.common.core.domain.R; import com.ruoyi.order.api.feignClient.ChargingOrderClient; +import com.ruoyi.order.api.feignClient.OrderClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; + +import java.util.List; /** * 充电订单服务降级处理 @@ -12,16 +16,20 @@ * @author ruoyi */ @Component -public class OrderFallbackFactory implements FallbackFactory<ChargingOrderClient> +public class OrderFallbackFactory implements FallbackFactory<OrderClient> { private static final Logger log = LoggerFactory.getLogger(OrderFallbackFactory.class); @Override - public ChargingOrderClient create(Throwable cause) { + public OrderClient create(Throwable cause) { log.error("商品订单调用失败:{}", cause.getMessage()); - return new ChargingOrderClient() { + return new OrderClient() { + @Override + public R<List<Integer>> getSalesCountByGoodsId(String goodsIds) { + return null; + } }; } } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java index 7f227d4..aa4639f 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java @@ -1,8 +1,11 @@ package com.ruoyi.order.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; import com.ruoyi.order.api.factory.ChargingOrderFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; /** * 充电订单服务 @@ -10,6 +13,8 @@ */ @FeignClient(contextId = "ChargingOrderClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = ChargingOrderFallbackFactory.class) public interface ChargingOrderClient { + @PostMapping(value = "/t-charging-order/useOrderCount") + R<Long> useOrderCount(@RequestParam Long userId); } diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java index af872cc..cd229d3 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java @@ -106,6 +106,12 @@ @ApiModelProperty(value = "状态(1=上架,2=下架)") @TableField("status") private Integer status; + @ApiModelProperty(value = "发放数量") + @TableField(exist = false) + private Integer count; + @ApiModelProperty(value = "使用数量") + @TableField(exist = false) + private Integer useCount; diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java index 2466d95..cfb52c2 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java @@ -6,12 +6,14 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TUserTag; -import com.ruoyi.other.api.feignClient.GoodsClient; import com.ruoyi.other.api.feignClient.OtherClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; /** * 商品服务降级处理 @@ -57,6 +59,21 @@ public R deleteTag(Integer id) { return R.fail("查询标签:" + throwable.getMessage()); } + + @Override + public R<Map<Integer, String>> getTagMap(List<Integer> ids) { + return R.fail("查询标签map:" + throwable.getMessage()); + } + + @Override + public R<TUserTag> getByIdTag(Integer id) { + return R.fail("查询标签:" + throwable.getMessage()); + } + + @Override + public R<Map<Integer, String>> getVipMap(List<Integer> ids) { + return R.fail("获取会员map:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java index 4630bf6..833e422 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java @@ -7,12 +7,14 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TUserTag; -import com.ruoyi.other.api.factory.GoodsFallbackFactory; import com.ruoyi.other.api.factory.OtherFallbackFactory; 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; + +import java.util.List; +import java.util.Map; /** * 商品服务 @@ -30,6 +32,8 @@ @PostMapping(value = "/t-company/unit/delete") R unitDelete(@RequestParam Integer id); + @PostMapping(value = "/t-company/unit/detail") + R<TCompany> unitDetail(@RequestParam Integer id); //标签分页 @PostMapping(value = "/t-user-tag/page") @@ -38,6 +42,26 @@ //用户新增标签 @PostMapping(value = "/t-user-tag/addorUpdateTag") R addorUpdateTag(@RequestBody TUserTag tUserTag); + //删除用户标签 @PostMapping(value = "/t-user-tag/delete") R deleteTag(@RequestParam Integer id); + + //获取标签Map + @PostMapping(value = "/t-user-tag/getTagMap") + R<Map<Integer, String>> getTagMap(@RequestBody List<Integer> ids); + //获取标签 + @PostMapping(value = "/t-user-tag/getById") + R<TUserTag> getByIdTag(@RequestParam Integer id); + + @PostMapping(value = "/vip/getVipMap") + R<Map<Integer, String>> getVipMap(@RequestBody List<Integer> ids); + + + + + + + + + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java index ba46eb4..49df453 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java @@ -86,6 +86,11 @@ } @Override + public R<SysUser> queryUserByAccount(String account) { + return null; + } + + @Override public R<SysUser> queryUserByUserName(String userName) { return R.fail("通过账号查询用户失败:" + cause.getMessage()); } @@ -94,6 +99,11 @@ public R addSysUser(SysUser user) { return R.fail("添加用户失败:" + cause.getMessage()); } + + @Override + public R resetPassword(SysUser user) { + return null; + } }; } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java index 91ba605..b4a5e88 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java @@ -36,4 +36,5 @@ */ public static final String CONTRACT_SERVICE = "ruoyi-contract"; public static final String CONTRACT_ORDER = "ruoyi-order"; + public static final String CONTRACT_ACCOUNT = "ruoyi-account"; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/SiteStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/SiteStatusEnum.java new file mode 100644 index 0000000..5d08b48 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/SiteStatusEnum.java @@ -0,0 +1,46 @@ +package com.ruoyi.common.core.enums.status; + +import lombok.Getter; + +/** + * @Description + * @Author xiaochen + * @Date 2023/6/8 16:42 + */ +public enum SiteStatusEnum { + + + NORMAL_USE(1, "正常使用"), + IN_MAINTENANCE(2, "维修中"), + CLOSE_OFFLINE(3, "关闭下线"); + + @Getter + private String desc; + + + @Getter + private int code; + + + SiteStatusEnum(int code, String desc) { + this.code = code; + this.desc = desc; + } + + /** + * 通过code获取枚举 + * + * @param code + * @return + */ + public static SiteStatusEnum fromCode(Integer code) { + SiteStatusEnum[] resultTypes = SiteStatusEnum.values(); + for (SiteStatusEnum resultType : resultTypes) { + if (code.equals(resultType.getCode())) { + return resultType; + } + } + return null; + } + +} diff --git a/ruoyi-service/ruoyi-account/pom.xml b/ruoyi-service/ruoyi-account/pom.xml index 5f0a89f..957885b 100644 --- a/ruoyi-service/ruoyi-account/pom.xml +++ b/ruoyi-service/ruoyi-account/pom.xml @@ -112,6 +112,18 @@ <version>3.6.2</version> <scope>compile</scope> </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.6</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-order</artifactId> + <version>3.6.2</version> + <scope>compile</scope> + </dependency> </dependencies> 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 8197d08..ffc595e 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 @@ -1,8 +1,25 @@ package com.ruoyi.account.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ruoyi.account.api.model.TAppCoupon; +import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; +import com.ruoyi.account.api.vo.ExchangeRecordVO; +import com.ruoyi.account.service.TAppCouponService; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.other.api.domain.TCoupon; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * <p> @@ -15,6 +32,47 @@ @RestController @RequestMapping("/t-app-coupon") public class TAppCouponController { + @Autowired + private TAppCouponService tAppCouponService; + /** + * 管理后台远程调用 根据优惠券ids 查询对应的发放数量 + * @return 优惠券ids 查询每个优惠券的发放数量 + */ + @PostMapping("/getCountByCouponIds") + public R<List<Integer>> getCountByCouponIds(String couponIds) { + // 最终结果 和优惠券id一一对应 + List<Integer> res = new ArrayList<>(); + String[] split = couponIds.split(","); + // 查询每个优惠券的发放数量 + List<TAppCoupon> couponId = tAppCouponService.list(new QueryWrapper<TAppCoupon>() + .in("coupon_id", Arrays.asList(split))); + for (String s : split) { + res.add(tAppCouponService.list(new QueryWrapper<TAppCoupon>() + .eq("coupon_id", s)).size()); + } + return R.ok(res); + } + + /** + * 后台远程调用 根据优惠券id 查询使用数量 + * @param couponId + * @return + */ + @PostMapping("/getUseCountByCouponId") + public R<Integer> getUseCountByCouponId(Integer couponId){ + return R.ok(tAppCouponService.list(new QueryWrapper<TAppCoupon>() + .eq("coupon_id", couponId) + .eq("status",2)).size()); + } + /** + * 后台远程调用 根据优惠券id 查询领取记录 + * @param couponId + * @return + */ + @PostMapping("/getExchangeRecordByCouponId") + public R<PageInfo<ExchangeRecordVO>> getUseCountByCouponId(ExchangeRecordGoodsQuery couponId){ + return R.ok(tAppCouponService.pagelist(couponId)); + } } 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 c261e65..8377509 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 @@ -4,11 +4,23 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.dto.UnitListQueryDto; +import com.ruoyi.account.api.dto.UserDetailDto; +import com.ruoyi.account.api.dto.UserListQueryDto; 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.model.TAppUserVipDetail; +import com.ruoyi.account.service.TAppUserCarService; import com.ruoyi.account.service.TAppUserService; +import com.ruoyi.account.service.TAppUserTagService; +import com.ruoyi.account.service.TAppUserVipDetailService; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.bean.BeanUtils; +import com.ruoyi.common.core.web.domain.BasePojo; import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.other.api.domain.TCompany; +import com.ruoyi.other.api.domain.TUserTag; import com.ruoyi.other.api.feignClient.OtherClient; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -16,6 +28,13 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.time.Duration; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -33,6 +52,16 @@ private OtherClient otherClient; @Resource private TAppUserService appUserService; + @Resource + private TAppUserTagService appUserTagService; + + @Resource + private TAppUserVipDetailService tAppUserVipDetailService; + @Resource + private ChargingOrderClient chargingOrderClient; + + @Resource + private TAppUserCarService appUserCarService; @ApiOperation(value = "单位管理列表", tags = {"用户管理-单位管理"}) @PostMapping(value = "/unit/page") @@ -63,21 +92,117 @@ } - @ApiOperation(value = "用户列表", tags = {"用户管理-用户管理"}) + @ApiOperation(value = "用户列表", tags = {"用户管理-用户列表"}) @PostMapping(value = "/user/page") - public R<Page<TCompany>> userPage(@RequestBody UnitListQueryDto unitListQueryDto) { + public R<Page<TAppUser>> userPage(@RequestBody UserListQueryDto userListQueryDto) { + List<Long> userIds = new ArrayList<>(); - //拿到标签tag + //如果要筛选标签。用标签获取useids + if (userListQueryDto.getUserTagId() != null){ + userIds = appUserTagService.lambdaQuery().eq(TAppUserTag::getUserTagId, userListQueryDto.getUserTagId()).list().stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList()); + } - //拿到会员map + //列表查询 + Page<TAppUser> page = appUserService.lambdaQuery() + .like(userListQueryDto.getUserPhone() != null && !"".equals(userListQueryDto.getUserPhone()), TAppUser::getPhone, userListQueryDto.getUserPhone()) + .eq(userListQueryDto.getCompanyId() != null, TAppUser::getCompanyId, userListQueryDto.getCompanyId()) + .eq(userListQueryDto.getCityCode() != null && !"".equals(userListQueryDto.getCityCode()), TAppUser::getCityCode, userListQueryDto.getCityCode()) + .eq(userListQueryDto.getStatus() != null, TAppUser::getStatus, userListQueryDto.getStatus()) + .eq(userListQueryDto.getVipTypeId() != null, TAppUser::getVipId, userListQueryDto.getVipTypeId()) + .in(!userIds.isEmpty(),TAppUser::getId,userIds) + .page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize())); + + if (page.getRecords().isEmpty()){ + return R.ok(page); + } + List<Integer> vipIds = new ArrayList<>(); + vipIds = page.getRecords().stream().map(TAppUser::getVipId).collect(Collectors.toList()); + //获取会员map + R<Map<Integer, String>> vipMap = otherClient.getVipMap(vipIds); + //循环处理 + for (TAppUser appUser : page.getRecords()) { + //拿到最新的tagId + TAppUserTag one = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, appUser.getId()).orderByDesc(TAppUserTag::getCreateTime).last("limit 1").one(); + //设置最新的tagName + R<TUserTag> byIdTag = otherClient.getByIdTag(one.getUserTagId()); + if (byIdTag.getData()!=null) { + appUser.setTagName(byIdTag.getData().getName()); + } + //匹配vipMap的值 + appUser.setVipName(vipMap.getData().get(appUser.getVipId())); + } + return R.ok(page); + } + @ApiOperation(value = "用户添加编辑", tags = {"用户管理-用户列表"}) + @PostMapping(value = "/user/addOrUpdate") + public R addOrUpdate(@RequestBody TAppUser tAppUser) { + if (tAppUser.getId() != null){ + //为编辑操作,要进行vip的逻辑处理 + TAppUser nowUser = appUserService.getById(tAppUser.getId()); + //会员结束时间不为空 + if (tAppUser.getVipEndTime()!=null&&tAppUser.getVipEndTime()!=nowUser.getVipEndTime()){ + //计算改变后的结束时间和当前结束时间差距了多少时间 + Duration duration = Duration.between(tAppUser.getVipEndTime(), nowUser.getVipEndTime()); + List<TAppUserVipDetail> detailList = tAppUserVipDetailService.lambdaQuery().eq(TAppUserVipDetail::getAppUserId, tAppUser.getId()).gt(TAppUserVipDetail::getEndTime, LocalDateTime.now()).orderByAsc(TAppUserVipDetail::getStartTime).list(); + //如果是增加,则将明细表里当前会员的结束时间往后移,并将其余未开始会员的开始时间和结束时间往后移 + if (tAppUser.getVipEndTime().isAfter(nowUser.getVipEndTime())){ + for (int i = 0; i < detailList.size(); i++) { + TAppUserVipDetail tAppUserVipDetail = detailList.get(i); + if (i == 0 ){ + tAppUserVipDetail.setEndTime(tAppUser.getVipEndTime().plus(duration)); + }else { + tAppUserVipDetail.setStartTime(tAppUserVipDetail.getStartTime().plus(duration)); + tAppUserVipDetail.setEndTime(tAppUserVipDetail.getEndTime().plus(duration)); + } + } + }else { + //如果是减少,将当前会员结束时间减少,并将其余会员开始和结束时间都往前移动 + for (int i = 0; i < detailList.size(); i++) { + TAppUserVipDetail tAppUserVipDetail = detailList.get(i); + if (i == 0 ){ + tAppUserVipDetail.setEndTime(tAppUser.getVipEndTime().minus(duration)); + }else { + tAppUserVipDetail.setStartTime(tAppUserVipDetail.getStartTime().minus(duration)); + tAppUserVipDetail.setEndTime(tAppUserVipDetail.getEndTime().minus(duration)); + } + } + } + } + } + appUserService.saveOrUpdate(tAppUser); return R.ok(); } + @ApiOperation(value = "用户详情", tags = {"用户管理-用户列表"}) + @PostMapping(value = "/user/detail/{id}") + public R<UserDetailDto> userDetail(@PathVariable Long id) { + TAppUser user = appUserService.getById(id); + UserDetailDto userDetailDto = new UserDetailDto(); + BeanUtils.copyProperties(user,userDetailDto); + if (user.getVipId()!=null) { + R<Map<Integer, String>> vipMap = otherClient.getVipMap(Arrays.asList(user.getVipId())); + user.setVipName(vipMap.getData().get(user.getVipId())); + } + //获取累计充电数量 + R<Long> useOrderCount = chargingOrderClient.useOrderCount(user.getId()); + userDetailDto.setOrderCount(useOrderCount.getData()); + R<TCompany> tCompanyR = otherClient.unitDetail(user.getCompanyId()); + if (tCompanyR.getData()!=null){ + userDetailDto.setUnitName(tCompanyR.getData().getName()); + } + List<TAppUserCar> carList = appUserCarService.lambdaQuery().eq(TAppUserCar::getAppUserId, id).orderByDesc(BasePojo::getCreateTime).list(); + userDetailDto.setCarList(carList); + + List<Integer> tagIds = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, id).orderByDesc(TAppUserTag::getCreateTime).list().stream().map(TAppUserTag::getUserTagId).collect(Collectors.toList()); + R<Map<Integer, String>> tagMap = otherClient.getTagMap(tagIds); + userDetailDto.setTagName(tagMap.getData().values().toString()); + return R.ok(userDetailDto); + } } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java index 35d5a5a..9bbf837 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java @@ -2,6 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.account.api.model.TAppCoupon; +import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; +import com.ruoyi.account.api.vo.ExchangeRecordVO; +import com.ruoyi.common.core.web.page.PageInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +19,5 @@ */ public interface TAppCouponMapper extends BaseMapper<TAppCoupon> { + List<ExchangeRecordVO> pageList(@Param("pageInfo")PageInfo<ExchangeRecordVO> pageInfo,@Param("req") ExchangeRecordGoodsQuery dto); } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppUserVipDetailMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppUserVipDetailMapper.java new file mode 100644 index 0000000..6b72880 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppUserVipDetailMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.account.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.account.api.model.TAppUserVipDetail; + +/** + * <p> + * Mapper 接口 + * </p> + * + * @author luodangjia + * @since 2024-08-08 + */ +public interface TAppUserVipDetailMapper extends BaseMapper<TAppUserVipDetail> { + +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java index 650c5dc..88e6aa1 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.account.api.model.TAppCoupon; +import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; +import com.ruoyi.account.api.vo.ExchangeRecordVO; +import com.ruoyi.common.core.web.page.PageInfo; /** * <p> @@ -13,4 +16,5 @@ */ public interface TAppCouponService extends IService<TAppCoupon> { + PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery couponId); } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java new file mode 100644 index 0000000..8e90bd7 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java @@ -0,0 +1,16 @@ +package com.ruoyi.account.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.account.api.model.TAppUserVipDetail; + +/** + * <p> + * 服务类 + * </p> + * + * @author luodangjia + * @since 2024-08-08 + */ +public interface TAppUserVipDetailService extends IService<TAppUserVipDetail> { + +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java index cb258ba..6bc6d16 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java @@ -2,9 +2,19 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.model.TAppCoupon; +import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; +import com.ruoyi.account.api.vo.ExchangeRecordVO; import com.ruoyi.account.mapper.TAppCouponMapper; import com.ruoyi.account.service.TAppCouponService; +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.other.api.domain.TCoupon; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; /** * <p> @@ -17,4 +27,72 @@ @Service public class TAppCouponServiceImpl extends ServiceImpl<TAppCouponMapper, TAppCoupon> implements TAppCouponService { + @Override + public PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery dto) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + PageInfo<ExchangeRecordVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); + List<ExchangeRecordVO> list = this.baseMapper.pageList(pageInfo,dto); + // 现金优惠券 + StringBuilder stringBuilder = new StringBuilder(); + // 积分优惠券 + StringBuilder stringBuilder1 = new StringBuilder(); + + for (ExchangeRecordVO exchangeRecordVO : list) { + switch (exchangeRecordVO.getWaysToObtain()){ + case 1: + if (exchangeRecordVO.getSerialNumber()!=null){ + stringBuilder.append(exchangeRecordVO.getSerialNumber()).append(","); + }else{ + stringBuilder.append("0").append(","); + } + break; + case 2: + if (exchangeRecordVO.getSerialNumber()!=null){ + stringBuilder1.append(exchangeRecordVO.getSerialNumber()).append(","); + }else{ + stringBuilder1.append("0").append(","); + } + break; + } + + Date date = DateUtils.toDate(exchangeRecordVO.getEndTime()); + exchangeRecordVO.setEndTime1(format.format(date)); + if (exchangeRecordVO.getStatus()==1){ + if (exchangeRecordVO.getDelFlag() == 1){ + // 删除了 就是已取消状态 + exchangeRecordVO.setStatus(4); + }else{ + // 未删除 判断endTime是否过期 + // 设置了过期时间 + if (exchangeRecordVO.getEndTime().isBefore(java.time.LocalDateTime.now())){ + exchangeRecordVO.setStatus(3); + }else{ + // 没过期 + exchangeRecordVO.setStatus(1); + } + } + } + if (exchangeRecordVO.getStatus()==2){ + if (exchangeRecordVO.getDelFlag() == 1){ + // 删除了 就是已取消状态 + exchangeRecordVO.setStatus(4); + }else{ + exchangeRecordVO.setStatus(2); + } + } + // 根据购买方式 查询对应订单号 + } + + // 去除最后一个字符 + if (StringUtils.hasText(stringBuilder.toString())){ + String string = stringBuilder.deleteCharAt(stringBuilder.length() - 1).toString(); + // 远程调用 查询关联的现金优惠券订单编号 + } + if (StringUtils.hasText(stringBuilder.toString())){ + String string = stringBuilder.deleteCharAt(stringBuilder.length() - 1).toString(); + // 远程调用 查询关联的积分兑换优惠券订单编号 + } + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java new file mode 100644 index 0000000..50674ce --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java @@ -0,0 +1,21 @@ +package com.ruoyi.account.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.account.api.model.TAppUserVipDetail; +import com.ruoyi.account.mapper.TAppUserVipDetailMapper; + +import com.ruoyi.account.service.TAppUserVipDetailService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 服务实现类 + * </p> + * + * @author luodangjia + * @since 2024-08-08 + */ +@Service +public class TAppUserVipDetailServiceImpl extends ServiceImpl<TAppUserVipDetailMapper, TAppUserVipDetail> implements TAppUserVipDetailService { + +} diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml new file mode 100644 index 0000000..7b8852a --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.account.mapper.TAppCouponMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TAppCoupon"> + <id column="id" property="id" /> + <result column="app_user_id" property="appUserId" /> + <result column="coupon_id" property="couponId" /> + <result column="end_time" property="endTime" /> + <result column="ways_to_obtain" property="waysToObtain" /> + <result column="redeem_points" property="redeemPoints" /> + <result column="payment_amount" property="paymentAmount" /> + <result column="payment_type" property="paymentType" /> + <result column="serial_number" property="serialNumber" /> + <result column="payment_time" property="paymentTime" /> + <result column="status" property="status" /> + <result column="create_time" property="createTime" /> + <result column="del_flag" property="delFlag" /> + </resultMap> + + <!-- 通用查询结果列 --> + <sql id="Base_Column_List"> + id, app_user_id, coupon_id, end_time, ways_to_obtain, redeem_points, payment_amount, payment_type, serial_number, payment_time, status, create_time, del_flag + </sql> + <select id="pageList" resultType="com.ruoyi.account.api.vo.ExchangeRecordVO"> + select t1.id,t1.app_user_id as appUserId, t1.coupon_id as couponId, + t1.end_time as endTime, t1.ways_to_obtain as waysToObtain, + t1.redeem_points as redeemPoints, + t1.payment_amount as paymentAmount, + t1.payment_type as paymentType, + t1.serial_number as serialNumber, + t1.payment_time as paymentTime, + t1.status, + t1.create_time AS createTime, + t1.del_flag AS delFlag, + t2.phone + from t_app_coupon t1 + left join t_app_user t2 on t1.app_user_id = t2.id + <where> + and t1.coupon_id = #{req.couponId} + <if test="req.phone != null and req.phone != ''"> + AND t2.phone LIKE concat('%',#{req.phone}, '%') + </if> + <if test="req.status != null and req.status = 1"> + AND t1.status =1 and t1.endTime >= now() + </if> + <if test="req.status != null and req.status = 2"> + AND t1.status =2 + </if> + <if test="req.status != null and req.status = 3"> + AND t1.status =1 and t1.endTime <= now() and t1.del_flag = 0 + </if> + <if test="req.status != null and req.status = 4"> + AND t1.del_flag = 0 + </if> + </where> + ORDER BY create_time DESC + </select> + +</mapper> diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserAddressMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserAddressMapper.xml similarity index 93% rename from ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserAddressMapper.xml rename to ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserAddressMapper.xml index d827753..c8ffb59 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserAddressMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserAddressMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.ruoyi.account.api.mapper.TAppUserAddressMapper"> +<mapper namespace="com.ruoyi.account.mapper.TAppUserAddressMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TAppUserAddress"> diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserCarMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserCarMapper.xml similarity index 93% rename from ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserCarMapper.xml rename to ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserCarMapper.xml index bfc95ec..3861951 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserCarMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserCarMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.ruoyi.account.api.mapper.TAppUserCarMapper"> +<mapper namespace="com.ruoyi.account.mapper.TAppUserCarMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TAppUserCar"> diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserIntegralChangeMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserIntegralChangeMapper.xml similarity index 92% rename from ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserIntegralChangeMapper.xml rename to ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserIntegralChangeMapper.xml index b5c42c7..ee2ebd2 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserIntegralChangeMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserIntegralChangeMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.ruoyi.account.api.mapper.TAppUserIntegralChangeMapper"> +<mapper namespace="com.ruoyi.account.mapper.TAppUserIntegralChangeMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TAppUserIntegralChange"> diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserMapper.xml similarity index 96% rename from ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserMapper.xml rename to ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserMapper.xml index 747077e..0dad576 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.ruoyi.account.api.mapper.TAppUserMapper"> +<mapper namespace="com.ruoyi.account.mapper.TAppUserMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TAppUser"> diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserSignMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserSignMapper.xml similarity index 91% rename from ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserSignMapper.xml rename to ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserSignMapper.xml index d0cb7d0..60f857a 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserSignMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserSignMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.ruoyi.account.api.mapper.TAppUserSignMapper"> +<mapper namespace="com.ruoyi.account.mapper.TAppUserSignMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TAppUserSign"> diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserTagMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserTagMapper.xml similarity index 90% rename from ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserTagMapper.xml rename to ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserTagMapper.xml index c6c4943..e69d184 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TAppUserTagMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserTagMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.ruoyi.account.api.mapper.TAppUserTagMapper"> +<mapper namespace="com.ruoyi.account.mapper.TAppUserTagMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TAppUserTag"> diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TInviteUserMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TInviteUserMapper.xml similarity index 91% rename from ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TInviteUserMapper.xml rename to ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TInviteUserMapper.xml index bed9a01..6c95869 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TInviteUserMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TInviteUserMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.ruoyi.account.api.mapper.TInviteUserMapper"> +<mapper namespace="com.ruoyi.account.mapper.TInviteUserMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TInviteUser"> diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TInvoiceInformationMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TInvoiceInformationMapper.xml similarity index 94% rename from ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TInvoiceInformationMapper.xml rename to ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TInvoiceInformationMapper.xml index 4cbf9cf..113c0f6 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/resources/mapper/account/TInvoiceInformationMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TInvoiceInformationMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.ruoyi.account.api.mapper.TInvoiceInformationMapper"> +<mapper namespace="com.ruoyi.account.mapper.TInvoiceInformationMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.account.api.model.TInvoiceInformation"> diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java index 0b04b02..a6334e3 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java @@ -4,12 +4,15 @@ import com.ruoyi.chargingPile.api.dto.GetSiteListDTO; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.query.GetSiteList; +import com.ruoyi.chargingPile.api.query.SiteQuery; +import com.ruoyi.chargingPile.api.vo.SiteVO; import com.ruoyi.chargingPile.service.ISiteService; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -25,8 +28,8 @@ @Resource private ISiteService siteService; - - + + @ResponseBody @GetMapping("/getSiteList") @ApiOperation(value = "获取站点列表", tags = {"管理后台-站点管理"}) @@ -34,7 +37,13 @@ PageInfo<GetSiteListDTO> list = siteService.getSiteList(siteList); return AjaxResult.success(list); } - + + @ApiOperation(value = "获取站点分页列表", tags = {"小程序-站点管理"}) + @PostMapping("/pageList") + public AjaxResult<PageInfo<SiteVO>> pageList(@Validated @RequestBody SiteQuery query){ + return AjaxResult.success(siteService.pageList(query)); + } + @ResponseBody @PostMapping("/getSiteList") diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java index 6777f9e..5a00f21 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java @@ -60,7 +60,7 @@ public AjaxResult<List<TAccountingStrategyDetailVO>> queryAccountingStrategyDetailByStrategyId(@RequestParam Integer strategyId) { List<TAccountingStrategyDetailVO> list = accountingStrategyDetailService.queryAccountingStrategyDetailByStrategyId(strategyId); list.forEach(detail -> { - detail.setTotalPrice(detail.getCostServiceCharge().add(detail.getElectrovalence())); + detail.setTotalPrice(detail.getElectrovalence().add(detail.getElectrovalence())); }); return AjaxResult.ok(list); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java index f4cd149..c58f62a 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java @@ -1,9 +1,23 @@ package com.ruoyi.chargingPile.controller; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.chargingPile.api.model.TAccountingStrategy; +import com.ruoyi.chargingPile.api.vo.TAccountingStrategyDetailVO; +import com.ruoyi.chargingPile.service.TAccountingStrategyDetailService; +import com.ruoyi.chargingPile.service.TAccountingStrategyService; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.web.domain.AjaxResult; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Objects; /** * <p> @@ -18,5 +32,34 @@ @RequestMapping("/t-accounting-strategy-detail") public class TAccountingStrategyDetailController { + private final TAccountingStrategyService accountingStrategyService; + private final TAccountingStrategyDetailService accountingStrategyDetailService; + + @Autowired + public TAccountingStrategyDetailController(TAccountingStrategyService accountingStrategyService, TAccountingStrategyDetailService accountingStrategyDetailService) { + this.accountingStrategyService = accountingStrategyService; + this.accountingStrategyDetailService = accountingStrategyDetailService; + } + + /** + * 通过电站id查询计费策略明细列表 + */ + @ApiOperation(tags = {"小程序-计费策略"},value = "通过站点id查询计费策略明细列表") + @GetMapping(value = "/queryAccountingStrategyDetailBySiteId") + public AjaxResult<List<TAccountingStrategyDetailVO>> queryAccountingStrategyDetailBySiteId(@RequestParam Integer siteId) { + TAccountingStrategy accountingStrategy = accountingStrategyService.getOne(Wrappers.lambdaQuery(TAccountingStrategy.class) + .eq(TAccountingStrategy::getSiteId, siteId) + .last("limit 1")); + if(Objects.isNull(accountingStrategy)){ + throw new ServiceException("未查询到计费策略"); + } + // TODO 修改 + List<TAccountingStrategyDetailVO> list = accountingStrategyDetailService.queryAccountingStrategyDetailByStrategyId(accountingStrategy.getId()); + list.forEach(detail -> { + detail.setTotalPrice(detail.getElectrovalence().add(detail.getElectrovalence())); + }); + return AjaxResult.ok(list); + } + } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java index 89f8f04..cbbed2a 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java @@ -1,6 +1,14 @@ package com.ruoyi.chargingPile.controller; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.chargingPile.api.model.TChargingPile; +import com.ruoyi.chargingPile.api.query.TChargingGunQuery; +import com.ruoyi.chargingPile.api.vo.TChargingGunVO; +import com.ruoyi.chargingPile.service.TChargingGunService; +import com.ruoyi.chargingPile.service.TChargingPileService; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy; @@ -15,6 +23,11 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * <p> @@ -26,8 +39,26 @@ */ @Api(tags = "充电桩") @RestController -@RequestMapping("/chargingPile") +@RequestMapping("/t-charging-pile") public class TChargingPileController { + + private final TChargingPileService chargingPileService; + + @Autowired + public TChargingPileController(TChargingPileService chargingPileService) { + this.chargingPileService = chargingPileService; + } + + /** + * 查询充电桩列表 + */ + @ApiOperation(tags = {"小程序-充电桩"},value = "查询充电桩列表") + @PostMapping(value = "/list") + public AjaxResult<List<TChargingPile>> list(@RequestParam(name = "siteId",value = "站点id",required = false)Integer siteId) { + return AjaxResult.ok(chargingPileService.list(Wrappers.lambdaQuery(TChargingPile.class) + .eq(TChargingPile::getSiteId,siteId))); + } + @Resource private TChargingPileService chargingPileService; diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java index bfacc04..a37a427 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java @@ -1,6 +1,16 @@ package com.ruoyi.chargingPile.controller; +import com.ruoyi.chargingPile.api.dto.TChargingGunDTO; +import com.ruoyi.chargingPile.api.model.TFaultMessage; +import com.ruoyi.chargingPile.service.TChargingPileService; +import com.ruoyi.chargingPile.service.TFaultMessageService; +import com.ruoyi.common.core.web.domain.AjaxResult; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -16,5 +26,22 @@ @RequestMapping("/t-fault-message") public class TFaultMessageController { + private final TFaultMessageService faultMessageService; + + @Autowired + public TFaultMessageController(TFaultMessageService faultMessageService) { + this.faultMessageService = faultMessageService; + } + + /** + * 添加故障报修管理 + */ + @ApiOperation(tags = {"小程序-故障报修"},value = "添加故障报修管理") + @PostMapping(value = "/add") + public AjaxResult<Boolean> add(@Validated @RequestBody TFaultMessage dto) { + return AjaxResult.ok(faultMessageService.save(dto)); + } + + } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java index 42263de..7fae91b 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java @@ -4,6 +4,8 @@ import com.ruoyi.chargingPile.api.dto.GetSiteListDTO; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.query.GetSiteList; +import com.ruoyi.chargingPile.api.query.SiteQuery; +import com.ruoyi.chargingPile.api.vo.SiteVO; import com.ruoyi.common.core.web.page.PageInfo; import org.apache.ibatis.annotations.Param; @@ -23,4 +25,11 @@ * @return */ List<GetSiteListDTO> getSiteList(PageInfo<GetSiteListDTO> pageInfo, @Param("item") GetSiteList siteList); + + /** + * 获取站点分页列表 + * @return + */ + List<SiteVO> pageList(@Param("query")SiteQuery query,@Param("pageInfo")PageInfo<SiteVO> pageInfo); + } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java index 5f8d3e5..98220eb 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java @@ -6,6 +6,9 @@ import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.query.GetSiteList; +import com.ruoyi.chargingPile.api.query.SiteQuery; +import com.ruoyi.chargingPile.api.vo.SiteVO; +import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO; import com.ruoyi.chargingPile.mapper.SiteMapper; import com.ruoyi.chargingPile.service.ISiteService; import com.ruoyi.chargingPile.service.TChargingGunService; @@ -151,6 +154,14 @@ this.updateById(site); return AjaxResult.success(); } + + @Override + public PageInfo<SiteVO> pageList(SiteQuery query) { + PageInfo<SiteVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); + List<SiteVO> list = this.baseMapper.pageList(query,pageInfo); + pageInfo.setRecords(list); + return pageInfo; + } /** diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml index bfb411a..ba0802e 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml +++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml @@ -7,7 +7,7 @@ <id column="id" property="id" /> <result column="partner_id" property="partnerId" /> <result column="`code`" property="code" /> - <result column="name" property="name" /> + <result column="`name`" property="name" /> <result column="site_type" property="siteType" /> <result column="business_category" property="businessCategory" /> <result column="status" property="status" /> @@ -41,7 +41,11 @@ <result column="create_time" property="createTime" /> <result column="del_flag" property="delFlag" /> </resultMap> - + + <!-- 通用查询结果列 --> + <sql id="Base_Column_List"> + id, partner_id, code, `name`, site_type, business_category, status, construction_site, img_url, province, province_code, city, city_code, districts, districts_code, lon, lat, address, country_code, phone, service_phone, guide, start_service_time, end_service_time, service_description, vehicle_description, parking_space, rate_description, space_charge_explain, accounting_strategy_id, establishment_time, sort, remark, create_time, del_flag, mark + </sql> <select id="getSiteList" resultType="com.ruoyi.chargingPile.api.dto.GetSiteListDTO"> select @@ -92,4 +96,76 @@ </if> order by a.sort desc, a.create_time desc limit #{item.pageCurr}, #{item.pageSize} </select> + + <select id="pageList" resultType="com.ruoyi.chargingPile.api.vo.SiteVO"> + select + ts.id, ts.partner_id, ts.code, ts.`name`, ts.site_type, ts.business_category, ts.status, ts.construction_site, ts.img_url, + ts.lon, ts.lat, ts.address, ts.country_code, ts.phone,ts.guide, ts.service_description, ts.vehicle_description, + ts.parking_space, ts.rate_description, ts.space_charge_explain, ts.accounting_strategy_id,ts.del_flag,tcg.fastCount, + tcg.slowCount,tcg.superCount,tasd.electrovalence,tasd.vipElectrovalence, + ROUND( + 6378.138 * 2 * ASIN( + SQRT( + POW( + SIN( + ( + #{query.lat} * PI() / 180 - ts.lat * PI() / 180 + ) / 2 + ), + 2 + ) + COS(#{query.lat} * PI() / 180) * COS(ts.lat * PI() / 180) * POW( + SIN( + ( + #{query.lon} * PI() / 180 - ts.lon * PI() / 180 + ) / 2 + ), + 2 + ) + ) + ) * 1000 + ) AS distance + from t_site ts + left join ( + select site_id, + SUM(CASE WHEN charge_mode = 1 THEN 1 ELSE 0 END) AS superCount, + SUM(CASE WHEN charge_mode = 2 THEN 1 ELSE 0 END) AS fastCount, + SUM(CASE WHEN charge_mode = 3 THEN 1 ELSE 0 END) AS slowCount + from + t_charging_gun + where + del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} + group by + site_id) tcg on (ts.id = tcg.site_id) + left join ( + select + a.accounting_strategy_id, + (a.electrovalence+a.service_charge) AS electrovalence, + ((a.electrovalence+a.service_charge)*a.discount) AS vipElectrovalence + from + t_accounting_strategy_detail a + left join + t_accounting_strategy b on (a.accounting_strategy_id = b.id) + where b.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} + AND DATE_FORMAT(NOW(), '%H:%i:%s') between b.start_time and b.end_time) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id) + <where> + <if test="null != query.name and '' != query.name"> + and ts.`name` like CONCAT('%', #{query.name}, '%') + </if> + AND ts.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} + AND ts.status = ${@com.ruoyi.common.core.enums.SiteStatusEnum@NORMAL_USE.getCode()} + </where> + <if test="query.sortType != null"> + <choose> + <when test="query.sortType == 1"> + ORDER BY ts.distance ASC + </when> + <when test="query.sortType == 2"> + ORDER BY tasd.electrovalence ASC + </when> + <when test="query.sortType == 3"> + ORDER BY (tcg.fastCount + tcg.slowCount + tcg.superCount) DESC + </when> + </choose> + </if> + </select> </mapper> \ No newline at end of file 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 50e1818..2c37b8b 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 @@ -1,9 +1,16 @@ package com.ruoyi.order.controller; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.order.api.model.TChargingOrder; +import com.ruoyi.order.service.TChargingOrderService; import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; /** * <p> @@ -18,5 +25,15 @@ @RequestMapping("/t-charging-order") public class TChargingOrderController { + @Resource + private TChargingOrderService chargingOrderService; + + @PostMapping(value = "/useOrderCount") + public R<Long> useOrderCount(@RequestParam Long userId) { + Long count = chargingOrderService.lambdaQuery().eq(TChargingOrder::getAppUserId, userId).count(); + + return R.ok(count); + } + } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java index 446c350..5b79243 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java @@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -35,10 +36,10 @@ private TExchangeOrderService exchangeOrderService; /** * 管理后台 根据商品ids 查询对应的销量 - * @param goodsIds + * @param goodsIds 订单号-商品类型 * @return */ - @PostMapping("/t-exchange-order/getSalesCountByGoodsIds") + @PostMapping("/getSalesCountByGoodsIds") public R<List<Integer>> getSalesCountByGoodsId(String goodsIds){ String[] split = goodsIds.split("-"); // 取出最后一位字符 类型1查询现金购买 类型2查询积分兑换 @@ -47,13 +48,11 @@ switch (Integer.parseInt(s)){ case 1: for (int i = 0; i < split.length-1; i++) { - Integer reduce = tShoppingOrderService.list(new QueryWrapper<TShoppingOrder>() .eq("goods_id", split[i]) .eq("payment_status", 2) .ne("refund_status", 2)) .stream().map(TShoppingOrder::getPurchaseQuantity).reduce(0, Integer::sum); - res.add(reduce); } break; @@ -63,14 +62,56 @@ .eq("goods_id", split[i]) ) .stream().map(TExchangeOrder::getPurchaseQuantity).reduce(0, Integer::sum); - res.add(reduce); } break; } - - return R.ok(res); } + /** + * 管理后台 根据t_app_coupon流水号查询现金优惠券的订单编号 + * @param goodsIds 订单号-商品类型 + * @return + */ + @PostMapping("/getCodeBySerialNumber") + public R<List<String>> getCodeBySerialNumber(String goodsIds){ + String[] split = goodsIds.split("-"); + List<String> strings = new ArrayList<>(); + for (String s : split) { + TShoppingOrder one = tShoppingOrderService.getOne(new QueryWrapper<TShoppingOrder>() + .eq("order_type", 2) + .eq("serial_number", s)); + if (one != null){ + strings.add(one.getCode()); + }else{ + strings.add(""); + } + } + + return R.ok(strings); + } + /** + * 管理后台 根据t_app_coupon流水号查询积分兑换优惠券的订单编号 + * @param goodsIds 订单号-商品类型 + * @return + */ + @PostMapping("/getCodeBySerialNumberIntegral") + public R<List<String>> getCodeBySerialNumberIntegral(String goodsIds){ + String[] split = goodsIds.split("-"); + List<String> strings = new ArrayList<>(); + for (String s : split) { + TExchangeOrder one = exchangeOrderService.getOne(new QueryWrapper<TExchangeOrder + >() + .eq("order_type", 2) + .eq("serial_number", s)); + if (one != null){ + strings.add(one.getCode()); + }else{ + strings.add(""); + } + } + + return R.ok(strings); + } } diff --git a/ruoyi-service/ruoyi-other/pom.xml b/ruoyi-service/ruoyi-other/pom.xml index 5804ec5..9d8bc09 100644 --- a/ruoyi-service/ruoyi-other/pom.xml +++ b/ruoyi-service/ruoyi-other/pom.xml @@ -23,6 +23,12 @@ </dependency> <dependency> <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-account</artifactId> + <version>3.6.2</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-other</artifactId> <version>3.6.2</version> <scope>compile</scope> diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCompanyController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCompanyController.java index 83a51af..66c00cb 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCompanyController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCompanyController.java @@ -53,5 +53,11 @@ return R.ok(); } + @PostMapping(value = "/unit/delete") + public R<TCompany> delete(@RequestParam Integer id) { + + + return R.ok( companyService.getById(id)); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java index c3b447b..7462917 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java @@ -1,9 +1,21 @@ package com.ruoyi.other.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.account.api.feignClient.AppCouponClient; +import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; +import com.ruoyi.account.api.vo.ExchangeRecordVO; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.other.api.domain.TCoupon; +import com.ruoyi.other.api.domain.TGoods; +import com.ruoyi.other.api.dto.GoodsDTO; +import com.ruoyi.other.query.CouponQuery; +import com.ruoyi.other.service.TActivityService; +import com.ruoyi.other.service.TCouponService; +import com.ruoyi.other.service.TGoodsService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; /** * <p> @@ -16,6 +28,49 @@ @RestController @RequestMapping("/t-coupon") public class TCouponController { + @Autowired + private TCouponService tCouponService; + @Autowired + private AppCouponClient appCouponClient; + @PostMapping("/saveGoods") + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券添加") + public AjaxResult saveActivity(@RequestBody TCoupon dto) { + tCouponService.save(dto); + return AjaxResult.success(); + } + @GetMapping("/delete") + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券删除") + public AjaxResult delete(Integer id) { + tCouponService.removeById(id); + return AjaxResult.success(); + } + @PostMapping("/updateVip") + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券修改") + public AjaxResult updateActivity(@RequestBody TCoupon dto) { + tCouponService.updateById(dto); + return AjaxResult.success(); + } + @GetMapping("/getInfo") + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券查看详情") + public AjaxResult<TCoupon> getInfo(Integer id) { + TCoupon byId = tCouponService.getById(id); + // 查询累计发放数量 + byId.setCount(appCouponClient.getCountByCouponIds(String.valueOf(id)).getData().get(0)); + // 查询累计使用数量 + byId.setUseCount(appCouponClient.getUseCountByCouponId(id).getData()); + return AjaxResult.ok(byId); + } + @PostMapping("/exchangeRecord") + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券查看详情-兑换记录") + public AjaxResult<PageInfo<ExchangeRecordVO>> exchangeRecord(@RequestBody ExchangeRecordGoodsQuery dto) { + + return AjaxResult.ok(null); + } + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券列表分页查询") + @PostMapping(value = "/pageList") + public AjaxResult<PageInfo<TCoupon>> pageList(@RequestBody CouponQuery dto) { + return AjaxResult.ok(tCouponService.pageList(dto)); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserTagController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserTagController.java index 1ce47ac..a224192 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserTagController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserTagController.java @@ -13,6 +13,9 @@ import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -28,6 +31,7 @@ @Resource private TUserTagService tUserTagService; + //标签分页 @PostMapping(value = "/page") public R<Page<TUserTag>> page(@RequestBody TagListQueryDto tagListQueryDto) { Page<TUserTag> page = tUserTagService.lambdaQuery() @@ -37,20 +41,40 @@ return R.ok(page); } - + //标签新增修改 @PostMapping(value = "/addorUpdateTag") public R addorUpdateTag(@RequestBody TUserTag tUserTag) { tUserTag.setCreateTime(LocalDateTime.now()); tUserTagService.saveOrUpdate(tUserTag); return R.ok(); } - + //标签删除 @PostMapping(value = "/delete") public R delete(@RequestParam Integer id) { tUserTagService.removeById(id); return R.ok(); } + //获取标签map + @PostMapping(value = "/getTagMap") + public R<Map<Integer, String>> getTagMap(@RequestBody List<Integer> ids) { + + List<TUserTag> list = tUserTagService.lambdaQuery().in(!ids.isEmpty(), TUserTag::getId, ids).list(); + Map<Integer, String> idNameMap = list.stream() + .collect(Collectors.toMap( + TUserTag::getId, + TUserTag::getName + )); + return R.ok(idNameMap); + } + + @PostMapping(value = "/getById") + public R<TUserTag> getById(@RequestParam Integer id) { + + return R.ok(tUserTagService.getById(id)); + } + + } 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 0a1e9a1..b2f94b8 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 @@ -5,6 +5,7 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.other.api.domain.TIntegralRule; +import com.ruoyi.other.api.domain.TUserTag; import com.ruoyi.other.api.domain.TVip; import com.ruoyi.other.service.TVipService; import io.swagger.annotations.ApiImplicitParam; @@ -13,6 +14,10 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -60,5 +65,18 @@ return AjaxResult.ok(vipService.pageList(pageCurr,pageSize)); } + //获取会员Map + @PostMapping(value = "/getVipMap") + public R<Map<Integer, String>> getVipMap(@RequestBody List<Integer> ids) { + + List<TVip> list = vipService.lambdaQuery().in(!ids.isEmpty(), TVip::getId, ids).list(); + Map<Integer, String> idNameMap = list.stream() + .collect(Collectors.toMap( + TVip::getId, + TVip::getName + )); + return R.ok(idNameMap); + } + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TCouponMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TCouponMapper.java index d2927d2..314216a 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TCouponMapper.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TCouponMapper.java @@ -1,7 +1,14 @@ package com.ruoyi.other.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.other.api.domain.TCoupon; +import com.ruoyi.other.api.domain.TGoods; +import com.ruoyi.other.api.dto.GoodsDTO; +import com.ruoyi.other.query.CouponQuery; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +20,5 @@ */ public interface TCouponMapper extends BaseMapper<TCoupon> { + List<TCoupon> pageList(@Param("pageInfo")PageInfo<TCoupon> pageInfo, @Param("req") CouponQuery dto); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/CouponQuery.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/CouponQuery.java new file mode 100644 index 0000000..e7e39e1 --- /dev/null +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/CouponQuery.java @@ -0,0 +1,22 @@ +package com.ruoyi.other.query; + +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("优惠券列表查询DTO") +public class CouponQuery extends BasePage { + + @ApiModelProperty(value = "优惠券名称") + private String name; + @ApiModelProperty(value = "类型 1充电优惠券 2购物优惠券") + private Integer type; + @ApiModelProperty(value = "获得方式(1=积分兑换,2=现金购买)") + private Integer waysToObtain; + @ApiModelProperty(value = "启用状态 1启用 2禁用") + private Integer status; + + +} diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TCouponService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TCouponService.java index cfe2ac7..525df99 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TCouponService.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TCouponService.java @@ -1,7 +1,10 @@ package com.ruoyi.other.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.other.api.domain.TCoupon; +import com.ruoyi.other.api.domain.TGoods; +import com.ruoyi.other.query.CouponQuery; /** * <p> @@ -13,4 +16,5 @@ */ public interface TCouponService extends IService<TCoupon> { + PageInfo<TCoupon> pageList(CouponQuery dto); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TCouponServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TCouponServiceImpl.java index eb7892a..fe34127 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TCouponServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TCouponServiceImpl.java @@ -1,10 +1,18 @@ package com.ruoyi.other.service.impl; +import com.ruoyi.account.api.feignClient.AppCouponClient; +import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.other.api.domain.TCoupon; +import com.ruoyi.other.api.domain.TGoods; import com.ruoyi.other.mapper.TCouponMapper; +import com.ruoyi.other.query.CouponQuery; import com.ruoyi.other.service.TCouponService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.List; /** * <p> @@ -17,4 +25,25 @@ @Service public class TCouponServiceImpl extends ServiceImpl<TCouponMapper, TCoupon> implements TCouponService { + @Autowired + private AppCouponClient appCouponClient; + @Override + public PageInfo<TCoupon> pageList(CouponQuery dto) { + PageInfo<TCoupon> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); + List<TCoupon> list = this.baseMapper.pageList(pageInfo,dto); + StringBuilder couponIds = new StringBuilder(); + for (TCoupon tCoupon : list) { + couponIds.append(tCoupon.getId()).append(","); + } + if (StringUtils.hasLength(couponIds)){ + // 去除最后一个字符 + couponIds.deleteCharAt(couponIds.length()-1); + } + List<Integer> data = appCouponClient.getCountByCouponIds(couponIds.toString()).getData(); + for (int i = 0; i < list.size(); i++) { + list.get(i).setCount(data.get(i)); + } + pageInfo.setRecords(list); + return pageInfo; + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java index f74785a..f0de342 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java @@ -45,6 +45,7 @@ return pageInfo; } String string = stringBuilder.toString(); + // 订单号加上商品类型 String res = string+"-"+dto.getType(); List<Integer> data = orderClient.getSalesCountByGoodsId(res).getData(); diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/TCouponMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/TCouponMapper.xml index 762311f..517753e 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/TCouponMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/TCouponMapper.xml @@ -32,5 +32,24 @@ <sql id="Base_Column_List"> id, type, name, preferential_mode, discount_amount, meet_the_conditions, discount, maximum_discount_amount, inventory_quantity, validity_period_mode, end_time, days, ways_to_obtain, redeem_points, exchange_limit, payment_amount, vip_payment_amount, explain, remark, status, create_time, del_flag </sql> + <select id="pageList" resultType="com.ruoyi.other.api.domain.TCoupon"> + select * from t_coupon + <where> + <if test="req.name != null and req.name != ''"> + AND `name` LIKE concat('%',#{req.name}, '%') + </if> + <if test="req.type != null"> + AND `type` = #{req.type} + </if> + <if test="req.status != null"> + AND status = #{req.status} + </if> + <if test="req.waysToObtain != null"> + AND ways_to_obtain = #{req.waysToObtain} + </if> + AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} + </where> + ORDER BY create_time DESC + </select> </mapper> -- Gitblit v1.7.1