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

This commit is contained in:
Tankaikai
2024-11-08 09:52:45 +08:00
13 changed files with 311 additions and 52 deletions

View File

@@ -88,6 +88,18 @@ public class JSONUtil {
}
}
public static <T> List<T> parseJSONStrTList(String jsonStr, Class<T> clazz) {
ObjectMapper objectMapper = new ObjectMapper();
try {
// 将JSON字符串转换为List<T>
return objectMapper.readValue(jsonStr, objectMapper.getTypeFactory().constructCollectionType(List.class, clazz));
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* @param list 某集合
* @param clazz 要转成的实体

View File

@@ -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);
}
}

View File

@@ -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")

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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> {
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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, ""));

View File

@@ -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);
}
}

View File

@@ -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);
}
}
}
}

View File

@@ -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());

View File

@@ -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);