From 1f9b64476716a6a1de3bcb886bf4e64b123f7523 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期四, 06 七月 2023 18:28:31 +0800 Subject: [PATCH] 管理台bug和用户端活动商品购买 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java | 75 +++ ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml | 37 + ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 22 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java | 12 ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/QuickEntryMapper.xml | 4 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityGoodsServiceImpl.java | 14 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPanicBuyDto.java | 28 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/RegionService.java | 9 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java | 7 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java | 12 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Pop.java | 17 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/PopServiceImpl.java | 8 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java | 32 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java | 14 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java | 12 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java | 14 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java | 11 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/OrderGoods.java | 18 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java | 2 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthGetVo.java | 39 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/ActivityGoodsGetDto.java | 24 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java | 16 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopAuthentication.java | 37 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java | 5 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/ActivityGoodsGetVo.java | 33 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppSureOrderDto.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppPanicBuyVo.java | 64 +++ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java | 2 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml | 8 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppActivityController.java | 6 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java | 47 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java | 19 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppActivityGoodsPageDto.java | 1 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderGoodsVo.java | 3 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java | 5 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderVo.java | 4 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityGoodsService.java | 6 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityOrderDto.java | 34 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java | 3 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml | 1 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java | 14 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java | 57 ++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteActivityFallbackFactory.java | 9 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppGoodsInfoGetDto.java | 3 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java | 36 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java | 11 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java | 41 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/QuickEntry.java | 17 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 266 ++++++++++++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/activity/ActivityGoods.java | 11 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthDto.java | 38 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppSearchGoodsPageDto.java | 2 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java | 17 54 files changed, 1,150 insertions(+), 81 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 e11de46..db79db6 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 @@ -74,4 +74,9 @@ String VERIFY_SHOP_ERROR = "该核销码不适用于本店铺"; + String ACTIVITY_NO_START = "活动还未开始"; + + String ACTIVITY_END = "活动已经结束"; + + String ACTIVITY_GOODS_NULL = "商品已售罄"; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java index fc848fd..b84818d 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java @@ -35,4 +35,9 @@ * 省市区列表key */ String REGION_LIST = "REGION_LIST"; + + /** + * 省市区列表key + */ + String CITY_LIST = "CITY_LIST"; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/ActivityGoodsGetDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/ActivityGoodsGetDto.java new file mode 100644 index 0000000..0f81b1c --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/ActivityGoodsGetDto.java @@ -0,0 +1,24 @@ +package com.ruoyi.system.api.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName ActivityGoodsGetDto + * @Description TODO + * @Author jqs + * @Date 2023/7/6 14:36 + * @Version 1.0 + */ +@Data +public class ActivityGoodsGetDto { + + @ApiModelProperty(value = "活动id") + private String activityId; + + @ApiModelProperty(value = "商品id") + private String goodsId; + + @ApiModelProperty(value = "用户id") + private Long userId; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppActivityGoodsPageDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppActivityGoodsPageDto.java index e0bde43..9a114e7 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppActivityGoodsPageDto.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppActivityGoodsPageDto.java @@ -18,4 +18,5 @@ @ApiModelProperty(value = "商户id",hidden = true) private Long shopId; + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/activity/ActivityGoods.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/activity/ActivityGoods.java index b803f94..41c46a3 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/activity/ActivityGoods.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/activity/ActivityGoods.java @@ -85,6 +85,17 @@ @TableField("sell_out_time") private Date sellOutTime; + /** + * 限购标记0否1是 + */ + @TableField("purchase_limitation_flag") + private Integer purchaseLimitationFlag; + /** + * 限购数量 + */ + @TableField("limit_number") + private Integer limitNumber; + @Override protected Serializable pkVal() { return this.agId; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/ActivityGoodsGetVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/ActivityGoodsGetVo.java new file mode 100644 index 0000000..f5a7e28 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/ActivityGoodsGetVo.java @@ -0,0 +1,33 @@ +package com.ruoyi.system.api.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @ClassName ActivityGoodsGetVo + * @Description TODO + * @Author jqs + * @Date 2023/7/6 16:07 + * @Version 1.0 + */ +@Data +public class ActivityGoodsGetVo { + + @ApiModelProperty(value = "秒杀活动价") + private BigDecimal activityPrice; + + @ApiModelProperty(value = "秒杀活动订金") + private BigDecimal activitySubscription; + + @ApiModelProperty(value = "活动状态0未开始1进行中2已结束") + private Integer activityStatus; + + @ApiModelProperty(value = "限购标记0否1是") + private Integer purchaseLimitationFlag; + + @ApiModelProperty(value = "还可以购买数量") + private Integer availableBuyNum; + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteActivityFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteActivityFallbackFactory.java index 1a6855b..2b33d1d 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteActivityFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteActivityFallbackFactory.java @@ -1,6 +1,8 @@ package com.ruoyi.system.api.factory; import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto; +import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; import com.ruoyi.system.api.service.RemoteActivityService; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; @@ -29,7 +31,7 @@ { @Override - public R<ActivityGoods> getActivityGoods(String goodsId) { + public R<ActivityGoods> getActivityGoods(ActivityGoodsGetDto activityGoodsGetDto) { return R.fail("获取活动商品失败:" + throwable.getMessage()); } @@ -42,6 +44,11 @@ public R<MgtBulletinBoardVo> boardActivityTotal() { return null; } + + @Override + public R<ActivityGoodsGetVo> getUserActivityGoods(ActivityGoodsGetDto activityGoodsGetDto) { + return R.fail("获取用户活动商品信息失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java index e2c1160..3383949 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java @@ -2,7 +2,9 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; +import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; import com.ruoyi.system.api.factory.RemoteActivityFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; @@ -22,7 +24,7 @@ public interface RemoteActivityService { @PostMapping("/activity/getActivityGoods") - public R<ActivityGoods> getActivityGoods(@RequestBody String goodsId); + public R<ActivityGoods> getActivityGoods(@RequestBody ActivityGoodsGetDto activityGoodsGetDto); /** * @description 通过活动id获取参与活动用户id @@ -43,4 +45,14 @@ */ @PostMapping("/activity/boardActivityTotal") public R<MgtBulletinBoardVo> boardActivityTotal(); + + /** + * @description 获取用户活动商品信息 + * @author jqs + * @date 2023/7/6 16:16 + * @param activityGoodsGetDto + * @return R<ActivityGoodsGetVo> + */ + @PostMapping("/activity/getUserActivityGoods") + public R<ActivityGoodsGetVo> getUserActivityGoods(@RequestBody ActivityGoodsGetDto activityGoodsGetDto); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java index 8446f31..4e82059 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java @@ -3,7 +3,10 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.goods.service.activity.ActivityGoodsService; import com.ruoyi.goods.service.activity.ActivityRecordService; +import com.ruoyi.goods.service.activity.ActivityService; +import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; +import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -24,7 +27,8 @@ @RequestMapping("/activity") public class ActivityController { - + @Resource + private ActivityService activityService; @Resource private ActivityGoodsService activityGoodsService; @@ -32,10 +36,17 @@ @Resource private ActivityRecordService activityRecordService; + /** + * @description 通过活动id和商品id获取活动商品信息 + * @author jqs + * @date 2023/7/6 16:16 + * @param activityGoodsGetDto + * @return R<ActivityGoods> + */ @PostMapping("/getActivityGoods") - public R<ActivityGoods> getActivityGoods(@RequestBody String goodsId) + public R<ActivityGoods> getActivityGoods(@RequestBody ActivityGoodsGetDto activityGoodsGetDto) { - ActivityGoods activityGoods = activityGoodsService.getByGoodsId(goodsId); + ActivityGoods activityGoods = activityGoodsService.getByGoodsId(activityGoodsGetDto.getActivityId(),activityGoodsGetDto.getGoodsId()); return R.ok(activityGoods); } @@ -65,4 +76,19 @@ MgtBulletinBoardVo mgtBulletinBoardVo = activityRecordService.boardActivityTotal(); return R.ok(mgtBulletinBoardVo); } + + + /** + * @description 获取用户活动商品信息 + * @author jqs + * @date 2023/7/6 16:16 + * @param activityGoodsGetDto + * @return R<ActivityGoodsGetVo> + */ + @PostMapping("/getUserActivityGoods") + public R<ActivityGoodsGetVo> getUserActivityGoods(@RequestBody ActivityGoodsGetDto activityGoodsGetDto){ + ActivityGoodsGetVo activityGoodsGetVo = activityService.getUserActivityGoods(activityGoodsGetDto); + return R.ok(activityGoodsGetVo); + } + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppActivityController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppActivityController.java index 24600b8..38f6285 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppActivityController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppActivityController.java @@ -5,9 +5,11 @@ import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.goods.domain.vo.AppActivityPageVo; +import com.ruoyi.goods.domain.vo.AppSimpleActivityGoodsVo; import com.ruoyi.goods.service.activity.ActivityService; import com.ruoyi.goods.service.goods.GoodsService; import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.AppActivityGoodsPageDto; import com.ruoyi.system.api.domain.dto.AppPageDto; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.service.RemoteMemberService; @@ -64,7 +66,7 @@ } - /*@RequestMapping(value = "/pageAppActivityGoods", method = RequestMethod.POST) + @RequestMapping(value = "/pageAppActivityGoods", method = RequestMethod.POST) @ApiOperation(value = "分页获取活动商品") public R<Page<AppSimpleActivityGoodsVo>> pageAppActivityGoods(@RequestBody AppActivityGoodsPageDto appActivityGoodsPageDto) { Long userId = SecurityUtils.getUserId(); @@ -82,5 +84,5 @@ page.setCurrent(appActivityGoodsPageDto.getPageNum()); List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsService.pageAppActivityGoods(page,appActivityGoodsPageDto); return R.ok(page.setRecords(appSimpleGoodsVoList)); - }*/ + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppGoodsInfoGetDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppGoodsInfoGetDto.java index 117392e..0732de9 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppGoodsInfoGetDto.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppGoodsInfoGetDto.java @@ -17,6 +17,9 @@ @ApiModelProperty(value = "是否活动跳转0否1是") private Integer activityFlag; + @ApiModelProperty(value = "活动id") + private String activityId; + @ApiModelProperty(value = "商户id",hidden = true) private Long shopId; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppSearchGoodsPageDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppSearchGoodsPageDto.java index 099ff79..ac3c4fd 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppSearchGoodsPageDto.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/AppSearchGoodsPageDto.java @@ -25,6 +25,6 @@ @ApiModelProperty(value = "定位获取商户id") private Long positionShopId; - @ApiModelProperty(value = "定位获取商户id",hidden = true) + @ApiModelProperty(value = "活动id",hidden = true) private List<String> activityIdList; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java index 2581499..3bf8847 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java @@ -11,6 +11,7 @@ import java.io.Serializable; import java.math.BigDecimal; +import java.util.Date; /** * <p> @@ -47,12 +48,12 @@ * 用户id */ @TableField("user_id") - private Integer userId; + private Long userId; /** * 下单时间 */ @TableField("order_time") - private String orderTime; + private Date orderTime; /** * 下单金额 */ @@ -65,7 +66,16 @@ private String orderId; @TableField("create_time") - private String createTime; + private Date createTime; + + @TableField("buy_num") + private Integer buyNum; + + @TableField("goods_id") + private String goodsId; + + @TableField("activity_money") + private BigDecimal activityMoney; @Override diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java index 6b7a8fb..d5c8172 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java @@ -17,6 +17,8 @@ @Data public class AppGoodsInfoVo { + + @ApiModelProperty(value = "商品id") private String goodsId; @@ -56,12 +58,27 @@ @ApiModelProperty(value = "是否活动跳转0否1是") private Integer activityFlag; + @ApiModelProperty(value = "活动id") + private String activityId; + + @ApiModelProperty(value = "限购标记0否1是") + private Integer purchaseLimitationFlag; + + @ApiModelProperty(value = "限购数量") + private Integer limitNumber; + + @ApiModelProperty(value = "还可以购买数量") + private Integer availableBuyNum; + @ApiModelProperty(value = "商品活动价") private BigDecimal activityPrice; @ApiModelProperty(value = "售罄标记0否1是") private Integer sellOutFlag; + @ApiModelProperty(value = "结束时间戳") + private long timestamp; + @ApiModelProperty(value = "活动截止时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date activityDeadline; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java index 25ece18..ce5ab27 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityRecordMapper.java @@ -33,4 +33,16 @@ * @date 2023/6/18 17:33 */ Integer activityUserTotal(); + + + /** + * @description 获取用户活动商品购买数量 + * @author jqs + * @date 2023/7/6 15:55 + * @param goodsId + * @param activityId + * @param userId + * @return Integer + */ + Integer getUserActivityGoodsNum(@Param("goodsId")String goodsId,@Param("activityId")String activityId,@Param("userId")Long userId); } 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 01dd35f..c7f548e 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 @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.goods.domain.dto.*; import com.ruoyi.goods.domain.vo.*; +import com.ruoyi.system.api.domain.dto.AppActivityGoodsPageDto; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo; @@ -128,4 +129,15 @@ * @return List<MerGoodsPriceListVo> */ List<MerGoodsPriceListVo> listGoodsPriceByGoodsId(@Param("goodsIds")String goodsIds); + + + /** + * @description + * @author jqs + * @date 2023/7/6 9:51 + * @param page + * @param appActivityGoodsPageDto + * @return List<AppSimpleActivityGoodsVo> + */ + List<AppSimpleActivityGoodsVo> pageAppActivityGoods(Page page, @Param("param") AppActivityGoodsPageDto appActivityGoodsPageDto); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityGoodsService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityGoodsService.java index ad26f68..5df3e9f 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityGoodsService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityGoodsService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.goods.domain.vo.MgtActivityGoodsListVo; +import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; +import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo; import java.util.List; @@ -22,7 +24,7 @@ * @param goodsId * @return */ - ActivityGoods getByGoodsId(String goodsId); + ActivityGoods getByGoodsId(String activityId,String goodsId); /** * @description 通过活动id删除商品 @@ -40,4 +42,6 @@ * @return List<MgtActivityGoodsListVo> */ List<MgtActivityGoodsListVo> listVoByActivityId(String activityId); + + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java index bba053f..30c1bab 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityRecordService.java @@ -33,4 +33,15 @@ * @date 2023/6/18 17:32 */ MgtBulletinBoardVo boardActivityTotal(); + + /** + * @description 获取用户活动商品购买数量 + * @author jqs + * @date 2023/7/6 15:55 + * @param goodsId + * @param activityId + * @param userId + * @return Integer + */ + Integer getUserActivityGoodsNum(String goodsId,String activityId,Long userId); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java index e1e26fa..309fe38 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java @@ -7,7 +7,9 @@ import com.ruoyi.goods.domain.dto.MgtActivityRecordPageDto; import com.ruoyi.goods.domain.pojo.activity.Activity; import com.ruoyi.goods.domain.vo.*; +import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto; import com.ruoyi.system.api.domain.dto.MerPageDto; +import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo; import java.util.List; @@ -112,4 +114,13 @@ * @return List<AppActivityPageVo> */ List<AppActivityPageVo> pageAppActivity(Page page, Long shopId); + + /** + * @description 获取用户活动商品信息 + * @author jqs + * @date 2023/7/6 16:18 + * @param activityGoodsGetDto + * @return ActivityGoodsGetVo + */ + ActivityGoodsGetVo getUserActivityGoods(ActivityGoodsGetDto activityGoodsGetDto); } 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 6141796..39c1482 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 @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.goods.domain.dto.*; import com.ruoyi.goods.domain.vo.*; +import com.ruoyi.system.api.domain.dto.AppActivityGoodsPageDto; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo; @@ -171,4 +172,15 @@ * @return List<MerGoodsPriceListVo> */ List<MerGoodsPriceListVo> listGoodsPriceByGoodsId(String goodsIds); + + /** + * @description 分页获取活动商品 + * @author jqs + * @date 2023/7/6 9:40 + * @param page + * @param appActivityGoodsPageDto + * @return List<AppSimpleActivityGoodsVo> + */ + List<AppSimpleActivityGoodsVo> pageAppActivityGoods(Page page, AppActivityGoodsPageDto appActivityGoodsPageDto); + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityGoodsServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityGoodsServiceImpl.java index 33cf898..eb758bb 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityGoodsServiceImpl.java @@ -7,9 +7,10 @@ import com.ruoyi.goods.domain.vo.MgtActivityGoodsListVo; import com.ruoyi.goods.mapper.activity.ActivityGoodsMapper; import com.ruoyi.goods.service.activity.ActivityGoodsService; +import com.ruoyi.goods.service.activity.ActivityRecordService; +import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; - - +import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -29,15 +30,18 @@ @Resource private ActivityGoodsMapper activityGoodsMapper; + @Resource + private ActivityRecordService activityRecordService; + /** * 通过id获取活动商品 * @param goodsId * @return */ @Override - public ActivityGoods getByGoodsId(String goodsId){ + public ActivityGoods getByGoodsId(String activityId,String goodsId){ LambdaQueryWrapper<ActivityGoods> queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(ActivityGoods::getDelFlag, 0).eq(ActivityGoods::getGoodsId, goodsId); + queryWrapper.eq(ActivityGoods::getDelFlag, 0).eq(ActivityGoods::getActivityId, activityId).eq(ActivityGoods::getGoodsId, goodsId); ActivityGoods activityGoods = this.getOne(queryWrapper,false); return activityGoods; } @@ -69,4 +73,6 @@ public List<MgtActivityGoodsListVo> listVoByActivityId(String activityId){ return activityGoodsMapper.listVoByActivityId(activityId); } + + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java index e1e8505..a58c3d6 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityRecordServiceImpl.java @@ -50,4 +50,18 @@ mgtBulletinBoardVo.setActivityUserTotal(activityUserTotal); return mgtBulletinBoardVo; } + + /** + * @description 获取用户活动商品购买数量 + * @author jqs + * @date 2023/7/6 15:55 + * @param goodsId + * @param activityId + * @param userId + * @return Integer + */ + @Override + public Integer getUserActivityGoodsNum(String goodsId,String activityId,Long userId){ + return activityRecordMapper.getUserActivityGoodsNum(goodsId, activityId, userId); + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java index b1e9c25..ac9260d 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.goods.service.impl.activity; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; @@ -14,14 +15,16 @@ import com.ruoyi.goods.domain.vo.*; import com.ruoyi.goods.mapper.activity.ActivityMapper; import com.ruoyi.goods.service.activity.ActivityGoodsService; +import com.ruoyi.goods.service.activity.ActivityRecordService; import com.ruoyi.goods.service.activity.ActivityService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.goods.service.activity.ActivityTotalService; import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto; import com.ruoyi.system.api.domain.dto.MerPageDto; import com.ruoyi.system.api.domain.dto.MgtBaseBathDto; import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; +import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo; import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo; import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo; @@ -57,6 +60,9 @@ @Resource private ActivityTotalService activityTotalService; + + @Resource + private ActivityRecordService activityRecordService; @Resource private RemoteShopService remoteShopService; @@ -145,6 +151,8 @@ activityGoods.setActivityNumber(dto.getActivityNumber()); activityGoods.setActivityDeadline(activity.getActivityEndTime()); activityGoods.setSellOutFlag(0); + activityGoods.setPurchaseLimitationFlag(activity.getPurchaseLimitationFlag()); + activityGoods.setLimitNumber(activity.getLimitNumber()); return activityGoods; } ).collect(Collectors.toList()); @@ -315,4 +323,35 @@ public List<AppActivityPageVo> pageAppActivity(Page page, Long shopId){ return activityMapper.pageAppActivity(page, shopId); } + + /** + * @description 获取用户活动商品信息 + * @author jqs + * @date 2023/7/6 16:18 + * @param activityGoodsGetDto + * @return ActivityGoodsGetVo + */ + @Override + public ActivityGoodsGetVo getUserActivityGoods(ActivityGoodsGetDto activityGoodsGetDto){ + ActivityGoodsGetVo activityGoodsGetVo = new ActivityGoodsGetVo(); + String activityId = activityGoodsGetDto.getActivityId(); + String goodsId = activityGoodsGetDto.getGoodsId(); + Activity activity = this.getById(activityId); + ActivityGoods activityGoods = activityGoodsService.getByGoodsId(activityId,goodsId); + activityGoodsGetVo.setActivityPrice(activityGoods.getActivityPrice()); + activityGoodsGetVo.setActivitySubscription(activityGoods.getActivitySubscription()); + activityGoodsGetVo.setActivityStatus(activity.getActivityStatus()); + Integer availableBuyNum = activityGoods.getActivityNumber() - activityGoods.getSalesNumber(); + //限购判断 + if(activityGoods.getPurchaseLimitationFlag()==1){ + Integer buyNum = activityRecordService.getUserActivityGoodsNum(goodsId,activityId,activityGoodsGetDto.getUserId()); + Integer limitBuyNum = activityGoods.getLimitNumber() - buyNum; + if(limitBuyNum<availableBuyNum){ + availableBuyNum = limitBuyNum; + } + } + activityGoodsGetVo.setPurchaseLimitationFlag(activity.getPurchaseLimitationFlag()); + activityGoodsGetVo.setAvailableBuyNum(availableBuyNum); + return activityGoodsGetVo; + } } 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 d00f006..ff358d3 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 @@ -14,12 +14,14 @@ import com.ruoyi.goods.domain.vo.*; import com.ruoyi.goods.mapper.goods.GoodsMapper; import com.ruoyi.goods.service.activity.ActivityGoodsService; +import com.ruoyi.goods.service.activity.ActivityRecordService; import com.ruoyi.goods.service.activity.ActivityService; import com.ruoyi.goods.service.goods.GoodsFileService; import com.ruoyi.goods.service.goods.GoodsService; import com.ruoyi.goods.service.goods.GoodsTotalService; import com.ruoyi.goods.service.goods.ShopGoodsService; import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.AppActivityGoodsPageDto; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; import com.ruoyi.system.api.domain.poji.config.SysClassification; import com.ruoyi.system.api.domain.poji.goods.Goods; @@ -66,6 +68,9 @@ @Resource private ActivityService activityService; + + @Resource + private ActivityRecordService activityRecordService; /** * @description 获取推荐商品列表 @@ -175,7 +180,7 @@ } //活动商品判断 if(appGoodsInfoGetDto.getActivityFlag()==1){ - ActivityGoods activityGoods = activityGoodsService.getByGoodsId(goods.getGoodsId()); + ActivityGoods activityGoods = activityGoodsService.getByGoodsId(appGoodsInfoGetDto.getActivityId(),goods.getGoodsId()); //原价取较大值 if(shopGoods!=null&&goods.getSalesPrice().compareTo(shopGoods.getSalesPrice())>0){ appGoodsInfoVo.setSalesPrice(goods.getSalesPrice()); @@ -184,12 +189,26 @@ appGoodsInfoVo.setActivityPrice(activityGoods.getActivityPrice()); appGoodsInfoVo.setSalesNum(activityGoods.getSalesNumber()); appGoodsInfoVo.setActivityDeadline(activityGoods.getActivityDeadline()); + appGoodsInfoVo.setTimestamp(activityGoods.getActivityDeadline().getTime()); + Integer availableBuyNum = 0; //售罄判断 if(activityGoods.getActivityNumber().equals(activityGoods.getSalesNumber())){ appGoodsInfoVo.setSellOutFlag(1); }else{ + availableBuyNum = activityGoods.getActivityNumber() - activityGoods.getSalesNumber(); appGoodsInfoVo.setSellOutFlag(0); } + appGoodsInfoVo.setActivityId(appGoodsInfoGetDto.getActivityId()); + //限购判断 + appGoodsInfoVo.setPurchaseLimitationFlag(activityGoods.getPurchaseLimitationFlag()); + if(activityGoods.getPurchaseLimitationFlag()==1){ + Integer buyNum = activityRecordService.getUserActivityGoodsNum(goods.getGoodsId(),activityGoods.getActivityId(),appGoodsInfoGetDto.getUserId()); + Integer limitBuyNum = activityGoods.getLimitNumber() - buyNum; + if(limitBuyNum<availableBuyNum){ + availableBuyNum = limitBuyNum; + } + } + appGoodsInfoVo.setAvailableBuyNum(availableBuyNum); }else{ appGoodsInfoVo.setActivityFlag(0); } @@ -293,7 +312,11 @@ */ @Override public MgtGoodsTotalVo getMgtGoodsTotal(){ - return goodsMapper.getMgtGoodsTotal(); + MgtGoodsTotalVo goodsTotalVo = goodsMapper.getMgtGoodsTotal(); + LambdaQueryWrapper<Goods> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Goods::getDelFlag,0); + goodsTotalVo.setGoodsTotal(this.count(queryWrapper)); + return goodsTotalVo; } /** @@ -508,4 +531,34 @@ public List<MerGoodsPriceListVo> listGoodsPriceByGoodsId(String goodsIds){ return goodsMapper.listGoodsPriceByGoodsId(goodsIds); } + + + /** + * @description 分页获取活动商品 + * @author jqs + * @date 2023/7/6 9:40 + * @param page + * @param appActivityGoodsPageDto + * @return List<AppSimpleActivityGoodsVo> + */ + @Override + public List<AppSimpleActivityGoodsVo> pageAppActivityGoods(Page page, AppActivityGoodsPageDto appActivityGoodsPageDto){ + // 获取搜索结果的商品列表 + List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsMapper.pageAppActivityGoods(page, appActivityGoodsPageDto); + // 计算销售百分比和设置时间戳 + for (AppSimpleActivityGoodsVo appSimpleActivityGoodsVo : appSimpleGoodsVoList) { + int activityNumber = appSimpleActivityGoodsVo.getActivityNumber(); + int salesNumber = appSimpleActivityGoodsVo.getSalesNumber(); + BigDecimal salesPercent = BigDecimal.ZERO; + // 计算销售百分比 + if (activityNumber != 0) { + salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber), 2, BigDecimal.ROUND_HALF_UP); + } + // 设置销售百分比和时间戳 + appSimpleActivityGoodsVo.setSalesPercent(salesPercent); + appSimpleActivityGoodsVo.setTimestamp(appSimpleActivityGoodsVo.getEndTime().getTime()); + } + // 返回结果 + return appSimpleGoodsVoList; + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml index 0c0ad62..f9884da 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityRecordMapper.xml @@ -15,4 +15,12 @@ FROM t_activity_record WHERE del_flag = 0 </select> + + <select id="getUserActivityGoodsNum" resultType="java.lang.Integer"> + SELECT + IFNULL(SUM(buy_num),0) + FROM t_activity_record + WHERE del_flag = 0 AND activity_id = #{activityId} AND goods_id = #{goodsId} AND user_id = #{userId} + + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml index b29f661..9d734ed 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 @@ -392,10 +392,10 @@ <select id="getMgtGoodsTotal" resultType="com.ruoyi.goods.domain.vo.MgtGoodsTotalVo"> SELECT - COUNT(tgt.goods_id) goodsTotal, - IFNULL(tgt.buy_num_count,0) buyNumCount, - IFNULL(tgt.buy_money_total,0) buyMoneyTotal - FROM t_goods_total tgt + SUM(IFNULL(tgt.buy_num_count,0)) buyNumCount, + SUM(IFNULL(tgt.buy_money_total,0)) buyMoneyTotal + FROM t_goods_total tgt,t_goods tg + WHERE tg.goods_id = tgt.goods_id AND tg.del_flag = 0 </select> <update id="deleteGoodsClass"> @@ -452,4 +452,33 @@ 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> + + <select id="pageAppActivityGoods" resultType="com.ruoyi.goods.domain.vo.AppSimpleActivityGoodsVo"> + SELECT + tg.goods_id goodsId, + tg.goods_name goodsName, + tg.goods_introduction goodsIntroduction, + tg.goods_type goodsType, + CASE tg.goods_type + WHEN 1 THEN '周期' + WHEN 2 THEN '服务' + WHEN 3 THEN '体验' + WHEN 4 THEN '单品' + END goodsTag, + GREATEST(tg.sales_price, IFNULL(tsg.sales_price, 0.00)) salesPrice, + tag.activity_price activityPrice, + tgf.file_url goodsPicture, + tg.goods_tags goodsNurses, + tag.activity_number activityNumber, + tag.sales_number salesNumber, + tag.activity_deadline endTime + FROM t_activity_goods tag + INNER JOIN t_goods tg ON tg.goods_id = tag.goods_id + LEFT JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 + LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{param.shopId} + WHERE tg.del_flag = 0 AND tg.goods_status = 1 AND tag.activity_id = #{param.activityId} + ORDER BY tg.create_time DESC + </select> + + </mapper> diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java index b836692..17e9be2 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java @@ -1,16 +1,16 @@ package com.ruoyi.member.domain.pojo.member; -import java.math.BigDecimal; -import java.util.Date; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; /** * <p> @@ -42,7 +42,7 @@ * 商户id */ @TableField("shop_id") - private Integer shopId; + private Long shopId; /** * 总积分 */ diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java index f4d20cb..f638059 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java @@ -80,7 +80,7 @@ * 商户id */ @TableField("shop_id") - private Integer shopId; + private Long shopId; /** * 建议类型1.平台2.门店 */ diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java index a4746a7..27aa8ac 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java @@ -4,14 +4,9 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.order.domain.dto.AppPlaceOrderDto; -import com.ruoyi.order.domain.dto.AppSureOrderDto; -import com.ruoyi.order.domain.dto.AppUserOrderPageDto; +import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.Order; -import com.ruoyi.order.domain.vo.AppPlaceOrderVo; -import com.ruoyi.order.domain.vo.AppSureOrderVo; -import com.ruoyi.order.domain.vo.AppUserOrderGetVo; -import com.ruoyi.order.domain.vo.AppUserOrderPageVo; +import com.ruoyi.order.domain.vo.*; import com.ruoyi.order.service.order.OrderService; import com.ruoyi.system.api.domain.dto.AppBaseGetDto; import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; @@ -61,6 +56,21 @@ return R.ok(appSureOrderVo); } + @RequestMapping(value = "/panicBuyGoods", method = RequestMethod.POST) + @ApiOperation(value = "抢购商品") + public R<AppPanicBuyVo> panicBuyGoods(@RequestBody AppPanicBuyDto appPanicBuyDto) { + Long userId = SecurityUtils.getUserId(); + if(userId!=null){ + Member member = memberService.getMember(userId).getData(); + appPanicBuyDto.setUserId(userId); + if(member!=null&&member.getRelationShopId()!=null){ + appPanicBuyDto.setShopId(member.getRelationShopId()); + } + } + AppPanicBuyVo panicBuyGoods = orderService.panicBuyGoods(appPanicBuyDto); + return R.ok(panicBuyGoods); + } + @RequestMapping(value = "/placeOrder", method = RequestMethod.POST) @ApiOperation(value = "创建订单") public R<AppPlaceOrderVo> placeOrder(@RequestBody AppPlaceOrderDto appPlaceOrderDto) { @@ -84,6 +94,29 @@ return R.ok(appPlaceOrderVo); } + @RequestMapping(value = "/placeActivityOrder", method = RequestMethod.POST) + @ApiOperation(value = "创建活动订单") + public R<AppPlaceOrderVo> placeActivityOrder(@RequestBody AppPlaceActivityDto appPlaceActivityDto) { + Long userId = SecurityUtils.getUserId(); + if(userId!=null){ + Member member = memberService.getMember(userId).getData(); + appPlaceActivityDto.setUserId(userId); + if(member!=null&&member.getRelationShopId()!=null){ + appPlaceActivityDto.setShopId(member.getRelationShopId()); + } + if(member.getBindingFlag()!=1){ + //绑定商户 + AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); + appMemberBindingDto.setShopId(appPlaceActivityDto.getShopId()); + appMemberBindingDto.setUserId(userId); + appMemberBindingDto.setBindingFlag(1); + memberService.updateMemberBinding(appMemberBindingDto); + } + } + AppPlaceOrderVo appPlaceOrderVo = orderService.placeActivityOrder(appPlaceActivityDto); + return R.ok(appPlaceOrderVo); + } + @RequestMapping(value = "/pageUserOrder", method = RequestMethod.POST) @ApiOperation(value = "分页获取用户订单") public R<Page<AppUserOrderPageVo>> pageUserOrder(@RequestBody AppUserOrderPageDto appUserOrderPageDto) { diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPanicBuyDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPanicBuyDto.java new file mode 100644 index 0000000..f654147 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPanicBuyDto.java @@ -0,0 +1,28 @@ +package com.ruoyi.order.domain.dto; + +import com.ruoyi.system.api.domain.dto.AppBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName AppPanicBuyDto + * @Description TODO + * @Author jqs + * @Date 2023/7/6 11:30 + * @Version 1.0 + */ +@Data +public class AppPanicBuyDto extends AppBaseDto { + + @ApiModelProperty(value = "shopId",hidden = true) + private Long shopId; + + @ApiModelProperty(value = "活动Id") + private String activityId; + + @ApiModelProperty(value = "商品id") + private String goodsId; + + @ApiModelProperty(value = "购买数量") + private Integer buyNum; +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java new file mode 100644 index 0000000..b8b3a3f --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java @@ -0,0 +1,36 @@ +package com.ruoyi.order.domain.dto; + +import com.ruoyi.system.api.domain.dto.AppBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName AppPlaceActivityDto + * @Description TODO + * @Author jqs + * @Date 2023/7/6 17:50 + * @Version 1.0 + */ +@Data +public class AppPlaceActivityDto extends AppBaseDto { + + @ApiModelProperty(value = "shopId",hidden = true) + private Long shopId; + + + @ApiModelProperty(value = "活动Id") + private String activityId; + + @ApiModelProperty(value = "商品id") + private String goodsId; + + @ApiModelProperty(value = "购买数量") + private Integer buyNum; + + @ApiModelProperty(value = "支付方式1.全款2.订金") + private Integer payType; + + @ApiModelProperty(value = "订单备注") + private String orderRemark; + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityOrderDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityOrderDto.java new file mode 100644 index 0000000..8d9d0c8 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityOrderDto.java @@ -0,0 +1,34 @@ +package com.ruoyi.order.domain.dto; + +import com.ruoyi.system.api.domain.dto.AppBaseGetDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName AppPlaceActivityOrderDto + * @Description TODO + * @Author jqs + * @Date 2023/7/6 15:26 + * @Version 1.0 + */ +@Data +public class AppPlaceActivityOrderDto extends AppBaseGetDto { + + @ApiModelProperty(value = "shopId",hidden = true) + private Long shopId; + + @ApiModelProperty(value = "支付方式1.全款2.订金") + private Integer payType; + + @ApiModelProperty(value = "订单备注") + private String orderRemark; + + @ApiModelProperty(value = "商品id") + private String goodsId; + + @ApiModelProperty(value = "购买数量") + private Integer buyNum; + + + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppSureOrderDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppSureOrderDto.java index 45d21f8..78343e8 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppSureOrderDto.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppSureOrderDto.java @@ -19,7 +19,7 @@ @ApiModelProperty(value = "shopId",hidden = true) private Long shopId; - @ApiModelProperty(value = "购物车列表") + @ApiModelProperty(value = "购物商品列表") List<AppBuyGoodsDto> appBuyGoodsDtoList; } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/OrderGoods.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/OrderGoods.java index 2b1c95c..663c98d 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/OrderGoods.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/OrderGoods.java @@ -1,15 +1,15 @@ package com.ruoyi.order.domain.pojo.order; -import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; /** * <p> @@ -88,6 +88,14 @@ @TableField("goods_type") private Integer goodsType; + @TableField("goods_name") + private String goodsName; + + @TableField("goods_picture") + private String goodsPicture; + + + @Override protected Serializable pkVal() { diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppPanicBuyVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppPanicBuyVo.java new file mode 100644 index 0000000..42fa93d --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppPanicBuyVo.java @@ -0,0 +1,64 @@ +package com.ruoyi.order.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @ClassName AppPanicBuyVo + * @Description TODO + * @Author jqs + * @Date 2023/7/6 14:39 + * @Version 1.0 + */ +@Data +public class AppPanicBuyVo { + + @ApiModelProperty(value = "商品总价") + private BigDecimal orderGoodsMoney; + + @ApiModelProperty(value = "订单支付订金") + private BigDecimal orderPayDeposit; + + @ApiModelProperty(value = "订单支付金额") + private BigDecimal orderPayMoney; + + @ApiModelProperty(value = "活动Id") + private String activityId; + + @ApiModelProperty(value = "商品id") + private String goodsId; + + @ApiModelProperty(value = "商品名称") + private String goodsName; + + @ApiModelProperty(value = "商品简介") + private String goodsIntroduction; + + @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") + private Integer goodsType; + + @ApiModelProperty(value = "商品图片") + private String goodsPicture; + + @ApiModelProperty(value = "购买数量") + private Integer buyNum; + + @ApiModelProperty(value = "商品售价") + private BigDecimal goodsPrice; + + @ApiModelProperty(value = "活动售价") + private BigDecimal activityPrice; + + @ApiModelProperty(value = "商品总价") + private BigDecimal goodsTotalPrice; + + @ApiModelProperty(value = "商品订金") + private BigDecimal goodsDeposit; + + @ApiModelProperty(value = "商品实际价格") + private BigDecimal goodsRealPrice; + + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderGoodsVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderGoodsVo.java index ec26c47..be5a4a1 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderGoodsVo.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderGoodsVo.java @@ -41,6 +41,9 @@ @ApiModelProperty(value = "商品售价") private BigDecimal goodsPrice; + @ApiModelProperty(value = "活动售价") + private BigDecimal activityPrice; + @ApiModelProperty(value = "商品总价") private BigDecimal goodsTotalPrice; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderVo.java index a13e254..adc9093 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderVo.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderVo.java @@ -32,8 +32,4 @@ @ApiModelProperty(value = "订单商品列表") List<AppSureOrderGoodsVo> appSureOrderGoodsVoList; - - - - } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index c2de81f..bde96b6 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -83,6 +83,8 @@ @Resource private RemoteCouponService remoteCouponService; + @Resource + private RemoteActivityService remoteActivityService; /** * @description: buyGoods @@ -135,7 +137,6 @@ //商品图片 goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); appSureOrderGoodsVo.setGoodsPicture(goodsFile.getFileUrl()); - buyNum = appBuyGoodsDto.getBuyNum(); appSureOrderGoodsVo.setBuyNum(buyNum); goodsPrice = goods.getSalesPrice(); //商户定制价格 @@ -209,6 +210,84 @@ } /** + * @description 抢购商品 + * @author jqs + * @date 2023/7/6 11:45 + * @param appPanicBuyDto + * @return AppSureOrderVo + */ + @Override + public AppPanicBuyVo panicBuyGoods(AppPanicBuyDto appPanicBuyDto){ + Long userId = appPanicBuyDto.getUserId(); + AppPanicBuyVo appPanicBuyVo = new AppPanicBuyVo(); + String activityId = appPanicBuyDto.getActivityId(); + String goodsId = appPanicBuyDto.getGoodsId(); + Integer buyNum = appPanicBuyDto.getBuyNum(); + BigDecimal buyNumBig; + BigDecimal goodsPrice; + BigDecimal goodsTotalPrice; + BigDecimal goodsRealPrice; + BigDecimal goodsDeposit; + BigDecimal goodsActivityPrice; + GoodsFile goodsFile; + BigDecimal orderGoodsMoney = new BigDecimal("0.00"); + BigDecimal orderPayDeposit = new BigDecimal("0.00"); + BigDecimal orderPayMoney = new BigDecimal("0.00"); + ActivityGoodsGetDto activityGoodsGetDto = new ActivityGoodsGetDto(); + activityGoodsGetDto.setActivityId(activityId); + activityGoodsGetDto.setGoodsId(goodsId); + activityGoodsGetDto.setUserId(userId); + ActivityGoodsGetVo activityGoodsGetVo = remoteActivityService.getUserActivityGoods(activityGoodsGetDto).getData(); + if(activityGoodsGetVo.getActivityStatus()==0){ + throw new ServiceException(AppErrorConstant.ACTIVITY_NO_START); + } + if(activityGoodsGetVo.getActivityStatus()==2){ + throw new ServiceException(AppErrorConstant.ACTIVITY_END); + } + if(activityGoodsGetVo.getAvailableBuyNum()<1){ + throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); + } + Goods goods = remoteGoodsService.getGoods(goodsId).getData(); + appPanicBuyVo.setGoodsId(goodsId); + appPanicBuyVo.setGoodsName(goods.getGoodsName()); + appPanicBuyVo.setGoodsIntroduction(goods.getGoodsIntroduction()); + appPanicBuyVo.setGoodsType(goods.getGoodsType()); + //商品图片 + goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); + appPanicBuyVo.setGoodsPicture(goodsFile.getFileUrl()); + appPanicBuyVo.setBuyNum(buyNum); + goodsPrice = goods.getSalesPrice(); + //商户定制价格 + AppShopGoodsGetDto appShopGoodsGetDto = new AppShopGoodsGetDto(); + appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); + appShopGoodsGetDto.setShopId(appPanicBuyDto.getShopId()); + ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); + if (shopGoods != null) { + goodsPrice = shopGoods.getSalesPrice(); + } + appPanicBuyVo.setGoodsPrice(goodsPrice); + buyNumBig = BigDecimal.valueOf(buyNum); + goodsActivityPrice = activityGoodsGetVo.getActivityPrice(); + goodsTotalPrice = goodsActivityPrice.multiply(buyNumBig); + goodsRealPrice = goodsTotalPrice; + appPanicBuyVo.setActivityPrice(goodsActivityPrice); + appPanicBuyVo.setGoodsTotalPrice(goodsTotalPrice); + appPanicBuyVo.setGoodsRealPrice(goodsRealPrice); + goodsDeposit = activityGoodsGetVo.getActivitySubscription(); + if (goodsDeposit == null) { + goodsDeposit = new BigDecimal("0.00"); + } + appPanicBuyVo.setGoodsDeposit(goodsDeposit); + orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); + orderPayDeposit = orderPayDeposit.add(goodsDeposit); + orderPayMoney = orderPayMoney.add(goodsRealPrice); + appPanicBuyVo.setOrderGoodsMoney(orderGoodsMoney); + appPanicBuyVo.setOrderPayDeposit(orderPayDeposit); + appPanicBuyVo.setOrderPayMoney(orderPayMoney); + return appPanicBuyVo; + } + + /** * 创建订单 * * @param appPlaceOrderDto @@ -228,6 +307,7 @@ Integer goodsNum = 0; String memberCouponId; Goods goods; + GoodsFile goodsFile; BigDecimal goodsPrice; BigDecimal goodsTotalPrice; BigDecimal goodsRealPrice; @@ -239,7 +319,6 @@ BigDecimal discountMoney = new BigDecimal("0.00"); BigDecimal discountPercent; BigDecimal goodsDeposit; - GoodsFile goodsFile; Integer useCoupon; BigDecimal orderGoodsMoney = new BigDecimal("0.00"); BigDecimal couponDiscount = new BigDecimal("0.00"); @@ -334,6 +413,8 @@ orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); orderGoods.setServiceNum(serviceNum); orderGoods.setGoodsType(goods.getGoodsType()); + orderGoods.setGoodsName(goods.getGoodsName()); + orderGoods.setGoodsPicture(goodsFile.getFileUrl()); orderGoodsService.save(orderGoods); //清空购物车 AppShoppingCartDelDto appShoppingCartDelDto = new AppShoppingCartDelDto(); @@ -398,6 +479,174 @@ return appPlaceOrderVo; } + + /** + * @description 创建活动订单 + * @author jqs + * @date 2023/7/6 17:59 + * @param appPlaceActivityDto + * @return AppPlaceOrderVo + */ + @Override + public AppPlaceOrderVo placeActivityOrder( AppPlaceActivityDto appPlaceActivityDto){ + Long userId = appPlaceActivityDto.getUserId(); + AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo(); + AppSureOrderGoodsVo appSureOrderGoodsVo; + String activityId = appPlaceActivityDto.getActivityId(); + String goodsId = appPlaceActivityDto.getGoodsId(); + Integer buyNum = appPlaceActivityDto.getBuyNum(); + BigDecimal buyNumBig; + Integer serviceNum; + Integer goodsNum = 0; + Goods goods; + GoodsFile goodsFile; + BigDecimal goodsPrice; + BigDecimal goodsTotalPrice; + BigDecimal goodsRealPrice; + BigDecimal discountMoney = new BigDecimal("0.00"); + BigDecimal discountPercent; + BigDecimal goodsDeposit; + Integer useCoupon; + BigDecimal orderGoodsMoney = new BigDecimal("0.00"); + BigDecimal couponDiscount = new BigDecimal("0.00"); + BigDecimal orderPayDeposit = new BigDecimal("0.00"); + BigDecimal orderPayMoney = new BigDecimal("0.00"); + ActivityGoodsGetDto activityGoodsGetDto = new ActivityGoodsGetDto(); + activityGoodsGetDto.setActivityId(activityId); + activityGoodsGetDto.setGoodsId(goodsId); + activityGoodsGetDto.setUserId(userId); + ActivityGoodsGetVo activityGoodsGetVo = remoteActivityService.getUserActivityGoods(activityGoodsGetDto).getData(); + if(activityGoodsGetVo.getActivityStatus()==0){ + throw new ServiceException(AppErrorConstant.ACTIVITY_NO_START); + } + if(activityGoodsGetVo.getActivityStatus()==2){ + throw new ServiceException(AppErrorConstant.ACTIVITY_END); + } + if(activityGoodsGetVo.getAvailableBuyNum()<1){ + throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); + } + String orderId = IdUtils.simpleUUID(); + String orderNo = CodeFactoryUtil.getShopOrderNo(); + OrderGoods orderGoods; + String orderGoodsId; + HashSet<String> goodsTypeSet = new HashSet<>(); + appSureOrderGoodsVo = new AppSureOrderGoodsVo(); + useCoupon = 0; + goodsId = appPlaceActivityDto.getGoodsId(); + goods = remoteGoodsService.getGoods(goodsId).getData(); + appSureOrderGoodsVo.setGoodsId(goodsId); + appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); + appSureOrderGoodsVo.setGoodsIntroduction(goods.getGoodsIntroduction()); + appSureOrderGoodsVo.setGoodsType(goods.getGoodsType()); + //商品图片 + goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); + appSureOrderGoodsVo.setGoodsPicture(goodsFile.getFileUrl()); + buyNum = appPlaceActivityDto.getBuyNum(); + appSureOrderGoodsVo.setBuyNum(buyNum); + goodsPrice = goods.getSalesPrice(); + serviceNum = goods.getServiceNum(); + //活动价格 + goodsPrice = activityGoodsGetVo.getActivityPrice(); + appSureOrderGoodsVo.setGoodsPrice(goodsPrice); + buyNumBig = BigDecimal.valueOf(buyNum); + goodsTotalPrice = goodsPrice.multiply(buyNumBig); + goodsRealPrice = goodsTotalPrice; + appSureOrderGoodsVo.setUseCoupon(useCoupon); + appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice); + appSureOrderGoodsVo.setCouponDiscount(discountMoney); + appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); + goodsDeposit = goods.getSubscription(); + if (goodsDeposit == null) { + goodsDeposit = new BigDecimal("0.00"); + } + appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); + goodsNum = goodsNum + buyNum; + orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); + couponDiscount = couponDiscount.add(discountMoney); + orderPayDeposit = orderPayDeposit.add(goodsDeposit); + orderPayMoney = orderPayMoney.add(goodsRealPrice); + //创建OrderGoods + orderGoods = new OrderGoods(); + orderGoodsId = IdUtils.simpleUUID(); + orderGoods.setOrderGoodsId(orderGoodsId); + orderGoods.setDelFlag(0); + orderGoods.setOrderId(orderId); + orderGoods.setGoodsId(goodsId); + orderGoods.setBuyNum(buyNum); + orderGoods.setGoodsPrice(goodsPrice); + orderGoods.setGoodsTotalMoney(orderGoodsMoney); + orderGoods.setGoodsReceivableMoney(goodsRealPrice); + orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); + orderGoods.setServiceNum(serviceNum); + orderGoods.setGoodsType(goods.getGoodsType()); + orderGoods.setGoodsName(goods.getGoodsName()); + orderGoods.setGoodsPicture(goodsFile.getFileUrl()); + orderGoodsService.save(orderGoods); + //清空购物车 + AppShoppingCartDelDto appShoppingCartDelDto = new AppShoppingCartDelDto(); + appShoppingCartDelDto.setGoodsId(goodsId); + appShoppingCartDelDto.setUserId(userId); + remoteShoppingCartService.deleteShoppingCart(appShoppingCartDelDto); + if (goods.getGoodsType() == 1) { + goodsTypeSet.add("周期"); + } else if (goods.getGoodsType() == 2) { + goodsTypeSet.add("服务"); + } else if (goods.getGoodsType() == 3) { + goodsTypeSet.add("体验"); + } else if (goods.getGoodsType() == 4) { + goodsTypeSet.add("单品"); + } + + Order order = new Order(); + order.setOrderId(orderId); + order.setDelFlag(0); + //为对接支付 直接付款成功 + order.setOrderStatus(1); + order.setOrderNo(orderNo); + order.setOrderFrom(1); + order.setShopId(appPlaceActivityDto.getShopId()); + order.setUserId(userId); + order.setOrderMoney(orderGoodsMoney); + order.setCouponMoney(couponDiscount); + order.setDiscountMoney(couponDiscount); + order.setReceivableMoney(orderPayMoney); + order.setReceivableDeposit(orderPayDeposit); + order.setChangeReceivableMoney(orderPayMoney); + order.setPayType(appPlaceActivityDto.getPayType()); + if (order.getPayType() == 1) { + order.setPayMoney(orderPayMoney); + order.setOnlinePayMoney(orderPayMoney); + appPlaceOrderVo.setPayMoney(orderPayMoney); + appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); + order.setCloseFlag(1); + } else if (order.getPayType() == 2) { + order.setPayMoney(orderPayDeposit); + order.setOnlinePayMoney(orderPayDeposit); + appPlaceOrderVo.setPayMoney(orderPayDeposit); + appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); + order.setCloseFlag(0); + } + order.setOrderRemark(appPlaceActivityDto.getOrderRemark()); + order.setGoodsNum(goodsNum); + order.setCreateTime(new Date()); + this.save(order); + //更新用户商品类型 + if (goodsTypeSet != null && goodsTypeSet.size() > 0) { + AppMemberGoodsTypeDto appMemberGoodsTypeDto = new AppMemberGoodsTypeDto(); + appMemberGoodsTypeDto.setUserId(userId); + appMemberGoodsTypeDto.setGoodsTypeSet(goodsTypeSet); + remoteMemberService.updateMemberGoodsType(appMemberGoodsTypeDto); + } + appPlaceOrderVo.setOrderId(orderId); + appPlaceOrderVo.setOrderNo(orderNo); + + //调用支付 + + + return appPlaceOrderVo; + } + + /** * 分页获取用户订单 @@ -878,6 +1127,7 @@ String orderNo = CodeFactoryUtil.getShopOrderNo(); OrderGoods orderGoods; String orderGoodsId; + GoodsFile goodsFile; BigDecimal cycleMoney = new BigDecimal("0.00"); BigDecimal experienceMoney = new BigDecimal("0.00"); BigDecimal serviceMoney = new BigDecimal("0.00"); @@ -886,6 +1136,7 @@ goodsId = appBuyGoodsDto.getGoodsId(); memberCouponId = appBuyGoodsDto.getMemberCouponId(); goods = remoteGoodsService.getGoods(goodsId).getData(); + goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); buyNum = appBuyGoodsDto.getBuyNum(); goodsPrice = goods.getSalesPrice(); serviceNum = goods.getServiceNum(); @@ -949,6 +1200,8 @@ orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); orderGoods.setServiceNum(serviceNum); orderGoods.setGoodsType(goods.getGoodsType()); + orderGoods.setGoodsName(goods.getGoodsName()); + orderGoods.setGoodsPicture(goodsFile.getFileUrl()); orderGoodsService.save(orderGoods); switch(orderGoods.getGoodsType()){ case 1: @@ -2306,10 +2559,17 @@ .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); } // 遍历列表,设置店铺名称、用户名称和未支付金额 + String userInfo; + String mobile; for (MgtShopAllOrderPageVo mgtShopOrderPageVo : shopAllOrderPageVoList) { if (userMap != null && !userMap.isEmpty()) { if (userMap.get(mgtShopOrderPageVo.getUserId()) != null) { - mgtShopOrderPageVo.setUserInfo(userMap.get(mgtShopOrderPageVo.getUserId()).getNickName()+"("+userMap.get(mgtShopOrderPageVo.getUserId()).getUserMobile()+")"); + userInfo = userMap.get(mgtShopOrderPageVo.getUserId()).getNickName(); + mobile = userMap.get(mgtShopOrderPageVo.getUserId()).getUserMobile(); + if(StringUtils.isNotBlank(mobile)){ + userInfo = userInfo + "(" + mobile + ")"; + } + mgtShopOrderPageVo.setUserInfo(userInfo); } } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java index 18d8088..fbdf2ad 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java @@ -34,6 +34,16 @@ AppSureOrderVo buyGoods(AppSureOrderDto appSureOrderDto); /** + * @description 抢购商品 + * @author jqs + * @date 2023/7/6 11:45 + * @param appPanicBuyDto + * @return AppSureOrderVo + */ + AppPanicBuyVo panicBuyGoods(AppPanicBuyDto appPanicBuyDto); + + + /** * 创建订单 * @param appPlaceOrderDto * @return @@ -41,6 +51,15 @@ AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto); /** + * @description 创建活动订单 + * @author jqs + * @date 2023/7/6 17:59 + * @param appPlaceActivityDto + * @return AppPlaceOrderVo + */ + AppPlaceOrderVo placeActivityOrder( AppPlaceActivityDto appPlaceActivityDto); + + /** * 分页获取用户订单 * @param page * @param appUserOrderPageDto diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index f2712b0..cf9518b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -472,7 +472,7 @@ SELECT COUNT(order_id) orderTotal, IFNULL(SUM(order_money),0) orderMoneyTotal - FROM t_order toc.create_time DESC + FROM t_order ORDER BY create_time DESC </select> <select id="totalOrderSecond" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> @@ -510,9 +510,9 @@ <select id="totalOrderThird" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT - COUNT(temp.order_id) shopOrderTotal, - IFNULL(SUM(temp.order_money),0) shopOrderMoneyTotal, - IFNULL(SUM(temp.pay_money),0) shopPayMoneyTotal FROM + COUNT(temp.order_id) activityOrderTotal, + IFNULL(SUM(temp.order_money),0) activityOrderMoneyTotal, + IFNULL(SUM(temp.pay_money),0) activityPayMoneyTotal FROM (SELECT toc.order_id,toc.order_money,toc.pay_money FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id @@ -1093,7 +1093,7 @@ COUNT(DISTINCT user_id) orderPerson FROM t_order WHERE del_flag = 0 AND order_from = 2 <if test="param.shopIdList != null and param.shopIdList.size() > 0"> - AND toc.shop_id IN + AND shop_id IN <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> #{item} </foreach> @@ -1111,10 +1111,10 @@ tog.goods_type mapKey, COUNT(DISTINCT toc.order_id) AS mapValueFirst, IFNULL(SUM(tog.goods_total_money),0) AS mapValueSecond, - COUNT(DISTINCT toc.user_id) AS mapValueThird, + COUNT(DISTINCT toc.user_id) AS mapValueThird FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id - WHERE toc.del_flag = 0 AND order_from = 2 + WHERE toc.del_flag = 0 AND toc.order_from = 2 <if test="param.shopIdList != null and param.shopIdList.size() > 0"> AND toc.shop_id IN <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> @@ -1128,12 +1128,12 @@ SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey, COUNT(DISTINCT order_id) AS mapValueFirst, - IFNULL(SUM(toc.order_money),0) AS mapValueSecond, + IFNULL(SUM(toc.order_money),0) AS mapValueSecond FROM t_order WHERE del_flag = 0 AND order_from = 2 AND create_time >= DATE_SUB(CURDATE(), INTERVAL 6 DAY) <if test="param.shopIdList != null and param.shopIdList.size() > 0"> - AND toc.shop_id IN + AND shop_id IN <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> #{item} </foreach> @@ -1151,7 +1151,7 @@ WHERE del_flag = 0 AND order_from = 2 AND create_time >= DATE_SUB(CURDATE(), INTERVAL 6 DAY) <if test="param.shopIdList != null and param.shopIdList.size() > 0"> - AND toc.shop_id IN + AND shop_id IN <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> #{item} </foreach> @@ -1166,7 +1166,7 @@ WHERE del_flag = 0 AND order_from = 2 AND create_time >= DATE_SUB(CURDATE(), INTERVAL 6 DAY) <if test="param.shopIdList != null and param.shopIdList.size() > 0"> - AND toc.shop_id IN + AND shop_id IN <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")"> #{item} </foreach> diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java index 1c70932..d2a9d9c 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java @@ -254,7 +254,7 @@ @RequestMapping(value = "/mgtShopAuth", method = RequestMethod.POST) @Log(title = "商户进件管理", businessType = BusinessType.UPDATE,operContent = "商户进件") @ApiOperation(value = "平台商户进件") - public R mgtShopAuth(@RequestBody MgtShopAuthDto mgtShopAuthDto) { + public R mgtShopAuth(@Validated @RequestBody MgtShopAuthDto mgtShopAuthDto) { Long userId = SecurityUtils.getUserId(); mgtShopAuthDto.setUserId(userId); shopService.mgtShopAuth(mgtShopAuthDto); diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthDto.java index 2577bd0..af3a079 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthDto.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthDto.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; + /** * @ClassName Mgt * @Description TODO @@ -15,6 +17,7 @@ public class MgtShopAuthDto extends MgtBaseDto { @ApiModelProperty(value = "审核id") + @NotNull(message = "审核id不能为空") private String authId; /** * 商户id @@ -138,6 +141,41 @@ @ApiModelProperty(value = "补充说明") private String baDesc; + /** + * 受益人姓名 + */ + @ApiModelProperty(value = "受益人姓名") + private String uboName; + /** + * 受益人身份证号 + */ + @ApiModelProperty(value = "受益人身份证号") + private String uboIdCard; + /** + * 受益人身份证开始日期 + */ + @ApiModelProperty(value = "受益人身份证开始日期") + private String uboIcStartDate; + /** + * 受益人身份证有效日期 + */ + @ApiModelProperty(value = "受益人身份证有效日期") + private String uboIcEndDate; + /** + * 受益人身份证正面 + */ + @ApiModelProperty(value = "受益人身份证正面") + private String uboIcFront; + /** + * 受益人身份证背面 + */ + @ApiModelProperty(value = "受益人身份证背面") + private String uboIcBack; + /** + * 受益人身份证背面 + */ + @ApiModelProperty(value = "受益人居住地址") + private String uboIcAddress; } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopAuthentication.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopAuthentication.java index f6ef0d7..4144d92 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopAuthentication.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopAuthentication.java @@ -263,6 +263,43 @@ @TableField("ba_desc") private String baDesc; + /** + * 受益人姓名 + */ + @TableField("ubo_name") + private String uboName; + /** + * 受益人身份证号 + */ + @TableField("ubo_id_card") + private String uboIdCard; + /** + * 受益人身份证开始日期 + */ + @TableField("ubo_ic_start_date") + private String uboIcStartDate; + /** + * 受益人身份证有效日期 + */ + @TableField("ubo_ic_end_date") + private String uboIcEndDate; + /** + * 受益人身份证正面 + */ + @TableField("ubo_ic_front") + private String uboIcFront; + /** + * 受益人身份证背面 + */ + @TableField("ubo_ic_back") + private String uboIcBack; + + /** + * 受益人居住地址 + */ + @TableField("ubo_ic_address") + private String uboIcAddress; + @Override protected Serializable pkVal() { return this.authId; diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthGetVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthGetVo.java index dc81867..f03ec0f 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthGetVo.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthGetVo.java @@ -150,4 +150,43 @@ @ApiModelProperty(value = "拒绝理由") private String adRejectReason; + + /** + * 受益人姓名 + */ + @ApiModelProperty(value = "受益人姓名") + private String uboName; + /** + * 受益人身份证号 + */ + @ApiModelProperty(value = "受益人身份证号") + private String uboIdCard; + /** + * 受益人身份证开始日期 + */ + @ApiModelProperty(value = "受益人身份证开始日期") + private String uboIcStartDate; + /** + * 受益人身份证有效日期 + */ + @ApiModelProperty(value = "受益人身份证有效日期") + private String uboIcEndDate; + /** + * 受益人身份证正面 + */ + @ApiModelProperty(value = "受益人身份证正面") + private String uboIcFront; + /** + * 受益人身份证背面 + */ + @ApiModelProperty(value = "受益人身份证背面") + private String uboIcBack; + + /** + * 受益人身份证背面 + */ + @ApiModelProperty(value = "受益人居住地址") + private String uboIcAddress; + + } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java index 9c23ba2..f81f1dd 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java @@ -14,6 +14,9 @@ @Data public class MgtShopAuthPageVo extends MgtPageDto { + @ApiModelProperty(value = "审核id") + private String authId; + @ApiModelProperty(value = "商户id") private Long shopId; 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 d737425..7ac9ef6 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 @@ -497,6 +497,7 @@ <select id="pageMgtShopAuth" resultType="com.ruoyi.shop.domain.vo.MgtShopAuthPageVo"> SELECT + tsa.auth_id authId, ts.shop_id shopId, ts.shop_name shopName, ts.shopowner_name shopownerName, diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java index 93f2050..0435d5d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java @@ -450,7 +450,7 @@ @RequestMapping(value = "/listCity", method = RequestMethod.POST) @ApiOperation(value = "获取省市列表") public R<List<RegionVo>> listCity(){ - List<RegionVo> regionVoList = regionService.listRegionVo(); + List<RegionVo> regionVoList = regionService.listCityVo(); return R.ok(regionVoList); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Pop.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Pop.java index 5c82150..5ecd417 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Pop.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Pop.java @@ -1,16 +1,16 @@ package com.ruoyi.system.domain.pojo.config; -import com.baomidou.mybatisplus.annotation.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; /** * <p> @@ -75,6 +75,11 @@ @TableField("create_user_id") private Long createUserId; + /** + * 跳转类型1.门店详情2.秒杀活动3领券中心4.商城列表5.关于洪瑞堂 + */ + @TableField("jump_type") + private Integer jumpType; @Override protected Serializable pkVal() { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/QuickEntry.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/QuickEntry.java index 1f52896..63b04ff 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/QuickEntry.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/QuickEntry.java @@ -1,16 +1,16 @@ package com.ruoyi.system.domain.pojo.config; -import com.baomidou.mybatisplus.annotation.IdType; -import java.util.Date; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; /** * <p> @@ -70,6 +70,11 @@ @TableField("create_user_id") private Long createUserId; + /** + * 跳转类型1.门店详情2.秒杀活动3领券中心4.商城列表5.关于洪瑞堂 + */ + @TableField("jump_type") + private Integer jumpType; @Override protected Serializable pkVal() { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/RegionService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/RegionService.java index 8e7c69d..5cc9fa6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/RegionService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/RegionService.java @@ -24,4 +24,13 @@ * @return List<RegionVo> */ List<RegionVo> listRegionVo(); + + /** + * @description + * @author jqs + * @date 2023/6/12 15:20 + * @param + * @return List<RegionVo> + */ + List<RegionVo> listCityVo(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java index 8752237..ad962fe 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java @@ -259,24 +259,31 @@ case SHARE_INTEGRAL: customConfig.setConfigValue(mgtOtherConfigEditDto.getShareIntegral().toString()); this.saveOrUpdate(customConfig); + break; case SUGGEST_PLATFORM_INTEGRAL: customConfig.setConfigValue(mgtOtherConfigEditDto.getSuggestPlatformIntegral().toString()); this.saveOrUpdate(customConfig); + break; case SIGN_IN_INTEGRAL: customConfig.setConfigValue(mgtOtherConfigEditDto.getSignInIntegral().toString()); this.saveOrUpdate(customConfig); + break; case SUGGEST_SHOP_INTEGRAL: customConfig.setConfigValue(mgtOtherConfigEditDto.getSuggestShopIntegral().toString()); this.saveOrUpdate(customConfig); + break; case ORDER_AUTO_CANCEL_TIME: customConfig.setConfigValue(mgtOtherConfigEditDto.getOrderAutoCancelTime().toString()); this.saveOrUpdate(customConfig); + break; case PAY_MONEY_INTEGRAL: customConfig.setConfigValue(mgtOtherConfigEditDto.getPayMoneyIntegral().toString()); this.saveOrUpdate(customConfig); + break; case HOME_STYLE: customConfig.setConfigValue(mgtOtherConfigEditDto.getHomeStyle().toString()); this.saveOrUpdate(customConfig); + break; default: break; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/PopServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/PopServiceImpl.java index 4f497dc..d110c71 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/PopServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/PopServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.system.service.impl.config; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; import com.ruoyi.system.domain.dto.MgtPopEditDto; @@ -13,6 +14,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.ParseException; import java.util.Date; import java.util.List; @@ -65,6 +67,12 @@ // 设置创建时间和创建者ID pop.setCreateTime(new Date()); pop.setCreateUserId(mgtPopEditDto.getPopId()); + try { + pop.setShowStartTime(DateUtils.parseDate(mgtPopEditDto.getShowStartTime(),"yyyy-MM-dd")); + pop.setShowEndTime(DateUtils.parseDate(mgtPopEditDto.getShowEndTime(),"yyyy-MM-dd")); + } catch (ParseException e) { + throw new RuntimeException(e); + } // 保存或更新管理弹窗 this.saveOrUpdate(pop); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java index e5e9bb5..4e85a30 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/RegionServiceImpl.java @@ -39,10 +39,10 @@ * @date 2023/6/12 15:18 */ @Override - public List<RegionVo> listRegionVo() { - if (redisService.hasKey(SecurityConstant.REGION_LIST)) { + public List<RegionVo> listCityVo() { + if (redisService.hasKey(SecurityConstant.CITY_LIST)) { // 如果存在,则直接从缓存中获取并返回 - List<RegionVo> result = redisService.getCacheList(SecurityConstant.REGION_LIST); + List<RegionVo> result = redisService.getCacheList(SecurityConstant.CITY_LIST); return result; } else { // 如果不存在,则从数据库中查询并进行处理 @@ -75,6 +75,75 @@ } } // 将处理后的地区列表存入缓存中 + redisService.setCacheList(SecurityConstant.CITY_LIST, regionVoList1); + // 返回处理后的地区列表 + return regionVoList1; + } + } + + /** + * @param + * @return List<RegionVo> + * @description + * @author jqs + * @date 2023/6/12 15:18 + */ + @Override + public List<RegionVo> listRegionVo() { + if (redisService.hasKey(SecurityConstant.REGION_LIST)) { + // 如果存在,则直接从缓存中获取并返回 + List<RegionVo> result = redisService.getCacheList(SecurityConstant.REGION_LIST); + return result; + } else { + // 如果不存在,则从数据库中查询并进行处理 + List<RegionVo> regionVoList = regionMapper.listRegionVo(); + List<RegionVo> regionVoList1 = new ArrayList<>(); + List<RegionVo> regionVoList2 = new ArrayList<>(); + List<RegionVo> regionVoList3 = new ArrayList<>(); + // 将地区按照级别分别存放到不同的列表中 + for (RegionVo regionVo : regionVoList) { + if (regionVo.getLevel() == 1) { + regionVoList1.add(regionVo); + } + if (regionVo.getLevel() == 2) { + regionVoList2.add(regionVo); + } + if (regionVo.getLevel() == 3) { + regionVoList3.add(regionVo); + } + } + Iterator<RegionVo> regionVoIterator3; + RegionVo children; + // 将第三级地区挂到第二级地区下面 + for (RegionVo regionVo : regionVoList2) { + if (null == regionVo.getChildren()) { + regionVo.setChildren(new ArrayList<>()); + } + regionVoIterator3 = regionVoList3.iterator(); + while (regionVoIterator3.hasNext()) { + children = regionVoIterator3.next(); + if (regionVo.getId().equals(children.getParentId())) { + regionVo.getChildren().add(children); + regionVoIterator3.remove(); + } + } + } + Iterator<RegionVo> regionVoIterator2; + // 将第二级地区挂到第一级地区下面 + for (RegionVo regionVo : regionVoList1) { + if (null == regionVo.getChildren()) { + regionVo.setChildren(new ArrayList<>()); + } + regionVoIterator2 = regionVoList2.iterator(); + while (regionVoIterator2.hasNext()) { + children = regionVoIterator2.next(); + if (regionVo.getId().equals(children.getParentId())) { + regionVo.getChildren().add(children); + regionVoIterator2.remove(); + } + } + } + // 将处理后的地区列表存入缓存中 redisService.setCacheList(SecurityConstant.REGION_LIST, regionVoList1); // 返回处理后的地区列表 return regionVoList1; diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/QuickEntryMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/QuickEntryMapper.xml index d5113a6..b55693b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/QuickEntryMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/QuickEntryMapper.xml @@ -108,8 +108,8 @@ entry_url entryUrl, entry_name entryName, CASE target_type - WHEN 1 THEN '外部' - WHEN 2 THEN '内部' + WHEN 1 THEN '外链' + WHEN 2 THEN '内链' ELSE '无' END targetType, link_url linkUrl, -- Gitblit v1.7.1