package com.ruoyi.order.service.impl.order;
|
|
|
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.order.domain.dto.*;
|
import com.ruoyi.order.domain.pojo.order.ConsumerGoods;
|
import com.ruoyi.order.domain.pojo.order.UserServiceRecord;
|
import com.ruoyi.order.domain.vo.AppConsumerPageVo;
|
import com.ruoyi.order.domain.vo.MerConsumerGoodsListVo;
|
import com.ruoyi.order.domain.vo.MerConsumerGoodsVo;
|
import com.ruoyi.order.mapper.order.ConsumerGoodsMapper;
|
import com.ruoyi.order.service.order.ConsumerGoodsService;
|
import com.ruoyi.order.service.order.UserServiceRecordService;
|
import com.ruoyi.system.api.constant.AppErrorConstant;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 服务 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-04-25
|
*/
|
@Service
|
public class ConsumerGoodsServiceImpl extends ServiceImpl<ConsumerGoodsMapper, ConsumerGoods> implements ConsumerGoodsService {
|
|
@Resource
|
private ConsumerGoodsMapper consumerGoodsMapper;
|
|
@Resource
|
private UserServiceRecordService userServiceRecordService;
|
/**
|
* 获取用户服务
|
* @param page
|
* @param appConsumerPageDto
|
* @return
|
*/
|
@Override
|
public List<AppConsumerPageVo> pageUserConsumerGoods(Page page, AppConsumerPageDto appConsumerPageDto){
|
return consumerGoodsMapper.pageUserConsumerGoods(page, appConsumerPageDto);
|
}
|
|
/**
|
* 获取会员服务商品
|
* @param merConsumerGoodsDto
|
* @return
|
*/
|
@Override
|
public MerConsumerGoodsVo listMerConsumerGoods(MerConsumerGoodsDto merConsumerGoodsDto){
|
MerConsumerGoodsVo merConsumerGoodsVo = new MerConsumerGoodsVo();
|
if(merConsumerGoodsDto.getGoodsType()==1){
|
List<MerConsumerGoodsListVo> noSureList = consumerGoodsMapper.listMerNoSureConsumerGoods(merConsumerGoodsDto);
|
merConsumerGoodsVo.setNoSureList(noSureList);
|
}
|
List<MerConsumerGoodsListVo> sureList = consumerGoodsMapper.listMerConsumerGoods(merConsumerGoodsDto);
|
merConsumerGoodsVo.setSureList(sureList);
|
return merConsumerGoodsVo;
|
}
|
|
/**
|
* 确认商品次数
|
* @param merSureConsumerGoodsDto
|
*/
|
@Override
|
public void sureMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){
|
List<MerSureConsumerGoodsListDto> merSureConsumerGoodsListDtoList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList();
|
if(merSureConsumerGoodsListDtoList!=null && !merSureConsumerGoodsListDtoList.isEmpty()){
|
ConsumerGoods consumerGoods;
|
for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){
|
consumerGoods = this.getById(merSureConsumerGoodsListDto.getConsumerGoodsId());
|
consumerGoods.setCycleNumFlag(1);
|
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;
|
Long shopId = null;
|
Long userId = null;
|
String consumerGoodsNames = "";
|
String consumerGoodsIds = "";
|
Integer serviceType = 1;
|
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().equals(serviceNum)){
|
consumerGoods.setServiceStatus(2);
|
consumerGoods.setCompleteTime(new Date());
|
}
|
this.saveOrUpdate(consumerGoods);
|
shopId = consumerGoods.getShopId();
|
userId= consumerGoods.getUserId();
|
serviceType = consumerGoods.getGoodsType();
|
if(StringUtils.isBlank(consumerGoodsIds)){
|
consumerGoodsIds = consumerGoods.getConsumerGoodsId();
|
}else{
|
consumerGoodsIds = consumerGoodsIds + "," + consumerGoods.getConsumerGoodsId();
|
}
|
if(StringUtils.isBlank(consumerGoodsNames)){
|
consumerGoodsNames = consumerGoods.getGoodsName();
|
}else{
|
consumerGoodsNames = consumerGoodsNames + "、" + consumerGoods.getGoodsName();
|
}
|
}
|
UserServiceRecord userServiceRecord = new UserServiceRecord();
|
userServiceRecord.setCreateTime(new Date());
|
userServiceRecord.setServiceType(serviceType);
|
userServiceRecord.setDelFlag(0);
|
userServiceRecord.setShopId(shopId);
|
userServiceRecord.setUserId(userId);
|
userServiceRecord.setConsumerGoodsIds(consumerGoodsIds);
|
userServiceRecord.setConsumerGoodsNames(consumerGoodsNames);
|
userServiceRecordService.saveOrUpdate(userServiceRecord);
|
}
|
}
|
|
/**
|
*
|
* @param page
|
* @param merConsumerGoodsPageDto
|
* @return
|
*/
|
@Override
|
public List<MerConsumerGoodsListVo> pageMerConsumerGoodsNum(Page page, MerConsumerGoodsPageDto merConsumerGoodsPageDto){
|
List<MerConsumerGoodsListVo> merConsumerGoodsListVos = consumerGoodsMapper.pageMerConsumerGoodsNum(page, merConsumerGoodsPageDto);
|
return merConsumerGoodsListVos;
|
}
|
}
|