From b3ed26028083bbf66bb47601d11f42cad802b903 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 03 七月 2023 19:21:37 +0800 Subject: [PATCH] 商户端会员统计 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java | 38 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTypeTotalVo.java | 28 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml | 27 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerTotalDto.java | 32 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java | 10 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGoodsListVo.java | 43 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java | 2 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerTotalController.java | 70 ++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java | 6 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberSourceTotalVo.java | 21 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTotalVo.java | 61 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java | 14 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java | 9 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java | 29 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerGoodsPriceListVo.java | 42 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java | 151 +++- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 37 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java | 10 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 130 ++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java | 44 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java | 2 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java | 2 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java | 15 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java | 29 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java | 3 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGetVo.java | 11 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java | 33 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java | 28 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerBirthdayEditDto.java | 27 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml | 214 ++++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtBirthdayEditDto.java | 12 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberTotalVo.java | 39 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponEditDto.java | 75 ++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderGoodsRankVo.java | 21 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml | 4 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayEditInfoVo.java | 31 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java | 13 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/business/MerShopController.java | 21 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java | 215 +++++- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java | 18 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponPageDto.java | 22 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayGetVo.java | 3 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java | 5 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java | 23 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java | 12 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberRecommendTotalVo.java | 23 ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml | 6 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderFromRankVo.java | 23 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java | 13 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java | 81 ++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java | 2 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java | 5 53 files changed, 1,723 insertions(+), 114 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 e101fde..b6e478d 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 @@ -67,4 +67,7 @@ String STAFF_MOBILE_DOUBLE = "手机号码已被注册"; String SHOP_USER_DOUBLE = "账号已经关联其他商户登录"; + + String COUPON_AUDIT_EDIT = "只能编辑审核拒绝的优惠券"; + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerTotalDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerTotalDto.java new file mode 100644 index 0000000..f608d76 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerTotalDto.java @@ -0,0 +1,32 @@ +package com.ruoyi.system.api.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MerTotalDto + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:19 + * @Version 1.0 + */ +@Data +public class MerTotalDto extends MerBaseDto{ + + @ApiModelProperty(value = "开始日期") + private String startDate; + + @ApiModelProperty(value = "结束日期") + private String endDate; + + @ApiModelProperty(value = "全部经销商标记0否1是") + private Integer shopAllFlag; + + @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") + private Integer goodsType; + + @ApiModelProperty(value = "商户id集合",hidden = true) + private List<Long> shopIdList; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerGoodsPriceListVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerGoodsPriceListVo.java new file mode 100644 index 0000000..bd5a3b1 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerGoodsPriceListVo.java @@ -0,0 +1,42 @@ +package com.ruoyi.system.api.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @ClassName MerGoodsPriceVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 9:37 + * @Version 1.0 + */ +@Data +public class MerGoodsPriceListVo { + + @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; + + @ApiModelProperty(value = "商品建议售价") + private BigDecimal suggestSalesPrice;; + + @ApiModelProperty(value = "商品简介") + private String goodsIntroduction; + + @ApiModelProperty(value = "商品调理问题") + private String goodsNurses; + +} 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 889ad06..329976b 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 @@ -5,6 +5,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.MerGoodsPriceListVo; import com.ruoyi.system.api.service.RemoteGoodsService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,6 +63,11 @@ public R<List<Goods>> listGoodsByGoodsId(String goodsIds) { return R.fail("获取商品列表失败:" + throwable.getMessage()); } + + @Override + public R<List<MerGoodsPriceListVo>> listGoodsPriceByGoodsId(String goodsIds) { + return R.fail("获取商品列表失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java index 1139eed..fd306fd 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java @@ -87,6 +87,11 @@ public R<MemberTaskSimpleVo> getLastMemberTask(Long userId) { return R.fail("获取最近会员任务失败:" + throwable.getMessage()); } + + @Override + public R<List<Long>> listShopIdByShopId(Long shopId) { + return R.fail("获取商户列表失败:" + throwable.getMessage()); + } }; } } 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 08f20b1..b93ac60 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 @@ -6,6 +6,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.MerGoodsPriceListVo; import com.ruoyi.system.api.factory.RemoteGoodsFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -49,4 +50,15 @@ @PostMapping("/goods/listGoodsByGoodsId") public R<List<Goods>> listGoodsByGoodsId(@RequestBody String goodsIds); + + + /** + * @description 通过id获取商品价格列表 + * @author jqs + * @date 2023/7/3 10:01 + * @param goodsIds + * @return R<List<MerGoodsPriceListVo>> + */ + @PostMapping("/listGoodsPriceByGoodsId") + public R<List<MerGoodsPriceListVo>> listGoodsPriceByGoodsId(@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 eba5c59..c5cf838 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 @@ -109,4 +109,13 @@ */ @PostMapping("/member/getLastMemberTask") public R<MemberTaskSimpleVo> getLastMemberTask(@RequestBody Long userId); + + /** + * @description 获取商户下属代理商 + * @author jqs + * @date 2023/7/3 17:26 + * @return R<List<Long>> + */ + @PostMapping("/listShopIdByShopId") + public R<List<Long>> listShopIdByShopId(@RequestBody Long shopId); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java index f2c3df9..9466a2c 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java @@ -5,8 +5,10 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.goods.domain.dto.MerGoodsPageDto; import com.ruoyi.goods.domain.dto.MerShopGoodsEditDto; +import com.ruoyi.goods.domain.dto.MgtSelectGoodsPageDto; import com.ruoyi.goods.domain.vo.MerGoodsPageVo; import com.ruoyi.goods.service.goods.GoodsService; +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; @@ -52,4 +54,15 @@ goodsService.editMerShopGoods(merShopGoodsEditDto); return R.ok(); } + + @RequestMapping(value = "/pageMerSelectGoods", method = RequestMethod.POST) + @ApiOperation(value = "分页获取商品选择列表") + public R<Page<MgtSelectGoodsPageVo>> pageMerSelectGoods(@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/controller/concole/GoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java index c20c251..ca34831 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 @@ -8,6 +8,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.MerGoodsPriceListVo; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -99,5 +100,17 @@ return R.ok(goodsList); } - + /** + * @description 通过id获取商品价格列表 + * @author jqs + * @date 2023/7/3 10:01 + * @param goodsIds + * @return R<List<MerGoodsPriceListVo>> + */ + @PostMapping("/listGoodsPriceByGoodsId") + public R<List<MerGoodsPriceListVo>> listGoodsPriceByGoodsId(@RequestBody String goodsIds) + { + List<MerGoodsPriceListVo> goodsPriceListVoList = goodsService.listGoodsPriceByGoodsId(goodsIds); + return R.ok(goodsPriceListVoList); + } } 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 42a9cd6..68196ca 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 @@ -5,6 +5,7 @@ import com.ruoyi.goods.domain.vo.*; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo; import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo; import org.apache.ibatis.annotations.Param; @@ -109,4 +110,13 @@ * @return List<MgtSelectGoodsPageVo> */ List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page, @Param("param")MgtSelectGoodsPageDto mgtSelectGoodsPageDto); + + /** + * @description 通过id获取商品列表 + * @author jqs + * @date 2023/7/3 10:00 + * @param goodsIds + * @return List<MerGoodsPriceListVo> + */ + List<MerGoodsPriceListVo> listGoodsPriceByGoodsId(@Param("goodsIds")String goodsIds); } 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 7ac6afd..f724161 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.MerGoodsPriceListVo; import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo; import java.util.List; @@ -152,4 +153,13 @@ * @return List<MgtSelectGoodsPageVo> */ List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page,MgtSelectGoodsPageDto mgtSelectGoodsPageDto); + + /** + * @description 通过id获取商品列表 + * @author jqs + * @date 2023/7/3 9:58 + * @param goodsIds + * @return List<MerGoodsPriceListVo> + */ + List<MerGoodsPriceListVo> listGoodsPriceByGoodsId(String goodsIds); } 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 5a6b650..460292a 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 @@ -23,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.MerGoodsPriceListVo; import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo; import com.ruoyi.system.api.service.RemoteConfigService; import org.springframework.stereotype.Service; @@ -466,4 +467,16 @@ public List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page, MgtSelectGoodsPageDto mgtSelectGoodsPageDto){ return goodsMapper.pageMgtSelectGoods(page, mgtSelectGoodsPageDto); } + + /** + * @description 通过id获取商品列表 + * @author jqs + * @date 2023/7/3 9:58 + * @param goodsIds + * @return List<MerGoodsPriceListVo> + */ + @Override + public List<MerGoodsPriceListVo> listGoodsPriceByGoodsId(String goodsIds){ + return goodsMapper.listGoodsPriceByGoodsId(goodsIds); + } } 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 d1ccc4e..49d498f 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 @@ -391,13 +391,34 @@ t_goods WHERE del_flag = 0 <if test="param.goodsType != null and param.goodsType != ''"> - AND tg.goods_type = #{param.goodsType} + AND goods_type = #{param.goodsType} </if> <if test="param.goodsName != null and param.goodsName != ''"> - AND tg.goods_name LIKE CONCAT('%',#{param.goodsName},'%') + AND goods_name LIKE CONCAT('%',#{param.goodsName},'%') </if> <if test="param.goodsNo != null and param.goodsNo != ''"> - AND tg.goods_no LIKE CONCAT('%',#{param.goodsNo},'%') + AND goods_no LIKE CONCAT('%',#{param.goodsNo},'%') </if> </select> + + + <select id="listGoodsPriceByGoodsId" resultType="com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo"> + SELECT + tg.goods_id goodsId, + tg.goods_name goodsName, + tg.goods_no goodsNo, + CASE tg.goods_type + WHEN 1 THEN "周期" + WHEN 2 THEN "服务" + WHEN 3 THEN "体验" + WHEN 4 THEN "单品" + END goodsType, + IFNULL(tsg.sales_price,tg.sales_price) salesPrice, + tg.sales_price suggestSalesPrice, + tg.goods_introduction goodsIntroduction, + tg.goods_nurses goodsNurses + FROM t_goods tg + LEFT JOIN t_shop_goods tsg ON tsg.goods_id = tg.goods_id AND tsg.del_flag = 0 AND tsg.shop_id = #{shopId} + WHERE tg.del_flag = 0 AND FIND_IN_SET(tg.goods_id,#{goodsIds}) > 0 + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java index 8693080..9309e1f 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java @@ -2,6 +2,8 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.member.domain.dto.MerBirthdayEditDto; +import com.ruoyi.member.domain.vo.MerBirthdayEditInfoVo; import com.ruoyi.member.domain.vo.MerBirthdayGetVo; import com.ruoyi.member.service.birthday.BirthdayCardService; import com.ruoyi.system.api.domain.dto.MerBaseDto; @@ -47,4 +49,31 @@ MerBirthdayGetVo birthdayGetVo = birthdayCardService.getMerShopBirthdayCard(merBaseDto.getShopId()); return R.ok(birthdayGetVo); } + + @RequestMapping(value = "/getMerShopBCEditInfo", method = RequestMethod.POST) + @ApiOperation(value = "商户获取生日卡编辑信息") + public R<MerBirthdayEditInfoVo> getMerShopBCEditInfo(@RequestBody MerBaseDto merBaseDto) { + Long userId = SecurityUtils.getUserId(); + merBaseDto.setUserId(userId); + MerBirthdayEditInfoVo shopBCEditInfo = birthdayCardService.getMerShopBCEditInfo(merBaseDto.getShopId()); + return R.ok(shopBCEditInfo); + } + + @RequestMapping(value = "/editMerBirthdayCard", method = RequestMethod.POST) + @ApiOperation(value = "商户编辑生日卡") + public R editMerBirthdayCard(@RequestBody MerBirthdayEditDto merBirthdayEditDto) { + Long userId = SecurityUtils.getUserId(); + merBirthdayEditDto.setUserId(userId); + birthdayCardService.editMerBirthdayCard(merBirthdayEditDto); + return R.ok(); + } + + @RequestMapping(value = "/toggleMerBirthdayCard", method = RequestMethod.POST) + @ApiOperation(value = "商户开关生日卡") + public R toggleMerBirthdayCard(@RequestBody MerBirthdayEditDto merBirthdayEditDto) { + Long userId = SecurityUtils.getUserId(); + merBirthdayEditDto.setUserId(userId); + birthdayCardService.toggleMerBirthdayCard(merBirthdayEditDto); + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java index 5099d07..749e80c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java @@ -3,10 +3,14 @@ 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.MerCouponEditDto; +import com.ruoyi.member.domain.dto.MerCouponPageDto; +import com.ruoyi.member.domain.dto.MgtCouponListDto; import com.ruoyi.member.domain.vo.MerCouponGetVo; import com.ruoyi.member.domain.vo.MerCouponPageVo; -import com.ruoyi.member.domain.vo.MgtCouponGetVo; +import com.ruoyi.member.domain.vo.MgtCouponSimpleListVo; import com.ruoyi.member.service.coupon.CouponService; +import com.ruoyi.system.api.domain.dto.MerBaseGetDto; import com.ruoyi.system.api.domain.dto.MerPageDto; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; import io.swagger.annotations.Api; @@ -49,7 +53,7 @@ @RequestMapping(value = "/pageShopMerCoupon", method = RequestMethod.POST) @ApiOperation(value = "商户分页获取商户优惠券列表") - public R<Page<MerCouponPageVo>> pageShopMerCoupon(@RequestBody MerPageDto merPageDto) { + public R<Page<MerCouponPageVo>> pageShopMerCoupon(@RequestBody MerCouponPageDto merPageDto) { Long userId = SecurityUtils.getUserId(); merPageDto.setUserId(userId); Page<MerCouponPageVo> page = new Page<>(); @@ -67,4 +71,29 @@ MerCouponGetVo couponGetVo = couponService.getMerCouponVo(mgtBaseGetDto.getId()); return R.ok(couponGetVo); } + + @RequestMapping(value = "/editMerCoupon", method = RequestMethod.POST) + @ApiOperation(value = "商户编辑优惠券") + public R editMerCoupon(@RequestBody MerCouponEditDto merCouponEditDto) { + Long userId = SecurityUtils.getUserId(); + merCouponEditDto.setUserId(userId); + couponService.editMerCoupon(merCouponEditDto); + return R.ok(); + } + + @RequestMapping(value = "/deleteMerCoupon", method = RequestMethod.POST) + @ApiOperation(value = "商户删除优惠券") + public R deleteMerCoupon(@RequestBody MerBaseGetDto merBaseGetDto) { + Long userId = SecurityUtils.getUserId(); + merBaseGetDto.setUserId(userId); + couponService.deleteMerCoupon(merBaseGetDto); + return R.ok(); + } + + @RequestMapping(value = "/listMerCouponSimpleVo", method = RequestMethod.POST) + @ApiOperation(value = "获取优惠券选择列表") + public R<List<MgtCouponSimpleListVo>> listMgtCouponSimpleVo(@RequestBody MgtCouponListDto mgtCouponListDto) { + List<MgtCouponSimpleListVo> mgtCouponSimpleListVoList = couponService.listMgtCouponSimpleVo(mgtCouponListDto); + return R.ok(mgtCouponSimpleListVoList); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerTotalController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerTotalController.java new file mode 100644 index 0000000..d885f38 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerTotalController.java @@ -0,0 +1,70 @@ +package com.ruoyi.member.controller.business; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.member.domain.vo.MerMemberFixedTotalVo; +import com.ruoyi.member.domain.vo.MerMemberRecommendTotalVo; +import com.ruoyi.member.domain.vo.MerMemberSourceTotalVo; +import com.ruoyi.member.domain.vo.MerMemberTotalVo; +import com.ruoyi.member.service.member.MemberService; +import com.ruoyi.system.api.domain.dto.MerTotalDto; +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; + +/** + * @ClassName MerTotalController + * @Description TODO + * @Author jqs + * @Date 2023/7/3 15:58 + * @Version 1.0 + */ +@Api(value = "商户端会员统计相关接口", tags = "商户端会员统计相关接口", description = "商户端会员统计相关接口") +@RestController +@RequestMapping("/mer/total") +public class MerTotalController { + + @Resource + private MemberService memberService; + + @RequestMapping(value = "/getMerMemberTotal", method = RequestMethod.POST) + @ApiOperation(value = "获取商户会员人数统计") + public R<MerMemberTotalVo> getMerMemberTotal(@RequestBody MerTotalDto merTotalDto) { + Long userId = SecurityUtils.getUserId(); + merTotalDto.setUserId(userId); + MerMemberTotalVo memberTotal = memberService.getMerMemberTotal(merTotalDto); + return R.ok(memberTotal); + } + + @RequestMapping(value = "/getMerMemberFixedTotal", method = RequestMethod.POST) + @ApiOperation(value = "获取商户会员固定统计") + public R<MerMemberFixedTotalVo> getMerMemberFixedTotal(@RequestBody MerTotalDto merTotalDto) { + Long userId = SecurityUtils.getUserId(); + merTotalDto.setUserId(userId); + MerMemberFixedTotalVo merMemberFixedTotal = memberService.getMerMemberFixedTotal(merTotalDto); + return R.ok(merMemberFixedTotal); + } + + @RequestMapping(value = "/getMerMemberSourceTotal", method = RequestMethod.POST) + @ApiOperation(value = "获取商户会员人数统计") + public R<MerMemberSourceTotalVo> getMerMemberSourceTotal(@RequestBody MerTotalDto merTotalDto) { + Long userId = SecurityUtils.getUserId(); + merTotalDto.setUserId(userId); + MerMemberSourceTotalVo memberTotal = memberService.getMerMemberSourceTotal(merTotalDto); + return R.ok(memberTotal); + } + + @RequestMapping(value = "/getMerMemberRecommendTotal", method = RequestMethod.POST) + @ApiOperation(value = "获取商户会员人数统计") + public R<MerMemberRecommendTotalVo> getMerMemberRecommendTotal(@RequestBody MerTotalDto merTotalDto) { + Long userId = SecurityUtils.getUserId(); + merTotalDto.setUserId(userId); + MerMemberRecommendTotalVo memberTotal = memberService.getMerMemberRecommendTotal(merTotalDto); + return R.ok(memberTotal); + } +} 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 index bef8300..bf566d1 100644 --- 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 @@ -96,7 +96,7 @@ } @RequestMapping(value = "/getMgtCouponAuditVo", method = RequestMethod.POST) - @ApiOperation(value = "平台获取优惠券编辑信息") + @ApiOperation(value = "平台获取优惠券审核信息") public R<MgtCouponAuditGetVo> getMgtCouponAuditVo(@RequestBody MgtBaseGetDto mgtBaseGetDto) { Long userId = SecurityUtils.getUserId(); mgtBaseGetDto.setUserId(userId); diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerBirthdayEditDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerBirthdayEditDto.java new file mode 100644 index 0000000..c924276 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerBirthdayEditDto.java @@ -0,0 +1,27 @@ +package com.ruoyi.member.domain.dto; + +import com.ruoyi.system.api.domain.dto.MerBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MerBirthdayEditDto + * @Description TODO + * @Author jqs + * @Date 2023/7/3 14:03 + * @Version 1.0 + */ +@Data +public class MerBirthdayEditDto extends MerBaseDto { + + + @ApiModelProperty(value = "生日卡状态1开启2关闭") + private Integer cardStatus; + + @ApiModelProperty(value = "礼品列表") + private List<MgtBirthdayGiftDto> mgtBirthdayGiftDtoList; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponEditDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponEditDto.java new file mode 100644 index 0000000..a8ba52c --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponEditDto.java @@ -0,0 +1,75 @@ +package com.ruoyi.member.domain.dto; + +import com.ruoyi.system.api.domain.dto.MerBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @ClassName MerCouponEditDto + * @Description TODO + * @Author jqs + * @Date 2023/7/3 9:16 + * @Version 1.0 + */ +@Data +public class MerCouponEditDto extends MerBaseDto { + + @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 = "领取限制数量 0为不限") + private Integer limitNumber; + + @ApiModelProperty(value = "选择商品id集合") + private List<String> relGoodsIdList; + + + @ApiModelProperty(value = "关联用户id集合") + private List<Long> relUserIdList; + + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponPageDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponPageDto.java new file mode 100644 index 0000000..856b41a --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponPageDto.java @@ -0,0 +1,22 @@ +package com.ruoyi.member.domain.dto; + +import com.ruoyi.system.api.domain.dto.MerPageDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName MerCouponPageDto + * @Description TODO + * @Author jqs + * @Date 2023/7/3 14:38 + * @Version 1.0 + */ +@Data +public class MerCouponPageDto extends MerPageDto { + + + @ApiModelProperty(name = "审核状态1申请中2审核通过3审核拒绝") + private Integer auditStatus; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtBirthdayEditDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtBirthdayEditDto.java index b3258af..a8667ae 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtBirthdayEditDto.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtBirthdayEditDto.java @@ -16,22 +16,22 @@ @Data public class MgtBirthdayEditDto extends MgtBaseDto { - @ApiModelProperty(value = "生日卡id 新增不传") - private Long cardId; + @ApiModelProperty(value = "商户id 平台不传") + private Long shopId; @ApiModelProperty(value = "生日卡状态1开启2关闭") private Integer cardStatus; - @ApiModelProperty(value = "适用地区标记1全部2指定") + @ApiModelProperty(value = "适用地区标记1全部2指定 商户不传") private Integer areaFlag; - @ApiModelProperty(value = "适用地区code集合 多个用,隔开") + @ApiModelProperty(value = "适用地区code集合 多个用,隔开 商户不传") private String designatedArea; - @ApiModelProperty(value = "适用店铺标记1全部2指定") + @ApiModelProperty(value = "适用店铺标记1全部2指定 商户不传") private Integer shopFlag; - @ApiModelProperty(value = "适用店铺 多个用,隔开") + @ApiModelProperty(value = "适用店铺 多个用,隔开 商户不传") private String applicableShop; @ApiModelProperty(value = "礼品列表") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayEditInfoVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayEditInfoVo.java new file mode 100644 index 0000000..b708c85 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayEditInfoVo.java @@ -0,0 +1,31 @@ +package com.ruoyi.member.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MerBirthdayEditInfoVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 10:56 + * @Version 1.0 + */ +@Data +public class MerBirthdayEditInfoVo { + + @ApiModelProperty(value = "生日卡id") + private Long cardId; + + @ApiModelProperty(value = "生日卡状态1开启2关闭") + private Integer cardStatus; + + + @ApiModelProperty(value = "礼品列表") + private List<MgtBirthdayGiftVo> mgtBirthdayGiftVoList; + + + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayGetVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayGetVo.java index 39339de..a152796 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayGetVo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayGetVo.java @@ -13,6 +13,9 @@ @Data public class MerBirthdayGetVo { + @ApiModelProperty(value = "生日卡状态1开启2关闭") + private Integer cardStatus; + @ApiModelProperty(value = "礼品描述") private String giftDesc; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGetVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGetVo.java index f75fcaf..bcb61ac 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGetVo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGetVo.java @@ -1,6 +1,7 @@ package com.ruoyi.member.domain.vo; import com.ruoyi.system.api.domain.dto.MerBaseDto; +import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -60,14 +61,12 @@ @ApiModelProperty(value = "折扣百分比") private BigDecimal discountPercent; + @ApiModelProperty(value = "领取限制数量 0为不限") + private Integer limitNumber; + @ApiModelProperty(value = "选择商品集合") - private List<MgtCouponGoodsListVo> relGoodsList; + private List<MerGoodsPriceListVo> 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/MerCouponGoodsListVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGoodsListVo.java new file mode 100644 index 0000000..5f30671 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGoodsListVo.java @@ -0,0 +1,43 @@ +package com.ruoyi.member.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @ClassName MerCouponGoodsListVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 9:29 + * @Version 1.0 + */ +@Data +public class MerCouponGoodsListVo { + + @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; + + @ApiModelProperty(value = "商品建议售价") + private BigDecimal suggestSalesPrice;; + + @ApiModelProperty(value = "商品简介") + private String goodsIntroduction; + + @ApiModelProperty(value = "商品调理问题") + private String goodsNurses; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java index d519be4..8930402 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java @@ -68,4 +68,6 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + @ApiModelProperty("拒绝理由") + private String auditReason; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java new file mode 100644 index 0000000..f021539 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberFixedTotalVo.java @@ -0,0 +1,44 @@ +package com.ruoyi.member.domain.vo; + +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MerMemberFixedTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:31 + * @Version 1.0 + */ +@Data +public class MerMemberFixedTotalVo { + + @ApiModelProperty(value = "男人") + private Integer manTotal; + + @ApiModelProperty(value = "女人") + private Integer womenTotal; + + @ApiModelProperty(value = "会员年龄key") + private String[] ageKey; + + @ApiModelProperty(value = "会员年龄value") + private Integer[] ageValue; + + @ApiModelProperty(value = "会员调理") + private List<MgtMapIntTotalVo> nurseTotalVos; + + @ApiModelProperty(value = "商品类型") + private List<MgtMapIntTotalVo> goodsTypeTotalVos; + + @ApiModelProperty(value = "活跃度") + private List<MgtMapIntTotalVo> activenessList; + + @ApiModelProperty(value = "消费排行") + private List<MgtMapIntTotalVo> memberPayList; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberRecommendTotalVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberRecommendTotalVo.java new file mode 100644 index 0000000..e74c7db --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberRecommendTotalVo.java @@ -0,0 +1,23 @@ +package com.ruoyi.member.domain.vo; + +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MerMemberRecommendTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:36 + * @Version 1.0 + */ +@Data +public class MerMemberRecommendTotalVo { + + @ApiModelProperty(value = "推荐榜单") + private List<MgtMapIntTotalVo> recommendList; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberSourceTotalVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberSourceTotalVo.java new file mode 100644 index 0000000..7ac2b6d --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberSourceTotalVo.java @@ -0,0 +1,21 @@ +package com.ruoyi.member.domain.vo; + +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MerMemberSourceTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:34 + * @Version 1.0 + */ +@Data +public class MerMemberSourceTotalVo { + + @ApiModelProperty(value = "来源渠道") + private List<MgtMapIntTotalVo> customerSourceList; +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberTotalVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberTotalVo.java new file mode 100644 index 0000000..42b61fe --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberTotalVo.java @@ -0,0 +1,39 @@ +package com.ruoyi.member.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName MerMemberTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:23 + * @Version 1.0 + */ +@Data +public class MerMemberTotalVo { + + @ApiModelProperty(value = "总会员") + private Integer memberTotal; + + @ApiModelProperty(value = "线上来源") + private Integer onlineTotal; + + @ApiModelProperty(value = "线下来源") + private Integer offlineTotal; + + @ApiModelProperty(value = "转介绍") + private Integer introduceTotal; + + @ApiModelProperty(value = "周期会员") + private Integer cycleTotal; + + @ApiModelProperty(value = "体验会员") + private Integer experienceTotal; + + @ApiModelProperty(value = "服务会员") + private Integer serviceTotal; + + + +} 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 3d12abd..41ceb22 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 @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.member.domain.dto.MerCouponPageDto; import com.ruoyi.member.domain.dto.MgtCouponAuditPageDto; import com.ruoyi.member.domain.dto.MgtCouponListDto; import com.ruoyi.member.domain.dto.MgtCouponPageDto; @@ -77,12 +78,12 @@ List<MerCouponPageVo> pagePlatformMerCoupon(Page page, @Param("param")MerPageDto merPageDto); /** - * @description 平台获取优惠券列表 + * @description 获取商户优惠券列表 * @author jqs * @date 2023/6/30 16:53 * @param page * @param merPageDto * @return List<MerCouponPageVo> */ - List<MerCouponPageVo> pageShopMerCoupon(Page page, @Param("param")MerPageDto merPageDto); + List<MerCouponPageVo> pageShopMerCoupon(Page page, @Param("param") MerCouponPageDto merPageDto); } 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 56b649e..b7fc156 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 @@ -6,10 +6,7 @@ import com.ruoyi.member.domain.dto.MerMemberPageDto; import com.ruoyi.member.domain.dto.MgtMemberPageDto; import com.ruoyi.member.domain.vo.*; -import com.ruoyi.system.api.domain.dto.MgtActivityAgeDto; -import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; -import com.ruoyi.system.api.domain.dto.MgtBaseShopDto; -import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto; +import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import com.ruoyi.system.api.domain.vo.MgtPlTotalMemberTotalVo; @@ -96,7 +93,7 @@ * @param sendType * @return List<Long> */ - List<Long> listIdBySendType(@Param("sendType")Integer sendType); + List<Long> listIdBySendType(@Param("sendType")Integer sendType,@Param("shopId")Long shopId); /** * @description 通过ids获取用户简易返回 @@ -212,6 +209,7 @@ List<Long> listUserIdByAge(@Param("param")MgtActivityAgeDto mgtActivityAgeDto); + /** * @description 会员人数统计 * @author jqs @@ -294,6 +292,79 @@ * @return List<Long> */ List<Long> listUserIdByShopId(@Param("shopIdList")List<Long> shopIdList); + + /** + * @description + * @author jqs + * @date 2023/7/3 18:29 + * @param merTotalDto + * @return MerMemberTotalVo + */ + MerMemberTotalVo getMerMemberTotal(@Param("param")MerTotalDto merTotalDto); + + + /** + * @description 会员年龄分布统计 + * @author jqs + * @date 2023/6/19 15:26 + * @param + * @return MgtTotalMemberTotalVo + */ + MgtAgeTotalVo getMerMemberTotalAge(@Param("param") MerTotalDto merTotalDto); + + /** + * @description 会员调理问题人数统计 + * @author jqs + * @date 2023/6/19 15:26 + * @param + * @return MgtTotalMemberTotalVo + */ + List<MgtMapIntTotalVo> getMerMemberTotalNurse(@Param("param") MerTotalDto merTotalDto); + + /** + * @description 会员商品类型人数统计 + * @author jqs + * @date 2023/6/19 15:26 + * @param + * @return MgtTotalMemberTotalVo + */ + List<MgtMapIntTotalVo> getMerMemberTotalGoodsType(@Param("param") MerTotalDto merTotalDto); + + /** + * @description 会员活跃度统计 + * @param merTotalDto + * @return Integer + * @author jqs34 + * @date 2023/6/19 21:24 + */ + Integer getMerMemberTotalActiveness(@Param("param") MerTotalDto merTotalDto); + + /** + * @description 会员消费次数排名 + * @author jqs + * @date 2023/6/19 15:26 + * @param + * @return MgtTotalMemberTotalVo + */ + List<MgtMapIntTotalVo> getMerMemberPayRank(@Param("param") MerTotalDto merTotalDto); + + /** + * @description 会员来源排名计 + * @author jqs + * @date 2023/6/19 15:26 + * @param + * @return MgtTotalMemberTotalVo + */ + List<MgtMapIntTotalVo> getMerMemberCustomerSourceRank(@Param("param") MerTotalDto merTotalDto); + + /** + * @description 会员推荐排名 + * @author jqs + * @date 2023/7/3 19:16 + * @param merTotalDto + * @return List<MgtMapIntTotalVo> + */ + List<MgtMapIntTotalVo> getMerMemberRecommendRank(@Param("param") MerTotalDto merTotalDto); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java index e207ffd..3ffd35c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java @@ -1,9 +1,11 @@ package com.ruoyi.member.service.birthday; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.member.domain.dto.MerBirthdayEditDto; import com.ruoyi.member.domain.dto.MgtBirthdayEditDto; import com.ruoyi.member.domain.dto.MgtBirthdayGetDto; import com.ruoyi.member.domain.pojo.birthday.BirthdayCard; +import com.ruoyi.member.domain.vo.MerBirthdayEditInfoVo; import com.ruoyi.member.domain.vo.MerBirthdayGetVo; import com.ruoyi.member.domain.vo.MgtBirthdayGetVo; @@ -52,4 +54,31 @@ * @return MerBirthdayGetVo */ MerBirthdayGetVo getMerShopBirthdayCard(Long shopId); + + /** + * @description 获取商户生日卡详情 + * @author jqs + * @date 2023/7/3 10:58 + * @param shopId + * @return MerBirthdayGetVo + */ + MerBirthdayEditInfoVo getMerShopBCEditInfo(Long shopId); + + /** + * @description 商户编辑生日卡 + * @author jqs + * @date 2023/7/3 14:15 + * @param merBirthdayEditDto + * @return void + */ + void editMerBirthdayCard(MerBirthdayEditDto merBirthdayEditDto); + + /** + * @description 开关生日卡成功 + * @author jqs + * @date 2023/7/3 14:27 + * @param merBirthdayEditDto + * @return void + */ + void toggleMerBirthdayCard(MerBirthdayEditDto merBirthdayEditDto); } 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 c3049a3..5c042f0 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 @@ -5,6 +5,7 @@ import com.ruoyi.member.domain.pojo.coupon.Coupon; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.member.domain.vo.*; +import com.ruoyi.system.api.domain.dto.MerBaseGetDto; import com.ruoyi.system.api.domain.dto.MerPageDto; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; @@ -124,12 +125,30 @@ List<MerCouponPageVo> pagePlatformMerCoupon(Page page, MerPageDto merPageDto); /** - * @description 平台获取优惠券列表 + * @description 获取商户优惠券列表 * @author jqs * @date 2023/6/30 16:53 * @param page * @param merPageDto * @return List<MerCouponPageVo> */ - List<MerCouponPageVo> pageShopMerCoupon(Page page, MerPageDto merPageDto); + List<MerCouponPageVo> pageShopMerCoupon(Page page, MerCouponPageDto merPageDto); + + /** + * @description 商户编辑优惠券 + * @author jqs + * @date 2023/7/3 9:21 + * @param merCouponEditDto + * @return void + */ + void editMerCoupon(MerCouponEditDto merCouponEditDto); + + /** + * @description 商户删除优惠券 + * @author jqs + * @date 2023/7/3 15:04 + * @param merBaseGetDto + * @return void + */ + void deleteMerCoupon(MerBaseGetDto merBaseGetDto); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java index b9ab5de..ef991e7 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java @@ -2,11 +2,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.member.domain.dto.MerBirthdayEditDto; import com.ruoyi.member.domain.dto.MgtBirthdayEditDto; import com.ruoyi.member.domain.dto.MgtBirthdayGetDto; import com.ruoyi.member.domain.dto.MgtBirthdayGiftDto; import com.ruoyi.member.domain.pojo.birthday.BirthdayCard; import com.ruoyi.member.domain.pojo.birthday.BirthdayGift; +import com.ruoyi.member.domain.vo.MerBirthdayEditInfoVo; import com.ruoyi.member.domain.vo.MerBirthdayGetVo; import com.ruoyi.member.domain.vo.MgtBirthdayGetVo; import com.ruoyi.member.domain.vo.MgtBirthdayGiftVo; @@ -47,57 +49,83 @@ */ @Override public void editMgtBirthdayCard(MgtBirthdayEditDto mgtBirthdayEditDto){ - if(mgtBirthdayEditDto.getCardId()!=null){ - BirthdayCard birthdayCardOld = this.getById(mgtBirthdayEditDto.getCardId()); + // 创建查询包装器 + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + // 添加查询条件:删除标志为0 + queryWrapper.eq(BirthdayCard::getDelFlag,0); + // 如果店铺ID不为空,则添加查询条件:店铺ID + if(mgtBirthdayEditDto.getShopId()!=null){ + queryWrapper.eq(BirthdayCard::getShopId,mgtBirthdayEditDto.getShopId()); + }else{ + // 否则,添加查询条件:店铺ID为0 + queryWrapper.eq(BirthdayCard::getShopId,0); + } + // 获取查询结果 + BirthdayCard birthdayCardOld = this.getOne(queryWrapper,false); + // 如果查询结果不为空,则进行更新操作 + if (birthdayCardOld!=null) { + // 设置删除标志为1 birthdayCardOld.setDelFlag(1); + // 保存或更新数据 this.saveOrUpdate(birthdayCardOld); + // 删除旧的生日卡的礼物 birthdayGiftService.deleteByCardId(birthdayCardOld.getCardId()); } + // 创建新的生日卡 BirthdayCard birthdayCard = new BirthdayCard(); birthdayCard.setDelFlag(0); birthdayCard.setShopId(0L); birthdayCard.setCardStatus(mgtBirthdayEditDto.getCardStatus()); + // 根据卡状态设置开启或关闭时间 if(mgtBirthdayEditDto.getCardStatus()==1){ birthdayCard.setOpenTime(new Date()); }else{ birthdayCard.setCloseTime(new Date()); } + // 设置创建时间 birthdayCard.setCreateTime(new Date()); - birthdayCard.setAreaFlag(mgtBirthdayEditDto.getAreaFlag()); - if(mgtBirthdayEditDto.getAreaFlag()==2){ - birthdayCard.setDesignatedArea(mgtBirthdayEditDto.getDesignatedArea()); - }else{ - birthdayCard.setDesignatedArea(null); + // 如果店铺ID不为空,则进行相关设置 + if(mgtBirthdayEditDto.getShopId()!=null){ + birthdayCard.setAreaFlag(mgtBirthdayEditDto.getAreaFlag()); + if(mgtBirthdayEditDto.getAreaFlag()==2){ + birthdayCard.setDesignatedArea(mgtBirthdayEditDto.getDesignatedArea()); + }else{ + birthdayCard.setDesignatedArea(null); + } + birthdayCard.setShopFlag(mgtBirthdayEditDto.getShopFlag()); + if(mgtBirthdayEditDto.getShopFlag()==2){ + birthdayCard.setApplicableShop(mgtBirthdayEditDto.getApplicableShop()); + }else{ + birthdayCard.setApplicableShop(null); + } } - birthdayCard.setShopFlag(mgtBirthdayEditDto.getShopFlag()); - if(mgtBirthdayEditDto.getShopFlag()==2){ - birthdayCard.setApplicableShop(mgtBirthdayEditDto.getApplicableShop()); - }else{ - birthdayCard.setApplicableShop(null); - } + // 设置创建用户ID birthdayCard.setCreateUserId(mgtBirthdayEditDto.getUserId()); + // 保存或更新数据 this.saveOrUpdate(birthdayCard); + // 获取生日礼物列表 List<MgtBirthdayGiftDto> mgtBirthdayGiftDtoList = mgtBirthdayEditDto.getMgtBirthdayGiftDtoList(); List<BirthdayGift> birthdayGiftList = new ArrayList<>(); - if(!mgtBirthdayGiftDtoList.isEmpty()){ - mgtBirthdayGiftDtoList.forEach( dto->{ - BirthdayGift birthdayGift = new BirthdayGift(); - birthdayGift.setDelFlag(0); - birthdayGift.setCardId(birthdayCard.getCardId()); - birthdayGift.setGiftType(dto.getGiftType()); - birthdayGift.setCouponId(dto.getCouponId()); - birthdayGift.setCouponName(dto.getCouponName()); - birthdayGift.setCouponNumber(dto.getCouponNumber()); - birthdayGift.setGoodsId(dto.getGoodsId()); - birthdayGift.setGoodsName(dto.getGoodsName()); - birthdayGift.setGoodsNumber(dto.getGoodsNumber()); - birthdayGift.setGiftName(dto.getGiftName()); - birthdayGift.setGiftNumber(dto.getGiftNumber()); - birthdayGift.setMoney(dto.getMoney()); - birthdayGift.setWinningProbability(dto.getWinningProbability()); - birthdayGiftList.add(birthdayGift); - } - ); + // 如果生日礼物列表不为空,则进行相关设置 + if(!mgtBirthdayGiftDtoList.isEmpty()) { + mgtBirthdayGiftDtoList.forEach(dto -> { + BirthdayGift birthdayGift = new BirthdayGift(); + birthdayGift.setDelFlag(0); + birthdayGift.setCardId(birthdayCard.getCardId()); + birthdayGift.setGiftType(dto.getGiftType()); + birthdayGift.setCouponId(dto.getCouponId()); + birthdayGift.setCouponName(dto.getCouponName()); + birthdayGift.setCouponNumber(dto.getCouponNumber()); + birthdayGift.setGoodsId(dto.getGoodsId()); + birthdayGift.setGoodsName(dto.getGoodsName()); + birthdayGift.setGoodsNumber(dto.getGoodsNumber()); + birthdayGift.setGiftName(dto.getGiftName()); + birthdayGift.setGiftNumber(dto.getGiftNumber()); + birthdayGift.setMoney(dto.getMoney()); + birthdayGift.setWinningProbability(dto.getWinningProbability()); + birthdayGiftList.add(birthdayGift); + }); + // 批量保存生日礼物 birthdayGiftService.saveBatch(birthdayGiftList); } } @@ -185,13 +213,15 @@ giftDesc = giftSj.toString(); birthdayGetVo.setGiftDesc(giftDesc); } + }else{ + birthdayGetVo.setCardStatus(2); } return birthdayGetVo; } /** - * @description 获取平台生日卡 + * @description 获取商户生日卡 * @author jqs * @date 2023/7/1 15:25 * @param @@ -242,7 +272,126 @@ giftDesc = giftSj.toString(); birthdayGetVo.setGiftDesc(giftDesc); } + birthdayGetVo.setCardStatus(birthdayCard.getCardStatus()); + }else{ + birthdayGetVo.setCardStatus(2); } return birthdayGetVo; } + + /** + * @description 获取商户生日卡详情 + * @author jqs + * @date 2023/7/3 10:58 + * @param shopId + * @return MerBirthdayGetVo + */ + @Override + public MerBirthdayEditInfoVo getMerShopBCEditInfo(Long shopId){ + MerBirthdayEditInfoVo merBirthdayEditInfoVo = new MerBirthdayEditInfoVo(); + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BirthdayCard::getDelFlag,0); + queryWrapper.eq(BirthdayCard::getShopId,shopId); + BirthdayCard birthdayCard = this.getOne(queryWrapper,false); + if(birthdayCard!=null){ + merBirthdayEditInfoVo.setCardId(birthdayCard.getCardId()); + merBirthdayEditInfoVo.setCardStatus(birthdayCard.getCardStatus()); + List<MgtBirthdayGiftVo> mgtBirthdayGiftVoList = birthdayGiftService.listGiftVoByCardId(birthdayCard.getCardId()); + merBirthdayEditInfoVo.setMgtBirthdayGiftVoList(mgtBirthdayGiftVoList); + } + return merBirthdayEditInfoVo; + } + + /** + * @description 商户编辑生日卡 + * @author jqs + * @date 2023/7/3 14:15 + * @param merBirthdayEditDto + * @return void + */ + @Override + public void editMerBirthdayCard(MerBirthdayEditDto merBirthdayEditDto){ + // 创建查询包装器 + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BirthdayCard::getDelFlag,0); + queryWrapper.eq(BirthdayCard::getShopId,merBirthdayEditDto.getShopId()); + // 获取查询结果 + BirthdayCard birthdayCardOld = this.getOne(queryWrapper,false); + // 如果查询结果不为空,则进行更新操作 + if (birthdayCardOld!=null) { + // 设置删除标志为1 + birthdayCardOld.setDelFlag(1); + // 保存或更新数据 + this.saveOrUpdate(birthdayCardOld); + // 删除旧的生日卡的礼物 + birthdayGiftService.deleteByCardId(birthdayCardOld.getCardId()); + } + // 创建新的生日卡 + BirthdayCard birthdayCard = new BirthdayCard(); + birthdayCard.setDelFlag(0); + birthdayCard.setShopId(0L); + birthdayCard.setCardStatus(merBirthdayEditDto.getCardStatus()); + // 根据卡状态设置开启或关闭时间 + if(merBirthdayEditDto.getCardStatus()==1){ + birthdayCard.setOpenTime(new Date()); + }else{ + birthdayCard.setCloseTime(new Date()); + } + // 设置创建时间 + birthdayCard.setCreateTime(new Date()); + // 设置创建用户ID + birthdayCard.setCreateUserId(merBirthdayEditDto.getUserId()); + // 保存或更新数据 + this.saveOrUpdate(birthdayCard); + // 获取生日礼物列表 + List<MgtBirthdayGiftDto> mgtBirthdayGiftDtoList = merBirthdayEditDto.getMgtBirthdayGiftDtoList(); + List<BirthdayGift> birthdayGiftList = new ArrayList<>(); + // 如果生日礼物列表不为空,则进行相关设置 + if(!mgtBirthdayGiftDtoList.isEmpty()) { + mgtBirthdayGiftDtoList.forEach(dto -> { + BirthdayGift birthdayGift = new BirthdayGift(); + birthdayGift.setDelFlag(0); + birthdayGift.setCardId(birthdayCard.getCardId()); + birthdayGift.setGiftType(dto.getGiftType()); + birthdayGift.setCouponId(dto.getCouponId()); + birthdayGift.setCouponName(dto.getCouponName()); + birthdayGift.setCouponNumber(dto.getCouponNumber()); + birthdayGift.setGoodsId(dto.getGoodsId()); + birthdayGift.setGoodsName(dto.getGoodsName()); + birthdayGift.setGoodsNumber(dto.getGoodsNumber()); + birthdayGift.setGiftName(dto.getGiftName()); + birthdayGift.setGiftNumber(dto.getGiftNumber()); + birthdayGift.setMoney(dto.getMoney()); + birthdayGift.setWinningProbability(dto.getWinningProbability()); + birthdayGiftList.add(birthdayGift); + }); + // 批量保存生日礼物 + birthdayGiftService.saveBatch(birthdayGiftList); + } + } + + /** + * @description 开关生日卡成功 + * @author jqs + * @date 2023/7/3 14:27 + * @param merBirthdayEditDto + * @return void + */ + @Override + public void toggleMerBirthdayCard(MerBirthdayEditDto merBirthdayEditDto){ + // 创建查询包装器 + LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BirthdayCard::getDelFlag,0); + queryWrapper.eq(BirthdayCard::getShopId,merBirthdayEditDto.getShopId()); + // 获取查询结果 + BirthdayCard birthdayCard = this.getOne(queryWrapper,false); + if(birthdayCard==null){ + birthdayCard = new BirthdayCard(); + birthdayCard.setDelFlag(0); + birthdayCard.setCreateTime(new Date()); + birthdayCard.setCreateUserId(merBirthdayEditDto.getUserId()); + } + birthdayCard.setCardStatus(merBirthdayEditDto.getCardStatus()); + this.saveOrUpdate(birthdayCard); + } } 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 5f9e205..d11c200 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 @@ -13,6 +13,7 @@ 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.system.api.domain.dto.MerBaseGetDto; import com.ruoyi.system.api.domain.dto.MerPageDto; import com.ruoyi.system.api.domain.poji.member.MemberCoupon; import com.ruoyi.member.domain.vo.*; @@ -26,6 +27,7 @@ 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.domain.vo.MerGoodsPriceListVo; import com.ruoyi.system.api.service.RemoteActivityService; import com.ruoyi.system.api.service.RemoteGoodsService; import org.springframework.scheduling.annotation.Async; @@ -208,37 +210,9 @@ String relGoodsIds = coupon.getRelGoodsIds(); if(StringUtils.isNotBlank(relGoodsIds)){ //获取指定商品列表 - List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData(); + List<MerGoodsPriceListVo> goodsList = remoteGoodsService.listGoodsPriceByGoodsId(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); - } - merCouponGetVo.setRelGoodsList(relGoodsList); + merCouponGetVo.setRelGoodsList(goodsList); } } } @@ -359,8 +333,12 @@ Date nowTime = new Date(); Integer sendType = coupon.getSendType(); List<Long> userIdList = new ArrayList<>(); + Long shopId = null; + if(coupon.getCouponFrom()==2 && sendType==3){ + shopId = coupon.getShopId(); + } if(sendType >= 2 && sendType <= 4){ - userIdList = memberService.listIdBySendType(sendType); + userIdList = memberService.listIdBySendType(sendType,shopId); }else if(sendType == 5){ //关联类型1.用户管理筛选2.活动管理筛选 if(coupon.getRelationType()==2){ @@ -691,7 +669,7 @@ } /** - * @description 平台获取优惠券列表 + * @description 获取商户优惠券列表 * @author jqs * @date 2023/6/30 16:53 * @param page @@ -699,7 +677,7 @@ * @return List<MerCouponPageVo> */ @Override - public List<MerCouponPageVo> pageShopMerCoupon(Page page, MerPageDto merPageDto){ + public List<MerCouponPageVo> pageShopMerCoupon(Page page, MerCouponPageDto merPageDto){ List<MerCouponPageVo> couponPageVoList = couponMapper.pageShopMerCoupon(page, merPageDto); //处理使用限制和有效期 if(couponPageVoList!=null&&!couponPageVoList.isEmpty()){ @@ -747,4 +725,111 @@ } return couponPageVoList; } + + + /** + * @description 商户编辑优惠券 + * @author jqs + * @date 2023/7/3 9:21 + * @param merCouponEditDto + * @return void + */ + @Override + public void editMerCoupon(MerCouponEditDto merCouponEditDto){ + //编辑优惠券 + Coupon coupon; + CouponTotal couponTotal; + if(StringUtils.isNotBlank(merCouponEditDto.getCouponId())){ + coupon = this.getById(merCouponEditDto.getCouponId()); + if(coupon.getAuditStatus()!=3){ + throw new ServiceException(AppErrorConstant.COUPON_AUDIT_EDIT); + } + couponRelUserService.deleteCouponRelByCouponId(coupon.getCouponId()); + couponRelGoodsService.deleteCouponRelByCouponId(coupon.getCouponId()); + coupon.setCouponStatus(1); + }else{ + coupon = new Coupon(); + String couponId = IdUtils.simpleUUID(); + coupon.setCouponId(couponId); + coupon.setDelFlag(0); + coupon.setShopId(merCouponEditDto.getShopId()); + coupon.setCouponStatus(1); + coupon.setCreateTime(new Date()); + coupon.setCreateUserId(merCouponEditDto.getUserId()); + coupon.setCouponFrom(2); + //创建优惠券统计 + couponTotal = new CouponTotal(); + couponTotal.setCouponId(couponId); + couponTotal.setSendCount(0); + couponTotal.setSendUserCount(0); + couponTotalService.save(couponTotal); + } + //优惠券赋值 + coupon.setAuditStatus(1); + coupon.setCouponType(merCouponEditDto.getCouponType()); + coupon.setCouponName(merCouponEditDto.getCouponName()); + coupon.setSendType(merCouponEditDto.getSendType()); + coupon.setSendTimeType(merCouponEditDto.getSendTimeType()); + coupon.setSendTime(merCouponEditDto.getSendTime()); + coupon.setMoneyThreshold(merCouponEditDto.getMoneyThreshold()); + coupon.setDiscountMoney(merCouponEditDto.getDiscountMoney()); + coupon.setDiscountPercent(merCouponEditDto.getDiscountPercent()); + coupon.setUseScope(merCouponEditDto.getUseScope()); + coupon.setValidTimeType(merCouponEditDto.getValidTimeType()); + coupon.setValidStartTime(merCouponEditDto.getValidStartTime()); + coupon.setValidEndTime(merCouponEditDto.getValidEndTime()); + coupon.setValidDay(merCouponEditDto.getValidDay()); + coupon.setUpdateTime(new Date()); + coupon.setUpdateUserId(merCouponEditDto.getUserId()); + coupon.setRelationType(1); + //判断是否指定商品 + if(coupon.getUseScope()==2&&!merCouponEditDto.getRelGoodsIdList().isEmpty()){ + List<String> relGoodsIdList = merCouponEditDto.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&&!merCouponEditDto.getRelUserIdList().isEmpty()){ + relUserIdList = merCouponEditDto.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); + } + + /** + * @description 商户删除优惠券 + * @author jqs + * @date 2023/7/3 15:04 + * @param merBaseGetDto + * @return void + */ + @Override + public void deleteMerCoupon(MerBaseGetDto merBaseGetDto){ + Coupon coupon = this.getById(merBaseGetDto.getId()); + coupon.setCouponStatus(-1); + coupon.setDelFlag(1); + coupon.setUpdateUserId(merBaseGetDto.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 2f9d437..46ae84e 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 @@ -1002,9 +1002,9 @@ * @date 2023/6/13 17:53 */ @Override - public List<Long> listIdBySendType(Integer sendType) { + public List<Long> listIdBySendType(Integer sendType,Long shopId) { //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 - return memberMapper.listIdBySendType(sendType); + return memberMapper.listIdBySendType(sendType,shopId); } /** @@ -1360,4 +1360,130 @@ } memberTotalService.saveOrUpdate(memberTotal); } + + /** + * @description 商户获取会员统计 + * @author jqs + * @date 2023/7/3 17:16 + * @param merTotalDto + * @return MerMemberTotalVo + */ + @Override + public MerMemberTotalVo getMerMemberTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerMemberTotalVo merMemberTotalVo = memberMapper.getMerMemberTotal(merTotalDto); + return merMemberTotalVo; + } + + /** + * @description 商户获取会员固定统计 + * @author jqs + * @date 2023/7/3 18:34 + * @param merTotalDto + * @return MerMemberFixedTotalVo + */ + @Override + public MerMemberFixedTotalVo getMerMemberFixedTotal(MerTotalDto merTotalDto){ + MerMemberFixedTotalVo memberFixedTotalVo = new MerMemberFixedTotalVo(); + Date nowDay = DateUtils.getNowDate(); + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getMerMemberTotalAge(merTotalDto); + // 年龄段数组 + String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"}; + // 不同年龄段的会员数数组 + Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()}; + // 设置年龄段数组和不同年龄段的会员数数组 + memberFixedTotalVo.setAgeKey(ageKey); + memberFixedTotalVo.setAgeValue(ageValue); + // 获取不同护理类型的会员数 + List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getMerMemberTotalNurse(merTotalDto); + if (nurseTotalVos != null && nurseTotalVos.size() > 0) { + nurseTotalVos = listRemoveNull(nurseTotalVos); + memberFixedTotalVo.setNurseTotalVos(nurseTotalVos); + } + // 获取不同商品类型的会员数 + List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getMerMemberTotalGoodsType(merTotalDto); + if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { + goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos); + memberFixedTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos); + } + // 获取不同活跃度的会员数 + List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); + if (activenessList != null && !activenessList.isEmpty()) { + Activeness activeness; + String actStartDate; + String actEndDate; + Integer count; + List<MgtMapIntTotalVo> MgtMapIntTotalVoList = new ArrayList<>(); + MgtMapIntTotalVo MgtMapIntTotalVo; + // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组 + for (int i = 0; i < activenessList.size(); i++) { + activeness = activenessList.get(i); + actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); + actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); + merTotalDto.setStartDate(actStartDate); + merTotalDto.setEndDate(actEndDate); + count = memberMapper.getMerMemberTotalActiveness(merTotalDto); + MgtMapIntTotalVo = new MgtMapIntTotalVo(); + MgtMapIntTotalVo.setMapKey(activeness.getActivenessName()); + MgtMapIntTotalVo.setMapValue(count); + MgtMapIntTotalVoList.add(MgtMapIntTotalVo); + } + memberFixedTotalVo.setActivenessList(MgtMapIntTotalVoList); + } + //获取会员消费排名 + List<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto); + if (memberPayList != null && memberPayList.size() > 0) { + memberPayList = listRemoveNull(memberPayList); + memberFixedTotalVo.setMemberPayList(memberPayList); + } + return memberFixedTotalVo; + } + + /** + * @description 商会获取会员来源统计 + * @author jqs + * @date 2023/7/3 19:09 + * @param merTotalDto + * @return MerMemberSourceTotalVo + */ + @Override + public MerMemberSourceTotalVo getMerMemberSourceTotal(MerTotalDto merTotalDto){ + MerMemberSourceTotalVo memberSourceTotalVo = new MerMemberSourceTotalVo(); + //获取来源渠道排名 + List<MgtMapIntTotalVo> customerSourceList = memberMapper.getMerMemberCustomerSourceRank(merTotalDto); + if (customerSourceList != null && customerSourceList.size() > 0) { + customerSourceList = listRemoveNull(customerSourceList); + memberSourceTotalVo.setCustomerSourceList(customerSourceList); + } + + return memberSourceTotalVo; + } + + /** + * @description 商会获取会员推荐排名 + * @author jqs + * @date 2023/7/3 19:14 + * @param merTotalDto + * @return MerMemberRecommendTotalVo + */ + @Override + public MerMemberRecommendTotalVo getMerMemberRecommendTotal(MerTotalDto merTotalDto){ + MerMemberRecommendTotalVo memberRecommendTotalVo = new MerMemberRecommendTotalVo(); + //获取会员推荐排名 + List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto); + if (recommendList != null && recommendList.size() > 0) { + recommendList = listRemoveNull(recommendList); + memberRecommendTotalVo.setRecommendList(recommendList); + } + return memberRecommendTotalVo; + } } 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 8f87bea..c09cce6 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 @@ -193,7 +193,7 @@ * @param sendType * @return List<Long> */ - List<Long> listIdBySendType(Integer sendType); + List<Long> listIdBySendType(Integer sendType,Long shopId); /** * @description 通过ids获取用户简易返回 @@ -276,4 +276,40 @@ * @return void */ void changeMemberTotal(MemberTotalChangeDto memberTotalChangeDto); + + /** + * @description 商户获取会员统计 + * @author jqs + * @date 2023/7/3 17:16 + * @param merTotalDto + * @return MerMemberTotalVo + */ + MerMemberTotalVo getMerMemberTotal(MerTotalDto merTotalDto); + + /** + * @description 商户获取会员固定统计 + * @author jqs + * @date 2023/7/3 18:34 + * @param merTotalDto + * @return MerMemberFixedTotalVo + */ + MerMemberFixedTotalVo getMerMemberFixedTotal(MerTotalDto merTotalDto); + + /** + * @description 商会获取会员来源统计 + * @author jqs + * @date 2023/7/3 19:09 + * @param merTotalDto + * @return MerMemberSourceTotalVo + */ + MerMemberSourceTotalVo getMerMemberSourceTotal(MerTotalDto merTotalDto); + + /** + * @description 商会获取会员推荐排名 + * @author jqs + * @date 2023/7/3 19:14 + * @param merTotalDto + * @return MerMemberRecommendTotalVo + */ + MerMemberRecommendTotalVo getMerMemberRecommendTotal(MerTotalDto merTotalDto); } 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 967928e..cba2106 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 @@ -330,10 +330,14 @@ tc.money_threshold moneyThreshold, tc.discount_money discountMoney, tc.discount_percent discountPercent, - tc.create_time createTime + tc.create_time createTime, + tc.audit_reason auditReason FROM t_coupon tc LEFT JOIN t_coupon_total tct ON tc.coupon_id = tct.coupon_id WHERE tc.del_flag = 0 AND tc.coupon_status = 2 AND tc.coupon_from = 2 AND tc.shop_id = #{param.shopId} + <if test="param.auditStatus != null and param.auditStatus != ''"> + AND tc.audit_status = #{param.auditStatus} + </if> </select> 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 2c579eb..5bbea31 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 @@ -320,6 +320,9 @@ <if test="sendType != null and sendType == 4"> AND tm.binding_flag = 0 </if> + <if test="shopId != null and shopId != ''"> + AND tm.relation_shop_id = #{shopId} + </if> </select> <select id="listSimpleVoByIds" resultType="com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo"> @@ -422,7 +425,7 @@ AND create_time <= #{param.endDate} </if> ) x - WHERE member_nurse != '' + WHERE member_nurse IS NOT NULL OR member_nurse != '' GROUP BY member_nurse </select> @@ -442,7 +445,7 @@ AND create_time <= #{param.endDate} </if> ) x - WHERE goods_type != '' + WHERE goods_type IS NOT NULL OR goods_type != '' GROUP BY goods_type </select> @@ -578,7 +581,7 @@ AND create_time <= #{param.endDate} </if> ) x - WHERE member_nurse != '' + WHERE member_nurse IS NOT NULL OR member_nurse != '' GROUP BY member_nurse </select> @@ -601,7 +604,7 @@ AND create_time <= #{param.endDate} </if> ) x - WHERE goods_type != '' + WHERE goods_type IS NOT NULL OR goods_type != '' GROUP BY goods_type </select> @@ -701,4 +704,207 @@ </foreach> </if> </select> + + <select id="getMerMemberTotal" resultType="com.ruoyi.member.domain.vo.MerMemberTotalVo"> + SELECT + COUNT(member_id) memberTotal, + SUM(CASE WHEN customer_source = "小程序" THEN 1 ELSE 0 END) onlineTotal, + SUM(CASE WHEN customer_source = "小程序" THEN 0 ELSE 1 END) offlineTotal, + 0 introduceTotal, + SUM(CASE WHEN goods_type LIKE "%周期%" THEN 1 ELSE 0 END) cycleTotal, + SUM(CASE WHEN goods_type LIKE "%体验%" THEN 1 ELSE 0 END) experienceTotal, + SUM(CASE WHEN goods_type LIKE "%服务%" THEN 1 ELSE 0 END) serviceTotal + FROM t_member WHERE del_flag = 0 AND binding_flag = 1 + <if test="param.shopId != null and param.shopId != ''"> + AND relation_shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND create_time <= #{param.endDate} + </if> + </select> + + <select id="getMerMemberTotalAge" resultType="com.ruoyi.member.domain.vo.MgtAgeTotalVo"> + SELECT + SUM(CASE WHEN gender = 0 THEN 1 ELSE 0 END) manTotal, + SUM(CASE WHEN gender = 1 THEN 1 ELSE 0 END) womenTotal, + SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 1 AND 20 THEN 1 ELSE 0 END) AS tenAge, + SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 30 THEN 1 ELSE 0 END) AS twentyAge, + SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 40 THEN 1 ELSE 0 END) AS ThirtyAge, + SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 41 AND 50 THEN 1 ELSE 0 END) AS fortyAge, + SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) >= 51 THEN 1 ELSE 0 END) AS fiftyAge + FROM t_member WHERE del_flag = 0 AND binding_flag = 1 + <if test="param.shopId != null and param.shopId != ''"> + AND relation_shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND create_time <= #{param.endDate} + </if> + </select> + + <select id="getMerMemberTotalNurse" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> + SELECT member_nurse mapKey, COUNT(*) mapValue + FROM ( + SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(member_nurse, ',', numbers.n), ',', -1) member_nurse + FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10) numbers + INNER JOIN t_member ON CHAR_LENGTH(member_nurse) - CHAR_LENGTH(REPLACE(member_nurse, ',', '')) >= numbers.n - 1 + <if test="param.shopId != null and param.shopId != ''"> + AND relation_shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND create_time <= #{param.endDate} + </if> + ) x + WHERE member_nurse IS NOT NULL OR member_nurse != '' + GROUP BY member_nurse + </select> + + <select id="getMerMemberTotalGoodsType" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> + SELECT goods_type mapKey, COUNT(*) mapValue + FROM ( + SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(goods_type, ',', numbers.n), ',', -1) goods_type + FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) numbers + INNER JOIN t_member ON CHAR_LENGTH(goods_type) - CHAR_LENGTH(REPLACE(goods_type, ',', '')) >= numbers.n - 1 + <if test="param.shopId != null and param.shopId != ''"> + AND relation_shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND create_time <= #{param.endDate} + </if> + ) x + WHERE goods_type IS NOT NULL OR goods_type != '' + GROUP BY goods_type + </select> + + <select id="getMerMemberTotalActiveness" resultType="java.lang.Integer"> + SELECT + COUNT(tm.member_id) + FROM t_member tm + LEFT JOIN t_member_total tmt ON tm.member_id = tmt.member_id + WHERE tm.del_Flag = 0 + <if test="param.shopId != null and param.shopId != ''"> + AND tm.relation_shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND tm.relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND tmt.last_pay_time >= #{actStartDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND tmt.last_pay_time <= #{actEndDate} + </if> + </select> + + <select id="getMerMemberPayRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> + SELECT + tm.nick_name mapKey, + tmt.total_pay_count mapValue + FROM t_member tm + INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id + WHERE tm.del_flag = 0 + <if test="param.shopId != null and param.shopId != ''"> + AND tm.relation_shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND tm.relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND tm.create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND tm.create_time <= #{param.endDate} + </if> + ORDER BY tmt.total_pay_count DESC LIMIT 15 + </select> + + <select id="getMerMemberCustomerSourceRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> + SELECT + tm.customer_source mapKey, + COUNT(tm.user_id) mapValue + FROM t_member tm WHERE tm.del_flag = 0 + <if test="param.shopId != null and param.shopId != ''"> + AND tm.relation_shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND tm.relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND tm.create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND tm.create_time <= #{param.endDate} + </if> + GROUP BY tm.customer_source + ORDER BY COUNT(tm.user_id) DESC LIMIT 15 + </select> + + + <select id="getMerMemberRecommendRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> + SELECT + tm.referrer mapKey, + COUNT(tm.user_id) mapValue + FROM t_member tm WHERE tm.del_flag = 0 + <if test="param.shopId != null and param.shopId != ''"> + AND tm.relation_shop_id = #{param.shopId} + </if> + <if test="param.shopIdList != null and param.shopIdList.size() > 0"> + AND tm.relation_shop_id IN + <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="param.startDate!=null and param.startDate!=''"> + AND tm.create_time >= #{param.startDate} + </if> + <if test="param.endDate!=null and param.endDate!=''"> + AND tm.create_time <= #{param.endDate} + </if> + GROUP BY tm.referrer + ORDER BY COUNT(tm.user_id) DESC LIMIT 15 + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java new file mode 100644 index 0000000..e41540e --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java @@ -0,0 +1,28 @@ +package com.ruoyi.order.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @ClassName MerOrderDistributionTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:42 + * @Version 1.0 + */ +@Data +public class MerOrderDistributionTotalVo { + + @ApiModelProperty(value = "订单数量key") + private String[] orderTotalKey; + + @ApiModelProperty(value = "订单数量value") + private Integer[] orderTotalValue; + + @ApiModelProperty(value = "订单金额value") + private BigDecimal[] orderMoneyValue; + + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderFromRankVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderFromRankVo.java new file mode 100644 index 0000000..4aa3c6c --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderFromRankVo.java @@ -0,0 +1,23 @@ +package com.ruoyi.order.domain.vo; + +import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MerOrderFromRankVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:46 + * @Version 1.0 + */ +@Data +public class MerOrderFromRankVo { + + @ApiModelProperty(value = "来源排行") + private List<MgtMapBigTotalVo> orderFromRankList; + + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderGoodsRankVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderGoodsRankVo.java new file mode 100644 index 0000000..396b56a --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderGoodsRankVo.java @@ -0,0 +1,21 @@ +package com.ruoyi.order.domain.vo; + +import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MerOrderGoodsRankVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:45 + * @Version 1.0 + */ +@Data +public class MerOrderGoodsRankVo { + + @ApiModelProperty(value = "商品排行") + private List<MgtMapBigTotalVo> goodsRankList; +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTotalVo.java new file mode 100644 index 0000000..cced7aa --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTotalVo.java @@ -0,0 +1,61 @@ +package com.ruoyi.order.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @ClassName MerOrderTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:38 + * @Version 1.0 + */ +@Data +public class MerOrderTotalVo { + + @ApiModelProperty(value = "总订单数") + private Integer orderTotal; + + @ApiModelProperty(value = "线上订单数") + private Integer onlineTotal; + + @ApiModelProperty(value = "线下订单数") + private Integer offlineTotal; + + @ApiModelProperty(value = "活动订单数") + private Integer activityTotal; + + @ApiModelProperty(value = "周期订单数") + private Integer cycleTotal; + + @ApiModelProperty(value = "体验订单数") + private Integer experienceTotal; + + @ApiModelProperty(value = "服务订单数") + private Integer serviceTotal; + + @ApiModelProperty(value = "总订单金额") + private BigDecimal orderMoney; + + @ApiModelProperty(value = "线上订单金额") + private BigDecimal onlineMoney; + + @ApiModelProperty(value = "线下订单金额") + private BigDecimal offlineMoney; + + @ApiModelProperty(value = "活动订单金额") + private BigDecimal activityMoney; + + @ApiModelProperty(value = "周期订单金额") + private BigDecimal cycleMoney; + + @ApiModelProperty(value = "体验订单金额") + private BigDecimal experienceMoney; + + @ApiModelProperty(value = "服务订单金额") + private BigDecimal serviceMoney; + + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTypeTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTypeTotalVo.java new file mode 100644 index 0000000..2b713e1 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderTypeTotalVo.java @@ -0,0 +1,28 @@ +package com.ruoyi.order.domain.vo; + +import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MerOrderTypeTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/7/3 16:44 + * @Version 1.0 + */ +@Data +public class MerOrderTypeTotalVo { + + @ApiModelProperty(value = "商品类型数量") + private List<MgtMapIntTotalVo> goodsTypeTotalList; + + @ApiModelProperty(value = "商品类型金额") + private List<MgtMapBigTotalVo> goodsTypeMoneyList; + + + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java index 9e4e072..8fa5562 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java @@ -39,7 +39,7 @@ @ApiModelProperty(value = "服务订单数") private Integer serviceTotal; - @ApiModelProperty(value = "总订单数") + @ApiModelProperty(value = "总订单金额") private BigDecimal orderMoney; @ApiModelProperty(value = "线上订单金额") diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/business/MerShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/business/MerShopController.java index db66de5..ce90f1a 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/business/MerShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/business/MerShopController.java @@ -12,19 +12,14 @@ import com.ruoyi.shop.domain.vo.MerShopCertificateListVo; import com.ruoyi.shop.domain.vo.MerShopSuggestVo; import com.ruoyi.shop.service.shop.*; -import com.ruoyi.system.api.domain.dto.MerBaseDto; -import com.ruoyi.system.api.domain.dto.MerBaseGetDto; -import com.ruoyi.system.api.domain.dto.MerEditUserDto; -import com.ruoyi.system.api.domain.dto.MerPageDto; +import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; import com.ruoyi.system.api.domain.vo.MerStaffInfoVo; +import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; 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 org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -147,4 +142,14 @@ shopSuggestService.suggest(merShopSuggestDto); return R.ok(); } + + + + @RequestMapping(value = "/listShopByShop", method = RequestMethod.POST) + @ApiOperation(value = "获取商户下属代理商") + public R<List<MgtSimpleShopVo>> listShopByShop(@RequestBody MerBaseDto merBaseDto) + { + List<MgtSimpleShopVo> mgtShopListSimpleVos = shopService.listShopByShop(merBaseDto.getShopId()); + return R.ok(mgtShopListSimpleVos); + } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java index b875415..e75e7ca 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java @@ -220,4 +220,18 @@ return R.ok(taskSimpleVo); } + /** + * @description 获取商户下属代理商 + * @author jqs + * @date 2023/7/3 17:26 + * @return R<List<Long>> + */ + @PostMapping("/listShopIdByShopId") + public R<List<Long>> listShopIdByShopId(@RequestBody Long shopId) + { + List<Long> shopIdList = shopService.listShopIdByShopId(shopId); + return R.ok(shopIdList); + } + + } 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 1bbf267..dfe1539 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 @@ -11,7 +11,6 @@ import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.security.utils.CodeFactoryUtil; import com.ruoyi.shop.domain.dto.*; -import com.ruoyi.shop.domain.pojo.shop.ShopTotal; import com.ruoyi.shop.domain.pojo.shop.*; import com.ruoyi.shop.domain.pojo.task.ShopFile; import com.ruoyi.shop.domain.vo.*; @@ -960,4 +959,40 @@ mgtShopAuthCodeVo.setLegalValidationUrl(shopAuthentication.getLegalValidationUrl()); return mgtShopAuthCodeVo; } + + + /** + * @description 获取商户下属代理商 + * @author jqs + * @date 2023/7/3 17:27 + * @param shopId + * @return List<Long> + */ + @Override + public List<Long> listShopIdByShopId(Long shopId){ + List<Long> shopIds = shopMapper.selectList( + new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getBelongShopId, shopId) + ).stream().map(Shop::getShopId).collect(Collectors.toList()); + return shopIds; + } + + /** + * @description 获取商户下属代理商 + * @author jqs + * @date 2023/7/3 18:18 + * @param shopId + * @return List<MgtSimpleShopVo> + */ + @Override + public List<MgtSimpleShopVo> listShopByShop(Long shopId){ + List<MgtSimpleShopVo> simpleShopVoList = shopMapper.selectList( + new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getBelongShopId, shopId)). + stream().map(shop->{ + MgtSimpleShopVo simpleShopVo = new MgtSimpleShopVo(); + simpleShopVo.setShopId(shop.getShopId()); + simpleShopVo.setShopName(shop.getShopName()); + return simpleShopVo; + }).collect(Collectors.toList()); + return simpleShopVoList; + } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java index 0b04907..9b0874d 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java @@ -187,4 +187,6 @@ public MemberTaskSimpleVo getLastMemberTask(Long userId){ return memberTaskMapper.getLastMemberTask(userId); } + + } 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 4afb2d2..69c2fd7 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 @@ -233,4 +233,22 @@ * @return MgtShopAuthCodeVo */ MgtShopAuthCodeVo getMgtShopAuthCode(String authId); + + /** + * @description 获取商户下属代理商 + * @author jqs + * @date 2023/7/3 17:27 + * @param shopId + * @return List<Long> + */ + List<Long> listShopIdByShopId(Long shopId); + + /** + * @description 获取商户下属代理商 + * @author jqs + * @date 2023/7/3 18:18 + * @param shopId + * @return List<MgtSimpleShopVo> + */ + List<MgtSimpleShopVo> listShopByShop(Long shopId); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java index 65fdfc7..eddad99 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java @@ -58,4 +58,6 @@ * @return MemberTaskSimpleVo */ MemberTaskSimpleVo getLastMemberTask(Long userId); + + } 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 c145d84..d737425 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 @@ -501,7 +501,7 @@ ts.shop_name shopName, ts.shopowner_name shopownerName, ts.shopowner_phone shopownerPhone, - CASE tsa.main_mype + CASE tsa.main_type WHEN 1 THEN '个人' WHEN 2 THEN '企业' END mainType, @@ -530,7 +530,7 @@ AND ts.shopowner_phone LIKE CONCAT('%',#{param.shopownerPhone},'%') </if> <if test="param.mainType!=null and param.mainType!=''"> - AND tsa.main_mype = #{param.mainType} + AND tsa.main_type = #{param.mainType} </if> <if test="param.auditStatus!=null"> AND tsa.audit_status = #{param.auditStatus} -- Gitblit v1.7.1