无关风月
2024-08-08 e2e9e877dba6fdbf18f895f1ee0423c13787ba03
商品管理列表查询
19个文件已修改
5个文件已添加
383 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/query/ExchangeRecordGoodsQuery.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TCouponMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/CouponQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TCouponService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TCouponServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/resources/mapper/TCouponMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
New file
@@ -0,0 +1,34 @@
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;
            }
        };
    }
}
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
New file
@@ -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);
}
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/query/ExchangeRecordGoodsQuery.java
New file
@@ -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 name;
    @ApiModelProperty(value = "状态1未使用 2已使用 3已过期 4已取消")
    private Integer state;
    @ApiModelProperty(value = "优惠券id",required = true)
    private Integer couponId;
}
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java
New file
@@ -0,0 +1,25 @@
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;
@Data
@ApiModel("管理后台 优惠券兑换记录列表返回VO")
public class ExchangeRecordVO {
    @ApiModelProperty(value = "获得时间")
    private String name;
    @ApiModelProperty(value = "获得用户")
    private String state;
    @ApiModelProperty(value = "优惠金额")
    private String discountAmount;
    @ApiModelProperty(value = "使用门槛")
    private String meetTheConditions;
    @ApiModelProperty(value = "使用状态 1未使用 2已使用")
    private Integer status;
    @ApiModelProperty(value = "失效时间")
    private String endTime;
    @ApiModelProperty(value = "关联订单")
    private String orderId;
}
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
com.ruoyi.account.api.factory.AppCouponFallbackFactory
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;
            }
        };
    }
}
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;
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
@@ -6,7 +6,6 @@
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;
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
@@ -7,7 +7,6 @@
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;
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;
            }
        };
    }
}
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";
}
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));
    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java
@@ -2,6 +2,11 @@
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 java.util.List;
/**
 * <p>
@@ -13,4 +18,5 @@
 */
public interface TAppCouponMapper extends BaseMapper<TAppCoupon> {
    List<ExchangeRecordVO> pageList(PageInfo<ExchangeRecordVO> pageInfo, ExchangeRecordGoodsQuery dto);
}
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);
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
@@ -2,9 +2,16 @@
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.web.page.PageInfo;
import com.ruoyi.other.api.domain.TCoupon;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.List;
/**
 * <p>
@@ -17,4 +24,11 @@
@Service
public class TAppCouponServiceImpl extends ServiceImpl<TAppCouponMapper, TAppCoupon> implements TAppCouponService {
    @Override
    public PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery dto) {
        PageInfo<ExchangeRecordVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
        List<ExchangeRecordVO> list = this.baseMapper.pageList(pageInfo,dto);
        pageInfo.setRecords(list);
        return pageInfo;
    }
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
@@ -35,10 +35,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 +47,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,13 +61,10 @@
                                    .eq("goods_id", split[i])
                                    )
                            .stream().map(TExchangeOrder::getPurchaseQuantity).reduce(0, Integer::sum);
                    res.add(reduce);
                }
                break;
        }
        return R.ok(res);
    }
}
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>
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));
    }
}
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);
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/query/CouponQuery.java
New file
@@ -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;
}
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);
}
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;
    }
}
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();
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>