ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -119,4 +119,7 @@ String SALESPRICE_MIN = "设置价格不能低于最低限价"; String VERIFY_TYPE_MISS = "没有核销类型"; String BEYOND_SURP_NUM = "超过剩余次数"; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerConsumerController.java
@@ -49,4 +49,13 @@ consumerGoodsService.sureMerConsumerGoods(merSureConsumerGoodsDto); return R.ok(); } @RequestMapping(value = "/useMerConsumerGoods", method = RequestMethod.POST) @ApiOperation(value = "消费服务商品") public R useMerConsumerGoods(@RequestBody MerSureConsumerGoodsDto merSureConsumerGoodsDto) { Long userId = SecurityUtils.getUserId(); merSureConsumerGoodsDto.setUserId(userId); consumerGoodsService.useMerConsumerGoods(merSureConsumerGoodsDto); return R.ok(); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerSureConsumerGoodsListDto.java
@@ -18,5 +18,5 @@ private String consumerGoodsId; @ApiModelProperty(name = "服务次数") private Integer service_num; private Integer serviceNum; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/ConsumerGoods.java
@@ -101,7 +101,7 @@ * 使用时间 */ @TableField("use_time") private String useTime; private Date useTime; /** * 商品类型1周期2服务3体验 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
@@ -3,6 +3,7 @@ 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.order.domain.dto.AppConsumerPageDto; import com.ruoyi.order.domain.dto.MerConsumerGoodsDto; import com.ruoyi.order.domain.dto.MerSureConsumerGoodsDto; @@ -13,9 +14,11 @@ import com.ruoyi.order.domain.vo.MerConsumerGoodsVo; import com.ruoyi.order.mapper.order.ConsumerGoodsMapper; import com.ruoyi.order.service.order.ConsumerGoodsService; import com.ruoyi.system.api.constant.AppErrorConstant; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** @@ -72,7 +75,40 @@ for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){ consumerGoods = this.getById(merSureConsumerGoodsListDto.getConsumerGoodsId()); consumerGoods.setCycleNumFlag(1); consumerGoods.setServiceNum(merSureConsumerGoodsListDto.getService_num()); consumerGoods.setServiceNum(merSureConsumerGoodsListDto.getServiceNum()); this.saveOrUpdate(consumerGoods); } } } /** * 确认商品次数 * @param merSureConsumerGoodsDto */ @Override public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){ List<MerSureConsumerGoodsListDto> merSureConsumerGoodsListDtoList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); if(merSureConsumerGoodsListDtoList!=null && !merSureConsumerGoodsListDtoList.isEmpty()){ ConsumerGoods consumerGoods; Integer serviceNum; Integer usedNum; Integer useNum; Integer surpNum; for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){ consumerGoods = this.getById(merSureConsumerGoodsListDto.getConsumerGoodsId()); serviceNum = consumerGoods.getServiceNum(); usedNum = consumerGoods.getUsedNum(); surpNum = serviceNum - usedNum; useNum = merSureConsumerGoodsListDto.getServiceNum(); if(useNum>surpNum){ throw new ServiceException(AppErrorConstant.BEYOND_SURP_NUM); } consumerGoods.setUsedNum(usedNum+useNum); consumerGoods.setUseTime(new Date()); if(consumerGoods.getUsedNum()==serviceNum){ consumerGoods.setServiceStatus(2); consumerGoods.setCompleteTime(new Date()); } this.saveOrUpdate(consumerGoods); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -542,6 +542,7 @@ consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName()); consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag()); consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); consumerGoods.setCreateTime(nowTime); consumerGoodsService.save(consumerGoods); @@ -744,6 +745,7 @@ consumerGoods.setGoodsName(appUserOrderGoodsPageVo.getGoodsName()); consumerGoods.setCycleNumFlag(appUserOrderGoodsPageVo.getCycleNumFlag()); consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); consumerGoods.setCreateTime(new Date()); consumerGoodsService.save(consumerGoods); ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/ConsumerGoodsService.java
@@ -41,4 +41,10 @@ * @param merSureConsumerGoodsDto */ void sureMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto); /** * 确认商品次数 * @param merSureConsumerGoodsDto */ void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto); }