From d6e5d5a71112fb1f0a7361485e80692cc03bc4c3 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期二, 13 六月 2023 19:01:48 +0800 Subject: [PATCH] 优惠券管理 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java | 9 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml | 29 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java | 5 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java | 20 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java | 8 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java | 16 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java | 107 ++ ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml | 13 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java | 21 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java | 27 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java | 74 ++ ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java | 7 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSelectGoodsPageVo.java | 32 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java | 3 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffListVo.java | 21 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java | 37 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java | 4 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java | 11 ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml | 5 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java | 22 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml | 12 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java | 19 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java | 18 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java | 362 +++++++++++ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 10 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java | 27 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 19 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java | 28 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java | 5 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java | 20 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java | 18 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtSelectGoodsPageDto.java | 25 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java | 2 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java | 2 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java | 15 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java | 14 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java | 17 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java | 3 ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml | 25 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java | 4 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java | 2 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml | 7 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java | 17 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SchedulerUtils.java | 48 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java | 36 + ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml | 17 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java | 2 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGoodsListVo.java | 32 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java | 6 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java | 12 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml | 4 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java | 8 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java | 13 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java | 14 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java | 28 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/staff/SysStaff.java | 61 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java | 27 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java | 38 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java | 2 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java | 10 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java | 45 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java | 7 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java | 74 ++ ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml | 49 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java | 2 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java | 9 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java | 72 ++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java | 76 ++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java | 34 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java | 19 72 files changed, 1,770 insertions(+), 121 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java index 5b1a6ca..5a87f79 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java @@ -139,4 +139,8 @@ String TAG_DOUBLE = "标签名不能重复"; String ARTICLE_DOUBLE = "文章标题不能重复"; + + String COUPON_SENT_EDIT = "已发放优惠券不能编辑"; + + String COUPON_SENT_DEL = "已发放优惠券不能删除"; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java index 39a5fef..4a3035f 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/SysClassification.java @@ -1,16 +1,16 @@ package com.ruoyi.system.api.domain.poji.config; -import com.baomidou.mybatisplus.annotation.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; /** * <p> @@ -39,7 +39,7 @@ @TableField("del_flag") private Integer delFlag; /** - * 分类类型 + * 分类类型1鸿瑞堂2商品 */ @TableField("class_type") private Integer classType; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java index 44cf8e7..cb62391 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/goods/Goods.java @@ -1,16 +1,16 @@ package com.ruoyi.system.api.domain.poji.goods; -import java.math.BigDecimal; -import java.util.Date; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; /** * <p> @@ -57,6 +57,11 @@ @TableField("update_user_id") private Long updateUserId; /** + * 商品编码 + */ + @TableField("goods_no") + private String goodsNo; + /** * 商品分类id */ @TableField("goods_class_id") diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSelectGoodsPageVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSelectGoodsPageVo.java new file mode 100644 index 0000000..6dfd5f7 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSelectGoodsPageVo.java @@ -0,0 +1,32 @@ +package com.ruoyi.system.api.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @ClassName MgtCouponGoodsListVo + * @Description TODO + * @Author jqs + * @Date 2023/6/13 14:33 + * @Version 1.0 + */ +@Data +public class MgtSelectGoodsPageVo { + + @ApiModelProperty(value = "商品id") + private String goodsId; + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "商品编码") + private String goodsNo; + + @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") + private String goodsType; + + @ApiModelProperty(value = "商品售价") + private BigDecimal salesPrice; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java index b3fea8b..889ad06 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java @@ -11,6 +11,8 @@ import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; +import java.util.List; + /** * @author jqs34 * @ClassName RemoteGoodsFallbackFactory @@ -55,6 +57,11 @@ public R deleteGoodsTag(String goodsTag) { return R.fail("删除商品标签失败:" + throwable.getMessage()); } + + @Override + public R<List<Goods>> listGoodsByGoodsId(String goodsIds) { + return R.fail("获取商品列表失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java index 25e7854..9c3ad61 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java @@ -4,10 +4,11 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; import com.ruoyi.system.api.factory.RemoteActivityFallbackFactory; -import com.ruoyi.system.api.factory.RemoteUserFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; /** * @author jqs34 @@ -21,4 +22,14 @@ @PostMapping("/activity/getActivityGoods") public R<ActivityGoods> getActivityGoods(@RequestBody String goodsId); + + /** + * @description 通过活动id获取参与活动用户id + * @author jqs + * @date 2023/6/13 18:19 + * @param activityId + * @return R<List<Long>> + */ + @PostMapping("/activity/listUserIdByActivityId") + public R<List<Long>> listUserIdByActivityId(@RequestBody String activityId); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java index cb8974b..f325b19 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java @@ -2,11 +2,9 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; -import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; import com.ruoyi.system.api.domain.poji.config.Activeness; import com.ruoyi.system.api.domain.poji.config.SysClassification; import com.ruoyi.system.api.domain.poji.config.SysTag; -import com.ruoyi.system.api.factory.RemoteActivityFallbackFactory; import com.ruoyi.system.api.factory.RemoteConfigFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -39,13 +37,13 @@ * 通过id获取分类 * @return */ - @PostMapping("/getSysClassification") + @PostMapping("/config/getSysClassification") public R<SysClassification> getSysClassification(@RequestBody Long classId); /** * 通过ids获取分类 * @return */ - @PostMapping("/getSysClassificationList") + @PostMapping("/config/getSysClassificationList") public R<Map<Long,SysClassification>> getSysClassificationList(@RequestBody List<Long> classIds); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java index 825cf7a..08f20b1 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java @@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.util.List; + /** * @author jqs34 * @ClassName RemoteGoodsService @@ -42,6 +44,9 @@ * @param goodsTag * @return R */ - @PostMapping("/deleteGoodsTag") + @PostMapping("/goods/deleteGoodsTag") public R deleteGoodsTag(@RequestBody String goodsTag); + + @PostMapping("/goods/listGoodsByGoodsId") + public R<List<Goods>> listGoodsByGoodsId(@RequestBody String goodsIds); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java index a7e8179..982e716 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java @@ -48,7 +48,7 @@ * @param suggestTag * @return R */ - @PostMapping("/deleteShopSuggestTag") + @PostMapping("/shop/deleteShopSuggestTag") public R deleteShopSuggestTag(@RequestBody String suggestTag); /** @@ -58,6 +58,6 @@ * @param mgtShopIdByCodeDto * @return R<MgtShopIdByCodeVo> */ - @PostMapping("/getShopIdByCode") + @PostMapping("/shop/getShopIdByCode") public R<MgtShopIdByCodeVo> getShopIdByCode(@RequestBody MgtShopIdByCodeDto mgtShopIdByCodeDto); } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java index edd9d34..65c71f5 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java @@ -75,7 +75,7 @@ public static final String dateTime(final Date date) { - return parseDateToStr(YYYY_MM_DD, date); + return parseDateToStr(YYYY_MM_DD_HH_MM_SS, date); } public static final String parseDateToStr(final String format, final Date date) diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java index f26f5f2..142f067 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/CodeFactoryUtil.java @@ -42,6 +42,13 @@ private static final String SHOP_PREFIX = "HRT_S"; /** + * 商品编号 + */ + private static final String GOODS_PREFIX = "HRT_G"; + + + + /** * 商户订单前缀 */ private static final String ORDER_PREFIX = "SC"; @@ -55,6 +62,41 @@ * 店铺创建订单前缀 */ private static final String SHOP_ORDER_PREFIX = "CJ"; + + /** + * 积分商城订单前缀 + */ + private static final String INTEGRAL_ORDER_PREFIX = "JF"; + + /** + * 直播订单前缀 + */ + private static final String LIVE_ORDER_PREFIX = "ZB"; + + /** + * 拼团订单前缀 + */ + private static final String GROUP_ORDER_PREFIX = "PT"; + + /** + * 砍价订单前缀 + */ + private static final String CUT_ORDER_PREFIX = "KJ"; + + /** + * 采购订单前缀 + */ + private static final String PURCHASE_ORDER_PREFIX = "CG"; + + /** + * 入库订单前缀 + */ + private static final String IN_ORDER_PREFIX = "RK"; + + /** + * 出库订单前缀 + */ + private static final String OUT_ORDER_PREFIX = "CK"; /** @@ -70,7 +112,7 @@ * 用户id和随机数总长度 */ - private static final int SHOP_LENGTH = 4; + private static final int SHOP_LENGTH = 5; private static final int MEMBER_LENGTH = 6; @@ -80,19 +122,20 @@ * 更具id进行加密+加随机数组成固定长度编码 */ - /*public static void main(String[] args) { + public static void main(String[] args) { - }*/ + } /** * 获取商户编号 - * - * @param shopId * @return */ - public static String getShopNo(Long shopId) { + public static String getShopNo() { + String shopNo; String prefix = SHOP_PREFIX; - return toFillZeroCode(prefix, SHOP_LENGTH, shopId); + String suffixNumber = getNoSuffixNumber(prefix); + shopNo = prefix + suffixNumber; + return shopNo; } /** @@ -105,21 +148,61 @@ return toFillZeroCode(prefix, MEMBER_LENGTH, userId); } + /** + * @description 获取商品编号 + * @author jqs + * @date 2023/6/13 14:48 + * @param + * @return String + */ + public static String getGoodsNo() { + String goodsNo; + String prefix = GOODS_PREFIX; + String suffixNumber = getNoSuffixNumber(prefix); + goodsNo = prefix + suffixNumber; + return goodsNo; + } + + + private static String getNoSuffixNumber(String prefix){ + Integer suffixNumberInt; + String suffixNumber = "00001"; + if(redisService.hasKey(prefix)){ + suffixNumberInt = redisService.getCacheObject(prefix); + suffixNumber = toFillZeroSuffixNumber(suffixNumberInt,SHOP_LENGTH); + suffixNumberInt = suffixNumberInt + 1; + redisService.setCacheObject(prefix, suffixNumberInt); + }else{ + redisService.setCacheObject(prefix, 1); + } + return suffixNumber; + } + + + /** + * @description 获取商城订单编号 + * @author jqs + * @date 2023/6/13 14:48 + * @param + * @return String + */ public static String getShopOrderNo() { String orderNo; String timeTemp = DateFormatUtils.format(new Date(), "yyyyMMdd"); String prefix = ORDER_PREFIX + timeTemp; - String suffixNumber = getSuffixNumber(prefix); + String suffixNumber = getOrderSuffixNumber(prefix); orderNo = prefix + suffixNumber; return orderNo; } - private static String getSuffixNumber(String prefix){ + + + private static String getOrderSuffixNumber(String prefix){ Integer suffixNumberInt; String suffixNumber = "0001"; if(redisService.hasKey(prefix)){ suffixNumberInt = redisService.getCacheObject(prefix); - suffixNumber = toFillZeroSuffixNumber(suffixNumberInt); + suffixNumber = toFillZeroSuffixNumber(suffixNumberInt,ORDER_LENGTH); suffixNumberInt = suffixNumberInt + 1; redisService.setCacheObject(prefix, suffixNumberInt, 24L, TimeUnit.HOURS); }else{ @@ -128,10 +211,10 @@ return suffixNumber; } - private static String toFillZeroSuffixNumber(Integer suffixNumberInt){ + private static String toFillZeroSuffixNumber(Integer suffixNumberInt,Integer maxLength){ String suffixNumberStr = suffixNumberInt.toString(); int length = suffixNumberStr.length(); - int fillLength = 4 - length; + int fillLength = maxLength - length; StringBuilder idsbs = new StringBuilder(); for (int i = 0; i < fillLength; i++) { idsbs.append("0"); diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SchedulerUtils.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SchedulerUtils.java new file mode 100644 index 0000000..3f6b426 --- /dev/null +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SchedulerUtils.java @@ -0,0 +1,48 @@ +package com.ruoyi.common.security.utils; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.util.Enumeration; + + +@Component +public class SchedulerUtils { + + @Autowired + private StringRedisTemplate redisTemplate; + + public boolean getSchedulerRun() { + String localIpAddress = getLocalIpAddress(); + return true; + } + + public static String getLocalIpAddress() { + String localIpAddress = ""; + try { + Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces(); + InetAddress ip = null; + while (allNetInterfaces.hasMoreElements()) { + NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement(); + if (netInterface.isLoopback() || netInterface.isVirtual() || !netInterface.isUp()) { + continue; + } else { + Enumeration<InetAddress> addresses = netInterface.getInetAddresses(); + while (addresses.hasMoreElements()) { + ip = addresses.nextElement(); + if (ip != null && ip instanceof Inet4Address) { + return ip.getHostAddress(); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return localIpAddress; + } +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java index d72338b..8982a10 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java @@ -2,6 +2,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.goods.service.activity.ActivityGoodsService; +import com.ruoyi.goods.service.activity.ActivityRecordService; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; /** * @author jqs34 @@ -26,10 +28,27 @@ @Resource private ActivityGoodsService activityGoodsService; + @Resource + private ActivityRecordService activityRecordService; + @PostMapping("/getActivityGoods") public R<ActivityGoods> getActivityGoods(@RequestBody String goodsId) { ActivityGoods activityGoods = activityGoodsService.getByGoodsId(goodsId); return R.ok(activityGoods); } + + /** + * @description 通过活动id获取参与活动用户id + * @author jqs + * @date 2023/6/13 18:19 + * @param activityId + * @return R<List<Long>> + */ + @PostMapping("/listUserIdByActivityId") + public R<List<Long>> listUserIdByActivityId(@RequestBody String activityId) + { + List<Long> userIdList = activityRecordService.listUserIdByActivityId(activityId); + return R.ok(userIdList); + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java index ae92d52..340b88f 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java @@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; /** * @author jqs34 @@ -83,4 +84,18 @@ goodsService.deleteGoodsTag(goodsTag); return R.ok(); } + + /** + * @description 通过id获取商品列表 + * @author jqs + * @date 2023/6/13 15:55 + * @param goodsIds + * @return R<List<Goods>> + */ + @PostMapping("/listGoodsByGoodsId") + public R<List<Goods>> listGoodsByGoodsId(@RequestBody String goodsIds) + { + List<Goods> goodsList = goodsService.listGoodsByGoodsId(goodsIds); + return R.ok(goodsList); + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java index 3a91cd3..0981598 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java @@ -3,15 +3,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.goods.domain.dto.MgtGoodsEditDto; -import com.ruoyi.goods.domain.dto.MgtGoodsPageDto; -import com.ruoyi.goods.domain.dto.MgtGoodsRecommendDto; -import com.ruoyi.goods.domain.dto.MgtGoodsUpDownDto; +import com.ruoyi.goods.domain.dto.*; import com.ruoyi.goods.domain.vo.MgtGoodsPageVo; import com.ruoyi.goods.domain.vo.MgtGoodsTotalVo; import com.ruoyi.goods.service.goods.GoodsService; import com.ruoyi.system.api.domain.dto.MgtBaseDto; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; +import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.RequestBody; @@ -44,8 +42,8 @@ page.setSize(mgtGoodsPageDto.getPageSize()); page.setCurrent(mgtGoodsPageDto.getPageNum()); page.setOptimizeCountSql(false); - List<MgtGoodsPageVo> merGoodsPageVoList = goodsService.pageMgtGoods(page,mgtGoodsPageDto); - return R.ok(page.setRecords(merGoodsPageVoList)); + List<MgtGoodsPageVo> mgtGoodsPageVoList = goodsService.pageMgtGoods(page,mgtGoodsPageDto); + return R.ok(page.setRecords(mgtGoodsPageVoList)); } @RequestMapping(value = "/getMgtGoodsTotal", method = RequestMethod.POST) @@ -93,5 +91,14 @@ return R.ok(); } - + @RequestMapping(value = "/pageMgtSelectGoods", method = RequestMethod.POST) + @ApiOperation(value = "分页获取商品选择列表") + public R<Page<MgtSelectGoodsPageVo>> pageMgtSelectGoods(@RequestBody MgtSelectGoodsPageDto mgtSelectGoodsPageDto) { + Page<MgtSelectGoodsPageVo> page = new Page<>(); + page.setSize(mgtSelectGoodsPageDto.getPageSize()); + page.setCurrent(mgtSelectGoodsPageDto.getPageNum()); + page.setOptimizeCountSql(false); + List<MgtSelectGoodsPageVo> mgtSelectGoodsPageVos = goodsService.pageMgtSelectGoods(page,mgtSelectGoodsPageDto); + return R.ok(page.setRecords(mgtSelectGoodsPageVos)); + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtSelectGoodsPageDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtSelectGoodsPageDto.java new file mode 100644 index 0000000..e8b7616 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtSelectGoodsPageDto.java @@ -0,0 +1,25 @@ +package com.ruoyi.goods.domain.dto; + +import com.ruoyi.system.api.domain.dto.MgtPageDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName MgtSelectGoodsPageDto + * @Description TODO + * @Author jqs + * @Date 2023/6/13 16:29 + * @Version 1.0 + */ +@Data +public class MgtSelectGoodsPageDto extends MgtPageDto { + + @ApiModelProperty(value = "商品编号") + private String goodsNo; + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") + private Integer goodsType; +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java index f2527b0..0fde363 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java @@ -2,6 +2,9 @@ import com.ruoyi.goods.domain.pojo.activity.ActivityRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +16,12 @@ */ public interface ActivityRecordMapper extends BaseMapper<ActivityRecord> { + /** + * @description 通过活动id获取参与活动用户id + * @author jqs + * @date 2023/6/13 18:24 + * @param activityId + * @return List<Long> + */ + List<Long> listUserIdByActivityId(@Param("activityId") String activityId); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java index 064e259..42a9cd6 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java @@ -1,13 +1,11 @@ package com.ruoyi.goods.mapper.goods; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.goods.domain.dto.MerGoodsPageDto; -import com.ruoyi.goods.domain.dto.MgtGoodsPageDto; +import com.ruoyi.goods.domain.dto.*; import com.ruoyi.goods.domain.vo.*; -import com.ruoyi.goods.domain.dto.AppSearchGoodsPageDto; -import com.ruoyi.goods.domain.dto.AppShopGoodsPageDto; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -91,5 +89,24 @@ * @param goodsTag * @return void */ - void deleteGoodsTag(String goodsTag); + void deleteGoodsTag(@Param("goodsTag")String goodsTag); + + /** + * @description 通过id获取商品列表 + * @author jqs + * @date 2023/6/13 15:55 + * @param goodsIds + * @return List<Goods> + */ + List<Goods> listGoodsByGoodsId(@Param("goodsIds")String goodsIds); + + /** + * @description 分页获取商品选择列表 + * @author jqs + * @date 2023/6/13 16:33 + * @param page + * @param mgtSelectGoodsPageDto + * @return List<MgtSelectGoodsPageVo> + */ + List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page, @Param("param")MgtSelectGoodsPageDto mgtSelectGoodsPageDto); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java index 054d99e..c6ecf84 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java @@ -3,6 +3,8 @@ import com.ruoyi.goods.domain.pojo.activity.ActivityRecord; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * <p> * 活动记录 服务类 @@ -13,4 +15,12 @@ */ public interface ActivityRecordService extends IService<ActivityRecord> { + /** + * @description 通过活动id获取参与活动用户id + * @author jqs + * @date 2023/6/13 18:24 + * @param activityId + * @return List<Long> + */ + List<Long> listUserIdByActivityId(String activityId); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java index 2693a8c..7ac6afd 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java @@ -5,6 +5,7 @@ import com.ruoyi.goods.domain.vo.*; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo; import java.util.List; @@ -132,4 +133,23 @@ * @return void */ void deleteGoodsTag(String goodsTag); + + /** + * @description 通过id获取商品列表 + * @author jqs + * @date 2023/6/13 15:55 + * @param goodsIds + * @return List<Goods> + */ + List<Goods> listGoodsByGoodsId(String goodsIds); + + /** + * @description 分页获取商品选择列表 + * @author jqs + * @date 2023/6/13 16:33 + * @param page + * @param mgtSelectGoodsPageDto + * @return List<MgtSelectGoodsPageVo> + */ + List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page,MgtSelectGoodsPageDto mgtSelectGoodsPageDto); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java index a8522e5..d505217 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java @@ -1,10 +1,13 @@ package com.ruoyi.goods.service.impl.activity; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.goods.domain.pojo.activity.ActivityRecord; import com.ruoyi.goods.mapper.activity.ActivityRecordMapper; import com.ruoyi.goods.service.activity.ActivityRecordService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; /** * <p> @@ -17,4 +20,19 @@ @Service public class ActivityRecordServiceImpl extends ServiceImpl<ActivityRecordMapper, ActivityRecord> implements ActivityRecordService { + @Resource + private ActivityRecordMapper activityRecordMapper; + + /** + * @description 通过活动id获取参与活动用户id + * @author jqs + * @date 2023/6/13 18:24 + * @param activityId + * @return List<Long> + */ + @Override + public List<Long> listUserIdByActivityId(String activityId){ + + return activityRecordMapper.listUserIdByActivityId(activityId); + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java index 74dabb1..de054a7 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java @@ -7,6 +7,7 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; +import com.ruoyi.common.security.utils.CodeFactoryUtil; import com.ruoyi.goods.domain.dto.*; import com.ruoyi.goods.domain.pojo.goods.GoodsTotal; import com.ruoyi.goods.domain.vo.*; @@ -22,6 +23,7 @@ import com.ruoyi.system.api.domain.poji.goods.Goods; import com.ruoyi.system.api.domain.poji.goods.GoodsFile; import com.ruoyi.system.api.domain.poji.goods.ShopGoods; +import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo; import com.ruoyi.system.api.service.RemoteConfigService; import org.springframework.stereotype.Service; @@ -292,6 +294,7 @@ goodsId = IdUtils.simpleUUID(); goods.setGoodsId(goodsId); goods.setDelFlag(0); + goods.setGoodsNo(CodeFactoryUtil.getGoodsNo()); goods.setCreateTime(new Date()); goods.setCreateUserId(mgtGoodsEditDto.getUserId()); newGoods = true; @@ -436,4 +439,29 @@ public void deleteGoodsTag(String goodsTag){ goodsMapper.deleteGoodsTag(goodsTag); } + + /** + * @description 通过id获取商品列表 + * @author jqs + * @date 2023/6/13 15:55 + * @param goodsIds + * @return List<Goods> + */ + @Override + public List<Goods> listGoodsByGoodsId(String goodsIds){ + return goodsMapper.listGoodsByGoodsId(goodsIds); + } + + /** + * @description 分页获取商品选择列表 + * @author jqs + * @date 2023/6/13 16:33 + * @param page + * @param mgtSelectGoodsPageDto + * @return List<MgtSelectGoodsPageVo> + */ + @Override + public List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page, MgtSelectGoodsPageDto mgtSelectGoodsPageDto){ + return goodsMapper.pageMgtSelectGoods(page, mgtSelectGoodsPageDto); + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml index 789e25e..615bd81 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml @@ -2,5 +2,10 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.goods.mapper.activity.ActivityRecordMapper"> - + <select id="listUserIdByActivityId" resultType="java.lang.Long"> + SELECT + user_id + FROM t_activity_record + WHERE del_flag = 0 AND activity_id = #{activityId} + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml index 63207fb..e2a27f0 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml @@ -303,7 +303,7 @@ INNER JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{param.shopId} AND tsg.del_flag = 0 WHERE tg.del_flag = 0 AND tg.goods_status = 1 - <if test="param.goodsType != null"> + <if test="param.goodsType != null and param.goodsType != ''"> AND tg.goods_type = #{param.goodsType} </if> <if test="param.goodsName != null and param.goodsName != ''"> @@ -344,7 +344,7 @@ INNER JOIN t_goods_total tgt ON tg.goods_id = tgt.goods_id LEFT JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 WHERE tg.del_flag = 0 - <if test="param.goodsType != null"> + <if test="param.goodsType != null and param.goodsType != ''"> AND tg.goods_type = #{param.goodsType} </if> <if test="param.goodsClassId != null and param.goodsClassId != ''"> @@ -375,4 +375,29 @@ UPDATE t_goods SET goods_tags = TRIM(BOTH ',' FROM REPLACE(CONCAT(',', goods_tags, ','), CONCAT(',',#{goodsTag},','), ',')) WHERE FIND_IN_SET(#{goodsTag}, goods_tags) > 0 </update> + + <select id="listGoodsByGoodsId" resultType="com.ruoyi.system.api.domain.poji.goods.Goods"> + SELECT * FROM t_goods WHERE del_flag = 0 AND goods_id IN (#{goodsIds}) + </select> + + <select id="pageMgtSelectGoods" resultType="com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo"> + SELECT + goods_id goodsId, + goods_name goodsName, + goods_no goodsNo, + goods_type goodsType, + sales_price salesPrice + FROM + t_goods + WHERE del_flag = 0 + <if test="param.goodsType != null and param.goodsType != ''"> + AND tg.goods_type = #{param.goodsType} + </if> + <if test="param.goodsName != null and param.goodsName != ''"> + AND tg.goods_name LIKE CONCAT('%',#{param.goodsName},'%') + </if> + <if test="param.goodsNo != null and param.goodsNo != ''"> + AND tg.goods_no LIKE CONCAT('%',#{param.goodsNo},'%') + </if> + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java new file mode 100644 index 0000000..dcd5cb6 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java @@ -0,0 +1,76 @@ +package com.ruoyi.member.controller.management; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.member.domain.dto.MgtCouponEditDto; +import com.ruoyi.member.domain.dto.MgtCouponPageDto; +import com.ruoyi.member.domain.vo.MgtCouponGetVo; +import com.ruoyi.member.domain.vo.MgtCouponPageVo; +import com.ruoyi.member.service.coupon.CouponService; +import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @ClassName MgtCouponController + * @Description TODO + * @Author jqs + * @Date 2023/6/13 9:15 + * @Version 1.0 + */ +@Api(value = "平台端配置相关接口", tags = "平台端配置相关接口", description = "平台端配置相关接口") +@RestController +@RequestMapping("/mgt/coupon") +public class MgtCouponController { + + @Resource + private CouponService couponService; + + + @RequestMapping(value = "/pageMgtCoupon", method = RequestMethod.POST) + @ApiOperation(value = "平台分页获取优惠券列表") + public R<Page<MgtCouponPageVo>> pageMgtCoupon(@RequestBody MgtCouponPageDto mgtCouponPageDto) { + Long userId = SecurityUtils.getUserId(); + mgtCouponPageDto.setUserId(userId); + Page<MgtCouponPageVo> page = new Page<>(); + page.setSize(mgtCouponPageDto.getPageSize()); + page.setCurrent(mgtCouponPageDto.getPageNum()); + List<MgtCouponPageVo> mgtCouponPageVoList = couponService.pageMgtCoupon(page,mgtCouponPageDto); + return R.ok(page.setRecords(mgtCouponPageVoList)); + } + + @RequestMapping(value = "/getMgtCouponVo", method = RequestMethod.POST) + @ApiOperation(value = "平台获取优惠券编辑信息") + public R<MgtCouponGetVo> pageMgtCoupon(@RequestBody MgtBaseGetDto mgtBaseGetDto) { + Long userId = SecurityUtils.getUserId(); + mgtBaseGetDto.setUserId(userId); + MgtCouponGetVo mgtCouponGetVo = couponService.getMgtCouponVo(mgtBaseGetDto.getId()); + return R.ok(mgtCouponGetVo); + } + + @RequestMapping(value = "/editMgtCoupon", method = RequestMethod.POST) + @ApiOperation(value = "平台编辑优惠券") + public R editMgtCoupon(@RequestBody MgtCouponEditDto mgtCouponEditDto) { + Long userId = SecurityUtils.getUserId(); + mgtCouponEditDto.setUserId(userId); + couponService.editMgtCoupon(mgtCouponEditDto); + return R.ok(); + } + + @RequestMapping(value = "/deleteMgtCoupon", method = RequestMethod.POST) + @ApiOperation(value = "平台删除优惠券") + public R deleteMgtCoupon(@RequestBody MgtBaseGetDto mgtBaseGetDto) { + Long userId = SecurityUtils.getUserId(); + mgtBaseGetDto.setUserId(userId); + couponService.deleteMgtCoupon(mgtBaseGetDto); + return R.ok(); + } +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java new file mode 100644 index 0000000..8d325e9 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java @@ -0,0 +1,74 @@ +package com.ruoyi.member.domain.dto; + +import com.ruoyi.system.api.domain.dto.MgtBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @ClassName MgtCouponEditDto + * @Description TODO + * @Author jqs + * @Date 2023/6/13 12:46 + * @Version 1.0 + */ +@Data +public class MgtCouponEditDto extends MgtBaseDto { + + @ApiModelProperty(value = "优惠券id 新增不传") + private String couponId; + + @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品") + private Integer couponType; + + @ApiModelProperty("优惠券名称") + private String couponName; + + @ApiModelProperty(value = "发送类型1.手动领取2.全部用户3.会员用户4非会员用户5自定义") + private Integer sendType; + + @ApiModelProperty("发送时间类型1立即2定时") + private Integer sendTimeType; + + @ApiModelProperty("发送时间") + private Date sendTime; + + @ApiModelProperty(value = "使用范围1.全场2.指定商品") + private Integer useScope; + + @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起") + private Integer validTimeType; + + @ApiModelProperty(value = "有效开始时间") + private Date validStartTime; + + @ApiModelProperty(value = "有效截止时间") + private Date validEndTime; + + @ApiModelProperty(value = "有效期") + private Integer validDay; + + @ApiModelProperty(value = "门槛金额") + private BigDecimal moneyThreshold; + + @ApiModelProperty(value = "折扣金额") + private BigDecimal discountMoney; + + @ApiModelProperty(value = "折扣百分比") + private BigDecimal discountPercent; + + @ApiModelProperty(value = "选择商品id集合") + private List<String> relGoodsIdList; + + @ApiModelProperty(value = "关联类型1.用户管理筛选2.活动管理筛选") + private Integer relationType; + + @ApiModelProperty(value = "关联活动id") + private String relationActivityId; + + @ApiModelProperty(value = "关联用户id集合") + private List<Long> relUserIdList; +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java new file mode 100644 index 0000000..e5f4ad3 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java @@ -0,0 +1,27 @@ +package com.ruoyi.member.domain.dto; + +import com.ruoyi.system.api.domain.dto.MgtPageDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName MgtCouponPageDto + * @Description TODO + * @Author jqs + * @Date 2023/6/13 11:01 + * @Version 1.0 + */ +@Data +public class MgtCouponPageDto extends MgtPageDto { + + @ApiModelProperty("优惠券名称") + private String couponName; + + @ApiModelProperty(value = "创建开始时间") + private Date createStartTime; + + @ApiModelProperty(value = "创建结束时间") + private Date createEndTime; +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java index bbdad6d..f612929 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java @@ -1,6 +1,5 @@ package com.ruoyi.member.domain.dto; -import com.ruoyi.system.api.domain.dto.MgtBaseDto; import com.ruoyi.system.api.domain.dto.MgtPageDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -81,6 +80,6 @@ @ApiModelProperty(value = "截止消费次数") private Integer endPayCount; - @ApiModelProperty(value = "用户标签") - private String memberTag; + @ApiModelProperty(value = "用户标签 多个,隔开") + private String memberTags; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java index f98beda..c951935 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java @@ -89,7 +89,7 @@ @TableField("use_scope") private Integer useScope; /** - * 有效期类型 + * 有效期类型1.时间段2.领取之日起 */ @TableField("valid_time_type") private Integer validTimeType; @@ -121,34 +121,34 @@ * 优惠券来源1平台2商户 */ @TableField("coupon_from") - private Integer coupon_from; + private Integer couponFrom; /** * 商户id */ @TableField("shop_id") - private Long shop_id; + private Long shopId; /** * 关联商品ids */ @TableField("rel_goods_ids") - private String rel_goods_ids; + private String relGoodsIds; /** * 审核状态1申请中2审核通过3审核拒绝 */ @TableField("audit_status") - private Integer audit_status; + private Integer auditStatus; /** * 审核理由 */ @TableField("audit_reason") - private String audit_reason; + private String auditReason; /** - * 关联类型 + * 关联类型1.用户管理筛选2.活动管理筛选 */ @TableField("relation_type") private Integer relationType; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java index 45825fa..ce1892e 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberCoupon.java @@ -1,17 +1,17 @@ package com.ruoyi.member.domain.pojo.member; -import com.baomidou.mybatisplus.annotation.IdType; -import java.math.BigDecimal; -import java.util.Date; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; /** * <p> @@ -124,8 +124,8 @@ /** * 使用时间 */ - @TableField("user_time") - private Date userTime; + @TableField("use_time") + private Date useTime; /** * 使用有效期 */ diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java new file mode 100644 index 0000000..4e61339 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java @@ -0,0 +1,74 @@ +package com.ruoyi.member.domain.vo; + +import com.ruoyi.system.api.domain.dto.MgtBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @ClassName MgtCouponEditDto + * @Description TODO + * @Author jqs + * @Date 2023/6/13 12:46 + * @Version 1.0 + */ +@Data +public class MgtCouponGetVo extends MgtBaseDto { + + @ApiModelProperty(value = "优惠券id 新增不传") + private String couponId; + + @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品") + private Integer couponType; + + @ApiModelProperty("优惠券名称") + private String couponName; + + @ApiModelProperty(value = "发送类型1.手动领取2.全部用户3.会员用户4非会员用户5自定义") + private Integer sendType; + + @ApiModelProperty("发送时间类型1立即2定时") + private Integer sendTimeType; + + @ApiModelProperty("发送时间") + private Date sendTime; + + @ApiModelProperty(value = "使用范围1.全场2.指定商品") + private String useScope; + + @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起") + private Integer validTimeType; + + @ApiModelProperty(value = "有效开始时间") + private Date validStartTime; + + @ApiModelProperty(value = "有效截止时间") + private Date validEndTime; + + @ApiModelProperty(value = "有效期") + private Integer validDay; + + @ApiModelProperty(value = "门槛金额") + private BigDecimal moneyThreshold; + + @ApiModelProperty(value = "折扣金额") + private BigDecimal discountMoney; + + @ApiModelProperty(value = "折扣百分比") + private BigDecimal discountPercent; + + @ApiModelProperty(value = "选择商品集合") + private List<MgtCouponGoodsListVo> relGoodsList; + + @ApiModelProperty(value = "关联类型1.用户管理筛选2.活动管理筛选") + private Integer relationType; + + @ApiModelProperty(value = "关联活动id") + private String relationActivityId; + + @ApiModelProperty(value = "关联用户集合") + private List<MgtCouponMemberListVo> relUserList; +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGoodsListVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGoodsListVo.java new file mode 100644 index 0000000..1ea2d20 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGoodsListVo.java @@ -0,0 +1,32 @@ +package com.ruoyi.member.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @ClassName MgtCouponGoodsListVo + * @Description TODO + * @Author jqs + * @Date 2023/6/13 14:33 + * @Version 1.0 + */ +@Data +public class MgtCouponGoodsListVo { + + @ApiModelProperty(value = "商品id") + private String goodsId; + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "商品编码") + private String goodsNo; + + @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") + private String goodsType; + + @ApiModelProperty(value = "商品售价") + private BigDecimal salesPrice; +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java new file mode 100644 index 0000000..cbc058b --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java @@ -0,0 +1,34 @@ +package com.ruoyi.member.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName MgtCouponMemberListVo + * @Description TODO + * @Author jqs + * @Date 2023/6/13 15:42 + * @Version 1.0 + */ +@Data +public class MgtCouponMemberListVo { + + @ApiModelProperty(value = "会员id") + private String memberId; + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "用户昵称") + private String nickName; + + @ApiModelProperty(value = "用户姓名") + private String realName; + + @ApiModelProperty(value = "手机号码") + private String mobile; + + @ApiModelProperty("用户头像") + private String avatar; + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java new file mode 100644 index 0000000..919dc10 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java @@ -0,0 +1,72 @@ +package com.ruoyi.member.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @ClassName MgtCouponPageVo + * @Description TODO + * @Author jqs + * @Date 2023/6/13 10:47 + * @Version 1.0 + */ +@Data +public class MgtCouponPageVo { + + @ApiModelProperty(value = "优惠券id") + private String couponId; + + @ApiModelProperty("优惠券名称") + private String couponName; + + @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品") + private Integer couponType; + + @ApiModelProperty(value = "使用限制") + private String useLimit; + + @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起",hidden = true) + private Integer validTimeType; + + @ApiModelProperty(value = "有效开始时间",hidden = true) + private Date validStartTime; + + @ApiModelProperty(value = "有效截止时间",hidden = true) + private Date validEndTime; + + @ApiModelProperty(value = "有效期",hidden = true) + private Integer validDay; + + @ApiModelProperty(value = "有效期") + private String validTime; + + @ApiModelProperty(value = "发放张数") + private Integer sendCount; + + @ApiModelProperty(value = "使用范围") + private String useScope; + + @ApiModelProperty(value = "发送方式") + private String sendType; + + @ApiModelProperty(value = "发送对象") + private String sendTarget; + + @ApiModelProperty(value = "门槛金额",hidden = true) + private BigDecimal moneyThreshold; + + @ApiModelProperty(value = "折扣金额",hidden = true) + private BigDecimal discountMoney; + + @ApiModelProperty(value = "折扣百分比",hidden = true) + private BigDecimal discountPercent; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java index 2249033..cd83dc9 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java @@ -1,7 +1,13 @@ package com.ruoyi.member.mapper.coupon; -import com.ruoyi.member.domain.pojo.coupon.Coupon; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.member.domain.dto.MgtCouponPageDto; +import com.ruoyi.member.domain.pojo.coupon.Coupon; +import com.ruoyi.member.domain.vo.MgtCouponPageVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +19,15 @@ */ public interface CouponMapper extends BaseMapper<Coupon> { + /** + * @description 平台获取优惠券列表 + * @author jqs + * @date 2023/6/13 11:06 + * @param page + * @param mgtCouponPageDto + * @return List<MgtCouponPageVo> + */ + List<MgtCouponPageVo> pageMgtCoupon(Page page, @Param("param") MgtCouponPageDto mgtCouponPageDto); + + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java index 8ca8bc3..3e11256 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponRelUserMapper.java @@ -2,6 +2,10 @@ import com.ruoyi.member.domain.pojo.coupon.CouponRelUser; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.member.domain.vo.MgtCouponMemberListVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +17,12 @@ */ public interface CouponRelUserMapper extends BaseMapper<CouponRelUser> { + /** + * @description 获取优惠券关联用户 + * @author jqs + * @date 2023/6/13 16:17 + * @param + * @return List<MgtCouponMemberListVo> + */ + List<MgtCouponMemberListVo> listCouponMemberVo(@Param("couponId")String couponId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java index a5f3832..e5e1dd9 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java @@ -83,6 +83,15 @@ * @return void */ void deleteMemberTag(@Param("memberTag")String memberTag); + + /** + * @description 通过发送类型获取userId + * @author jqs + * @date 2023/6/13 17:53 + * @param sendType + * @return List<Long> + */ + List<Long> listIdBySendType(@Param("sendType")Integer sendType); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java new file mode 100644 index 0000000..cf87dc6 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java @@ -0,0 +1,36 @@ +package com.ruoyi.member.scheduler; + + +import com.ruoyi.common.security.utils.SchedulerUtils; +import com.ruoyi.member.service.coupon.CouponService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + + +@Component +@Slf4j +public class MemberrScheduler { + + + @Resource + private SchedulerUtils schedulerUtils; + + @Resource + private CouponService couponService; + + + /** + * 优惠券定时发送 + */ + @Scheduled(cron="0 0/5 * * * ?") + private void autoCheckNoPayOrder(){ + if(schedulerUtils.getSchedulerRun()) { + log.info("check no pay order scheduler task is running "); + } + } + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java index 335a6a2..2f41172 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelGoodsService.java @@ -13,4 +13,12 @@ */ public interface CouponRelGoodsService extends IService<CouponRelGoods> { + /** + * @description 刪除优惠券关联 + * @author jqs + * @date 2023/6/13 17:05 + * @param + * @return void + */ + void deleteCouponRelByCouponId(String couponId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java index 64eecd8..011a0e8 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponRelUserService.java @@ -1,7 +1,10 @@ package com.ruoyi.member.service.coupon; -import com.ruoyi.member.domain.pojo.coupon.CouponRelUser; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.member.domain.pojo.coupon.CouponRelUser; +import com.ruoyi.member.domain.vo.MgtCouponMemberListVo; + +import java.util.List; /** * <p> @@ -13,4 +16,21 @@ */ public interface CouponRelUserService extends IService<CouponRelUser> { + /** + * @description 获取优惠券关联用户 + * @author jqs + * @date 2023/6/13 16:17 + * @param + * @return List<MgtCouponMemberListVo> + */ + List<MgtCouponMemberListVo> listCouponMemberVo(String couponId); + + /** + * @description 刪除优惠券关联 + * @author jqs + * @date 2023/6/13 17:05 + * @param + * @return void + */ + void deleteCouponRelByCouponId(String couponId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java index a9d4a0c..630f3f3 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java @@ -1,7 +1,15 @@ package com.ruoyi.member.service.coupon; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.member.domain.dto.MgtCouponEditDto; +import com.ruoyi.member.domain.dto.MgtCouponPageDto; import com.ruoyi.member.domain.pojo.coupon.Coupon; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.member.domain.vo.MgtCouponGetVo; +import com.ruoyi.member.domain.vo.MgtCouponPageVo; +import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; + +import java.util.List; /** * <p> @@ -13,4 +21,41 @@ */ public interface CouponService extends IService<Coupon> { + + /** + * @description 平台获取优惠券列表 + * @author jqs + * @date 2023/6/13 11:06 + * @param page + * @param mgtCouponPageDto + * @return List<MgtCouponPageVo> + */ + List<MgtCouponPageVo> pageMgtCoupon(Page page, MgtCouponPageDto mgtCouponPageDto); + + /** + * @description 平台获取优惠券编辑信息 + * @author jqs + * @date 2023/6/13 14:29 + * @param couponId + * @return MgtCouponGetVo + */ + MgtCouponGetVo getMgtCouponVo(String couponId); + + /** + * @description 平台编辑优惠券 + * @author jqs + * @date 2023/6/13 16:50 + * @param mgtCouponEditDto + * @return void + */ + void editMgtCoupon(MgtCouponEditDto mgtCouponEditDto); + + /** + * @description 平台删除优惠券 + * @author jqs + * @date 2023/6/13 18:50 + * @param mgtBaseGetDto + * @return void + */ + void deleteMgtCoupon(MgtBaseGetDto mgtBaseGetDto); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java index b31301c..15dcfac 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelGoodsServiceImpl.java @@ -1,9 +1,10 @@ package com.ruoyi.member.service.impl.coupon; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.member.domain.pojo.coupon.CouponRelGoods; import com.ruoyi.member.mapper.coupon.CouponRelGoodsMapper; import com.ruoyi.member.service.coupon.CouponRelGoodsService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** @@ -17,4 +18,19 @@ @Service public class CouponRelGoodsServiceImpl extends ServiceImpl<CouponRelGoodsMapper, CouponRelGoods> implements CouponRelGoodsService { + /** + * @description 刪除优惠券关联 + * @author jqs + * @date 2023/6/13 17:05 + * @param + * @return void + */ + @Override + public void deleteCouponRelByCouponId(String couponId){ + LambdaUpdateWrapper<CouponRelGoods> wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(CouponRelGoods::getCouponId, couponId); + wrapper.eq(CouponRelGoods::getDelFlag, 0); + wrapper.set(CouponRelGoods::getDelFlag, 1); + this.update(wrapper); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java index 8a46d14..fa785b2 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponRelUserServiceImpl.java @@ -1,10 +1,15 @@ package com.ruoyi.member.service.impl.coupon; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.member.domain.pojo.coupon.CouponRelUser; +import com.ruoyi.member.domain.vo.MgtCouponMemberListVo; import com.ruoyi.member.mapper.coupon.CouponRelUserMapper; import com.ruoyi.member.service.coupon.CouponRelUserService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; /** * <p> @@ -17,4 +22,34 @@ @Service public class CouponRelUserServiceImpl extends ServiceImpl<CouponRelUserMapper, CouponRelUser> implements CouponRelUserService { + @Resource + private CouponRelUserMapper couponRelUserMapper; + + /** + * @description 获取优惠券关联用户 + * @author jqs + * @date 2023/6/13 16:17 + * @param + * @return List<MgtCouponMemberListVo> + */ + @Override + public List<MgtCouponMemberListVo> listCouponMemberVo(String couponId){ + return couponRelUserMapper.listCouponMemberVo(couponId); + } + + /** + * @description 刪除优惠券关联 + * @author jqs + * @date 2023/6/13 17:05 + * @param + * @return void + */ + @Override + public void deleteCouponRelByCouponId(String couponId){ + LambdaUpdateWrapper<CouponRelUser> wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(CouponRelUser::getCouponId, couponId); + wrapper.eq(CouponRelUser::getDelFlag, 0); + wrapper.set(CouponRelUser::getDelFlag, 1); + this.update(wrapper); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java index 60612d4..bc37a62 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java @@ -1,10 +1,43 @@ package com.ruoyi.member.service.impl.coupon; -import com.ruoyi.member.domain.pojo.coupon.Coupon; -import com.ruoyi.member.mapper.coupon.CouponMapper; -import com.ruoyi.member.service.coupon.CouponService; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.bean.BeanUtils; +import com.ruoyi.common.core.utils.uuid.IdUtils; +import com.ruoyi.member.domain.dto.MgtCouponEditDto; +import com.ruoyi.member.domain.dto.MgtCouponPageDto; +import com.ruoyi.member.domain.pojo.coupon.Coupon; +import com.ruoyi.member.domain.pojo.coupon.CouponRelGoods; +import com.ruoyi.member.domain.pojo.coupon.CouponRelUser; +import com.ruoyi.member.domain.pojo.coupon.CouponTotal; +import com.ruoyi.member.domain.pojo.member.MemberCoupon; +import com.ruoyi.member.domain.vo.MgtCouponGetVo; +import com.ruoyi.member.domain.vo.MgtCouponGoodsListVo; +import com.ruoyi.member.domain.vo.MgtCouponMemberListVo; +import com.ruoyi.member.domain.vo.MgtCouponPageVo; +import com.ruoyi.member.mapper.coupon.CouponMapper; +import com.ruoyi.member.service.coupon.CouponRelGoodsService; +import com.ruoyi.member.service.coupon.CouponRelUserService; +import com.ruoyi.member.service.coupon.CouponService; +import com.ruoyi.member.service.coupon.CouponTotalService; +import com.ruoyi.member.service.member.MemberCouponService; +import com.ruoyi.member.service.member.MemberService; +import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; +import com.ruoyi.system.api.domain.poji.goods.Goods; +import com.ruoyi.system.api.service.RemoteActivityService; +import com.ruoyi.system.api.service.RemoteGoodsService; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +50,327 @@ @Service public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> implements CouponService { + @Resource + private CouponRelUserService couponRelUserService; + + @Resource + private CouponRelGoodsService couponRelGoodsService; + + @Resource + private CouponMapper couponMapper; + + @Resource + private RemoteGoodsService remoteGoodsService; + + @Resource + private CouponTotalService couponTotalService; + + @Resource + private MemberService memberService; + + @Resource + private MemberCouponService memberCouponService; + + @Resource + private RemoteActivityService remoteActivityService; + + /** + * @description 平台获取优惠券列表 + * @author jqs + * @date 2023/6/13 11:06 + * @param page + * @param mgtCouponPageDto + * @return List<MgtCouponPageVo> + */ + @Override + public List<MgtCouponPageVo> pageMgtCoupon(Page page, MgtCouponPageDto mgtCouponPageDto){ + List<MgtCouponPageVo> mgtCouponPageVoList = couponMapper.pageMgtCoupon(page, mgtCouponPageDto); + //处理使用限制和有效期 + if(mgtCouponPageVoList!=null&&!mgtCouponPageVoList.isEmpty()){ + Integer couponType; + Integer validTimeType; + Date validStartTime; + Date validEndTime; + Integer validDay; + String validTime = ""; + BigDecimal moneyThreshold; + BigDecimal discountMoney; + BigDecimal discountPercent; + String useLimit = ""; + for(MgtCouponPageVo mgtCouponPageVo : mgtCouponPageVoList){ + //处理使用限制 + couponType = mgtCouponPageVo.getCouponType(); + switch (couponType){ + case 1: + moneyThreshold = mgtCouponPageVo.getMoneyThreshold(); + discountMoney = mgtCouponPageVo.getDiscountMoney(); + useLimit = "满" + moneyThreshold.toString() + "减" + discountMoney.toString() + "元"; + break; + case 2: + break; + case 3: + break; + case 4: + break; + default: + break; + } + mgtCouponPageVo.setUseLimit(useLimit); + //处理有效期 + validTimeType = mgtCouponPageVo.getValidTimeType(); + if(validTimeType==1){ + validStartTime = mgtCouponPageVo.getValidStartTime(); + validEndTime = mgtCouponPageVo.getValidEndTime(); + validTime = DateUtils.dateTime(validStartTime) + '-' + DateUtils.dateTime(validEndTime); + }else if(validTimeType==2){ + validDay = mgtCouponPageVo.getValidDay(); + validTime = "领取之日起" + validDay.toString() + "天"; + } + mgtCouponPageVo.setValidTime(validTime); + } + } + return mgtCouponPageVoList; + } + + /** + * @description 平台获取优惠券编辑信息 + * @author jqs + * @date 2023/6/13 14:29 + * @param couponId + * @return MgtCouponGetVo + */ + @Override + public MgtCouponGetVo getMgtCouponVo(String couponId){ + MgtCouponGetVo mgtCouponGetVo = new MgtCouponGetVo(); + Coupon coupon = this.getById(couponId); + BeanUtils.copyProperties(coupon, mgtCouponGetVo); + //判断优惠券是否为指定商品 + if(coupon.getUseScope()==2){ + String relGoodsIds = coupon.getRelGoodsIds(); + if(StringUtils.isNotBlank(relGoodsIds)){ + //获取指定商品列表 + List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData(); + if(!goodsList.isEmpty()){ + //转换为返回对象 + List<MgtCouponGoodsListVo> relGoodsList = new ArrayList<>(); + MgtCouponGoodsListVo mgtCouponGoodsListVo; + for(Goods goods : goodsList){ + mgtCouponGoodsListVo = new MgtCouponGoodsListVo(); + mgtCouponGoodsListVo.setGoodsId(goods.getGoodsId()); + mgtCouponGoodsListVo.setGoodsName(goods.getGoodsName()); + mgtCouponGoodsListVo.setGoodsNo(goods.getGoodsNo()); + //商品类型1周期2服务3体验4单品 + switch (goods.getGoodsType()){ + case 1: + mgtCouponGoodsListVo.setGoodsType("周期"); + break; + case 2: + mgtCouponGoodsListVo.setGoodsType("服务"); + break; + case 3: + mgtCouponGoodsListVo.setGoodsType("体验"); + break; + case 4: + mgtCouponGoodsListVo.setGoodsType("单品"); + break; + default: + break; + } + mgtCouponGoodsListVo.setSalesPrice(goods.getSalesPrice()); + relGoodsList.add(mgtCouponGoodsListVo); + } + mgtCouponGetVo.setRelGoodsList(relGoodsList); + } + } + } + //判断优惠券是否指定发放用户 + if(coupon.getSendType()==5&&coupon.getRelationType()==1){ + //获取优惠券发放用户 + List<MgtCouponMemberListVo> relUserList = couponRelUserService.listCouponMemberVo(coupon.getCouponId()); + mgtCouponGetVo.setRelUserList(relUserList); + } + return mgtCouponGetVo; + } + + /** + * @description 平台编辑优惠券 + * @author jqs + * @date 2023/6/13 16:50 + * @param mgtCouponEditDto + * @return void + */ + @Override + public void editMgtCoupon(MgtCouponEditDto mgtCouponEditDto){ + //编辑优惠券 + Coupon coupon; + CouponTotal couponTotal; + if(StringUtils.isNotBlank(mgtCouponEditDto.getCouponId())){ + coupon = this.getById(mgtCouponEditDto.getCouponId()); + couponTotal = couponTotalService.getById(mgtCouponEditDto.getCouponId()); + if(couponTotal.getSendCount()!=null&&couponTotal.getSendCount()>0){ + throw new ServiceException(AppErrorConstant.COUPON_SENT_EDIT); + } + couponRelUserService.deleteCouponRelByCouponId(coupon.getCouponId()); + couponRelGoodsService.deleteCouponRelByCouponId(coupon.getCouponId()); + }else{ + coupon = new Coupon(); + String couponId = IdUtils.simpleUUID(); + coupon.setCouponId(couponId); + coupon.setDelFlag(0); + coupon.setCouponStatus(1); + coupon.setCreateTime(new Date()); + coupon.setCreateUserId(mgtCouponEditDto.getUserId()); + coupon.setCouponFrom(1); + coupon.setAuditStatus(2); + //创建优惠券统计 + couponTotal = new CouponTotal(); + couponTotal.setCouponId(couponId); + couponTotal.setSendCount(0); + couponTotal.setSendUserCount(0); + couponTotalService.save(couponTotal); + } + //优惠券赋值 + coupon.setCouponType(mgtCouponEditDto.getCouponType()); + coupon.setCouponName(mgtCouponEditDto.getCouponName()); + coupon.setSendType(mgtCouponEditDto.getSendType()); + coupon.setSendTimeType(mgtCouponEditDto.getSendTimeType()); + coupon.setSendTime(mgtCouponEditDto.getSendTime()); + coupon.setMoneyThreshold(mgtCouponEditDto.getMoneyThreshold()); + coupon.setDiscountMoney(mgtCouponEditDto.getDiscountMoney()); + coupon.setDiscountPercent(mgtCouponEditDto.getDiscountPercent()); + coupon.setUseScope(mgtCouponEditDto.getUseScope()); + coupon.setValidTimeType(mgtCouponEditDto.getValidTimeType()); + coupon.setValidStartTime(mgtCouponEditDto.getValidStartTime()); + coupon.setValidEndTime(mgtCouponEditDto.getValidEndTime()); + coupon.setValidDay(mgtCouponEditDto.getValidDay()); + coupon.setUpdateTime(new Date()); + coupon.setUpdateUserId(mgtCouponEditDto.getUserId()); + coupon.setRelationType(mgtCouponEditDto.getRelationType()); + coupon.setRelationActivityId(mgtCouponEditDto.getRelationActivityId()); + //判断是否指定商品 + if(coupon.getUseScope()==2&&!mgtCouponEditDto.getRelGoodsIdList().isEmpty()){ + List<String> relGoodsIdList = mgtCouponEditDto.getRelGoodsIdList(); + List<CouponRelGoods> couponRelGoodsList = relGoodsIdList.stream() + .map(str -> { + CouponRelGoods couponRelGoods = new CouponRelGoods(); + couponRelGoods.setDelFlag(0); + couponRelGoods.setCouponId(coupon.getCouponId()); + couponRelGoods.setGoodsId(str); + return couponRelGoods; + }) + .collect(Collectors.toList()); + couponRelGoodsService.saveBatch(couponRelGoodsList); + String relGoodsIds = relGoodsIdList.stream().collect(Collectors.joining(",")); + coupon.setRelGoodsIds(relGoodsIds); + } + //判断是否指定用户 + List<Long> relUserIdList = null; + if(coupon.getSendType()==5&&coupon.getRelationType()==1&&!mgtCouponEditDto.getRelUserIdList().isEmpty()){ + relUserIdList = mgtCouponEditDto.getRelUserIdList(); + List<CouponRelUser> couponRelUserList = relUserIdList.stream() + .map(str -> { + CouponRelUser couponRelUser = new CouponRelUser(); + couponRelUser.setDelFlag(0); + couponRelUser.setCouponId(coupon.getCouponId()); + couponRelUser.setUserId(str); + return couponRelUser; + }) + .collect(Collectors.toList()); + couponRelUserService.saveBatch(couponRelUserList); + } + this.saveOrUpdate(coupon); + //处理优惠券发放 + if(coupon.getSendTimeType()==1){ + sendCoupon(coupon,relUserIdList); + } + } + + /** + * @description 发送优惠券 + * @author jqs + * @date 2023/6/13 18:45 + * @param coupon + * @param relUserIdList + * @return void + */ + private void sendCoupon(Coupon coupon,List<Long> relUserIdList){ + //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 + Date nowTime = new Date(); + Integer sendType = coupon.getSendType(); + List<Long> userIdList = new ArrayList<>(); + if(sendType >= 2 && sendType <= 4){ + userIdList = memberService.listIdBySendType(sendType); + }else if(sendType == 5){ + //关联类型1.用户管理筛选2.活动管理筛选 + if(coupon.getRelationType()==1){ + userIdList = remoteActivityService.listUserIdByActivityId(coupon.getRelationActivityId()).getData(); + }else if(coupon.getRelationType()==2){ + userIdList = relUserIdList; + } + } + if(!relUserIdList.isEmpty()){ + List<MemberCoupon> memberCouponList = new ArrayList<>(); + MemberCoupon memberCoupon; + Integer sendTotal = 0; + for(Long userId : userIdList){ + memberCoupon = new MemberCoupon(); + memberCoupon.setDelFlag(0); + memberCoupon.setCouponId(coupon.getCouponId()); + memberCoupon.setUserId(userId); + memberCoupon.setCouponType(coupon.getCouponType()); + memberCoupon.setCouponStatus(coupon.getCouponStatus()); + memberCoupon.setCouponName(coupon.getCouponName()); + memberCoupon.setSendType(coupon.getSendType()); + memberCoupon.setSendTimeType(coupon.getSendTimeType()); + memberCoupon.setSendTime(coupon.getSendTime()); + memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold()); + memberCoupon.setDiscountMoney(coupon.getDiscountMoney()); + memberCoupon.setDiscountPercent(coupon.getDiscountPercent()); + memberCoupon.setUseScope(coupon.getUseScope()); + memberCoupon.setValidTimeType(coupon.getValidTimeType()); + memberCoupon.setValidStartTime(coupon.getValidStartTime()); + memberCoupon.setValidEndTime(coupon.getValidEndTime()); + memberCoupon.setValidDay(coupon.getValidDay()); + memberCoupon.setReceiveTime(nowTime); + memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds()); + //有效期处理1.时间段2.领取之日起 + if(coupon.getValidTimeType()==1){ + memberCoupon.setDeadlineTime(coupon.getValidEndTime()); + }else if(coupon.getValidTimeType()==2){ + memberCoupon.setDeadlineTime(DateUtils.addDays(nowTime,coupon.getValidDay())); + } + memberCouponList.add(memberCoupon); + sendTotal = sendTotal + 1; + } + memberCouponService.saveBatch(memberCouponList); + //处理优惠券统计 + if(sendTotal>0){ + CouponTotal couponTotal = couponTotalService.getById(coupon.getCouponId()); + couponTotal.setSendCount(couponTotal.getSendCount()+sendTotal); + couponTotal.setSendUserCount(couponTotal.getSendUserCount()+sendTotal); + couponTotalService.saveOrUpdate(couponTotal); + } + } + } + + /** + * @description 平台删除优惠券 + * @author jqs + * @date 2023/6/13 18:50 + * @param mgtBaseGetDto + * @return void + */ + @Override + public void deleteMgtCoupon(MgtBaseGetDto mgtBaseGetDto){ + Coupon coupon = this.getById(mgtBaseGetDto.getId()); + CouponTotal couponTotal = couponTotalService.getById(mgtBaseGetDto.getId()); + if(couponTotal.getSendCount()!=null&&couponTotal.getSendCount()>0){ + throw new ServiceException(AppErrorConstant.COUPON_SENT_DEL); + } + coupon.setCouponStatus(-1); + coupon.setDelFlag(1); + coupon.setUpdateUserId(mgtBaseGetDto.getUserId()); + coupon.setUpdateTime(new Date()); + this.saveOrUpdate(coupon); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index 1af5cf0..59cfbb1 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -645,7 +645,7 @@ * @return */ private String createMemberNo(){ - int memberTotal = memberMapper.selectCount(new LambdaQueryWrapper<Member>().eq(Member::getDelFlag, 0)); + int memberTotal = memberMapper.selectCount(new LambdaQueryWrapper<Member>()); String memberNo = CodeFactoryUtil.getMemberNo(Long.valueOf(memberTotal+1)); return memberNo; } @@ -669,6 +669,10 @@ merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay, activeness.getEndDay())); merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay, activeness.getStartDay())); }); + //处理标签为正则表达 + if(StringUtils.isNotBlank(merMemberPageDto.getMemberTags())){ + merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",","|")); + } //查询获取结果列表 List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); //处理活跃度返回 @@ -883,5 +887,16 @@ memberMapper.deleteMemberTag(memberTag); } - + /** + * @description 通过发送类型获取userId + * @author jqs + * @date 2023/6/13 17:53 + * @param sendType + * @return List<Long> + */ + @Override + public List<Long> listIdBySendType(Integer sendType){ + //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 + return memberMapper.listIdBySendType(sendType); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java index aa2518b..9b336bf 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java @@ -188,6 +188,13 @@ * @return void */ void deleteMemberTag(String memberTag); - + /** + * @description 通过发送类型获取userId + * @author jqs + * @date 2023/6/13 17:53 + * @param sendType + * @return List<Long> + */ + List<Long> listIdBySendType(Integer sendType); } diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml index e64208b..b5ff26a 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml @@ -141,4 +141,53 @@ </foreach> </delete> + <select id="pageMgtCoupon" resultType="com.ruoyi.member.domain.vo.MgtCouponPageVo"> + SELECT + tc.coupon_id couponId, + tc.coupon_name couponName, + CASE tc.coupon_type + WHEN 1 THEN '满减' + WHEN 2 THEN '折扣' + WHEN 3 THEN '代金' + WHEN 4 THEN '商品' + END couponType, + tc.valid_time_type validTimeType, + tc.valid_start_time validStartTime, + tc.valid_end_time validEndTime, + tc.valid_day validDay, + tct.send_count sendCount, + CASE tc.use_scope + WHEN 1 THEN '全部' + WHEN 2 THEN '指定商品' + END useScope, + CASE tc.send_type + WHEN 1 THEN '手动获取' + ELSE '指定发放' + END sendType, + CASE tc.send_type + WHEN 2 THEN '全部用户' + WHEN 3 THEN '会员用户' + WHEN 4 THEN '非会员用户' + WHEN 5 THEN '自定义' + ELSE '' + END sendTarget, + tc.money_threshold moneyThreshold, + tc.discount_money discountMoney, + tc.discount_percent discountPercent, + tc.create_time createTime + FROM t_coupon tc + LEFT JOIN t_coupon_total tct ON tc.coupon_id = tct.coupon_id + WHERE del_flag = 0 AND coupon_status = 2 + <if test="param.couponName!=null and param.couponName!=''"> + tc.coupon_name LIKE CONCAT('%',#{param.couponName},'%') + </if> + <if test="param.createStartTime!=null and param.createStartTime!=''"> + AND tc.create_time >= #{param.createStartTime} + </if> + <if test="param.createEndTime!=null and param.createEndTime!=''"> + AND tc.create_time <= #{param.createEndTime} + </if> + </select> + + </mapper> diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml index a3b8676..4e773b2 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml @@ -61,4 +61,17 @@ </foreach> </delete> + <select id="listCouponMemberVo" resultType="com.ruoyi.member.domain.vo.MgtCouponMemberListVo"> + SELECT + tm.member_id memberId, + tm.user_id userId, + tm.nick_name nickName, + tm.real_name realName, + tm.mobile mobile, + tm.avatar avatar + FROM + t_coupon_rel_user tcru + INNER JOIN t_member tm ON tm.user_id = tcru.user_id + WHERE del_flag = 0 AND tcru.coupon_id = #{couponId} + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml index 10e7cc4..78854f8 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml @@ -22,13 +22,13 @@ <result property="validEndTime" column="valid_end_time" /> <result property="validDay" column="valid_day" /> <result property="receiveTime" column="receive_time" /> - <result property="userTime" column="user_time" /> + <result property="useTime" column="use_time" /> <result property="deadlineTime" column="deadline_time" /> <result property="relGoodsIds" column="rel_goods_ids" /> </resultMap> <sql id="selectMemberCouponVo"> - select id, del_flag, coupon_id, user_id, coupon_type, coupon_status, coupon_name, send_type, send_time_type, send_time, money_threshold, discount_money, discount_percent, use_scope, valid_time_type, valid_start_time, valid_end_time, valid_day, receive_time, user_time, deadline_time, rel_goods_ids from t_member_coupon + select id, del_flag, coupon_id, user_id, coupon_type, coupon_status, coupon_name, send_type, send_time_type, send_time, money_threshold, discount_money, discount_percent, use_scope, valid_time_type, valid_start_time, valid_end_time, valid_day, receive_time, use_time, deadline_time, rel_goods_ids from t_member_coupon </sql> <select id="selectMemberCouponList" parameterType="MemberCoupon" resultMap="MemberCouponResult"> @@ -51,7 +51,7 @@ <if test="validEndTime != null "> and valid_end_time = #{validEndTime}</if> <if test="validDay != null "> and valid_day = #{validDay}</if> <if test="receiveTime != null "> and receive_time = #{receiveTime}</if> - <if test="userTime != null "> and user_time = #{userTime}</if> + <if test="useTime != null "> and use_time = #{useTime}</if> <if test="deadlineTime != null "> and deadline_time = #{deadlineTime}</if> <if test="relGoodsIds != null "> and rel_goods_ids = #{relGoodsIds}</if> </where> @@ -83,7 +83,7 @@ <if test="validEndTime != null">valid_end_time,</if> <if test="validDay != null">valid_day,</if> <if test="receiveTime != null">receive_time,</if> - <if test="userTime != null">user_time,</if> + <if test="useTime != null">use_time,</if> <if test="deadlineTime != null">deadline_time,</if> <if test="relGoodsIds != null ">rel_goods_ids,</if> </trim> @@ -106,7 +106,7 @@ <if test="validEndTime != null">#{validEndTime},</if> <if test="validDay != null">#{validDay},</if> <if test="receiveTime != null">#{receiveTime},</if> - <if test="userTime != null">#{userTime},</if> + <if test="useTime != null">#{useTime},</if> <if test="deadlineTime != null">#{deadlineTime},</if> <if test="relGoodsIds != null ">#{relGoodsIds},</if> </trim> @@ -133,7 +133,7 @@ <if test="validEndTime != null">valid_end_time = #{validEndTime},</if> <if test="validDay != null">valid_day = #{validDay},</if> <if test="receiveTime != null">receive_time = #{receiveTime},</if> - <if test="userTime != null">user_time = #{userTime},</if> + <if test="useTime != null">use_time = #{useTime},</if> <if test="deadlineTime != null">deadline_time = #{deadlineTime},</if> <if test="relGoodsIds != null "> and rel_goods_ids = #{relGoodsIds},</if> </trim> diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml index 56fca93..5ffe6ac 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml @@ -272,7 +272,7 @@ AND tmt.total_pay_count <= #{param.endPayCount} </if> <if test="param.memberTag != null and param.memberTag != ''"> - AND FIND_IN_SET(#{param.memberTag},tm.user_tags) > 0 + AND tm.user_tags REGEXP #{param.memberTag} </if> ORDER BY tm.create_time DESC </select> @@ -281,4 +281,19 @@ UPDATE t_member SET user_tags = TRIM(BOTH ',' FROM REPLACE(CONCAT(',', user_tags, ','), CONCAT(',',#{memberTag},','), ',')) WHERE FIND_IN_SET(#{memberTag}, user_tags) > 0 </update> + + <select id="listIdBySendType" resultType="java.lang.Long"> + SELECT + user_id + FROM t_member + WHERE del_flag = 0 + <if test="sendType != null and sendType == 3"> + AND tm.binding_flag = 1 + </if> + <if test="sendType != null and sendType == 4"> + AND tm.binding_flag = 0 + </if> + </select> + + </mapper> diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java index 9425485..ac3dc58 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java @@ -57,7 +57,7 @@ Page<MgtShopPageVo> page = new Page<>(); page.setSize(mgtShopPageDto.getPageSize()); page.setCurrent(mgtShopPageDto.getPageNum()); - List<MgtShopPageVo> mgtShopPageVoList = shopService.pageShop(page,mgtShopPageDto); + List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto); return R.ok(page.setRecords(mgtShopPageVoList)); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java index fd0324a..4d77ad7 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java @@ -1,6 +1,5 @@ package com.ruoyi.shop.domain.dto; -import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.system.api.domain.dto.MgtPageDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -62,7 +61,7 @@ @ApiModelProperty(value = "到期标记") private Integer expireFlag; - @ApiModelProperty(value = "商户标签") + @ApiModelProperty(value = "商户标签 多个,隔开") private String shopTags; @ApiModelProperty(value = "扶持能力1.有2.没有") diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java index be7f545..359d6d2 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java @@ -25,7 +25,7 @@ * @param mgtShopPageDto * @return */ - List<MgtShopPageVo> pageShop(Page page, @Param("param") MgtShopPageDto mgtShopPageDto); + List<MgtShopPageVo> pageMgtShop(Page page, @Param("param") MgtShopPageDto mgtShopPageDto); /** diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java index 0533a2f..497cb16 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java @@ -168,7 +168,7 @@ this.saveOrUpdate(shop); //商户编号 if(mgtEditShopDto.getShopId()==null){ - String shopNo = CodeFactoryUtil.getShopNo(shop.getShopId()); + String shopNo = CodeFactoryUtil.getShopNo(); shop.setShopNumber(shopNo); } //商户标签 @@ -306,8 +306,12 @@ * @return */ @Override - public List<MgtShopPageVo> pageShop(Page page, MgtShopPageDto mgtShopPageDto){ - List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageShop(page, mgtShopPageDto); + public List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto){ + //处理标签为正则表达 + if(StringUtils.isNotBlank(mgtShopPageDto.getShopTags())){ + mgtShopPageDto.setShopTags(mgtShopPageDto.getShopTags().replace(",","|")); + } + List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageMgtShop(page, mgtShopPageDto); return mgtShopPageVoList; } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java index a04a98c..6574b9a 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java @@ -47,7 +47,7 @@ * @param mgtShopPageDto * @return */ - List<MgtShopPageVo> pageShop(Page page, MgtShopPageDto mgtShopPageDto); + List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto); /** * 获取商户详情 diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml index 04afe94..9d4d8f4 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml @@ -283,7 +283,7 @@ </foreach> </delete> - <select id="pageShop" resultType="com.ruoyi.shop.domain.vo.MgtShopPageVo"> + <select id="pageMgtShop" resultType="com.ruoyi.shop.domain.vo.MgtShopPageVo"> SELECT ts.shop_id shopId, ts.sign_time signTime, @@ -356,7 +356,7 @@ AND ts.shop_status = 2 </if> <if test="param.shopTags!=null and param.shopTags!=''"> - AND FIND_IN_SET(#{param.shopTags},ts.shop_tags) > 0 + AND tm.shop_tags REGEXP #{param.shopTags} </if> <if test="param.supportingCapacityFlag!=null and param.supportingCapacityFlag!=''"> AND ts.supporting_capacity_flag = #{param.supportingCapacityFlag} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java index d9728b6..caba730 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java @@ -74,7 +74,7 @@ strategy.setControllerMappingHyphenStyle(true); //表和前缀处理 String[] table = { - "t_region" + "t_sys_staff" }; strategy.setInclude(table); String[] tablePre = new String[]{"t_"}; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java index 043a529..4bbf234 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java @@ -7,9 +7,11 @@ import com.ruoyi.system.domain.dto.MgtReplayStaffSuggestDto; import com.ruoyi.system.domain.dto.MgtStaffSuggestPageDto; import com.ruoyi.system.domain.dto.MgtTagStaffSuggestDto; +import com.ruoyi.system.domain.vo.MgtDeptStaffListVo; import com.ruoyi.system.domain.vo.MgtStaffSuggestPageVo; import com.ruoyi.system.domain.vo.MgtStaffSuggestTagVo; import com.ruoyi.system.service.config.StaffSuggestService; +import com.ruoyi.system.service.staff.SysStaffService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.RequestBody; @@ -33,15 +35,19 @@ public class MgtStaffController { + @Resource private StaffSuggestService staffSuggestService; - /*@RequestMapping(value = "/listMgtDeptStaff", method = RequestMethod.POST) + @Resource + private SysStaffService sysStaffService; + + @RequestMapping(value = "/listMgtDeptStaff", method = RequestMethod.POST) @ApiOperation(value = "获取部门员工列表") - public R<List<MgtDeptStaffListVo>> listMgtStaffSuggestTag(@RequestBody MgtBaseGetDto mgtBaseGetDto) { - List<MgtStaffSuggestTagVo> mgtStaffSuggestTagVoList= staffSuggestService.listMgtStaffSuggestTag(Long.valueOf(mgtBaseGetDto.getId())); - return R.ok(mgtStaffSuggestTagVoList); - }*/ + public R<List<MgtDeptStaffListVo>> listMgtDeptStaff() { + List<MgtDeptStaffListVo> mgtDeptStaffListVoList= sysStaffService.listMgtDeptStaff(); + return R.ok(mgtDeptStaffListVoList); + } @RequestMapping(value = "/pageMgtStaffSuggest", method = RequestMethod.POST) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java index 15e21f5..232085a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationEditDto.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "分类id 新增不传") private Long classId; - @ApiModelProperty(value = "分类类型") + @ApiModelProperty(value = "分类类型1鸿瑞堂2商品") private Integer classType; @ApiModelProperty(value = "分类名字") diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java index 59fcac5..9a3b9fc 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtClassificationPageDto.java @@ -17,5 +17,6 @@ @ApiModelProperty(value = "分类类型1鸿瑞堂2商品") private Integer classType; - + @ApiModelProperty(value = "分类类型1鸿瑞堂2商品") + private String className; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java index ed3b1d1..e6f6764 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtCustomConfigDto.java @@ -15,13 +15,14 @@ public class MgtCustomConfigDto extends MgtBaseDto { @ApiModelProperty(value = "SHOP_EMERGENCY_DEGREE:合作商任务紧急程度 " + - "SHOP_FOLLOW_TYPE:合作商跟进类型" + - "SHOP_CUSTOM_STATUS:合作商状态" + - "SHOP_SOURCE_CHANNEL:来源渠道" + - "MEMBER_SOURCE_CHANNEL:会员来源" + - "MEMBER_CHARACTER:会员性格" + - "MEMBER_LEVEL:会员等级" + - "MEMBER_TYPE:会员类型" + - "NURSE_PROBLEM:调理问题") + "SHOP_FOLLOW_TYPE:合作商跟进类型 " + + "SHOP_CUSTOM_STATUS:合作商状态 " + + "SHOP_SOURCE_CHANNEL:来源渠道 " + + "MEMBER_SOURCE_CHANNEL:会员来源 " + + "MEMBER_CHARACTER:会员性格 " + + "MEMBER_LEVEL:会员等级 " + + "MEMBER_TYPE:会员类型 " + + "NURSE_PROBLEM:调理问题 " + + "PLATFORM_SERVICE_PHONE:客服电话") private String configType; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/staff/SysStaff.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/staff/SysStaff.java new file mode 100644 index 0000000..a801ba7 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/staff/SysStaff.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.domain.pojo.staff; + +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * <p> + * 平台员工 + * </p> + * + * @author jqs + * @since 2023-06-13 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("t_sys_staff") +public class SysStaff extends Model<SysStaff> { + + private static final long serialVersionUID = 1L; + + /** + * 员工id + */ + @TableId("staff_id") + private String staffId; + /** + * 删除标记 + */ + @TableField("del_flag") + private Integer delFlag; + /** + * 用户id + */ + @TableField("user_id") + private Integer userId; + /** + * 员工姓名 + */ + @TableField("staff_name") + private String staffName; + /** + * 员工电话 + */ + @TableField("staff_mobile") + private String staffMobile; + + + @Override + protected Serializable pkVal() { + return this.staffId; + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java index d299aa0..5b38dd1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtClassificationPageVo.java @@ -17,7 +17,7 @@ @ApiModelProperty(value = "分类id") private Long classId; - @ApiModelProperty(value = "分类类型") + @ApiModelProperty(value = "分类类型1鸿瑞堂2商品") private Integer classType; @ApiModelProperty(value = "分类名字") diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java index 1ccc9a7..f39e96e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtDeptStaffListVo.java @@ -3,6 +3,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @ClassName MgtDeptStaffListVo * @Description TODO @@ -19,9 +21,7 @@ @ApiModelProperty(value = "部门名称") private String deptName; - @ApiModelProperty(value = "用户id") - private Long userId; + @ApiModelProperty(value = "员工列表") + private List<MgtStaffListVo> mgtStaffListVoList; - @ApiModelProperty(value = "用户名称") - private String nickName; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffListVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffListVo.java new file mode 100644 index 0000000..6a4c6b8 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffListVo.java @@ -0,0 +1,21 @@ +package com.ruoyi.system.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName MgtStaffListVo + * @Description TODO + * @Author jqs + * @Date 2023/6/13 10:15 + * @Version 1.0 + */ +@Data +public class MgtStaffListVo { + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "用户名称") + private String nickName; +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java index 82f3cd8..fce1d71 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/SysTagMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.domain.dto.MgtTagPageDto; import com.ruoyi.system.domain.vo.MgtTagPageVo; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -26,7 +27,7 @@ * @param mgtTagPageDto * @return List<MgtTagPageVo> */ - List<MgtTagPageVo> pageTag(Page page, MgtTagPageDto mgtTagPageDto); + List<MgtTagPageVo> pageTag(Page page, @Param("param") MgtTagPageDto mgtTagPageDto); /** * @description 删除员工建议标签 @@ -35,5 +36,5 @@ * @param suggestTag * @return void */ - void deleteStaffSuggestTag(String suggestTag); + void deleteStaffSuggestTag(@Param("suggestTag")String suggestTag); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java new file mode 100644 index 0000000..2e7d82f --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java @@ -0,0 +1,27 @@ +package com.ruoyi.system.mapper.staff; + +import com.ruoyi.system.domain.pojo.staff.SysStaff; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.system.domain.vo.MgtDeptStaffListVo; + +import java.util.List; + +/** + * <p> + * 平台员工 Mapper 接口 + * </p> + * + * @author jqs + * @since 2023-06-13 + */ +public interface SysStaffMapper extends BaseMapper<SysStaff> { + + /** + * @description 获取部门员工列表 + * @author jqs + * @date 2023/6/13 10:14 + * @param + * @return List<MgtDeptStaffListVo> + */ + List<MgtDeptStaffListVo> listMgtDeptStaff(); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java new file mode 100644 index 0000000..e972d6b --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java @@ -0,0 +1,38 @@ +package com.ruoyi.system.service.impl.staff; + +import com.ruoyi.system.domain.pojo.staff.SysStaff; +import com.ruoyi.system.domain.vo.MgtDeptStaffListVo; +import com.ruoyi.system.mapper.staff.SysStaffMapper; +import com.ruoyi.system.service.staff.SysStaffService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * <p> + * 平台员工 服务实现类 + * </p> + * + * @author jqs + * @since 2023-06-13 + */ +@Service +public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> implements SysStaffService { + + @Resource + private SysStaffMapper sysStaffMapper; + + /** + * @description 获取部门员工列表 + * @author jqs + * @date 2023/6/13 10:14 + * @param + * @return List<MgtDeptStaffListVo> + */ + @Override + public List<MgtDeptStaffListVo> listMgtDeptStaff(){ + return sysStaffMapper.listMgtDeptStaff(); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java new file mode 100644 index 0000000..7c42acf --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java @@ -0,0 +1,28 @@ +package com.ruoyi.system.service.staff; + +import com.ruoyi.system.domain.pojo.staff.SysStaff; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.domain.vo.MgtDeptStaffListVo; + +import java.util.List; + +/** + * <p> + * 平台员工 服务类 + * </p> + * + * @author jqs + * @since 2023-06-13 + */ +public interface SysStaffService extends IService<SysStaff> { + + /** + * @description 获取部门员工列表 + * @author jqs + * @date 2023/6/13 10:14 + * @param + * @return List<MgtDeptStaffListVo> + */ + List<MgtDeptStaffListVo> listMgtDeptStaff(); + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml index 4fc9f48..1fe9079 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysClassificationMapper.xml @@ -20,7 +20,10 @@ class_sort classSort, relation_num relationNum FROM t_sys_classification - WHERE del_flag = 0 AND class_type = #{param.calssType} + WHERE del_flag = 0 AND class_type = #{param.classType} + <if test="param.className!=null and param.className !=''"> + AND class_name LIKE CONCAT('%',#{param.className},'%') + </if> </select> </mapper> diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml index c7ef194..3b3f25d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/SysTagMapper.xml @@ -20,7 +20,7 @@ FROM t_sys_tag WHERE del_flag = 0 AND tag_type = #{param.tagType} <if test="param.tagName!=null and param.tagName !=''"> - AND tag_name LIKE CONCAT('%',#{param.tagName},'%') + AND tag_name LIKE CONCAT('%',#{param.tagName},'%') </if> ORDER BY create_time DESC </select> diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml new file mode 100644 index 0000000..ab9ad74 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml @@ -0,0 +1,25 @@ +<?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.system.mapper.staff.SysStaffMapper"> + + <resultMap id="deptStaffResultMap" type="com.ruoyi.system.domain.vo.MgtDeptStaffListVo"> + <result column="deptId" property="deptId"/> + <result column="deptName" property="deptName"/> + <collection property="mgtStaffListVoList" ofType="com.ruoyi.system.domain.vo.MgtStaffListVo"> + <result column="userId" property="userId"/> + <result column="nickName" property="nickName"/> + </collection> + </resultMap> + + <select id="listMgtDeptStaff" resultMap="deptStaffResultMap"> + SELECT + sd.dept_id deptId, + sd.dept_name deptName, + su.user_id userId, + su.nick_name nickName + FROM sys_dept sd + LEFT JOIN sys_user su ON sd.dept_id = su.dept_id + WHERE sd.del_flag = 0 AND su.del_flag = 0 + </select> + +</mapper> -- Gitblit v1.7.1