Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
Tankaikai
2024-10-12 10:44:17 +08:00
16 changed files with 128 additions and 90 deletions

View File

@@ -4,7 +4,6 @@ import cn.ysk.cashier.annotation.Log;
import cn.ysk.cashier.cons.domain.ViewConInfoFlow; import cn.ysk.cashier.cons.domain.ViewConInfoFlow;
import cn.ysk.cashier.cons.service.ViewConInfoFlowService; import cn.ysk.cashier.cons.service.ViewConInfoFlowService;
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowQueryCriteria; import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowQueryCriteria;
import org.springframework.data.domain.Pageable;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@@ -35,8 +34,8 @@ public class ViewConInfoFlowController {
@PostMapping("get") @PostMapping("get")
@ApiOperation("查询获取耗材流水信息") @ApiOperation("查询获取耗材流水信息")
public ResponseEntity<Object> queryViewConInfoFlow(@RequestBody ViewConInfoFlowQueryCriteria criteria, Pageable pageable){ public ResponseEntity<Object> queryViewConInfoFlow(@RequestBody ViewConInfoFlowQueryCriteria criteria){
return new ResponseEntity<>(viewConInfoFlowService.queryAll(criteria,pageable),HttpStatus.OK); return new ResponseEntity<>(viewConInfoFlowService.queryAllPage(criteria),HttpStatus.OK);
} }
@PostMapping @PostMapping

View File

@@ -3,7 +3,6 @@ package cn.ysk.cashier.cons.service;
import cn.ysk.cashier.cons.domain.ViewConInfoFlow; import cn.ysk.cashier.cons.domain.ViewConInfoFlow;
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowDto; import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowDto;
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowQueryCriteria; import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map; import java.util.Map;
import java.util.List; import java.util.List;
import java.io.IOException; import java.io.IOException;
@@ -18,10 +17,9 @@ public interface ViewConInfoFlowService {
/** /**
* 查询数据分页 * 查询数据分页
* @param criteria 条件 * @param criteria 条件
* @param pageable 分页参数
* @return Map<String,Object> * @return Map<String,Object>
*/ */
Map<String,Object> queryAll(ViewConInfoFlowQueryCriteria criteria, Pageable pageable); Map<String,Object> queryAllPage(ViewConInfoFlowQueryCriteria criteria);
/** /**
* 查询所有数据不分页 * 查询所有数据不分页

View File

@@ -32,4 +32,8 @@ public class ViewConInfoFlowQueryCriteria {
@Query(type = Query.Type.BETWEEN) @Query(type = Query.Type.BETWEEN)
private List<Date> createTime; private List<Date> createTime;
private Integer page;
private Integer size;
private String sort;
} }

View File

@@ -1,48 +1,36 @@
package cn.ysk.cashier.cons.service.impl; package cn.ysk.cashier.cons.service.impl;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.StrUtil;
import cn.ysk.cashier.cons.domain.TbConsInfo; import cn.ysk.cashier.cons.domain.TbConsInfo;
import cn.ysk.cashier.cons.domain.TbConsInfoFlow; import cn.ysk.cashier.cons.domain.TbConsInfoFlow;
import cn.ysk.cashier.cons.repository.TbConsInfoRepository;
import cn.ysk.cashier.dto.product.TbProductStockCountQueryCriteria;
import cn.ysk.cashier.dto.product.TbProductStockDetailQueryCriteria;
import cn.ysk.cashier.dto.product.TbProductStockListDto;
import cn.ysk.cashier.exception.BadRequestException;
import cn.ysk.cashier.pojo.product.TbProduct;
import cn.ysk.cashier.pojo.product.TbProductStockDetail;
import cn.ysk.cashier.pojo.shop.TbShopUnit;
import cn.ysk.cashier.repository.product.ProductStockCountRepository;
import cn.ysk.cashier.utils.*;
import cn.ysk.cashier.vo.TbProductStockCountVo;
import lombok.RequiredArgsConstructor;
import cn.ysk.cashier.cons.repository.TbConsInfoFlowRepository; import cn.ysk.cashier.cons.repository.TbConsInfoFlowRepository;
import cn.ysk.cashier.cons.repository.TbConsInfoRepository;
import cn.ysk.cashier.cons.service.TbConsInfoFlowService; import cn.ysk.cashier.cons.service.TbConsInfoFlowService;
import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowDto; import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowDto;
import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowQueryCriteria; import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowQueryCriteria;
import cn.ysk.cashier.cons.service.mapstruct.TbConsInfoFlowMapper; import cn.ysk.cashier.cons.service.mapstruct.TbConsInfoFlowMapper;
import cn.ysk.cashier.dto.product.TbProductStockCountQueryCriteria;
import cn.ysk.cashier.dto.product.TbProductStockListDto;
import cn.ysk.cashier.exception.BadRequestException;
import cn.ysk.cashier.repository.product.ProductStockCountRepository;
import cn.ysk.cashier.utils.*;
import cn.ysk.cashier.vo.TbProductStockCountVo;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.domain.Page; import javax.servlet.http.HttpServletResponse;
import org.springframework.data.domain.Pageable; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @website https://eladmin.vip
* @description 服务实现
* @author admin
* @date 2024-06-22
**/
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class TbConsInfoFlowServiceImpl implements TbConsInfoFlowService { public class TbConsInfoFlowServiceImpl implements TbConsInfoFlowService {
@@ -85,6 +73,7 @@ public class TbConsInfoFlowServiceImpl implements TbConsInfoFlowService {
//报损lossNumber; frmLoss //报损lossNumber; frmLoss
//入库stockInNumber; stockIn //入库stockInNumber; stockIn
//出库stockOutNumber; stockout //出库stockOutNumber; stockout
@Override
public Map<String,Object> queryPage(TbConsInfoFlowQueryCriteria criteria){ public Map<String,Object> queryPage(TbConsInfoFlowQueryCriteria criteria){
if(StringUtils.isNotBlank(criteria.getColumn())){ if(StringUtils.isNotBlank(criteria.getColumn())){
switch (criteria.getColumn()){ switch (criteria.getColumn()){
@@ -95,25 +84,25 @@ public class TbConsInfoFlowServiceImpl implements TbConsInfoFlowService {
criteria.setBizCode(Arrays.asList("checkStockIn", "stockOtherIn")); criteria.setBizCode(Arrays.asList("checkStockIn", "stockOtherIn"));
break; break;
case "refundNumber": case "refundNumber":
criteria.setBizCode(Arrays.asList("cancelCart")); criteria.setBizCode(Collections.singletonList("cancelCart"));
break; break;
case "subCountNumber": case "subCountNumber":
criteria.setBizCode(Arrays.asList("createCart","stockout","checkStockOut")); criteria.setBizCode(Arrays.asList("createCart","stockout","checkStockOut"));
break; break;
case "subNumber": case "subNumber":
criteria.setBizCode(Arrays.asList("checkStockOut")); criteria.setBizCode(Collections.singletonList("checkStockOut"));
break; break;
case "saleNumber": case "saleNumber":
criteria.setBizCode(Arrays.asList("createCart")); criteria.setBizCode(Collections.singletonList("createCart"));
break; break;
case "lossNumber": case "lossNumber":
criteria.setBizCode(Arrays.asList("frmLoss")); criteria.setBizCode(Collections.singletonList("frmLoss"));
break; break;
case "stockInNumber": case "stockInNumber":
criteria.setBizCode(Arrays.asList("stockIn")); criteria.setBizCode(Collections.singletonList("stockIn"));
break; break;
case "stockOutNumber": case "stockOutNumber":
criteria.setBizCode(Arrays.asList("stockout")); criteria.setBizCode(Collections.singletonList("stockout"));
break; break;
} }
} }
@@ -151,9 +140,7 @@ public class TbConsInfoFlowServiceImpl implements TbConsInfoFlowService {
criteria.getCategoryId(), criteria.getCategoryId(),
DateUtil.getStrTime(criteria.getStartTime()), DateUtil.getStrTime(criteria.getEndTime()), pageable); DateUtil.getStrTime(criteria.getStartTime()), DateUtil.getStrTime(criteria.getEndTime()), pageable);
if (!stockCountDtos.isEmpty()) { if (!stockCountDtos.isEmpty()) {
stockCountDtos.getContent().parallelStream().forEach(s->{ stockCountDtos.getContent().parallelStream().forEach(s-> s.setCountNumber(s.getStockNumber().add(s.getSubCountNumber())));
s.setCountNumber(s.getStockNumber().add(s.getSubCountNumber()));
});
} }
return PageUtil.toPage(stockCountDtos); return PageUtil.toPage(stockCountDtos);
} }

View File

@@ -34,12 +34,6 @@ import java.io.IOException;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
/**
* @website https://eladmin.vip
* @description 服务实现
* @author admin
* @date 2024-06-22
**/
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
@@ -75,7 +69,7 @@ public class TbProskuConServiceImpl implements TbProskuConService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public TbProskuConDto create(List<ProskuInfo> resources) throws BadRequestException,Exception { public TbProskuConDto create(List<ProskuInfo> resources) throws Exception {
log.info("List<ProskuInfo> resources:{}",JSONUtil.toJSONString(resources)); log.info("List<ProskuInfo> resources:{}",JSONUtil.toJSONString(resources));
for (ProskuInfo resource : resources) { for (ProskuInfo resource : resources) {
@@ -211,18 +205,18 @@ public class TbProskuConServiceImpl implements TbProskuConService {
} }
TbProskuCon tbConsInfo1 = new TbProskuCon(); TbProskuCon tbConsInfo1 = new TbProskuCon();
int count = tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConInfoId(), resource.getProductSkuId(), resource.getShopId(), resource.getProductId()); // int count = tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConInfoId(), resource.getProductSkuId(), resource.getShopId(), resource.getProductId());
if (count <= 0) { // if (count <= 0) {
BeanUtil.copyProperties(resource, tbConsInfo1, CopyOptions.create().setIgnoreNullValue(true)); // BeanUtil.copyProperties(resource, tbConsInfo1, CopyOptions.create().setIgnoreNullValue(true));
newCons.add(tbConsInfo1); // newCons.add(tbConsInfo1);
} else { // } else {
StringBuilder strResult = new StringBuilder(product.getName()); // StringBuilder strResult = new StringBuilder(product.getName());
if (sku != null) { // if (sku != null) {
strResult.append(" 规格" + sku.getSpecSnap()); // strResult.append(" 规格" + sku.getSpecSnap());
} // }
strResult.append("与耗材 " + tbConsInfo.getConName() + " 的对应关系已存在"); // strResult.append("与耗材 " + tbConsInfo.getConName() + " 的对应关系已存在");
throw new BadRequestException(strResult.toString()); // throw new BadRequestException(strResult.toString());
} // }
BeanUtil.copyProperties(resource, tbConsInfo1, CopyOptions.create().setIgnoreNullValue(true)); BeanUtil.copyProperties(resource, tbConsInfo1, CopyOptions.create().setIgnoreNullValue(true));
newCons.add(tbConsInfo1); newCons.add(tbConsInfo1);

View File

@@ -11,6 +11,9 @@ import cn.ysk.cashier.cons.service.ViewConInfoFlowService;
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowDto; import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowDto;
import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowQueryCriteria; import cn.ysk.cashier.cons.service.dto.ViewConInfoFlowQueryCriteria;
import cn.ysk.cashier.cons.service.mapstruct.ViewConInfoFlowMapper; import cn.ysk.cashier.cons.service.mapstruct.ViewConInfoFlowMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@@ -22,12 +25,6 @@ import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
/**
* @website https://eladmin.vip
* @description 服务实现
* @author admin
* @date 2024-07-17
**/
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class ViewConInfoFlowServiceImpl implements ViewConInfoFlowService { public class ViewConInfoFlowServiceImpl implements ViewConInfoFlowService {
@@ -36,7 +33,15 @@ public class ViewConInfoFlowServiceImpl implements ViewConInfoFlowService {
private final ViewConInfoFlowMapper viewConInfoFlowMapper; private final ViewConInfoFlowMapper viewConInfoFlowMapper;
@Override @Override
public Map<String,Object> queryAll(ViewConInfoFlowQueryCriteria criteria, Pageable pageable){ public Map<String,Object> queryAllPage(ViewConInfoFlowQueryCriteria criteria){
Sort sort = Sort.by(Sort.Direction.DESC, "consId");
if(StringUtils.isNotBlank(criteria.getSort())){
String[] sortParams = criteria.getSort().split(",");
String sortField = sortParams[0];
Sort.Direction sortDirection = Sort.Direction.fromString(sortParams[1]);
sort = Sort.by(sortDirection, sortField);
}
Pageable pageable = PageRequest.of(criteria.getPage(), criteria.getSize(), sort);
Page<ViewConInfoFlow> page = viewConInfoFlowRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); Page<ViewConInfoFlow> page = viewConInfoFlowRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(viewConInfoFlowMapper::toDto)); return PageUtil.toPage(page.map(viewConInfoFlowMapper::toDto));
} }

View File

@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @website https://eladmin.vip * @website https://eladmin.vip
@@ -54,7 +55,7 @@ public class TbOrderInfoController {
@GetMapping("/{id}") @GetMapping("/{id}")
@ApiOperation("通过Id查询订单") @ApiOperation("通过Id查询订单")
public TbOrderInfoDto queryTbOrderInfo(@PathVariable("id") Integer id){ public Map<String, Object> queryTbOrderInfo(@PathVariable("id") Integer id){
return tbOrderInfoService.findById(id); return tbOrderInfoService.findById(id);
} }

View File

@@ -37,8 +37,8 @@ public class TbProductController {
@PostMapping("/list/v2") @PostMapping("/list/v2")
@ApiOperation("查询商品列表 新") @ApiOperation("查询商品列表 新")
public ResponseEntity<Object> queryTbProductV2(@RequestBody TbProductQueryV2Criteria criteria, Pageable pageable){ public ResponseEntity<Object> queryTbProductV2(@RequestBody TbProductQueryV2Criteria criteria){
return new ResponseEntity<>(tbProductService.queryAllV2(criteria,pageable),HttpStatus.OK); return new ResponseEntity<>(tbProductService.queryAllV2(criteria),HttpStatus.OK);
} }
@GetMapping("/list") @GetMapping("/list")

View File

@@ -32,6 +32,8 @@ import static cn.ysk.cashier.annotation.Query.Type.*;
**/ **/
@Data @Data
public class TbProductQueryV2Criteria { public class TbProductQueryV2Criteria {
@Query
private Integer id;
/** 精确 */ /** 精确 */
@Query @Query
@@ -67,9 +69,9 @@ public class TbProductQueryV2Criteria {
@Query(type = BETWEEN) @Query(type = BETWEEN)
private List<Long> createdAt; private List<Long> createdAt;
// private Integer page; private Integer page;
// private Integer size;
// private Integer size; private String sort;
public void setType(String type) { public void setType(String type) {
if(StringUtils.isNotBlank(type)){ if(StringUtils.isNotBlank(type)){

View File

@@ -5,7 +5,9 @@ import cn.ysk.cashier.vo.TbOrderSaleVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.List; import java.util.List;
@@ -32,4 +34,10 @@ public interface TbOrderInfoMapper extends BaseMapper<TbOrderInfo> {
" ) " + " ) " +
"</script>") "</script>")
List<TbOrderSaleVO> selectAllSaleInfo(@Param("startTime") Timestamp startTime, @Param("endTime") Timestamp endTime, @Param("productSkuIds") List<Integer> productSkuIds, @Param("shopId") Integer shopId); List<TbOrderSaleVO> selectAllSaleInfo(@Param("startTime") Timestamp startTime, @Param("endTime") Timestamp endTime, @Param("productSkuIds") List<Integer> productSkuIds, @Param("shopId") Integer shopId);
@Update("update tb_order_info set settlement_amount=settlement_amount-#{priceAmount}, pack_fee=pack_fee-#{packAmount}," +
"order_amount=origin_amount-#{priceAmount}, amount=amount-#{priceAmount}," +
"order_amount=order_amount-#{priceAmount} where id=#{orderId} and origin_amount-#{priceAmount} >= 0")
int updateOrderAmount(Integer orderId, BigDecimal priceAmount, BigDecimal packAmount);
} }

View File

@@ -1,5 +1,6 @@
package cn.ysk.cashier.service.impl.order; package cn.ysk.cashier.service.impl.order;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.ysk.cashier.cons.TableConstant; import cn.ysk.cashier.cons.TableConstant;
@@ -257,7 +258,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
@Override @Override
@Transactional @Transactional
public TbOrderInfoDto findById(Integer id) { public Map<String, Object> findById(Integer id) {
TbOrderInfo tbOrderInfo = tbOrderInfoRepository.findById(id).orElseGet(TbOrderInfo::new); TbOrderInfo tbOrderInfo = tbOrderInfoRepository.findById(id).orElseGet(TbOrderInfo::new);
ValidationUtil.isNull(tbOrderInfo.getId(), "TbOrderInfo", "id", id); ValidationUtil.isNull(tbOrderInfo.getId(), "TbOrderInfo", "id", id);
TbOrderInfoDto dto = tbOrderInfoMapper.toDto(tbOrderInfo); TbOrderInfoDto dto = tbOrderInfoMapper.toDto(tbOrderInfo);
@@ -294,9 +295,14 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
dto.setRefundAmount(tbOrderInfos.stream().map(TbOrderInfo::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); dto.setRefundAmount(tbOrderInfos.stream().map(TbOrderInfo::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
} }
dto.setDetailList(details); dto.setDetailList(details);
TbCashierCart cashierCart = tbCashierCartMapper.selectOne(new LambdaQueryWrapper<TbCashierCart>().eq(TbCashierCart::getOrderId, id).eq(TbCashierCart::getProductId, TableConstant.CART_SEAT_ID)); TbCashierCart cashierCart = tbCashierCartMapper.selectOne(new LambdaQueryWrapper<TbCashierCart>()
.eq(TbCashierCart::getOrderId, id)
.eq(TbCashierCart::getUseType, tbOrderInfo.getUseType())
.eq(TbCashierCart::getProductId, TableConstant.CART_SEAT_ID));
dto.setSeatInfo(cashierCart); dto.setSeatInfo(cashierCart);
return dto; Map<String, Object> data = BeanUtil.beanToMap(tbOrderInfo, false, false);
data.putAll(BeanUtil.beanToMap(dto, false, false));
return data;
} }
@Override @Override
@@ -612,6 +618,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
return; return;
} }
orderInfo.setStatus("refund"); orderInfo.setStatus("refund");
orderInfo.setPaidTime(cn.hutool.core.date.DateUtil.current());
orderInfoMapper.updateById(orderInfo); orderInfoMapper.updateById(orderInfo);
} }
} }

View File

@@ -241,7 +241,12 @@ public class TbProductServiceImpl implements TbProductService {
} }
@Override @Override
public Map<String, Object> queryAllV2(TbProductQueryV2Criteria criteria,Pageable pageable) { public Map<String, Object> queryAllV2(TbProductQueryV2Criteria criteria) {
String[] sortParams = criteria.getSort().split(",");
String sortField = sortParams[0];
Sort.Direction sortDirection = Sort.Direction.fromString(sortParams[1]);
Sort sort = Sort.by(sortDirection, sortField);
Pageable pageable = PageRequest.of(criteria.getPage(), criteria.getSize(), sort);
//查询商品数据 //查询商品数据
Page<TbProduct> page = tbProductRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); Page<TbProduct> page = tbProductRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
Integer warnLine = 0; Integer warnLine = 0;

View File

@@ -176,6 +176,7 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ
stockDetail.setUnitName(tbShopUnit==null?"":tbShopUnit.getName()); stockDetail.setUnitName(tbShopUnit==null?"":tbShopUnit.getName());
stockDetail.setCreatedAt(System.currentTimeMillis()); stockDetail.setCreatedAt(System.currentTimeMillis());
stockDetail.setUpdatedAt(System.currentTimeMillis()); stockDetail.setUpdatedAt(System.currentTimeMillis());
stockDetail.setOperator(SecurityUtils.getCurrentUsername());
tbProductStockDetailRepository.save(stockDetail); tbProductStockDetailRepository.save(stockDetail);
product.setStockNumber(product.getStockNumber()-stockDetail.getStockNumber().intValue()); product.setStockNumber(product.getStockNumber()-stockDetail.getStockNumber().intValue());
tbProductRepository.save(product); tbProductRepository.save(product);

View File

@@ -629,6 +629,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
} }
// 餐位费直接删除 // 餐位费直接删除
TbOrderDetail orderDetail = orderDetailMapper.selectOne(new LambdaQueryWrapper<TbOrderDetail>()
.eq(TbOrderDetail::getCartId, cashierCart.getId()));
if (cashierCart.getId() == -999) { if (cashierCart.getId() == -999) {
cashierCartMapper.deleteById(cashierCart.getId()); cashierCartMapper.deleteById(cashierCart.getId());
if (cashierCart.getOrderId() != null) { if (cashierCart.getOrderId() != null) {
@@ -656,6 +659,12 @@ public class TbShopTableServiceImpl implements TbShopTableService {
} }
if (cashierCart.getOrderId() != null) {
// 减少订单金额
orderInfoMapper.updateOrderAmount(cashierCart.getOrderId(), orderDetail.getPriceAmount(), orderDetail.getPackAmount());
}
} }
@Override @Override
@@ -1205,7 +1214,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
String orderNo = generateOrderNumber(null); String orderNo = generateOrderNumber(null);
orderInfo = new TbOrderInfo(); orderInfo = new TbOrderInfo();
orderInfo.setOrderNo(orderNo); orderInfo.setOrderNo(orderNo);
orderInfo.setUseType(createOrderDTO.isPostPay() ? "postPay" : "afterPay");
orderInfo.setAmount(totalAmount); orderInfo.setAmount(totalAmount);
orderInfo.setPayAmount(BigDecimal.ZERO); orderInfo.setPayAmount(BigDecimal.ZERO);
orderInfo.setPackFee(packAMount); orderInfo.setPackFee(packAMount);
@@ -1286,6 +1294,11 @@ public class TbShopTableServiceImpl implements TbShopTableService {
if (cashierCart.getPlaceNum() == null) { if (cashierCart.getPlaceNum() == null) {
cashierCart.setPlaceNum(placeNum); cashierCart.setPlaceNum(placeNum);
} }
// 先付费模式,结束购物车状态
if (shopEatTypeInfoDTO.isDineInBefore()) {
cashierCart.setStatus("final");
}
cashierCartMapper.updateById(cashierCart); cashierCartMapper.updateById(cashierCart);
} }
@@ -1305,6 +1318,18 @@ public class TbShopTableServiceImpl implements TbShopTableService {
pushConsMsg(orderInfo, cashierCarts); pushConsMsg(orderInfo, cashierCarts);
if (!shopEatTypeInfoDTO.isTakeout()) { if (!shopEatTypeInfoDTO.isTakeout()) {
// 清空台桌信息
if (shopEatTypeInfoDTO.isDineInBefore()) {
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getShopId, createOrderDTO.getShopId())
.eq(TbShopTable::getQrcode, createOrderDTO.getTableId())
.set(TbShopTable::getProductNum, 0)
.set(TbShopTable::getTotalAmount, 0)
.set(TbShopTable::getRealAmount, 0)
.set(TbShopTable::getUseNum, 0)
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
// 设置台桌信息
}else {
LambdaUpdateWrapper<TbShopTable> wrapper = new LambdaUpdateWrapper<TbShopTable>() LambdaUpdateWrapper<TbShopTable> wrapper = new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getShopId, createOrderDTO.getShopId()) .eq(TbShopTable::getShopId, createOrderDTO.getShopId())
.eq(TbShopTable::getQrcode, createOrderDTO.getTableId()) .eq(TbShopTable::getQrcode, createOrderDTO.getTableId())
@@ -1316,8 +1341,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
if (isFirst) { if (isFirst) {
wrapper.set(TbShopTable::getUseTime, DateUtil.date()); wrapper.set(TbShopTable::getUseTime, DateUtil.date());
} }
// 设置台桌信息
mpShopTableMapper.update(null, wrapper); mpShopTableMapper.update(null, wrapper);
}
} }
@@ -1531,6 +1557,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
} }
if (!isOnline) { if (!isOnline) {
orderInfo.setPaidTime(DateUtil.current());
orderInfo.setPayAmount(finalAmount); orderInfo.setPayAmount(finalAmount);
orderInfo.setStatus("closed"); orderInfo.setStatus("closed");
orderInfo.setDiscountRatio(BigDecimal.valueOf(payDTO.getDiscount())); orderInfo.setDiscountRatio(BigDecimal.valueOf(payDTO.getDiscount()));

View File

@@ -62,7 +62,7 @@ public interface TbOrderInfoService {
* @param id ID * @param id ID
* @return TbOrderInfoDto * @return TbOrderInfoDto
*/ */
TbOrderInfoDto findById(Integer id); Map<String, Object> findById(Integer id);
/** /**
* 创建 * 创建

View File

@@ -31,7 +31,7 @@ public interface TbProductService {
Map<String, Object> queryAll(TbProductQueryCriteria criteria, boolean isAdmin); Map<String, Object> queryAll(TbProductQueryCriteria criteria, boolean isAdmin);
Map<String, Object> queryAllV2(TbProductQueryV2Criteria criteria, Pageable pageable); Map<String, Object> queryAllV2(TbProductQueryV2Criteria criteria);
/** /**