Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package cn.ysk.cashier.controller;
|
||||
|
||||
|
||||
import cn.ysk.cashier.mybatis.entity.TbShopShare;
|
||||
import cn.ysk.cashier.mybatis.service.TbShopShareService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 店铺分享(TbShopShare)表控制层
|
||||
*
|
||||
* @author ww
|
||||
* @since 2024-11-06 15:47:37
|
||||
*/
|
||||
@Api(tags = "分享")
|
||||
@RestController
|
||||
@RequestMapping("tbShopShare")
|
||||
public class TbShopShareController {
|
||||
|
||||
@Resource
|
||||
private TbShopShareService tbShopShareService;
|
||||
|
||||
@GetMapping("byShopId")
|
||||
@ApiOperation("通过shopId查询详情")
|
||||
public ResponseEntity<?> getByShopId(
|
||||
@RequestParam Integer shopId
|
||||
) {
|
||||
return ResponseEntity.ok(tbShopShareService.getByShopId(shopId));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@ApiOperation("新增")
|
||||
public ResponseEntity<Object> insert(@RequestBody TbShopShare tbShopShare) {
|
||||
return new ResponseEntity<>(tbShopShareService.save(tbShopShare), HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@ApiOperation("通过id修改")
|
||||
public ResponseEntity<Object> update(@RequestBody TbShopShare tbShopShare) {
|
||||
tbShopShareService.updateById(tbShopShare);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@DeleteMapping
|
||||
@ApiOperation("删除")
|
||||
public ResponseEntity<Object> delete(@RequestBody Integer[] ids) {
|
||||
tbShopShareService.removeByIds(Arrays.asList(ids));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ public class TbPlaceController {
|
||||
@PostMapping("/order")
|
||||
@ApiOperation("代客下单 查询购物车 /shop/table")
|
||||
public ResponseEntity<Object> createOrder(@RequestBody CreateOrderDTO createOrderDTO) {
|
||||
return ResponseEntity.ok(tbShopTableService.createOrder(createOrderDTO, !createOrderDTO.isPostPay(), true));
|
||||
return ResponseEntity.ok(tbShopTableService.createOrder(createOrderDTO, false));
|
||||
}
|
||||
|
||||
@PostMapping("/pending")
|
||||
|
||||
@@ -21,6 +21,7 @@ public class ShopEatTypeInfoDTO {
|
||||
private boolean isNoneTable;
|
||||
// 是否增加masterId
|
||||
private boolean isIncrMaterId;
|
||||
private boolean isMemberPrice;
|
||||
private TbShopInfo shopInfo;
|
||||
private String useType;
|
||||
private Object shopId;
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
package cn.ysk.cashier.mybatis.entity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.ysk.cashier.utils.JSONUtil;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 店铺分享(TbShopShare)表实体类
|
||||
*
|
||||
* @author ww
|
||||
* @since 2024-11-06 15:47:37
|
||||
*/
|
||||
@Data
|
||||
@SuppressWarnings("serial")
|
||||
public class TbShopShare extends Model<TbShopShare> {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Integer id;
|
||||
//店铺Id
|
||||
private Integer shopId;
|
||||
//标题
|
||||
private String title;
|
||||
//分享封面图
|
||||
private String shareImg;
|
||||
//邀请顶部图
|
||||
private String invitedImg;
|
||||
//被邀顶部图
|
||||
private String beInvitedImg;
|
||||
//活动开始时间
|
||||
private Date startTime;
|
||||
//活动结束时间
|
||||
private Date endTime;
|
||||
//新用户获得券
|
||||
private String newCoupon;
|
||||
//邀请num人数 可获奖励券
|
||||
private Integer invitedNum;
|
||||
//奖励券
|
||||
private String rewardCoupon;
|
||||
//获取方法 get-新用户领取获得 use-新用户使用获得
|
||||
private String getMethod;
|
||||
|
||||
private Integer status;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<ShareCoupons> newCoupons;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<ShareCoupons> rewardCoupons;
|
||||
|
||||
public void setNewCoupon(String newCoupon) {
|
||||
this.newCoupon = newCoupon;
|
||||
if(StringUtils.isNotBlank(newCoupon)){
|
||||
this.newCoupons = JSONUtil.parseJSONStrTList(newCoupon,ShareCoupons.class);
|
||||
}
|
||||
}
|
||||
|
||||
public void setRewardCoupon(String rewardCoupon) {
|
||||
this.rewardCoupon = rewardCoupon;
|
||||
if(StringUtils.isNotBlank(rewardCoupon)){
|
||||
this.rewardCoupons = JSONUtil.parseJSONStrTList(rewardCoupon,ShareCoupons.class);
|
||||
}
|
||||
}
|
||||
|
||||
public void setNewCoupons(List<ShareCoupons> newCoupons) {
|
||||
this.newCoupons = newCoupons;
|
||||
if(CollectionUtil.isNotEmpty(newCoupons)){
|
||||
this.newCoupon = JSONUtil.toJSONString(newCoupons);
|
||||
}
|
||||
}
|
||||
|
||||
public void setRewardCoupons(List<ShareCoupons> rewardCoupons) {
|
||||
this.rewardCoupons = rewardCoupons;
|
||||
if(CollectionUtil.isNotEmpty(rewardCoupons)){
|
||||
this.rewardCoupon = JSONUtil.toJSONString(rewardCoupons);
|
||||
}
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class ShareCoupons {
|
||||
//优惠券Id
|
||||
private Integer couponId;
|
||||
//优惠券名称
|
||||
private String couponName;
|
||||
//优惠券数量
|
||||
private Integer couponNum;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package cn.ysk.cashier.mybatis.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import cn.ysk.cashier.mybatis.entity.TbShopShare;
|
||||
|
||||
/**
|
||||
* 店铺分享(TbShopShare)表数据库访问层
|
||||
*
|
||||
* @author ww
|
||||
* @since 2024-11-06 15:47:37
|
||||
*/
|
||||
public interface TbShopShareMapper extends BaseMapper<TbShopShare> {
|
||||
|
||||
}
|
||||
|
||||
@@ -72,6 +72,6 @@ public interface MpCashierCartService extends IService<TbCashierCart> {
|
||||
List<TbCashierCart> selectByOrderIdAndState(Integer orderId, TableConstant.OrderInfo.Status status);
|
||||
|
||||
|
||||
boolean updateMemberByOrderId(Integer orderId, boolean isMember);
|
||||
boolean updateMemberAndAmountByOrderId(Integer orderId, boolean isMember);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package cn.ysk.cashier.mybatis.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import cn.ysk.cashier.mybatis.entity.TbShopShare;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 店铺分享(TbShopShare)表服务接口
|
||||
*
|
||||
* @author ww
|
||||
* @since 2024-11-06 15:47:37
|
||||
*/
|
||||
public interface TbShopShareService extends IService<TbShopShare> {
|
||||
TbShopShare getByShopId(Integer shopId);
|
||||
|
||||
}
|
||||
|
||||
@@ -99,9 +99,10 @@ public class MpCashierCartServiceImpl extends ServiceImpl<TbCashierCartMapper, T
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateMemberByOrderId(Integer orderId, boolean isMember) {
|
||||
public boolean updateMemberAndAmountByOrderId(Integer orderId, boolean isMember) {
|
||||
return update(new LambdaUpdateWrapper<TbCashierCart>()
|
||||
.eq(TbCashierCart::getOrderId, orderId)
|
||||
.setSql(StrUtil.format("total_amount=total_number*{}", isMember ? "member_price" : "sale_price"))
|
||||
.set(TbCashierCart::getIsMember, isMember ? 1 : 0));
|
||||
}
|
||||
|
||||
@@ -115,13 +116,11 @@ public class MpCashierCartServiceImpl extends ServiceImpl<TbCashierCartMapper, T
|
||||
.and(q -> q.eq(TbCashierCart::getMasterId, masterId).or().isNull(TbCashierCart::getMasterId));
|
||||
|
||||
// 非堂食校验台桌状态
|
||||
TbShopTable tbShopTable;
|
||||
if (shopEatTypeInfoDTO.isTakeout()) {
|
||||
queryWrapper.and(q -> q.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, ""))
|
||||
.in(TbCashierCart::getPlatformType, OrderPlatformTypeEnum.PC.getValue(), OrderPlatformTypeEnum.CASH.getValue());
|
||||
} else {
|
||||
if (StrUtil.isNotBlank(shopEatTypeInfoDTO.getTableId())) {
|
||||
|
||||
queryWrapper.eq(TbCashierCart::getTableId, shopEatTypeInfoDTO.getTableId());
|
||||
} else {
|
||||
queryWrapper.and(q -> q.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, ""));
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package cn.ysk.cashier.mybatis.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import cn.ysk.cashier.mybatis.mapper.TbShopShareMapper;
|
||||
import cn.ysk.cashier.mybatis.entity.TbShopShare;
|
||||
import cn.ysk.cashier.mybatis.service.TbShopShareService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import cn.ysk.cashier.utils.PageUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 店铺分享(TbShopShare)表服务实现类
|
||||
*
|
||||
* @author ww
|
||||
* @since 2024-11-06 15:47:37
|
||||
*/
|
||||
@Service("tbShopShareService")
|
||||
public class TbShopShareServiceImpl extends ServiceImpl<TbShopShareMapper, TbShopShare> implements TbShopShareService {
|
||||
|
||||
@Autowired
|
||||
private TbShopShareMapper tbShopSharemapper;
|
||||
|
||||
@Override
|
||||
public TbShopShare getByShopId(Integer shopId) {
|
||||
QueryWrapper<TbShopShare> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("shop_id", shopId);
|
||||
return tbShopSharemapper.selectOne(wrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,10 +176,17 @@ public class TbCashierCart implements Serializable {
|
||||
* 根据是否会员充值价格
|
||||
*/
|
||||
public void resetTotalAmount() {
|
||||
if (isMember != null && isMember == 1) {
|
||||
totalAmount = BigDecimal.valueOf(totalNumber).multiply(memberPrice).add(packFee);
|
||||
if ("false".equals(isPack)) {
|
||||
packFee = BigDecimal.ZERO;
|
||||
}
|
||||
if ("true".equals(isGift)) {
|
||||
totalAmount = packFee;
|
||||
}else {
|
||||
totalAmount = BigDecimal.valueOf(totalNumber).multiply(salePrice).add(packFee);
|
||||
if (isMember != null && isMember == 1 && memberPrice != null && memberPrice.compareTo(BigDecimal.ZERO) > 0) {
|
||||
totalAmount = BigDecimal.valueOf(totalNumber).multiply(memberPrice).add(packFee);
|
||||
}else {
|
||||
totalAmount = BigDecimal.valueOf(totalNumber).multiply(salePrice).add(packFee);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,11 +206,12 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
boolean isDineInBefore = hasTable && isMunchies && !isTakeout;
|
||||
// 是否无台桌
|
||||
boolean isNoneTable = !hasTable && !isTakeout;
|
||||
boolean isMemberPrice = shopInfo.getIsMemberPrice() != null && shopInfo.getIsMemberPrice() == 1;
|
||||
|
||||
boolean needSeatFee = shopInfo.getIsTableFee() == null || shopInfo.getIsTableFee() == 0;
|
||||
boolean needSeatFee = !isTakeout && (shopInfo.getIsTableFee() == null || shopInfo.getIsTableFee() == 0);
|
||||
boolean isIncrMasterId = isTakeout || isNoneTable;
|
||||
|
||||
return new ShopEatTypeInfoDTO(isTakeout, isMunchies, isDineInAfter, isDineInBefore, needSeatFee, isNoneTable, isIncrMasterId, shopInfo, isTakeout ? TableConstant.OrderInfo.UseType.TAKEOUT.getValue() :
|
||||
return new ShopEatTypeInfoDTO(isTakeout, isMunchies, isDineInAfter, isDineInBefore, needSeatFee, isNoneTable, isIncrMasterId, isMemberPrice, shopInfo, isTakeout ? TableConstant.OrderInfo.UseType.TAKEOUT.getValue() :
|
||||
isDineInBefore ? TableConstant.OrderInfo.UseType.DINE_IN_BEFORE.getValue() : isNoneTable ? TableConstant.OrderInfo.UseType.NONE_TABLE.getValue() : TableConstant.OrderInfo.UseType.DINE_IN_AFTER.getValue(),
|
||||
shopId, tableId, isTakeout ? OrderSendTypeEnums.TAKE_SELF.getValue() : OrderSendTypeEnums.TABLE.getValue());
|
||||
}
|
||||
@@ -550,8 +551,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
tbCashierCart.setCategoryId(product.getCategoryId());
|
||||
tbCashierCart.setNote(addCartDTO.getNote());
|
||||
tbCashierCart.setPlatformType(OrderPlatformTypeEnum.PC.getValue());
|
||||
tbCashierCart.setMemberPrice(productSku.getMemberPrice() == null || productSku.getMemberPrice().compareTo(BigDecimal.ZERO) <= 0 ? productSku.getSalePrice() : productSku.getMemberPrice());
|
||||
tbCashierCart.setIsMember(addCartDTO.getVipUserId() == null ? 0 : 1);
|
||||
tbCashierCart.setIsMember(shopEatTypeInfoDTO.isMemberPrice() && addCartDTO.getVipUserId() == null ? 0 : 1);
|
||||
if (tbCashierCart.getIsMember() == 1) {
|
||||
tbCashierCart.setMemberPrice(productSku.getMemberPrice());
|
||||
}
|
||||
cashierCartRepository.save(tbCashierCart);
|
||||
|
||||
} else {
|
||||
@@ -1115,7 +1118,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public TbOrderInfo createOrder(CreateOrderDTO createOrderDTO, boolean addMaterId, boolean isPrint) {
|
||||
public TbOrderInfo createOrder(CreateOrderDTO createOrderDTO, boolean byOrderId) {
|
||||
createOrderDTO.setTableId(OrderUseTypeEnum.TAKEOUT.getValue().equals(createOrderDTO.getUseType()) ? null : createOrderDTO.getTableId());
|
||||
return Utils.runFunAndCheckKey(() -> {
|
||||
TbShopInfo shopInfo = shopInfoRepository.findById(createOrderDTO.getShopId()).orElse(null);
|
||||
@@ -1130,7 +1133,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
// 就餐模式信息
|
||||
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(createOrderDTO.getShopId(), createOrderDTO.getTableId(), createOrderDTO.getUseType());
|
||||
|
||||
OrderCartInfoDTO cartInfoDTO = getCartForCreateOrder(shopEatTypeInfoDTO, createOrderDTO.getMasterId(), shopUser);
|
||||
OrderCartInfoDTO cartInfoDTO = getCartForCreateOrder(shopEatTypeInfoDTO, createOrderDTO.getMasterId(), shopUser, byOrderId ? createOrderDTO.getOrderId() : null, byOrderId);
|
||||
if (cartInfoDTO.getOrderId() == null) {
|
||||
createOrderDTO.setOrderId(shopEatTypeInfoDTO.isDineInAfter() ?
|
||||
getCurrentOrderId(shopEatTypeInfoDTO) : null);
|
||||
@@ -1151,7 +1154,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
// }
|
||||
|
||||
// 创建订单详情
|
||||
OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo, createOrderDTO.getShopId(), true);
|
||||
OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo, createOrderDTO.getShopId(), true, shopEatTypeInfoDTO);
|
||||
|
||||
// 是否是第一次创建订单
|
||||
orderInfo = createOrderWithAction(createOrderDTO, detailPriceDTO, shopEatTypeInfoDTO,
|
||||
@@ -1309,10 +1312,14 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
return infoDTO;
|
||||
}
|
||||
|
||||
private OrderCartInfoDTO getCartForCreateOrder(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId, TbShopUser shopUser) {
|
||||
private OrderCartInfoDTO getCartForCreateOrder(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId, TbShopUser shopUser, Integer orderId, boolean ignoreEmpty) {
|
||||
OrderCartInfoDTO cartInfoDTO = new OrderCartInfoDTO();
|
||||
|
||||
List<TbCashierCart> allCashierCarts = mpCashierCartService.selectByShopEatType(shopEatTypeInfoDTO, masterId);
|
||||
List<TbCashierCart> allCashierCarts;
|
||||
if (orderId != null) {
|
||||
allCashierCarts = mpCashierCartService.selectByOrderIdAndState(orderId, null);
|
||||
}else {
|
||||
allCashierCarts = mpCashierCartService.selectByShopEatType(shopEatTypeInfoDTO, masterId);
|
||||
}
|
||||
TbCashierCart seatCart = null;
|
||||
for (TbCashierCart cashierCart : allCashierCarts) {
|
||||
if (TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId())) {
|
||||
@@ -1325,10 +1332,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
cartInfoDTO.getCashierCarts().add(cashierCart);
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(shopEatTypeInfoDTO.getTableId())
|
||||
if (!ignoreEmpty && (StrUtil.isNotBlank(shopEatTypeInfoDTO.getTableId())
|
||||
&& (cartInfoDTO.getCashierCarts().isEmpty() ||
|
||||
(shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart != null && cartInfoDTO.getCashierCarts().size() < 2)
|
||||
|| (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart == null))) {
|
||||
|| (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart == null)))) {
|
||||
throw new BadRequestException("购物车为空或未选择餐位费,请先添加商品或选择餐位费");
|
||||
}
|
||||
|
||||
@@ -1347,7 +1354,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
cartInfoDTO.setNewAddTotalAmount(cartInfoDTO.getNewAddTotalAmount().add(tbCashierCart.getTotalAmount()));
|
||||
}
|
||||
if (shopUser != null) {
|
||||
tbCashierCart.setIsMember(tbCashierCart.getMemberPrice() == null && shopUser.getIsVip() == 1 ? 0 : 1);
|
||||
tbCashierCart.setIsMember(shopEatTypeInfoDTO.isMemberPrice() && tbCashierCart.getMemberPrice() == null && shopUser.getIsVip() == 1 ? 0 : 1);
|
||||
}
|
||||
tbCashierCart.resetTotalAmount();
|
||||
|
||||
@@ -1390,7 +1397,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
* @param updateState
|
||||
* @return
|
||||
*/
|
||||
private OrderPriceDTO createOrderDetailWithCoupon(List<TbCashierCart> fullCashierCarts, TbOrderInfo orderInfo, Integer shopId, boolean updateState) {
|
||||
private OrderPriceDTO createOrderDetailWithCoupon(List<TbCashierCart> fullCashierCarts, TbOrderInfo orderInfo, Integer shopId, boolean updateState, ShopEatTypeInfoDTO shopEatTypeInfoDTO) {
|
||||
OrderPriceDTO priceDTO = new OrderPriceDTO();
|
||||
|
||||
List<Integer> cartIds = fullCashierCarts.stream().map(TbCashierCart::getId).collect(Collectors.toList());
|
||||
@@ -1408,10 +1415,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
});
|
||||
|
||||
for (TbCashierCart cashierCart : fullCashierCarts) {
|
||||
if (orderInfo != null) {
|
||||
cashierCart.setIsMember(orderInfo.getMemberId() == null ? 0 : 1);
|
||||
cashierCart.resetTotalAmount();
|
||||
if (orderInfo != null && shopEatTypeInfoDTO != null) {
|
||||
cashierCart.setIsMember(orderInfo.getMemberId() == null ? 0 : shopEatTypeInfoDTO.isMemberPrice() ? 1 : 0);
|
||||
}
|
||||
cashierCart.resetTotalAmount();
|
||||
|
||||
// 已经退款和使用优惠券的商品不进行统计金额
|
||||
if (!"return".equals(cashierCart.getStatus()) && cashierCart.getUserCouponId() == null) {
|
||||
@@ -1423,7 +1430,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
priceDTO.setOriginAmount(priceDTO.getOriginAmount().add(cashierCart.getTotalAmount()));
|
||||
}
|
||||
|
||||
|
||||
TbProductSku productSku = productSkuRepository.findById(Integer.valueOf(cashierCart.getSkuId())).orElse(null);
|
||||
TbOrderDetail orderDetail = null;
|
||||
if (cashierCart.getOrderId() != null) {
|
||||
@@ -1752,7 +1758,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
createOrderDTO.setMasterId(pendingDTO.getMasterId());
|
||||
createOrderDTO.setNote(pendingDTO.getNote());
|
||||
createOrderDTO.setUseType(pendingDTO.getUseType());
|
||||
orderId = createOrder(createOrderDTO, true, false).getId();
|
||||
orderId = createOrder(createOrderDTO, false).getId();
|
||||
|
||||
}
|
||||
|
||||
@@ -1954,7 +1960,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
|
||||
// 更新订单信息
|
||||
|
||||
OrderPriceDTO priceDTO = createOrderDetailWithCoupon(activateCartInfo, orderInfo, payDTO.getShopId(), false);
|
||||
OrderPriceDTO priceDTO = createOrderDetailWithCoupon(activateCartInfo, orderInfo, payDTO.getShopId(), false, null);
|
||||
BigDecimal finalAmount = priceDTO.getTotalAmount().multiply(BigDecimal.valueOf(payDTO.getDiscount())).setScale(2, RoundingMode.HALF_UP);
|
||||
|
||||
orderInfo.setUpdatedAt(System.currentTimeMillis());
|
||||
@@ -1991,8 +1997,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
|
||||
// 计算优惠券价格信息
|
||||
if (payDTO.getVipUserId() == null) {
|
||||
|
||||
payDTO.setVipUserId(Integer.valueOf(orderInfo.getMemberId()));
|
||||
payDTO.setVipUserId(orderInfo.getMemberId() != null ? Integer.valueOf(orderInfo.getMemberId()) : null);
|
||||
}
|
||||
|
||||
|
||||
@@ -2159,24 +2164,12 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Object updateVip(UpdateVipDTO updateVipDTO) {
|
||||
Integer orderId = updateVipDTO.getOrderId();
|
||||
if (orderId == null) {
|
||||
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(updateVipDTO.getShopId(), updateVipDTO.getTableId());
|
||||
LambdaQueryWrapper<TbCashierCart> queryWrapper = new LambdaQueryWrapper<TbCashierCart>()
|
||||
.in(TbCashierCart::getStatus, "create", "return")
|
||||
.eq(TbCashierCart::getShopId, updateVipDTO.getShopId())
|
||||
.eq(TbCashierCart::getUseType, shopEatTypeInfoDTO.getUseType())
|
||||
.and(q -> q.eq(TbCashierCart::getMasterId, updateVipDTO.getMasterId()).or().isNull(TbCashierCart::getMasterId));
|
||||
|
||||
if (!shopEatTypeInfoDTO.isTakeout()) {
|
||||
queryWrapper.eq(TbCashierCart::getTableId, updateVipDTO.getTableId());
|
||||
} else {
|
||||
queryWrapper.and(q -> q.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, ""))
|
||||
.in(TbCashierCart::getPlatformType, OrderPlatformTypeEnum.PC.getValue(), OrderPlatformTypeEnum.CASH.getValue());
|
||||
}
|
||||
|
||||
List<TbCashierCart> tbCashierCarts = cashierCartMapper.selectList(queryWrapper.isNotNull(TbCashierCart::getOrderId));
|
||||
List<TbCashierCart> tbCashierCarts = mpCashierCartService.selectByShopEatType(shopEatTypeInfoDTO, updateVipDTO.getMasterId());
|
||||
for (TbCashierCart item : tbCashierCarts) {
|
||||
if (item.getOrderId() != null) {
|
||||
orderId = item.getOrderId();
|
||||
@@ -2184,23 +2177,45 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
}
|
||||
}
|
||||
|
||||
CreateOrderDTO dto = null;
|
||||
if (orderId != null) {
|
||||
TbOrderInfo orderInfo = mpOrderInfoService.getById(orderId);
|
||||
if(!TableConstant.OrderInfo.Status.UNPAID.equalsVals(orderInfo.getStatus())) {
|
||||
throw new BadRequestException("订单状态异常");
|
||||
}
|
||||
dto = new CreateOrderDTO();
|
||||
dto.setTableId(orderInfo.getTableId());
|
||||
dto.setOrderId(orderInfo.getId());
|
||||
dto.setShopId(Integer.valueOf(orderInfo.getShopId()));
|
||||
dto.setMasterId(orderInfo.getMasterId());
|
||||
dto.setUseType(orderInfo.getUseType());
|
||||
}
|
||||
|
||||
|
||||
if (updateVipDTO.getType() == 0) {
|
||||
TbShopUser shopUser = tbShopUserMapper.selectById(updateVipDTO.getVipUserId());
|
||||
if (shopUser == null) {
|
||||
throw new BadRequestException("用户信息不存在");
|
||||
}
|
||||
mpCashierCartService.updateMemberByOrderId(orderId, true);
|
||||
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
|
||||
|
||||
orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
|
||||
.eq(TbOrderInfo::getId, orderId)
|
||||
.set(TbOrderInfo::getUserId, shopUser.getUserId())
|
||||
.set(TbOrderInfo::getMemberId, updateVipDTO.getVipUserId()));
|
||||
|
||||
} else {
|
||||
mpCashierCartService.updateMemberByOrderId(orderId, false);
|
||||
return orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
|
||||
mpCashierCartService.updateMemberAndAmountByOrderId(orderId, false);
|
||||
orderInfoMapper.update(null, new LambdaUpdateWrapper<TbOrderInfo>()
|
||||
.eq(TbOrderInfo::getId, orderId)
|
||||
.set(TbOrderInfo::getUserId, null)
|
||||
.set(TbOrderInfo::getMemberId, null));
|
||||
}
|
||||
|
||||
if (dto != null) {
|
||||
return createOrder(dto, true);
|
||||
}
|
||||
return "哈哈哈";
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2301,6 +2316,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
tbCashierCart.setTableId(choseCountDTO.getTableId());
|
||||
tbCashierCart.setName("客座费");
|
||||
tbCashierCart.setSalePrice(shopInfo.getTableFee());
|
||||
tbCashierCart.setMemberPrice(shopInfo.getTableFee());
|
||||
tbCashierCart.setMasterId(choseCountDTO.getMasterId());
|
||||
tbCashierCart.setShopId(String.valueOf(choseCountDTO.getShopId()));
|
||||
tbCashierCart.setTradeDay(DateUtils.getDay());
|
||||
@@ -2315,6 +2331,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
tbCashierCart.setUseType(choseCountDTO.getUseType());
|
||||
tbCashierCartMapper.insert(tbCashierCart);
|
||||
} else {
|
||||
tbCashierCart.setMemberPrice(shopInfo.getTableFee());
|
||||
tbCashierCart.setStatus(TableConstant.CashierCart.Status.CREATE.getValue());
|
||||
tbCashierCart.setTotalAmount(new BigDecimal(choseCountDTO.getNum()).multiply(shopInfo.getTableFee()));
|
||||
tbCashierCart.setNumber(choseCountDTO.getNum());
|
||||
@@ -2645,18 +2662,16 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
||||
orderInfo.setRefundRemark(returnOrderDTO.getNote());
|
||||
if ("scanCode".equals(payType) || "wx_lite".equals(payType)) {
|
||||
payService.returnOrder(Integer.valueOf(shopId), orderInfo, returnOrderInfo);
|
||||
orderInfo.setStatus("refund");
|
||||
// 储值卡支付退款
|
||||
} else if ("deposit".equals(payType)) {
|
||||
orderInfoService.depositReturn(Integer.valueOf(orderInfo.getUserId()), Integer.valueOf(orderInfo.getShopId()), returnAmount);
|
||||
orderInfo.setStatus("refund");
|
||||
mpOrderDetailService.updateStatusByOrderIdAndIds(OrderStatusEnums.REFUNDING, OrderStatusEnums.REFUND,
|
||||
returnOrderDTO.getOrderId(), returnOrderDTO.getOrderDetails().stream().map(ReturnOrderDTO.OrderDetail::getId).collect(Collectors.toList()));
|
||||
} else if ("cash".equals(payType)) {
|
||||
orderInfo.setStatus("refund");
|
||||
mpOrderDetailService.updateStatusByOrderIdAndIds(OrderStatusEnums.REFUNDING, OrderStatusEnums.REFUND,
|
||||
returnOrderDTO.getOrderId(), returnOrderDTO.getOrderDetails().stream().map(ReturnOrderDTO.OrderDetail::getId).collect(Collectors.toList()));
|
||||
}
|
||||
orderInfo.setStatus(TableConstant.OrderInfo.Status.CLOSED.getValue());
|
||||
orderInfoMapper.updateById(orderInfo);
|
||||
// 打印退款小票
|
||||
// producer.printMechine(newOrderInfo.getId().toString());
|
||||
|
||||
@@ -110,7 +110,7 @@ public interface TbShopTableService {
|
||||
|
||||
void pack(PackCartDTO packCartDTO);
|
||||
|
||||
Object createOrder(CreateOrderDTO createOrderDTO, boolean addMasterId, boolean isPrint);
|
||||
Object createOrder(CreateOrderDTO createOrderDTO, boolean addMasterId);
|
||||
|
||||
JSONObject getMasterId(Integer shopId, String tableId, String useType, Integer orderId);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user