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 = "商品已售罄"; } 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"; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/ActivityGoodsGetDto.java
New file @@ -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; } 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; } 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; ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/ActivityGoodsGetVo.java
New file @@ -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; } 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()); } }; } } 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); } 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); } } 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)); }*/ } } 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; 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; } 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 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; 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); } 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); } 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); } 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); } 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); } 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); } 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); } } 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); } } 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; } } 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; } } 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> 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> 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; /** * 总积分 */ 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.门店 */ 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) { ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPanicBuyDto.java
New file @@ -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; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java
New file @@ -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; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityOrderDto.java
New file @@ -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; } 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; } 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() { ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppPanicBuyVo.java
New file @@ -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; } 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; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppSureOrderVo.java
@@ -32,8 +32,4 @@ @ApiModelProperty(value = "订单商品列表") List<AppSureOrderGoodsVo> appSureOrderGoodsVoList; } 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); } } } 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 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> 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); 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; } 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; 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; } 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; 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, 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); } 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() { 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() { 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(); } 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; } 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); } 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; 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,