From a53a1f481278f981bab8030853b353a823a9cd81 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 01 十一月 2024 18:41:57 +0800 Subject: [PATCH] 09.25心愿求购新增 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java | 26 + ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/dto/ForepartPromotionWishDTO.java | 26 + ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPopupVO.java | 27 + ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java | 65 -- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/PromotionClient.java | 28 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java | 16 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/ConfigEnum.java | 5 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishController.java | 131 +++++ ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java | 32 - ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/PromotionFallbackFactory.java | 17 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishRecommendController.java | 19 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishQuery.java | 7 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java | 155 ----- ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishBulletVO.java | 35 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java | 15 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishListVO.java | 32 + ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/dto/ForepartPromotionWishListDTO.java | 32 + ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishRecommendController.java | 19 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishVO.java | 45 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java | 4 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/forepart/ForepartOrderController.java | 20 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishListController.java | 29 + ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishRecommendDTO.java | 35 + ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishVO.java | 55 ++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/OrderVO.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java | 15 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPromotionWishRecommendVO.java | 46 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java | 10 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 119 ++++ ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderFromEnum.java | 3 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/WishSettingVO.java | 27 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberOrderDTO.java | 7 /dev/null | 54 -- ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionVideoController.java | 2 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/inner/PromotionWishRecommendController.java | 68 ++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java | 69 ++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java | 5 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishController.java | 105 ++++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberOrderListVO.java | 2 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishRecommendVO.java | 33 + ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java | 57 - ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml | 4 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java | 4 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java | 33 45 files changed, 1,131 insertions(+), 411 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/ConfigEnum.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/ConfigEnum.java index 4bba3e5..959e9b4 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/ConfigEnum.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/ConfigEnum.java @@ -24,7 +24,10 @@ RETURN_ADDRESS_USER_ADDRESS("RETURN_ADDRESS_USER_ADDRESS",1,"退货地址"), RETURN_CYCLE("RETURN_CYCLE", 1, "退货周期,用户在收货后{}天可申请售后"), MEMBER_POINTS_MONEY("MEMBER_POINTS_MONEY", 1, "会员每实际消费{}元"), - MEMBER_POINTS_POINTS("MEMBER_POINTS_POINTS", 1, "可获得{}积分"); + MEMBER_POINTS_POINTS("MEMBER_POINTS_POINTS", 1, "可获得{}积分"), + WISH_DESCRIPTION("WISH_DESCRIPTION", 1, "心愿求购说明配置"), + WISH_SHARE_TITLE("WISH_SHARE_TITLE", 1, "心愿求购分享标题"), + WISH_SHARE_IMG_URL("WISH_SHARE_IMG_URL", 1, "心愿求购分享图片"); private final String key; private final Integer keyType; //1=系统配置 private final String keyName; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java index c5c6998..2db5e11 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java @@ -46,7 +46,7 @@ @ApiModelProperty(value = "下单时间") private LocalDateTime orderTime; - @ApiModelProperty(value = "订单来源 1=商品订单 2=秒杀订单 3=团购订单 4=拍卖订单") + @ApiModelProperty(value = "订单来源 1=商品订单 2=秒杀订单 3=团购订单 4=拍卖订单 5=团购订单") private OrderFromEnum orderFrom; @ApiModelProperty(value = "拍卖订单类型 1=普通拍品 2=拍卖会拍品") diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberOrderDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberOrderDTO.java index 8be38a9..07edb76 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberOrderDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberOrderDTO.java @@ -1,20 +1,15 @@ package com.ruoyi.system.api.domain.dto; -import com.ruoyi.common.core.enums.OrderFromEnum; -import com.ruoyi.common.core.enums.OrderStatusEnum; -import com.ruoyi.common.core.enums.PaymentMethodEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; - -import java.math.BigDecimal; @Data @ApiModel(value = "用户订单详情传输对象", description = "用户订单详情传输对象") public class MemberOrderDTO { @ApiModelProperty("订单id") private Long id; - @ApiModelProperty(value = "订单来源 1=商品订单 2=秒杀订单 3=团购订单 4=拍卖订单") + @ApiModelProperty(value = "订单来源 1=商品订单 2=秒杀订单 3=团购订单 4=拍卖订单 5心愿求购") private Integer orderFrom; @ApiModelProperty(value = "会员id") diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberOrderListVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberOrderListVO.java index e8267c3..5186b62 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberOrderListVO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberOrderListVO.java @@ -50,7 +50,7 @@ private OrderStatusEnum orderStatus; - @ApiModelProperty(value = "订单来源 1=商品订单 2=秒杀订单 3=团购订单 4=拍卖订单") + @ApiModelProperty(value = "订单来源 1=商品订单 2=秒杀订单 3=团购订单 4=拍卖订单 5=心愿求购") @JsonInclude(JsonInclude.Include.ALWAYS) private OrderFromEnum orderFrom; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPromotionWishRecommendVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPromotionWishRecommendVO.java new file mode 100644 index 0000000..61d931c --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPromotionWishRecommendVO.java @@ -0,0 +1,46 @@ +package com.ruoyi.system.api.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/29 + */ +@Data +@ApiModel(value = "心愿求购平台推荐商品视图对象") +public class MgtPromotionWishRecommendVO { + + @ApiModelProperty(value = "推荐商品id") + private Long id; + + @ApiModelProperty(value = "心愿求购id") + private Long wishId; + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "商品售价") + private BigDecimal sellingPrice; + + @ApiModelProperty(value = "可购数量") + private Integer availableNum; + + @ApiModelProperty(value = "商品图片") + private String goodsImageUrl; + + @ApiModelProperty(value = "失效时间") + private LocalDateTime expireTime; + + @ApiModelProperty(value = "回复状态 0用户未购买 1用户已购买") + private Integer purchaseStatus; + + @ApiModelProperty(value = "用户已购数量") + private Integer purchasedNum; + + @ApiModelProperty(value = "订单号") + private String orderNo; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/OrderVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/OrderVO.java index 7bbd847..d69eabb 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/OrderVO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/OrderVO.java @@ -30,7 +30,7 @@ @JsonInclude(JsonInclude.Include.ALWAYS) private LocalDateTime orderTime; - @ApiModelProperty(value = "订单来源 1=商品订单 2=秒杀订单 3=团购订单 4=拍卖订单") + @ApiModelProperty(value = "订单来源 1=商品订单 2=秒杀订单 3=团购订单 4=拍卖订单 5=心愿求购") @JsonInclude(JsonInclude.Include.ALWAYS) private OrderFromEnum orderFrom; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java index 5dd115b..d175514 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java @@ -14,6 +14,7 @@ import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.OrderUpdDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; +import com.ruoyi.system.api.domain.vo.MgtPromotionWishRecommendVO; import com.ruoyi.system.api.domain.vo.OrderVO; import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.feignClient.OrderClient; @@ -177,15 +178,18 @@ @Override public R<?> updateOrderStatusByMubres1(String formedGroupMubres, String source) { - return null; + return R.fail("修改订单展示状态失败" + cause.getMessage()); } @Override public R<List<Order>> updateOrderStatusByMubres2(String formedGroupMubres, String source) { - return null; + return R.fail("修改订单展示状态失败" + cause.getMessage()); } - + @Override + public R<MgtPromotionWishRecommendVO> getWishDataBySkuId(Long id, String source) { + return R.fail("获取心愿求购订单数据失败" + cause.getMessage()); + } }; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/PromotionFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/PromotionFallbackFactory.java index 142e401..378cdf1 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/PromotionFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/PromotionFallbackFactory.java @@ -3,6 +3,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.CouponMember; import com.ruoyi.system.api.domain.PromotionVideo; +import com.ruoyi.system.api.domain.PromotionWishRecommend; import com.ruoyi.system.api.domain.dto.CouponMemberDTO; import com.ruoyi.system.api.feignClient.PromotionClient; import java.util.List; @@ -35,6 +36,22 @@ public R<?> updCouponMember(CouponMemberDTO couponMemberDTO, String source) { return R.fail("修改会员优惠券信息失败:" + cause.getMessage()); } + + @Override + public R<PromotionWishRecommend> getPromotionWishRecommend(Long id, String source) { + return R.fail("获取推荐商品失败:" + cause.getMessage()); + } + + @Override + public R<Integer> subRecommendAvailableNum(Integer goodsQuantity, Long id, + String source) { + return R.fail("扣减推荐商品可购数量失败:" + cause.getMessage()); + } + + @Override + public R<?> addRecommendAvailableNum(Integer goodsQuantity, Long id, String source) { + return R.fail("增加推荐商品可购数量失败:" + cause.getMessage()); + } }; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java index 7e841dd..2e7746f 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java @@ -16,6 +16,7 @@ import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.OrderUpdDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; +import com.ruoyi.system.api.domain.vo.MgtPromotionWishRecommendVO; import com.ruoyi.system.api.domain.vo.OrderVO; import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.factory.OrderFallbackFactory; @@ -212,4 +213,8 @@ @PostMapping("/order/updOrderStatusByMubres2") R<List<Order>> updateOrderStatusByMubres2(@RequestBody String formedGroupMubres, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @GetMapping("/order/getWishDataBySkuId/{id}") + R<MgtPromotionWishRecommendVO> getWishDataBySkuId(@PathVariable("id") Long id, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/PromotionClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/PromotionClient.java index 1d41793..440d15c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/PromotionClient.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/PromotionClient.java @@ -5,13 +5,16 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.CouponMember; import com.ruoyi.system.api.domain.PromotionVideo; +import com.ruoyi.system.api.domain.PromotionWishRecommend; import com.ruoyi.system.api.domain.dto.CouponMemberDTO; import com.ruoyi.system.api.factory.PromotionFallbackFactory; import java.util.List; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestParam; @FeignClient(contextId = "promotionClient", value = ServiceNameConstants.RUOYI_PROMOTION, fallbackFactory = PromotionFallbackFactory.class) public interface PromotionClient { @@ -34,4 +37,29 @@ R<?> updCouponMember(@RequestBody CouponMemberDTO couponMemberDTO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 获取推荐商品 + * @param id + * @param source + * @return + */ + @PostMapping("/inner/promotion-wish-recommend/{id}") + R<PromotionWishRecommend> getPromotionWishRecommend(@PathVariable("id") Long id, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 扣减推荐商品库存 + * @param goodsQuantity + * @param id + * @return + */ + @PostMapping("/inner/promotion-wish-recommend/subAvailableNum") + R<Integer> subRecommendAvailableNum(@RequestParam("goodsQuantity") Integer goodsQuantity, + @RequestParam("id") Long id, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/inner/promotion-wish-recommend/addAvailableNum") + R<?> addRecommendAvailableNum(@RequestParam("goodsQuantity") Integer goodsQuantity, + @RequestParam("id") Long id, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java index 0003b19..2cba4fa 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java @@ -1,7 +1,7 @@ package com.ruoyi.common.core.domain; -import java.io.Serializable; import com.ruoyi.common.core.constant.Constants; +import java.io.Serializable; /** * 响应信息主体 @@ -26,7 +26,7 @@ public static <T> R<T> ok() { - return restResult(null, SUCCESS, null); + return restResult(null, SUCCESS, "操作成功"); } public static <T> R<T> ok(T data) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderFromEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderFromEnum.java index 977b12b..048b837 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderFromEnum.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderFromEnum.java @@ -15,7 +15,8 @@ COMMODITY_ORDER(1, "商品"), SNAP_ORDERS(2, "秒杀"), GROUP_PURCHASE_ORDERS(3, "团购"), - AUCTION_ORDERS(4, "拍卖"); + AUCTION_ORDERS(4, "拍卖"), + WISH_ORDER(5, "心愿求购"); @EnumValue private final int code; @JsonValue diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/forepart/ForepartOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/forepart/ForepartOrderController.java index 71973b6..9484a56 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/forepart/ForepartOrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/forepart/ForepartOrderController.java @@ -1,25 +1,27 @@ package com.ruoyi.order.controller.forepart; -import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.order.service.IOrderService; import com.ruoyi.order.vo.HomeGoodsSkuDTO1; import com.ruoyi.order.vo.WdOrderVO; -import com.ruoyi.system.api.domain.Order; -import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; import com.ruoyi.system.api.domain.dto.MemberOrderDTO; import com.ruoyi.system.api.domain.dto.MemberOrderListDTO; -import com.ruoyi.system.api.domain.vo.*; +import com.ruoyi.system.api.domain.vo.MemberOrderListVO; +import com.ruoyi.system.api.domain.vo.MemberOrderNumVO; +import com.ruoyi.system.api.domain.vo.MemberTiOrderVO; +import com.ruoyi.system.api.domain.vo.OrderVO; import com.ruoyi.system.api.feignClient.GoodsSkuClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import javax.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** @@ -43,13 +45,13 @@ private GoodsSkuClient goodsSkuClient; @PostMapping("/saveMemberOrder") - @ApiOperation(value = "用户端-立即下单") + @ApiOperation(value = "【09.25改】用户端-立即下单") public R<MemberTiOrderVO> saveMemberOrder(@RequestBody MemberOrderDTO memberOrderDTO) { return R.ok(orderService.saveMemberOrder(memberOrderDTO)); } @PostMapping("/updMemberOrder") - @ApiOperation(value = "用户端-修改订单") + @ApiOperation(value = "【09.25改】用户端-修改订单") public R<MemberTiOrderVO> updMemberOrder(@RequestBody MemberOrderDTO memberOrderDTO) { return R.ok(orderService.updMemberOrder(memberOrderDTO)); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java index 48aae1e..0f06313 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java @@ -12,7 +12,9 @@ import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.OrderUpdDTO; +import com.ruoyi.system.api.domain.vo.MgtPromotionWishRecommendVO; import com.ruoyi.system.api.domain.vo.OrderVO; +import com.ruoyi.system.api.feignClient.PromotionClient; import java.util.Collection; import java.util.List; import lombok.RequiredArgsConstructor; @@ -43,6 +45,7 @@ public class OrderController { private final IOrderService orderService; + private final PromotionClient promotionClient; @PostMapping("/saveOrderOne") @ResponseBody @InnerAuth @@ -247,4 +250,16 @@ orderService.updateOrderStatusByMubres2(formedGroupMubres); return R.ok(); } + + /** + * 根据skuId获取心愿求购详情数据 + * + * @param id + * @return + */ + @InnerAuth + @GetMapping("/getWishDataBySkuId/{id}") + R<MgtPromotionWishRecommendVO> getWishDataBySkuId(@PathVariable("id") Long id) { + return R.ok(orderService.getWishDataBySkuId(id)); + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java index c4a86d5..5fe5e37 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java @@ -12,8 +12,11 @@ import com.ruoyi.system.api.domain.dto.MemberOrderDTO; import com.ruoyi.system.api.domain.dto.MemberOrderListDTO; import com.ruoyi.system.api.domain.dto.OrderDTO; -import com.ruoyi.system.api.domain.vo.*; - +import com.ruoyi.system.api.domain.vo.MemberOrderListVO; +import com.ruoyi.system.api.domain.vo.MemberOrderNumVO; +import com.ruoyi.system.api.domain.vo.MemberTiOrderVO; +import com.ruoyi.system.api.domain.vo.MgtPromotionWishRecommendVO; +import com.ruoyi.system.api.domain.vo.OrderVO; import java.time.LocalDateTime; import java.util.Collection; import java.util.List; @@ -158,4 +161,12 @@ void updateOrderStatusByMubres1(String formedGroupMubres); List<Order> updateOrderStatusByMubres2(@RequestBody String formedGroupMubres); + + /** + * 根据skuId获取心愿求购详情数据 + * + * @param id + * @return + */ + MgtPromotionWishRecommendVO getWishDataBySkuId(Long id); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index 042c48e..a6c20d4 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -56,6 +56,7 @@ import com.ruoyi.system.api.domain.MemberAddress; import com.ruoyi.system.api.domain.Order; import com.ruoyi.system.api.domain.OrderAuctionBond; +import com.ruoyi.system.api.domain.PromotionWishRecommend; import com.ruoyi.system.api.domain.dto.CouponMemberDTO; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; @@ -71,6 +72,7 @@ import com.ruoyi.system.api.domain.vo.MemberOrderListVO; import com.ruoyi.system.api.domain.vo.MemberOrderNumVO; import com.ruoyi.system.api.domain.vo.MemberTiOrderVO; +import com.ruoyi.system.api.domain.vo.MgtPromotionWishRecommendVO; import com.ruoyi.system.api.domain.vo.OrderVO; import com.ruoyi.system.api.feignClient.AuctionClient; import com.ruoyi.system.api.feignClient.GoodsSkuClient; @@ -317,6 +319,10 @@ order.setOrderNo(OrderUtil.getOrderNoForPrefix("TG")); order.setIsOrder(2); } + if (memberOrderDTO.getOrderFrom() == OrderFromEnum.WISH_ORDER.getCode()) { + order.setOrderFrom(OrderFromEnum.WISH_ORDER); + order.setOrderNo(OrderUtil.getOrderNoForPrefix("QG")); + } if (memberOrderDTO.getPaymentMethod()==1){ order.setPaymentMethod(PaymentMethodEnum.WECHAT); }if (memberOrderDTO.getPaymentMethod()==2){ @@ -461,6 +467,33 @@ order.setSjPrice(goodsSku.getPrice()); order.setGoodsId(goodsSku.getId()); } + if (memberOrderDTO.getOrderFrom() == OrderFromEnum.WISH_ORDER.getCode()) { + // 远程调用营销服务,获取推荐商品信息 + PromotionWishRecommend recommend = promotionClient.getPromotionWishRecommend( + memberOrderDTO.getGoodsSkuId(), + SecurityConstants.INNER).getData(); + if (Objects.isNull(recommend)) { + throw new ServiceException("推荐商品不存在"); + } + if (recommend.getExpireTime().isBefore(LocalDateTime.now())) { + throw new ServiceException("推荐商品已过期"); + } + if (recommend.getAvailableNum().compareTo(memberOrderDTO.getGoodsQuantity()) < 0) { + throw new ServiceException("推荐商品可购数量不足"); + } + // 远程调用,更新可购数量 + Integer res = promotionClient.subRecommendAvailableNum( + memberOrderDTO.getGoodsQuantity(), + recommend.getId(), SecurityConstants.INNER).getData(); + if (res == 0) { + throw new ServiceException("推荐商品可购数量不足"); + } + memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); + memberOrderVO.setPrice(recommend.getSellingPrice()); + memberOrderVO.setCoverPic(recommend.getGoodsImageUrl()); + memberOrderVO.setSkuName(recommend.getGoodsName()); + pice = recommend.getSellingPrice(); + } order.setOrderRemark(memberOrderDTO.getOrderRemark()); order.setMemberId(memberOrderDTO.getMemberId()); order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); @@ -574,8 +607,6 @@ memberOrderVO.setCoverPic(goodsSku.getCoverPic()); memberOrderVO.setSkuName(goodsSku.getSkuName()); } - - if (order.getOrderFrom().getCode()==2){ MemberOrderDTO memberOrderDTO1=new MemberOrderDTO(); memberOrderDTO1.setMemberId(order.getMemberId()); @@ -629,8 +660,8 @@ memberOrderVO.setYouhiPrice(data.getSeckillPrice()); - - } if (order.getOrderFrom().getCode()==3){ + } + if (order.getOrderFrom().getCode() == 3) { order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); GoodsGroupPurchase data = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData(); @@ -660,6 +691,40 @@ } } } + } + if (memberOrderDTO.getOrderFrom() == OrderFromEnum.WISH_ORDER.getCode()) { + // 远程调用营销服务,获取推荐商品信息 + PromotionWishRecommend recommend = promotionClient.getPromotionWishRecommend( + memberOrderDTO.getGoodsSkuId(), + SecurityConstants.INNER).getData(); + if (Objects.isNull(recommend)) { + throw new ServiceException("推荐商品不存在"); + } + Integer availableNum = recommend.getAvailableNum() + order.getGoodsQuantity(); + if (availableNum.compareTo(memberOrderDTO.getGoodsQuantity()) < 0) { + throw new ServiceException("推荐商品可购数量不足"); + } + // 如果最新购买数比锁定库存数大,则扣减多出来的商品数量,否则恢复多出的锁定库存 + if (memberOrderDTO.getGoodsQuantity().compareTo(order.getGoodsQuantity()) > 0) { + // 远程调用,更新可购数量 + Integer res = promotionClient.subRecommendAvailableNum( + memberOrderDTO.getGoodsQuantity() - order.getGoodsQuantity(), + recommend.getId(), SecurityConstants.INNER).getData(); + if (res == 0) { + throw new ServiceException("推荐商品可购数量不足"); + } + } else { + promotionClient.addRecommendAvailableNum( + order.getGoodsQuantity() - memberOrderDTO.getGoodsQuantity(), + recommend.getId(), SecurityConstants.INNER); + } + order.setTotalAmount(recommend.getSellingPrice() + .multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()))); + order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); + memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); + memberOrderVO.setPrice(recommend.getSellingPrice()); + memberOrderVO.setCoverPic(recommend.getGoodsImageUrl()); + memberOrderVO.setSkuName(recommend.getGoodsName()); } } if (memberOrderDTO.getGoodsQuantity()!=null){ @@ -824,7 +889,10 @@ Map<Long, GoodsSku> goodsUnitMap = getGoodsUnitMap(list); for (MemberOrderListVO MemberOrderList:list){ if (MemberOrderList.getOrderStatus().getCode()==1){ - if (MemberOrderList.getOrderFrom().getCode()==1||MemberOrderList.getOrderFrom().getCode()==2||MemberOrderList.getOrderFrom().getCode()==3){ + if (MemberOrderList.getOrderFrom().getCode() == 1 + || MemberOrderList.getOrderFrom().getCode() == 2 + || MemberOrderList.getOrderFrom().getCode() == 3 + || MemberOrderList.getOrderFrom().equals(OrderFromEnum.WISH_ORDER)) { LocalDateTime localDateTime = MemberOrderList.getOrderTime().plusMinutes(30); if (LocalDateTime.now().isAfter(localDateTime)) { // dateTime1 在 dateTime2 之后 @@ -865,7 +933,12 @@ } goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); } - + // 恢复推荐商品可购数量 + if (MemberOrderList.getOrderFrom().equals(OrderFromEnum.WISH_ORDER)) { + promotionClient.addRecommendAvailableNum( + MemberOrderList.getGoodsQuantity(), + MemberOrderList.getGoodsSkuId(), SecurityConstants.INNER); + } this.updateById(order); } @@ -1138,6 +1211,11 @@ } } + // 恢复可购数量 + if (order.getOrderFrom().equals(OrderFromEnum.WISH_ORDER)) { + promotionClient.addRecommendAvailableNum( + order.getGoodsQuantity(), order.getGoodsSkuId(), SecurityConstants.INNER); + } } if (order.getOrderStatus().getCode() == 2) { @@ -1181,7 +1259,11 @@ } } - + // 恢复可购数量 + if (order.getOrderFrom().equals(OrderFromEnum.WISH_ORDER)) { + promotionClient.addRecommendAvailableNum( + order.getGoodsQuantity(), order.getGoodsSkuId(), SecurityConstants.INNER); + } if (order.getCouponId()!=0){ CouponMemberDTO couponMemberDTO1=new CouponMemberDTO(); couponMemberDTO1.setId(order.getCouponId()); @@ -2042,4 +2124,27 @@ List<Order> page1 = this.list(wrapper); return page1; } + + /** + * 根据skuId获取心愿求购详情数据 + * + * @param id + * @return + */ + @Override + public MgtPromotionWishRecommendVO getWishDataBySkuId(Long id) { + MgtPromotionWishRecommendVO vo = null; + List<Order> list = this.lambdaQuery().eq(Order::getGoodsSkuId, id) + .eq(Order::getOrderFrom, OrderFromEnum.WISH_ORDER) + .ne(Order::getOrderStatus, OrderStatusEnum.CANCELED).list(); + if (CollUtils.isNotEmpty(list)) { + vo = new MgtPromotionWishRecommendVO(); + Integer purchasedNum = list.stream().map(Order::getGoodsQuantity) + .reduce(0, Integer::sum); + String orderNo = list.stream().map(Order::getOrderNo).collect(Collectors.joining(",")); + vo.setPurchasedNum(purchasedNum); + vo.setOrderNo(orderNo); + } + return vo; + } } diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/FrepartPromotionVideoController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionVideoController.java similarity index 87% rename from ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/FrepartPromotionVideoController.java rename to ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionVideoController.java index aefa4a9..491bd77 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/FrepartPromotionVideoController.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionVideoController.java @@ -14,7 +14,7 @@ */ @RestController @RequestMapping("/forepart/promotion-video") -public class FrepartPromotionVideoController { +public class ForepartPromotionVideoController { } diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishController.java new file mode 100644 index 0000000..84ac153 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishController.java @@ -0,0 +1,131 @@ +package com.ruoyi.promotion.controller.forepart; + + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.common.core.web.page.BasePage; +import com.ruoyi.promotion.controller.forepart.dto.ForepartPromotionWishDTO; +import com.ruoyi.promotion.controller.forepart.vo.ForepartPopupVO; +import com.ruoyi.promotion.controller.forepart.vo.ForepartPromotionWishBulletVO; +import com.ruoyi.promotion.controller.forepart.vo.ForepartPromotionWishVO; +import com.ruoyi.promotion.service.IPromotionWishService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import java.util.List; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 心愿求购 前端控制器 + * </p> + * + * @author mitao + * @since 2024-10-29 + */ +@Validated +@RestController +@RequiredArgsConstructor +@RequestMapping("/forepart/promotion-wish") +@Api(value = "用户端-心愿求购相关接口", tags = "【09.25】用户端-心愿求购相关接口") +public class ForepartPromotionWishController { + + private final IPromotionWishService promotionWishService; + + /** + * 个人中心-获取推荐商品可购买数 + * @return + */ + @GetMapping("/getRecommendNum") + @ApiOperation(value = "个人中心-获取推荐商品可购买数") + public R<Integer> getRecommendNum() { + return R.ok(promotionWishService.getRecommendNum()); + } + + /** + * 获取首页弹幕数据 + * @return + */ + @GetMapping("/bulletList") + @ApiOperation(value = "获取首页弹幕数据", notes = "达成心愿数为数组长度") + public R<List<ForepartPromotionWishBulletVO>> getBulletList() { + return R.ok(promotionWishService.getBulletList()); + } + + /** + * 求购历史-达成心愿数 + * @return + */ + @GetMapping("/getCompletedWishCount") + @ApiOperation(value = "求购历史-达成心愿数") + public R<Long> getCompletedWishCount() { + return R.ok(promotionWishService.getCompletedWishCount()); + } + + /** + * 获取弹窗信息 + * @return + */ + @GetMapping("/popup") + @ApiOperation(value = "获取弹窗信息", notes = "获取弹窗信息") + public R<ForepartPopupVO> getPopup() { + return R.ok(promotionWishService.getPopup()); + } + + /** + * 求购历史 + * @param page + * @return + */ + @PostMapping("/wishHistory") + @ApiOperation(value = "求购历史") + public R<PageDTO<ForepartPromotionWishVO>> getWishHistory(@Valid @RequestBody BasePage page) { + return R.ok(promotionWishService.getWishHistory(page)); + } + + /** + * 发布求购 + * @param dto + * @return + */ + @PostMapping("/publish") + @ApiOperation(value = "发布求购") + public R<Long> publish(@Valid @RequestBody ForepartPromotionWishDTO dto) { + return R.ok(promotionWishService.publish(dto)); + } + + /** + * 心愿求购详情 + * @param id + * @return + */ + @GetMapping("/detail/{id}") + @ApiOperation(value = "心愿求购详情") + public R<ForepartPromotionWishVO> getDetails( + @ApiParam(name = "id", value = "心愿求购id", required = true) @NotNull(message = "心愿求购id不能为空") @PathVariable("id") Long id) { + return R.ok(promotionWishService.getPromotionWishDetails(id)); + } + + /** + * 撤回求购 + * @param id + * @return + */ + @DeleteMapping("/{id}") + @ApiOperation(value = "撤回心愿求购") + public R<?> delete( + @ApiParam(name = "id", value = "心愿求购id", required = true) @NotNull(message = "心愿求购id不能为空") @PathVariable("id") Long id) { + promotionWishService.deleteById(id); + return R.ok(); + } +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishListController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishListController.java new file mode 100644 index 0000000..53b88a6 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishListController.java @@ -0,0 +1,29 @@ +package com.ruoyi.promotion.controller.forepart; + + +import com.ruoyi.promotion.service.IPromotionWishListService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 心愿求购表 前端控制器 + * </p> + * + * @author mitao + * @since 2024-05-16 + */ +@Validated +@RestController +@RequiredArgsConstructor +@RequestMapping("/forepart/promotion-wish-list") +@Api(value = "【09.25】用户端-心愿求购相关接口", tags = "用户端-心愿求购相关接口", description = "用户端-心愿单相关接口") +public class ForepartPromotionWishListController { + + private final IPromotionWishListService promotionWishListService; + + +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishRecommendController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishRecommendController.java new file mode 100644 index 0000000..eb4bfa0 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/ForepartPromotionWishRecommendController.java @@ -0,0 +1,19 @@ +package com.ruoyi.promotion.controller.forepart; + + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 心愿求购平台推荐商品 前端控制器 + * </p> + * + * @author mitao + * @since 2024-10-29 + */ +@RestController +@RequestMapping("/promotion-wish-recommend") +public class ForepartPromotionWishRecommendController { + +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/FrepartPromotionWishListController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/FrepartPromotionWishListController.java deleted file mode 100644 index 1266995..0000000 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/FrepartPromotionWishListController.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.ruoyi.promotion.controller.forepart; - - -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.system.api.domain.dto.PromotionWishListDTO; -import com.ruoyi.promotion.domain.PromotionWishList; -import com.ruoyi.promotion.service.IPromotionWishListService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import javax.annotation.Resource; -import org.apache.poi.ss.formula.functions.T; -import org.springframework.web.bind.annotation.*; - -/** - * <p> - * 心愿求购表 前端控制器 - * </p> - * - * @author mitao - * @since 2024-05-16 - */ -@RestController -@RequestMapping("/forepart/promotion-wish-list") -@Api(value = "用户端-心愿单相关接口", tags = "用户端-心愿单相关接口", description = "用户端-心愿单相关接口") -public class FrepartPromotionWishListController { - @Resource - private IPromotionWishListService iPromotionWishListService; - @PostMapping("/getPromotionWishList") - @ApiOperation(value = "用户端-获取心愿单列表") - public R<PageDTO<PromotionWishList>> getPromotionWishList(@RequestBody PromotionWishListDTO promotionWishListDTO) { - return R.ok(iPromotionWishListService.getPromotionWishList(promotionWishListDTO)); - } - - @PostMapping("/savePromotionWishList") - @ApiOperation(value = "用户端-添加心愿单列表") - public R<T> savePromotionWishList(@RequestBody PromotionWishListDTO promotionWishListDTO) { - iPromotionWishListService.savePromotionWishList(promotionWishListDTO); - return R.ok(); - } - - @PostMapping("/getPromotionWishOne") - @ApiOperation(value = "用户端-获取心愿单个") - public R<PromotionWishList> getPromotionWishOne(@RequestBody PromotionWishListDTO promotionWishListDTO) { - return R.ok(iPromotionWishListService.getPromotionWishOne(promotionWishListDTO)); - } - - @PostMapping("/delPromotionWishOne") - @ApiOperation(value = "用户端-删除心愿单个") - public R<T> delPromotionWishOne(@RequestBody PromotionWishListDTO promotionWishListDTO) { - iPromotionWishListService.delPromotionWishOne(promotionWishListDTO); - return R.ok(); - } -} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/dto/ForepartPromotionWishDTO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/dto/ForepartPromotionWishDTO.java new file mode 100644 index 0000000..a18dbe4 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/dto/ForepartPromotionWishDTO.java @@ -0,0 +1,26 @@ +package com.ruoyi.promotion.controller.forepart.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.util.List; +import javax.validation.Valid; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/30 + */ +@Data +@ApiModel(value = "用户端-心愿求购数据传输对象") +public class ForepartPromotionWishDTO { + + @ApiModelProperty(value = "联系方式") + private String phone; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "求购商品列表") + @Valid + private List<ForepartPromotionWishListDTO> wishList; +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/dto/ForepartPromotionWishListDTO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/dto/ForepartPromotionWishListDTO.java new file mode 100644 index 0000000..52305cb --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/dto/ForepartPromotionWishListDTO.java @@ -0,0 +1,32 @@ +package com.ruoyi.promotion.controller.forepart.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import javax.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/30 + */ +@Data +@ApiModel(value = "心愿求购商品数据传输对象") +public class ForepartPromotionWishListDTO { + + @ApiModelProperty(value = "商品品牌") + @NotBlank(message = "商品品牌不能为空") + private String goodsBrand; + + @ApiModelProperty(value = "商品名称") + @NotBlank(message = "商品名称不能为空") + private String goodsName; + + @ApiModelProperty(value = "期望年份") + private String expectedYear; + + @ApiModelProperty(value = "求购数量 1瓶 1箱") + private String goodsNum; + + @ApiModelProperty(value = "商品图片,多张图片使用英文逗号拼接") + private String goodsImageUrl; +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPopupVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPopupVO.java new file mode 100644 index 0000000..477933e --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPopupVO.java @@ -0,0 +1,27 @@ +package com.ruoyi.promotion.controller.forepart.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.util.List; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/29 + */ +@Data +@ApiModel(value = "心愿求购弹窗视图对象") +public class ForepartPopupVO { + + @ApiModelProperty(value = "是否弹出 1:是 0:否") + private Integer showPopup; + + @ApiModelProperty(value = "弹窗类型 1:恭喜您心愿达成 2:您有有心愿进行中") + private Integer popupType; + + @ApiModelProperty(value = "未推荐心愿数量") + private Integer wishNum; + + @ApiModelProperty(value = "推荐商品列表") + private List<ForepartPromotionWishRecommendVO> recommendList; +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishBulletVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishBulletVO.java new file mode 100644 index 0000000..62e5be2 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishBulletVO.java @@ -0,0 +1,35 @@ +package com.ruoyi.promotion.controller.forepart.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/29 + */ +@Data +@ApiModel(value = "首页弹幕数据视图对象") +public class ForepartPromotionWishBulletVO { + + @ApiModelProperty(value = "用户id") + private Long memberId; + + @ApiModelProperty(value = "头像") + private String avatar; + + @ApiModelProperty(value = "求购用户") + private String nickname; + + @ApiModelProperty(value = "发起时间") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDateTime createTime; + + @ApiModelProperty(value = "期望年份") + private String expectedYear; + + @ApiModelProperty(value = "求购商品") + private String goodsName; +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishListVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishListVO.java new file mode 100644 index 0000000..95ede6a --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishListVO.java @@ -0,0 +1,32 @@ +package com.ruoyi.promotion.controller.forepart.vo; + +import io.swagger.annotations.ApiModelProperty; +import javax.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/30 + */ +@Data +public class ForepartPromotionWishListVO { + + @ApiModelProperty(value = "心愿求购商品id") + private Long id; + + @ApiModelProperty(value = "商品品牌") + private String goodsBrand; + + @ApiModelProperty(value = "商品名称") + @NotBlank(message = "商品名称不能为空") + private String goodsName; + + @ApiModelProperty(value = "期望年份") + private String expectedYear; + + @ApiModelProperty(value = "求购数量") + private String goodsNum; + + @ApiModelProperty(value = "商品图片,多张图片使用英文逗号拼接") + private String goodsImageUrl; +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishRecommendVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishRecommendVO.java new file mode 100644 index 0000000..4625a6e --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishRecommendVO.java @@ -0,0 +1,33 @@ +package com.ruoyi.promotion.controller.forepart.vo; + +import io.swagger.annotations.ApiModelProperty; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/29 + */ +@Data +public class ForepartPromotionWishRecommendVO { + + @ApiModelProperty(value = "推荐商品id") + private Long id; + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "商品售价") + private BigDecimal sellingPrice; + + @ApiModelProperty(value = "可购数量") + private Integer availableNum; + + @ApiModelProperty(value = "商品图片") + private String goodsImageUrl; + + @ApiModelProperty(value = "失效时间") + private LocalDateTime expireTime; + +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishVO.java new file mode 100644 index 0000000..b1bc046 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/forepart/vo/ForepartPromotionWishVO.java @@ -0,0 +1,45 @@ +package com.ruoyi.promotion.controller.forepart.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalDateTime; +import java.util.List; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/30 + */ +@Data +@ApiModel(value = "用户端-心愿求购视图对象") +public class ForepartPromotionWishVO { + + @ApiModelProperty(value = "心愿求购id") + private Long id; + + @ApiModelProperty(value = "用户id") + private Long memberId; + + @ApiModelProperty(value = "联系方式") + private String phone; + + @ApiModelProperty(value = "推荐状态 0:未推荐商品 1:已推荐商品") + private Integer recommendStatus; + + @ApiModelProperty(value = "求购商品名称") + private String goodsName; + + @ApiModelProperty(value = "发布时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime createTime; + + @ApiModelProperty(value = "推荐商品列表") + private List<ForepartPromotionWishRecommendVO> recommendList; + + @ApiModelProperty(value = "求购商品列表") + private List<ForepartPromotionWishListVO> wishList; + + @ApiModelProperty(value = "备注") + private String remark; +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/inner/PromotionWishRecommendController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/inner/PromotionWishRecommendController.java new file mode 100644 index 0000000..a568327 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/inner/PromotionWishRecommendController.java @@ -0,0 +1,68 @@ +package com.ruoyi.promotion.controller.inner; + + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.annotation.InnerAuth; +import com.ruoyi.promotion.service.IPromotionWishRecommendService; +import com.ruoyi.system.api.domain.PromotionWishRecommend; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 心愿求购平台推荐商品 前端控制器 + * </p> + * + * @author mitao + * @since 2024-10-29 + */ +@RestController +@RequestMapping("/inner/promotion-wish-recommend") +@RequiredArgsConstructor +public class PromotionWishRecommendController { + + private final IPromotionWishRecommendService promotionWishRecommendService; + + /** + * + * @param id + * @return + */ + @InnerAuth + @GetMapping("/{id}") + public R<PromotionWishRecommend> getById(@PathVariable("id") Long id) { + return R.ok(promotionWishRecommendService.getById(id)); + } + + /** + * 扣减推荐商品库存 + * @param goodsQuantity + * @param id + * @return + */ + @InnerAuth + @PostMapping("/subAvailableNum") + R<Integer> subRecommendAvailableNum(@RequestParam("goodsQuantity") Integer goodsQuantity, + @RequestParam("id") Long id) { + return R.ok(promotionWishRecommendService.subRecommendAvailableNum(goodsQuantity, id)); + } + + /** + * 恢复荐商品可购数量 + * @param goodsQuantity + * @param id + * @return + */ + @InnerAuth + @PostMapping("/addAvailableNum") + R<?> addRecommendAvailableNum(@RequestParam("goodsQuantity") Integer goodsQuantity, + @RequestParam("id") Long id) { + promotionWishRecommendService.addRecommendAvailableNum(goodsQuantity, id); + return R.ok(); + } +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishController.java new file mode 100644 index 0000000..e18e475 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishController.java @@ -0,0 +1,105 @@ +package com.ruoyi.promotion.controller.management; + + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishQuery; +import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishRecommendDTO; +import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishVO; +import com.ruoyi.promotion.service.IPromotionWishService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 心愿求购 前端控制器 + * </p> + * + * @author mitao + * @since 2024-10-29 + */ +@Validated +@RestController +@RequiredArgsConstructor +@Api(tags = {"【09.25】管理后台心愿求购管理相关接口"}) +@RequestMapping("/mgt/promotion-wish") +public class MgtPromotionWishController { + + private final IPromotionWishService promotionWishService; + + /** + * 获取心愿求购列表 + * + * @param query + * @return + */ + @PostMapping("/page") + @ApiOperation(value = "获取心愿求购列表") + public R<PageDTO<MgtPromotionWishVO>> queryPage( + @Valid @RequestBody MgtPromotionWishQuery query) { + return R.ok(promotionWishService.queryPage(query)); + } + + /** + * 查看详情 + * + * @param id + * @return + */ + @GetMapping("/{id}") + @ApiOperation(value = "查看详情") + public R<MgtPromotionWishVO> getDetails( + @ApiParam(name = "id", value = "心愿求购id", required = true) @NotNull(message = "心愿求购id不能为空") @PathVariable("id") Long id) { + return R.ok(promotionWishService.getDetails(id)); + } + + /** + * 删除 + * @param id + * @return + */ + @DeleteMapping("/{id}") + @ApiOperation(value = "删除心愿求购") + public R<?> deleteById( + @ApiParam(name = "id", value = "心愿求购id", required = true) @NotNull(message = "心愿求购id不能为空") @PathVariable("id") Long id) { + promotionWishService.deleteById(id); + return R.ok(); + } + + /** + * 推荐商品 + * @param dto + * @return + */ + @PostMapping("/recommend") + @ApiOperation(value = "推荐商品") + public R<?> recommend(@Valid @RequestBody MgtPromotionWishRecommendDTO dto) { + promotionWishService.recommend(dto); + return R.ok(); + } + + /** + * 删除推荐商品 + * @param id + * @return + */ + @DeleteMapping("/recommend/{id}") + @ApiOperation(value = "删除推荐商品") + public R<?> deleteRecommend( + @ApiParam(name = "id", value = "推荐商品id", required = true) @NotNull(message = "推荐商品id不能为空") @PathVariable("id") Long id) { + promotionWishService.deleteRecommend(id); + return R.ok(); + } +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java index 0982f34..8b40de3 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java @@ -1,23 +1,9 @@ package com.ruoyi.promotion.controller.management; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO; -import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery; -import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO; import com.ruoyi.promotion.service.IPromotionWishListService; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -37,54 +23,5 @@ private final IPromotionWishListService promotionWishListService; - /** - * 获取心愿求购列表的分页数据 - * - * @param query 心愿求购管理查询对象 - * @return PageDTO<MgtPromotionWishListVO> - */ - @ApiOperation("获取心愿求购列表的分页数据") - @PostMapping("page") - public R<PageDTO<MgtPromotionWishListVO>> getPromotionWishListPage( - @Validated @RequestBody MgtPromotionWishListQuery query) { - return R.ok(promotionWishListService.getPromotionWishListPage(query)); - } - - /** - * 查看详情 - * - * @param id 心愿求购id - * @return MgtPromotionWishListVO - */ - @ApiOperation("查看详情") - @GetMapping("/detail/{id}") - public R<MgtPromotionWishListVO> getPromotionWishDetail( - @ApiParam(value = "心愿求购id", required = true) @PathVariable("id") Long id) { - return R.ok(promotionWishListService.getPromotionWishDetail(id)); - } - - /** - * 回复 - * - * @param dto 心愿求购数据传输对象 - */ - @ApiOperation("回复") - @PutMapping("/reply") - public R<?> reply(@Validated @RequestBody MgtPromotionWishListDTO dto) { - promotionWishListService.reply(dto); - return R.ok(); - } - - /** - * 删除 - * - * @param id 心愿求购id - */ - @ApiOperation("删除") - @DeleteMapping("/{id}") - public R<?> delete( - @ApiParam(name = "id", value = "心愿求购id", required = true) @PathVariable("id") Long id) { - promotionWishListService.removeById(id); - return R.ok(); - } + } diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishRecommendController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishRecommendController.java new file mode 100644 index 0000000..2859ef4 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishRecommendController.java @@ -0,0 +1,19 @@ +package com.ruoyi.promotion.controller.management; + + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 心愿求购平台推荐商品 前端控制器 + * </p> + * + * @author mitao + * @since 2024-10-29 + */ +@RestController +@RequestMapping("/promotion-wish-recommend") +public class MgtPromotionWishRecommendController { + +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListQuery.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishQuery.java similarity index 75% rename from ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListQuery.java rename to ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishQuery.java index e2c8c35..6efaa16 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListQuery.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishQuery.java @@ -1,6 +1,5 @@ package com.ruoyi.promotion.controller.management.dto; -import com.ruoyi.common.core.enums.ReplyStatusEnum; import com.ruoyi.common.core.web.page.BasePage; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -14,7 +13,7 @@ @Data @EqualsAndHashCode(callSuper = true) @ApiModel(value = "心愿求购管理查询对象", description = "心愿求购管理查询对象") -public class MgtPromotionWishListQuery extends BasePage { +public class MgtPromotionWishQuery extends BasePage { private static final long serialVersionUID = -2289707074791860720L; @@ -24,6 +23,6 @@ @ApiModelProperty(value = "联系电话") private String phone; - @ApiModelProperty(value = "回复状态 未回复 已回复") - private ReplyStatusEnum replyStatus; + @ApiModelProperty(value = "状态 0:未推荐商品 1:已推荐商品", notes = "全部不传") + private Integer recommendStatus; } diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishRecommendDTO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishRecommendDTO.java new file mode 100644 index 0000000..e7fb992 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishRecommendDTO.java @@ -0,0 +1,35 @@ +package com.ruoyi.promotion.controller.management.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/29 + */ +@Data +@ApiModel(value = "推荐商品数据传输对象") +public class MgtPromotionWishRecommendDTO { + + @ApiModelProperty(value = "心愿求购id") + private Long wishId; + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "商品售价") + private BigDecimal sellingPrice; + + @ApiModelProperty(value = "可购数量") + private Integer availableNum; + + @ApiModelProperty(value = "商品图片") + private String goodsImageUrl; + + @ApiModelProperty(value = "失效时间") + private LocalDateTime expireTime; + +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java index 2e23de9..a6fc076 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java @@ -1,62 +1,35 @@ package com.ruoyi.promotion.controller.management.vo; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.ruoyi.common.core.enums.ReplyStatusEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; import lombok.Data; -import lombok.EqualsAndHashCode; /** - * <p> - * 心愿求购表 - * </p> - * * @author mitao - * @since 2024-05-16 + * @date 2024/10/29 */ @Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "管理后台-心愿求购视图对象", description = "管理后台-心愿求购视图对象") -public class MgtPromotionWishListVO implements Serializable { +@ApiModel(value = "管理后台-心愿求购商品视图对象") +public class MgtPromotionWishListVO { - private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "心愿求购商品id") + private Long id; @ApiModelProperty(value = "心愿求购id") - private Long id; + private Long wishId; + + @ApiModelProperty(value = "商品品牌") + private String goodsBrand; @ApiModelProperty(value = "商品名称") private String goodsName; - @ApiModelProperty(value = "期望价格") - private BigDecimal expectedPrice; + @ApiModelProperty(value = "期望年份") + private String expectedYear; - @ApiModelProperty(value = "商品图片 ['a','b','c','d','e']") + @ApiModelProperty(value = "求购数量") + private String goodsNum; + + @ApiModelProperty(value = "商品图片,多张图片使用英文逗号拼接") private String goodsImageUrl; - - @ApiModelProperty(value = "备注") - private String remark; - - @ApiModelProperty(value = "平台回复") - private String replies; - - @ApiModelProperty(value = "回复状态 0未回复 1已回复") - private ReplyStatusEnum replyStatus; - - @ApiModelProperty(value = "创建时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private LocalDateTime createTime; - - @ApiModelProperty(value = "会员id") - private Long memberId; - - @ApiModelProperty(value = "会员昵称") - private String nickname; - - @ApiModelProperty(value = "联系电话") - private String phone; - } diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishVO.java new file mode 100644 index 0000000..33e7975 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishVO.java @@ -0,0 +1,55 @@ +package com.ruoyi.promotion.controller.management.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.system.api.domain.vo.MgtPromotionWishRecommendVO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * 心愿求购表 + * </p> + * + * @author mitao + * @since 2024-05-16 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "管理后台-心愿求购视图对象", description = "管理后台-心愿求购视图对象") +public class MgtPromotionWishVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "心愿求购id") + private Long id; + + @ApiModelProperty(value = "求购用户") + private String nickname; + + @ApiModelProperty(value = "联系电话") + private String phone; + + @ApiModelProperty(value = "状态 0:未推荐商品 1:已推荐商品") + private Integer recommendStatus; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "发起时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime createTime; + + @ApiModelProperty(value = "会员id") + private Long memberId; + + @ApiModelProperty(value = "求购商品列表") + private List<MgtPromotionWishListVO> wishListVOList; + + @ApiModelProperty(value = "推荐商品列表") + private List<MgtPromotionWishRecommendVO> recommendListVOList; +} diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java index fc28275..887b243 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java @@ -6,11 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; -import com.ruoyi.common.core.enums.ReplyStatusEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; -import java.math.BigDecimal; import java.time.LocalDateTime; import lombok.Data; import lombok.EqualsAndHashCode; @@ -33,27 +31,27 @@ private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "心愿求购id") + @ApiModelProperty(value = "心愿求购商品id") @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; + + @ApiModelProperty(value = "心愿求购id") + private Long wishId; + + @ApiModelProperty(value = "商品品牌") + private String goodsBrand; @ApiModelProperty(value = "商品名称") private String goodsName; - @ApiModelProperty(value = "期望价格") - private BigDecimal expectedPrice; + @ApiModelProperty(value = "期望年份") + private String expectedYear; - @ApiModelProperty(value = "商品图片 ['a','b','c','d','e']") + @ApiModelProperty(value = "求购数量 1瓶 1箱") + private String goodsNum; + + @ApiModelProperty(value = "商品图片,多张图片使用英文逗号拼接") private String goodsImageUrl; - - @ApiModelProperty(value = "备注") - private String remark; - - @ApiModelProperty(value = "平台回复") - private String replies; - - @ApiModelProperty(value = "回复状态 0未回复 1已回复") - private ReplyStatusEnum replyStatus; @ApiModelProperty(value = "创建者") @TableField(value = "create_by", fill = FieldFill.INSERT) @@ -74,9 +72,4 @@ @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)") @TableLogic private Integer delFlag; - - @ApiModelProperty(value = "会员id") - @TableField(value = "member_id") - private Long memberId; - } diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java index f78c710..6ebeb1b 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java @@ -1,12 +1,7 @@ package com.ruoyi.promotion.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO; -import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery; -import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO; import com.ruoyi.promotion.domain.PromotionWishList; -import com.ruoyi.system.api.domain.dto.PromotionWishListDTO; /** * <p> @@ -18,32 +13,5 @@ */ public interface IPromotionWishListService extends IService<PromotionWishList> { - PageDTO<PromotionWishList> getPromotionWishList(PromotionWishListDTO promotionWishListDTO); - PromotionWishList getPromotionWishOne(PromotionWishListDTO promotionWishListDTO); - void savePromotionWishList(PromotionWishListDTO promotionWishListDTO); - void delPromotionWishOne(PromotionWishListDTO promotionWishListDTO); - - /** - * 获取心愿求购列表的分页数据 - * - * @param query 心愿求购管理查询对象 - * @return PageDTO<MgtPromotionWishListVO> - */ - PageDTO<MgtPromotionWishListVO> getPromotionWishListPage(MgtPromotionWishListQuery query); - - /** - * 查看详情 - * - * @param id 心愿求购id - * @return MgtPromotionWishListVO - */ - MgtPromotionWishListVO getPromotionWishDetail(Long id); - - /** - * 回复 - * - * @param dto 心愿求购数据传输对象 - */ - void reply(MgtPromotionWishListDTO dto); } diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java index f5afd23..060420f 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java @@ -1,30 +1,10 @@ package com.ruoyi.promotion.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.google.common.collect.Lists; -import com.ruoyi.common.core.constant.SecurityConstants; -import com.ruoyi.common.core.enums.ReplyStatusEnum; -import com.ruoyi.common.core.exception.ServiceException; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.page.BeanUtils; -import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO; -import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery; -import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO; import com.ruoyi.promotion.domain.PromotionWishList; import com.ruoyi.promotion.mapper.PromotionWishListMapper; import com.ruoyi.promotion.service.IPromotionWishListService; -import com.ruoyi.system.api.domain.Member; -import com.ruoyi.system.api.domain.dto.MemberDTO; -import com.ruoyi.system.api.domain.dto.PromotionWishListDTO; import com.ruoyi.system.api.feignClient.MemberClient; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -42,140 +22,5 @@ private final MemberClient memberClient; - @Override - public PageDTO<PromotionWishList> getPromotionWishList(PromotionWishListDTO promotionWishListDTO) { - Page<PromotionWishList> page = new Page<>(promotionWishListDTO.getPageCurr(), promotionWishListDTO.getPageSize()); - LambdaQueryWrapper<PromotionWishList> wrapper= Wrappers.lambdaQuery(); - wrapper.eq(PromotionWishList::getMemberId,promotionWishListDTO.getMemberId()); - wrapper.orderByDesc(PromotionWishList::getCreateTime); - Page<PromotionWishList> page1 = this.page(page, wrapper); - return PageDTO.of(page1); - } - - @Override - public void savePromotionWishList(PromotionWishListDTO promotionWishListDTO) { - PromotionWishList promotionWishList=new PromotionWishList(); - promotionWishList.setExpectedPrice(promotionWishListDTO.getExpectedPrice()); - promotionWishList.setGoodsName(promotionWishListDTO.getGoodsName()); - promotionWishList.setRemark(promotionWishListDTO.getRemark()); - promotionWishList.setGoodsImageUrl(promotionWishListDTO.getGoodsImageUrl()); - promotionWishList.setMemberId(promotionWishListDTO.getMemberId()); - this.save(promotionWishList); - } - - @Override - public void delPromotionWishOne(PromotionWishListDTO promotionWishListDTO) { - this.removeById(promotionWishListDTO.getRomotionWishId()); - } - - @Override - public PromotionWishList getPromotionWishOne(PromotionWishListDTO promotionWishListDTO) { - LambdaQueryWrapper<PromotionWishList> wrapper= Wrappers.lambdaQuery(); - wrapper.eq(PromotionWishList::getId,promotionWishListDTO.getRomotionWishId()); - wrapper.eq(PromotionWishList::getDelFlag,0); - return this.getOne(wrapper); - } - - /** - * 获取心愿求购列表的分页数据 - * - * @param query 心愿求购管理查询对象 - * @return PageDTO<MgtPromotionWishListVO> - */ - @Override - public PageDTO<MgtPromotionWishListVO> getPromotionWishListPage( - MgtPromotionWishListQuery query) { - // 封装会员条件查询对象 - MemberDTO memberDTO = null; - Set<Long> memberIdSet = null; - Page<PromotionWishList> page = new Page<>(query.getPageCurr(), query - .getPageSize()); - if (StringUtils.isNotBlank(query.getNickname()) || StringUtils.isNotBlank( - query.getPhone())) { - memberDTO = new MemberDTO(); - memberDTO.setNickname(query.getNickname()); - memberDTO.setPhone(query.getPhone()); - } - if (StringUtils.isNotNull(memberDTO)) { - // 远程调用会员服务进行条件查询 - List<Member> memberList = memberClient.getMemberListByCondition(memberDTO, - SecurityConstants.INNER).getData(); - if (StringUtils.isEmpty(memberList)) { - return PageDTO.empty(page); - } - memberIdSet = memberList.stream().map(Member::getId) - .collect(Collectors.toSet()); - } - - // 分页查询心愿求购列表 - page = this.lambdaQuery() - .eq(StringUtils.isNotNull(query.getReplyStatus()), - PromotionWishList::getReplyStatus, query.getReplyStatus()) - .in(StringUtils.isNotEmpty(memberIdSet), PromotionWishList::getMemberId, - memberIdSet).orderByDesc(PromotionWishList::getCreateTime).page(page); - if (StringUtils.isEmpty(page.getRecords())) { - return PageDTO.empty(page); - } - // 封装VO - PageDTO<MgtPromotionWishListVO> pageVO = PageDTO.of(page, - MgtPromotionWishListVO.class); - List<MgtPromotionWishListVO> MgtPromotionWishListVOList = pageVO.getList(); - Set<Long> memberIdSets = MgtPromotionWishListVOList.stream() - .map(MgtPromotionWishListVO::getMemberId) - .collect(Collectors.toSet()); - if (StringUtils.isNotEmpty(memberIdSets)) { - List<Member> data = memberClient.getMemberListByIds(memberIdSets, - SecurityConstants.INNER).getData(); - if (StringUtils.isNotEmpty(data)) { - Map<Long, Member> memberMap = data.stream() - .collect(Collectors.toMap(Member::getId, member -> member)); - for (MgtPromotionWishListVO mgtPromotionWishListVO : MgtPromotionWishListVOList) { - Member member = memberMap.get(mgtPromotionWishListVO.getMemberId()); - if (StringUtils.isNotNull(member)) { - mgtPromotionWishListVO.setNickname(member.getNickname()); - mgtPromotionWishListVO.setPhone(member.getPhone()); - } - } - } - } - return pageVO; - } - - /** - * 查看详情 - * - * @param id 心愿求购id - * @return MgtPromotionWishListVO - */ - @Override - public MgtPromotionWishListVO getPromotionWishDetail(Long id) { - PromotionWishList promotionWishList = this.getById(id); - if (StringUtils.isNull(promotionWishList)) { - throw new ServiceException("该心愿求购不存在"); - } - MgtPromotionWishListVO mgtPromotionWishListVO = BeanUtils.copyBean(promotionWishList, - MgtPromotionWishListVO.class); - List<Member> data = memberClient.getMemberListByIds( - Lists.newArrayList(promotionWishList.getMemberId()), - SecurityConstants.INNER).getData(); - if (StringUtils.isNotEmpty(data)) { - mgtPromotionWishListVO.setPhone(data.get(0).getPhone()); - mgtPromotionWishListVO.setNickname(data.get(0).getNickname()); - } - return mgtPromotionWishListVO; - } - - /** - * 回复 - * - * @param dto 心愿求购数据传输对象 - */ - @Override - public void reply(MgtPromotionWishListDTO dto) { - PromotionWishList promotionWishList = this.getById(dto.getId()); - promotionWishList.setReplies(dto.getReplies()); - promotionWishList.setReplyStatus(ReplyStatusEnum.REPLIED); - this.updateById(promotionWishList); - } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java index ba8ec76..71872ff 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java @@ -8,12 +8,14 @@ import com.ruoyi.system.api.domain.dto.MgtAfterSaleSettingDTO; import com.ruoyi.system.domain.dto.PointsConfigDTO; import com.ruoyi.system.domain.vo.CustomConfigVO; +import com.ruoyi.system.domain.vo.WishSettingVO; import com.ruoyi.system.service.ICustomConfigService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import javax.annotation.Resource; +import javax.validation.Valid; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -31,6 +33,7 @@ * @author mitao * @since 2024-05-21 */ +@Validated @RestController @RequestMapping("/custom-config") @Api(value = "系统配置接口", tags = "系统配置接口") @@ -153,4 +156,27 @@ iCustomConfigService.deleteServicePhone(phone); return R.ok(); } + + /** + * 获取心愿求购说明 + * + * @return + */ + @ApiOperation("获取心愿求购说明、分享配置") + @GetMapping("/wish-setting") + public R<WishSettingVO> getWishSetting() { + return R.ok(iCustomConfigService.getWishSetting()); + } + + /** + * 保存心愿求购设置 + * + * @param vo 保存心愿求购设置 + */ + @ApiOperation(value = "保存心愿设置") + @PostMapping("/save-wish-setting") + public R<?> saveWishDescription(@Valid @RequestBody WishSettingVO vo) { + iCustomConfigService.saveWishDescription(vo); + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/WishSettingVO.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/WishSettingVO.java new file mode 100644 index 0000000..1a22d39 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/WishSettingVO.java @@ -0,0 +1,27 @@ +package com.ruoyi.system.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import javax.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @author mitao + * @date 2024/10/30 + */ +@Data +@ApiModel(value = "心愿求购基础设置视图对象") +public class WishSettingVO { + + @ApiModelProperty(value = "说明") + @NotBlank(message = "说明不能为空") + private String description; + + @ApiModelProperty(value = "分享标题") + @NotBlank(message = "分享标题不能为空") + private String shareTitle; + + @ApiModelProperty(value = "分享图片") + @NotBlank(message = "分享图片不能为空") + private String shareImgUrl; +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java index d33fffd..ac18647 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java @@ -7,12 +7,10 @@ import com.ruoyi.system.api.constants.DelayTaskEnum; import com.ruoyi.system.api.feignClient.AuctionClient; import com.ruoyi.system.api.feignClient.GoodsSkuClient; +import com.ruoyi.system.api.feignClient.OrderClient; import java.util.Date; import javax.annotation.Resource; - -import com.ruoyi.system.api.feignClient.OrderClient; import lombok.extern.slf4j.Slf4j; -import org.springframework.core.annotation.Order; import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java index edbfbd1..050ffda 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java @@ -5,6 +5,7 @@ import com.ruoyi.system.api.domain.dto.MgtAfterSaleSettingDTO; import com.ruoyi.system.domain.dto.PointsConfigDTO; import com.ruoyi.system.domain.vo.CustomConfigVO; +import com.ruoyi.system.domain.vo.WishSettingVO; /** * <p> @@ -79,4 +80,19 @@ * @param phone 客服电话 */ void deleteServicePhone(String phone); + + /** + * 获取心愿求购设置 + * + * @return + */ + WishSettingVO getWishSetting(); + + /** + * 保存心愿求购设置 + * + * @param vo 保存心愿求购设置 + */ + void saveWishDescription(WishSettingVO vo); + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java index a8c1ab7..ad6c4d3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.ruoyi.system.api.domain.dto.MgtAfterSaleSettingDTO; import com.ruoyi.system.domain.dto.PointsConfigDTO; import com.ruoyi.system.domain.vo.CustomConfigVO; +import com.ruoyi.system.domain.vo.WishSettingVO; import com.ruoyi.system.mapper.CustomConfigMapper; import com.ruoyi.system.service.ICustomConfigService; import java.math.BigDecimal; @@ -265,4 +266,72 @@ } } } + + /** + * 获取心愿求购设置 + * + * @return + */ + @Override + public WishSettingVO getWishSetting() { + WishSettingVO vo = new WishSettingVO(); + CustomConfig customConfig = getCustomConfigByKey( + ConfigEnum.WISH_DESCRIPTION.getKey()).orElse(new CustomConfig()); + List<CustomConfig> list = this.lambdaQuery() + .in(CustomConfig::getConfigKey, ConfigEnum.WISH_DESCRIPTION.getKey(), + ConfigEnum.WISH_SHARE_TITLE.getKey(), + ConfigEnum.WISH_SHARE_IMG_URL.getKey()) + .eq(CustomConfig::getDelFlag, 0).list(); + for (CustomConfig config : list) { + if (ConfigEnum.WISH_DESCRIPTION.getKey().equals(config.getConfigKey())) { + vo.setDescription(customConfig.getConfigValue()); + } else if (ConfigEnum.WISH_SHARE_TITLE.getKey().equals(config.getConfigKey())) { + vo.setShareTitle(config.getConfigValue()); + } else if (ConfigEnum.WISH_SHARE_IMG_URL.getKey().equals(config.getConfigKey())) { + vo.setShareImgUrl(config.getConfigValue()); + } + } + return vo; + } + + /** + * 保存心愿求购说明 + * + * @param vo 保存心愿求购说明 + */ + @Override + public void saveWishDescription(WishSettingVO vo) { + String description = vo.getDescription(); + String shareTitle = vo.getShareTitle(); + String shareImgUrl = vo.getShareImgUrl(); + CustomConfig wishDescription = getCustomConfigByKey( + ConfigEnum.WISH_DESCRIPTION.getKey()).orElseGet(() -> { + CustomConfig customConfig = new CustomConfig(); + customConfig.setConfigKey(ConfigEnum.WISH_DESCRIPTION.getKey()); + customConfig.setConfigName(ConfigEnum.WISH_DESCRIPTION.getKeyName()); + customConfig.setConfigType(ConfigEnum.WISH_DESCRIPTION.getKeyType()); + return customConfig; + }); + wishDescription.setConfigValue(description); + CustomConfig wishShareTitle = getCustomConfigByKey( + ConfigEnum.WISH_SHARE_TITLE.getKey()).orElseGet(() -> { + CustomConfig customConfig = new CustomConfig(); + customConfig.setConfigKey(ConfigEnum.WISH_SHARE_TITLE.getKey()); + customConfig.setConfigName(ConfigEnum.WISH_SHARE_TITLE.getKeyName()); + customConfig.setConfigType(ConfigEnum.WISH_SHARE_TITLE.getKeyType()); + return customConfig; + }); + wishShareTitle.setConfigValue(shareTitle); + CustomConfig wishShareImgUrl = getCustomConfigByKey( + ConfigEnum.WISH_SHARE_IMG_URL.getKey()).orElseGet(() -> { + CustomConfig customConfig = new CustomConfig(); + customConfig.setConfigKey(ConfigEnum.WISH_SHARE_IMG_URL.getKey()); + customConfig.setConfigName(ConfigEnum.WISH_SHARE_IMG_URL.getKeyName()); + customConfig.setConfigType(ConfigEnum.WISH_SHARE_IMG_URL.getKeyType()); + return customConfig; + }); + wishShareImgUrl.setConfigValue(shareImgUrl); + saveOrUpdateBatch( + Lists.newArrayList(wishDescription, wishShareTitle, wishShareImgUrl)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml index 703e36c..4dfcf15 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml @@ -17,13 +17,13 @@ nacos: discovery: # 服务注册地址 - server-addr: 192.168.110.188:8848 + server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be config: # 配置中心地址 - server-addr: 192.168.110.188:8848 + server-addr: 127.0.0.1:8848 namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be group: DEFAULT_GROUP name: ${spring.application.name} -- Gitblit v1.7.1