From a712b5be1d79a294f105c0098713207e83c2f1ef Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 10 Dec 2024 11:33:41 +0800 Subject: [PATCH 01/37] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TbVersionController.java | 7 ++++ .../ysk/cashier/service/TbVersionService.java | 2 + .../service/impl/TbVersionServiceImpl.java | 40 ++++++++++--------- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java index 7eb2f419..157162b9 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java @@ -1,6 +1,7 @@ package cn.ysk.cashier.controller; import cn.ysk.cashier.annotation.Log; +import cn.ysk.cashier.annotation.rest.AnonymousGetMapping; import cn.ysk.cashier.dto.TbVersionQueryCriteria; import cn.ysk.cashier.pojo.TbVersion; import cn.ysk.cashier.service.TbVersionService; @@ -27,6 +28,12 @@ public class TbVersionController { return new ResponseEntity<>(tbVersionService.queryAllPage(criteria),HttpStatus.OK); } + @GetMapping("findBySource") + @ApiOperation("查询所属渠道升级版本") + public ResponseEntity findBySource(String source){ + return new ResponseEntity<>(tbVersionService.findBySource(source),HttpStatus.OK); + } + @PostMapping @Log("版本管理 新增") @ApiOperation("新增版本") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbVersionService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbVersionService.java index decc3ddc..5da5ace0 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbVersionService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbVersionService.java @@ -32,6 +32,8 @@ public interface TbVersionService { */ List queryAll(TbVersionQueryCriteria criteria); + TbVersion findBySource(String source); + /** * 根据ID查询 * @param id ID diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbVersionServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbVersionServiceImpl.java index 58ff97b2..91fcabab 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbVersionServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbVersionServiceImpl.java @@ -8,17 +8,21 @@ import cn.ysk.cashier.pojo.TbVersion; import cn.ysk.cashier.repository.TbVersionRepository; import cn.ysk.cashier.service.TbVersionService; import cn.ysk.cashier.utils.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.persistence.criteria.Predicate; import java.time.Instant; import java.util.List; import java.util.Map; +import java.util.Optional; /** * @author ww @@ -47,6 +51,22 @@ public class TbVersionServiceImpl implements TbVersionService { return tbVersionMapper.toDto(tbVersionRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder))); } + @Override + public TbVersion findBySource(String source) { + Specification spec = (root, criteriaQuery, criteriaBuilder) -> { + Predicate param1 = criteriaBuilder.equal(root.get("source"), source); + Predicate param2 = criteriaBuilder.equal(root.get("sel"), 1); + // 使用or方法将两个条件组合起来,表示满足其中一个条件即可 + return criteriaBuilder.and(param1, param2); + }; + Optional one = tbVersionRepository.findOne(spec); + if(one.isPresent()){ + return one.get(); + }else { + return null; + } + } + @Override @Transactional public TbVersionDto findById(Integer id) { @@ -58,17 +78,12 @@ public class TbVersionServiceImpl implements TbVersionService { @Override @Transactional(rollbackFor = Exception.class) public TbVersionDto create(TbVersion resources) { - int exist = tbVersionRepository.isExist(resources.getSource(), resources.getVersion()); + int exist = tbVersionRepository.isExist(resources.getSource(), resources.getVersion()); if (exist > 0) { throw new BadRequestException("该版本已存在。"); } resources.setCreatedAt(Instant.now().toEpochMilli()); TbVersionDto dto = tbVersionMapper.toDto(tbVersionRepository.save(resources)); -// if (dto.getIsUp() == 1) { -// //产品标识:型号:版本 -// //VERSION:PC::version 存在即需要强制更新 -// redisUtils.set(CacheKey.VERSION + dto.getSource() + ":" + dto.getVersion(), dto); -// } return dto; } @@ -77,23 +92,15 @@ public class TbVersionServiceImpl implements TbVersionService { public void update(TbVersion resources) { TbVersion tbVersion = tbVersionRepository.findById(resources.getId()).orElseGet(TbVersion::new); ValidationUtil.isNull(tbVersion.getId(), "TbVersion", "id", resources.getId()); -// redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion()); tbVersion.copy(resources); tbVersion.setUpdatedAt(Instant.now().toEpochMilli()); tbVersionRepository.save(tbVersion); -// if (resources.getIsUp() == 1) { -// //产品标识:型号:版本 -// //LDBL_APP_VERSION:ios:version 存在即需要强制更新 -// redisUtils.set(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion(), tbVersion.getMessage()); -// } else { -// redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion()); -// } } @Override @Transactional(rollbackFor = Exception.class) public void updateSel(TbVersion resources) { - tbVersionRepository.updateSelBySource(resources.getSource(),resources.getId()); + tbVersionRepository.updateSelBySource(resources.getSource(), resources.getId()); } @Override @@ -102,9 +109,6 @@ public class TbVersionServiceImpl implements TbVersionService { TbVersion tbVersion = tbVersionRepository.findById(id).orElseGet(TbVersion::new); ValidationUtil.isNull(tbVersion.getId(), "TbVersion", "id", id); tbVersionRepository.deleteById(id); -// if (tbVersion.getIsUp() == 1) { -// redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion()); -// } } } From a938d0e3928ad8161c859c71484755ac4ce4f45f Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 10 Dec 2024 14:44:18 +0800 Subject: [PATCH 02/37] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/ysk/cashier/controller/TbVersionController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java index 157162b9..163650a8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbVersionController.java @@ -28,7 +28,7 @@ public class TbVersionController { return new ResponseEntity<>(tbVersionService.queryAllPage(criteria),HttpStatus.OK); } - @GetMapping("findBySource") + @AnonymousGetMapping("findBySource") @ApiOperation("查询所属渠道升级版本") public ResponseEntity findBySource(String source){ return new ResponseEntity<>(tbVersionService.findBySource(source),HttpStatus.OK); From cbe190ea71970044fc686c2c12b5789ce4176a09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 10 Dec 2024 15:17:19 +0800 Subject: [PATCH 03/37] =?UTF-8?q?=E8=BD=AC=E5=8F=B0=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/product/TbPlaceController.java | 5 +++++ .../cashier/dto/shoptable/SwitchTableDTO.java | 22 +++++++++++++++++++ .../mybatis/service/MpCashierCartService.java | 10 ++++++++- .../impl/MpCashierCartServiceImpl.java | 7 +++++- .../impl/shopimpl/TbShopTableServiceImpl.java | 10 ++++++++- .../service/shop/TbShopTableService.java | 6 +++++ 6 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/SwitchTableDTO.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbPlaceController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbPlaceController.java index 3caed88d..089a7c0f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbPlaceController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbPlaceController.java @@ -239,6 +239,11 @@ public class TbPlaceController { return ResponseEntity.ok(tbShopTableService.choseCount(choseCountDTO)); } + @PutMapping("/switch") + public ResponseEntity switchTable(@Validated @RequestBody SwitchTableDTO switchTableDTO) { + return ResponseEntity.ok(tbShopTableService.switchTable(switchTableDTO)); + } + @PutMapping("/updateVip") @ApiOperation("代客下单 查询购物车 /shop/table") public ResponseEntity updateVip(@Validated @RequestBody UpdateVipDTO updateVipDTO) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/SwitchTableDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/SwitchTableDTO.java new file mode 100644 index 00000000..03a6951e --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/SwitchTableDTO.java @@ -0,0 +1,22 @@ +package cn.ysk.cashier.dto.shoptable; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class SwitchTableDTO { + @NotNull + private Integer shopId; + @NotEmpty(message = "取餐码不为空") + private String masterId; + private Integer orderId; + private List cartIds; + private boolean isFull; + @NotEmpty(message = "当前台桌id不为空") + private String currentTableId; + @NotEmpty(message = "目标台桌id不为空") + private String targetTableId; +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpCashierCartService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpCashierCartService.java index 1c0d33fa..f10f08a6 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpCashierCartService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpCashierCartService.java @@ -69,7 +69,15 @@ public interface MpCashierCartService extends IService { List selectByShopEatType(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId, TableConstant.OrderInfo.Status... statuses); - List selectByShopEatTypeAndOrderId(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId, Integer orderId, TableConstant.OrderInfo.Status... statuses); + /** + * 根据就餐模式查询购物车信息 + * @param shopEatTypeInfoDTO 就餐模式 + * @param masterId 取餐码 + * @param orderId 订单id + * @param onlySearchPc 只查询pc + * @param statuses 状态 + */ + List selectByShopEatTypeAndOrderId(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId, Integer orderId, boolean onlySearchPc, TableConstant.OrderInfo.Status... statuses); /** * 根据订单id和状态获取购物车数据 diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java index 7bc07258..6aa766ae 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java @@ -139,7 +139,8 @@ public class MpCashierCartServiceImpl extends ServiceImpl selectByShopEatTypeAndOrderId(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId, Integer orderId, TableConstant.OrderInfo.Status... statuses) { + public List selectByShopEatTypeAndOrderId(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId, + Integer orderId, boolean onlySearchPc, TableConstant.OrderInfo.Status... statuses) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopEatTypeInfoDTO.getShopId()) .eq(TbCashierCart::getUseType, shopEatTypeInfoDTO.getUseType()) @@ -157,6 +158,10 @@ public class MpCashierCartServiceImpl extends ServiceImpl q.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, "")) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 2a5506b2..fdb5ca26 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -3318,7 +3318,8 @@ public class TbShopTableServiceImpl implements TbShopTableService { public Object waitCall(WaitCallDTO waitCallDTO) { ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(waitCallDTO.getShopId(), waitCallDTO.getTableId(), waitCallDTO.getUseType()); List cashierCarts = mpCashierCartService.selectByShopEatTypeAndOrderId(shopEatTypeInfoDTO, - waitCallDTO.getMasterId(), waitCallDTO.getOrderId(), TableConstant.OrderInfo.Status.CREATE, TableConstant.OrderInfo.Status.RETURN, TableConstant.OrderInfo.Status.CLOSED); + waitCallDTO.getMasterId(), waitCallDTO.getOrderId(), false, TableConstant.OrderInfo.Status.CREATE, + TableConstant.OrderInfo.Status.RETURN, TableConstant.OrderInfo.Status.CLOSED); if (cashierCarts.isEmpty()) { throw new BadRequestException("购物车为空"); } @@ -3336,4 +3337,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpCashierCartService.updateFieldValByIds(waitCallDTO.getShopId(), cartIds, TbCashierCart::getIsWaitCall, waitCallDTO.getIsWaitCall()); return mpOrderDetailService.updateFieldByCartId(TbOrderDetail::getIsWaitCall, waitCallDTO.getIsWaitCall(), cartIds); } + + @Override + public Object switchTable(SwitchTableDTO switchTableDTO) { + // 查询当前台桌信息 + mpCashierCartService.selectByShopEatTypeAndOrderId() + return null; + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopTableService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopTableService.java index c94ebc33..4d194042 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopTableService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopTableService.java @@ -169,4 +169,10 @@ public interface TbShopTableService { Object checkCoupon(ThirdCouponCheckDTO checkDTO); Object waitCall(WaitCallDTO waitCallDTO); + + /** + * 台桌转台 + * @param switchTableDTO 转台参数 + */ + Object switchTable(SwitchTableDTO switchTableDTO); } From 5b1e497bb6106d1383470965d4331a8334b3a2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Tue, 10 Dec 2024 15:29:06 +0800 Subject: [PATCH 04/37] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=BA=97=E9=93=BA=E6=8E=88=E6=9D=83=E8=BF=87=E6=9C=9F=E6=97=A5?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rest/AuthorizationController.java | 74 ++++++++++++------- 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java index 43d1eb96..27b20e07 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java @@ -1,46 +1,44 @@ package cn.ysk.cashier.config.security.rest; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import cn.ysk.cashier.annotation.rest.AnonymousDeleteMapping; +import cn.ysk.cashier.annotation.rest.AnonymousGetMapping; +import cn.ysk.cashier.annotation.rest.AnonymousPostMapping; +import cn.ysk.cashier.config.RsaProperties; import cn.ysk.cashier.config.security.config.bean.LoginCodeEnum; +import cn.ysk.cashier.config.security.config.bean.LoginProperties; +import cn.ysk.cashier.config.security.config.bean.SecurityProperties; import cn.ysk.cashier.config.security.security.TokenProvider; +import cn.ysk.cashier.config.security.service.OnlineUserService; +import cn.ysk.cashier.config.security.service.dto.AuthUserDto; +import cn.ysk.cashier.config.security.service.dto.JwtUserDto; +import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.mapper.MpShopInfoMapper; import cn.ysk.cashier.mybatis.mapper.TbMerchantAccountMapper; import cn.ysk.cashier.mybatis.service.MpShopUserService; -import cn.ysk.cashier.pojo.TbToken; import cn.ysk.cashier.pojo.shop.TbMerchantAccount; import cn.ysk.cashier.pojo.shop.TbPlussShopStaff; +import cn.ysk.cashier.pojo.shop.TbShopInfo; import cn.ysk.cashier.repository.TbTokenRepository; import cn.ysk.cashier.repository.shop.TbMerchantAccountRepository; import cn.ysk.cashier.repository.shop.TbPlussShopStaffRepository; -import cn.ysk.cashier.utils.*; +import cn.ysk.cashier.repository.shop.TbShopInfoRepository; +import cn.ysk.cashier.utils.RedisUtils; +import cn.ysk.cashier.utils.RsaUtils; +import cn.ysk.cashier.utils.SecurityUtils; +import cn.ysk.cashier.utils.StringUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.wf.captcha.base.Captcha; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import cn.ysk.cashier.annotation.Log; -import cn.ysk.cashier.annotation.rest.AnonymousDeleteMapping; -import cn.ysk.cashier.annotation.rest.AnonymousGetMapping; -import cn.ysk.cashier.annotation.rest.AnonymousPostMapping; -import cn.ysk.cashier.config.RsaProperties; -import cn.ysk.cashier.exception.BadRequestException; - -import cn.ysk.cashier.config.security.config.bean.LoginProperties; -import cn.ysk.cashier.config.security.config.bean.SecurityProperties; -import cn.ysk.cashier.config.security.service.dto.AuthUserDto; -import cn.ysk.cashier.config.security.service.dto.JwtUserDto; -import cn.ysk.cashier.config.security.service.OnlineUserService; -import cn.ysk.cashier.pojo.shop.TbShopInfo; -import cn.ysk.cashier.repository.shop.TbShopInfoRepository; -import org.springframework.data.repository.query.Param; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.core.Authentication; @@ -50,10 +48,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.Set; import java.util.concurrent.TimeUnit; /** @@ -99,8 +96,8 @@ public class AuthorizationController { if (authUser.isChecked() && StringUtils.isBlank(authUser.getCode()) || authUser.isChecked() && !authUser.getCode().equalsIgnoreCase(code)) { throw new BadRequestException("验证码错误"); } - String loginpre=""; - String shopId=""; + String loginpre = ""; + String shopId = ""; // 判断是否是员工登录 if (authUser.getLoginType() != null && "staff".equals(authUser.getLoginType())) { if (StrUtil.isBlank(authUser.getMerchantName())) { @@ -117,7 +114,7 @@ public class AuthorizationController { //生成token UsernamePasswordAuthenticationToken authenticationToken = - new UsernamePasswordAuthenticationToken(loginpre+authUser.getUsername(), password); + new UsernamePasswordAuthenticationToken(loginpre + authUser.getUsername(), password); Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken); SecurityContextHolder.getContext().setAuthentication(authentication); // 生成令牌与第三方系统获取令牌方式 @@ -128,7 +125,7 @@ public class AuthorizationController { // TbShopInfo byAccount = tbShopInfoRepository.findByAccount(jwtUserDto.getUsername()); TbPlussShopStaff tbPlussShopStaff; if (authUser.getLoginType() != null && "staff".equals(authUser.getLoginType())) { - tbPlussShopStaff = staffRepository.queryByAccount(authUser.getUsername(),shopId); + tbPlussShopStaff = staffRepository.queryByAccount(authUser.getUsername(), shopId); } else { tbPlussShopStaff = staffRepository.queryByAccount(authUser.getUsername()); } @@ -151,8 +148,8 @@ public class AuthorizationController { put("user", jwtUserDto); if (byAccount != null) { put("shopId", byAccount.getId()); - put("mainId", org.apache.commons.lang3.StringUtils.isNotBlank(byAccount.getMainId())?byAccount.getMainId():byAccount.getId()); - put("loginType", org.apache.commons.lang3.StringUtils.isNotBlank(authUser.getLoginType())?authUser.getLoginType():"merchant"); + put("mainId", org.apache.commons.lang3.StringUtils.isNotBlank(byAccount.getMainId()) ? byAccount.getMainId() : byAccount.getId()); + put("loginType", org.apache.commons.lang3.StringUtils.isNotBlank(authUser.getLoginType()) ? authUser.getLoginType() : "merchant"); put("shopName", byAccount.getShopName()); put("logo", byAccount.getLogo()); } @@ -165,6 +162,16 @@ public class AuthorizationController { //踢掉之前已经登录的token onlineUserService.checkLoginOnUser(authUser.getUsername(), token); } + // 店铺使用有效期是否过期 + authInfo.put("expireDate", null); + if (StrUtil.isNotEmpty(shopId)) { + TbShopInfo shopInfo = shopInfoMapper.selectById(shopId); + if (shopInfo != null) { + Long expireAt = shopInfo.getExpireAt(); + Date time = DateUtil.calendar(expireAt).getTime(); + authInfo.put("expireDate", DateUtil.formatDate(time)); + } + } return ResponseEntity.ok(authInfo); } @@ -188,7 +195,7 @@ public class AuthorizationController { // Integer staffId = shopStaff.getId(); // List onlineUserList = tbTokenRepository.findListByAccountIdAndStaffId(accountId, staffId); shopStaff.setPassword(null); - return ResponseEntity.ok(new HashMap(){{ + return ResponseEntity.ok(new HashMap() {{ put("shopInfo", shopInfo); put("shopStaff", shopStaff); }}); @@ -231,6 +238,16 @@ public class AuthorizationController { //踢掉之前已经登录的token onlineUserService.checkLoginOnUser(authUser.getUsername(), token); } + // 店铺使用有效期是否过期 + authInfo.put("expireDate", null); + if (byAccount != null) { + TbShopInfo shopInfo = shopInfoMapper.selectById(byAccount.getId()); + if (shopInfo != null) { + Long expireAt = shopInfo.getExpireAt(); + Date time = DateUtil.calendar(expireAt).getTime(); + authInfo.put("expireDate", DateUtil.formatDate(time)); + } + } return ResponseEntity.ok(authInfo); } @@ -275,4 +292,5 @@ public class AuthorizationController { onlineUserService.logout(tokenProvider.getToken(request)); return new ResponseEntity<>(HttpStatus.OK); } + } From 4a755cfed5a48ec4af1f0c5bfcf450ad8a33bfec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Tue, 10 Dec 2024 15:35:49 +0800 Subject: [PATCH 05/37] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=BA=97=E9=93=BA=E6=8E=88=E6=9D=83=E8=BF=87=E6=9C=9F=E6=97=A5?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/config/security/rest/AuthorizationController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java index 27b20e07..5b125b70 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java @@ -164,8 +164,8 @@ public class AuthorizationController { } // 店铺使用有效期是否过期 authInfo.put("expireDate", null); - if (StrUtil.isNotEmpty(shopId)) { - TbShopInfo shopInfo = shopInfoMapper.selectById(shopId); + if (tbPlussShopStaff != null) { + TbShopInfo shopInfo = shopInfoMapper.selectById(tbPlussShopStaff.getShopId()); if (shopInfo != null) { Long expireAt = shopInfo.getExpireAt(); Date time = DateUtil.calendar(expireAt).getTime(); From c5a7d86f0bb8a601b2488245016fcc1e6095f796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Tue, 10 Dec 2024 15:40:33 +0800 Subject: [PATCH 06/37] =?UTF-8?q?fix=E9=85=8D=E7=BD=AEpad=E7=AB=AF?= =?UTF-8?q?=E8=8F=9C=E5=93=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/security/rest/AuthorizationController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java index 5b125b70..89385aa8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java @@ -170,6 +170,9 @@ public class AuthorizationController { Long expireAt = shopInfo.getExpireAt(); Date time = DateUtil.calendar(expireAt).getTime(); authInfo.put("expireDate", DateUtil.formatDate(time)); + if (DateUtil.compare(new Date(), time) > 0) { + throw new BadRequestException("店铺已到期,请联系区域经理续费"); + } } } return ResponseEntity.ok(authInfo); @@ -246,6 +249,9 @@ public class AuthorizationController { Long expireAt = shopInfo.getExpireAt(); Date time = DateUtil.calendar(expireAt).getTime(); authInfo.put("expireDate", DateUtil.formatDate(time)); + if (DateUtil.compare(new Date(), time) > 0) { + throw new BadRequestException("店铺已到期,请联系区域经理续费"); + } } } return ResponseEntity.ok(authInfo); From 7e8c0121e1502f645a8388295cb3a2b5d99a6cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Tue, 10 Dec 2024 16:19:23 +0800 Subject: [PATCH 07/37] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=BA=97=E9=93=BA=E6=8E=88=E6=9D=83=E8=BF=87=E6=9C=9F=E6=97=A5?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/config/security/rest/AuthorizationController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java index 89385aa8..8a7e1f2a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java @@ -166,7 +166,7 @@ public class AuthorizationController { authInfo.put("expireDate", null); if (tbPlussShopStaff != null) { TbShopInfo shopInfo = shopInfoMapper.selectById(tbPlussShopStaff.getShopId()); - if (shopInfo != null) { + if (shopInfo != null && shopInfo.getExpireAt() != null) { Long expireAt = shopInfo.getExpireAt(); Date time = DateUtil.calendar(expireAt).getTime(); authInfo.put("expireDate", DateUtil.formatDate(time)); @@ -245,7 +245,7 @@ public class AuthorizationController { authInfo.put("expireDate", null); if (byAccount != null) { TbShopInfo shopInfo = shopInfoMapper.selectById(byAccount.getId()); - if (shopInfo != null) { + if (shopInfo != null && shopInfo.getExpireAt() != null) { Long expireAt = shopInfo.getExpireAt(); Date time = DateUtil.calendar(expireAt).getTime(); authInfo.put("expireDate", DateUtil.formatDate(time)); From 2ede4f36737e4abd6e4c17f0a8ee41d25be5a7c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 10 Dec 2024 17:34:07 +0800 Subject: [PATCH 08/37] =?UTF-8?q?fix:=20=E8=BD=AC=E6=A1=8C=E5=B9=B6?= =?UTF-8?q?=E6=A1=8C=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/dto/shoptable/SwitchTableDTO.java | 3 + .../mybatis/service/MpCashierCartService.java | 1 + .../mybatis/service/MpOrderDetailService.java | 12 ++ .../impl/MpCashierCartServiceImpl.java | 64 +++++++++- .../impl/MpOrderDetailServiceImpl.java | 11 ++ .../impl/shopimpl/TbShopTableServiceImpl.java | 112 +++++++++++++++++- 6 files changed, 196 insertions(+), 7 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/SwitchTableDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/SwitchTableDTO.java index 03a6951e..84ea2d51 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/SwitchTableDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/SwitchTableDTO.java @@ -2,6 +2,7 @@ package cn.ysk.cashier.dto.shoptable; import lombok.Data; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.List; @@ -12,6 +13,8 @@ public class SwitchTableDTO { private Integer shopId; @NotEmpty(message = "取餐码不为空") private String masterId; + @NotBlank + private String useType; private Integer orderId; private List cartIds; private boolean isFull; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpCashierCartService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpCashierCartService.java index f10f08a6..a50572cf 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpCashierCartService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpCashierCartService.java @@ -78,6 +78,7 @@ public interface MpCashierCartService extends IService { * @param statuses 状态 */ List selectByShopEatTypeAndOrderId(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId, Integer orderId, boolean onlySearchPc, TableConstant.OrderInfo.Status... statuses); + Long countByShopEatType(ShopEatTypeInfoDTO shopEatTypeInfoDTO, String masterId, Integer orderId, boolean onlySearchPc, TableConstant.OrderInfo.Status... statuses); /** * 根据订单id和状态获取购物车数据 diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpOrderDetailService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpOrderDetailService.java index bdf3c773..0321b37d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpOrderDetailService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MpOrderDetailService.java @@ -82,5 +82,17 @@ public interface MpOrderDetailService extends IService { boolean updateMemberByOrderId(Integer orderId, boolean isMember); boolean updateFieldByCartId(SFunction field, Object val, List cartIds); + + /** + * 根据购物车更改订单台桌信息 + * @param shopId 店铺id + * @param targetTableId 新的台桌id + * @param masterId 取餐码 + * @param cartIds 购物车id + * @return + */ + boolean updateTableInfoByCartIds(Integer shopId, String targetTableId, String masterId, List cartIds); + + boolean removeByCartIds(ArrayList cartIds); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java index 6aa766ae..36fd5552 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java @@ -23,8 +23,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; /** * (TbShopPermission)表服务实现类 @@ -120,7 +122,9 @@ public class MpCashierCartServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, shopEatTypeInfoDTO.getShopId()) + .eq(TbCashierCart::getUseType, shopEatTypeInfoDTO.getUseType()) + .gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime()) + .and(q -> q.eq(TbCashierCart::getMasterId, masterId).or().isNull(TbCashierCart::getMasterId)); + + if (statuses.length == 0) { + queryWrapper.in(TbCashierCart::getStatus, "create", "return"); + } else { + queryWrapper.in(TbCashierCart::getStatus, Arrays.stream(statuses) + .map(TableConstant.OrderInfo.Status::getValue) + .collect(Collectors.toList())); + } + + if (orderId != null) { + queryWrapper.and(q -> q.eq(TbCashierCart::getOrderId, orderId) + .or().isNull(TbCashierCart::getOrderId)); + } + + if (onlySearchPc) { + queryWrapper.ne(TbCashierCart::getPlatformType, "mimiapp"); + } + + // 非堂食校验台桌状态 + 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, "")); + } + + } + return count(queryWrapper); + } + @Override public List selectByOrderIdAndState(Integer orderId, TableConstant.OrderInfo.Status... status) { LambdaQueryChainWrapper queryChainWrapper = lambdaQuery().eq(TbCashierCart::getOrderId, orderId); @@ -220,7 +267,9 @@ public class MpCashierCartServiceImpl extends ServiceImpl selectByIds(Integer shopId, Integer orderId, List ids, TableConstant.OrderInfo.Status... statuses) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopId) - .eq(TbCashierCart::getOrderId, orderId) .in(TbCashierCart::getId, ids); + if (orderId != null) { + queryWrapper.eq(TbCashierCart::getOrderId, orderId); + } if (statuses.length != 0) { - queryWrapper.in(TbCashierCart::getStatus, CollUtil.newArrayList(statuses)); + + queryWrapper.in(TbCashierCart::getStatus, Arrays.stream(statuses) + .map(TableConstant.OrderInfo.Status::getValue) + .collect(Collectors.toList())); } return list(queryWrapper); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpOrderDetailServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpOrderDetailServiceImpl.java index 318090ba..c6e29e87 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpOrderDetailServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpOrderDetailServiceImpl.java @@ -97,5 +97,16 @@ public class MpOrderDetailServiceImpl extends ServiceImpl cartIds) { + return false; + } + + @Override + public boolean removeByCartIds(ArrayList cartIds) { + return remove(new LambdaQueryWrapper() + .in(TbOrderDetail::getCartId, cartIds)); + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index e66aaef6..efaa2350 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -3341,9 +3341,117 @@ public class TbShopTableServiceImpl implements TbShopTableService { } @Override + @Transactional public Object switchTable(SwitchTableDTO switchTableDTO) { // 查询当前台桌信息 - mpCashierCartService.selectByShopEatTypeAndOrderId() - return null; + ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(switchTableDTO.getShopId(), switchTableDTO.getCurrentTableId(), switchTableDTO.getUseType()); + ShopEatTypeInfoDTO targetShopEatTypeInfoDTO = checkEatModel(switchTableDTO.getShopId(), switchTableDTO.getTargetTableId(), switchTableDTO.getUseType()); + if (!shopEatTypeInfoDTO.isDineInAfter()) { + throw new BadRequestException("仅后付费模式支持转台"); + } + TbShopTable shopTable = mpShopTableService.selectByTableId(switchTableDTO.getTargetTableId(), switchTableDTO.getShopId()); + if (shopTable == null) { + throw new BadRequestException("目标台桌信息不存在"); + } + + if (TableConstant.ShopTable.State.CLEANING.getValue().equals(shopTable.getStatus())) { + throw new BadRequestException("当前台桌清理中,不能转台"); + } + + List cashierCarts; + long totalSize = 99999; + if (switchTableDTO.isFull()) { + cashierCarts = mpCashierCartService.selectByShopEatTypeAndOrderId(shopEatTypeInfoDTO, switchTableDTO.getMasterId(), switchTableDTO.getOrderId(), + true, TableConstant.OrderInfo.Status.CREATE, TableConstant.OrderInfo.Status.RETURN); + }else { + if (switchTableDTO.getCartIds().isEmpty()) { + throw new BadRequestException("请选择转单商品"); + } + + totalSize = mpCashierCartService.countByShopEatType(shopEatTypeInfoDTO, switchTableDTO.getMasterId(), switchTableDTO.getOrderId(), + true, TableConstant.OrderInfo.Status.CREATE, TableConstant.OrderInfo.Status.RETURN); + cashierCarts = mpCashierCartService.selectByIds(switchTableDTO.getShopId(), null, switchTableDTO.getCartIds(), + TableConstant.OrderInfo.Status.CREATE, TableConstant.OrderInfo.Status.RETURN); + } + + if (cashierCarts.isEmpty()) { + throw new BadRequestException("当前台桌购物车为空"); + } + + String masterId = getMasterId(switchTableDTO.getShopId(), switchTableDTO.getTargetTableId(), null, null).getString("masterId"); + // 查询目标购物车 + List targetCarts = mpCashierCartService.selectByShopEatTypeAndOrderId(targetShopEatTypeInfoDTO, masterId, null, false); + TbCashierCart targetSeatFee = null; + Integer targetOrderId = null; + for (TbCashierCart targetCart : targetCarts) { + if (TableConstant.CART_SEAT_ID.equals(targetCart.getId().toString())) { + targetSeatFee = targetCart; + } + + if (targetCart.getOrderId() != null) { + targetOrderId = targetCart.getOrderId(); + } + } + + // 修改原有购物车数据 + ArrayList cartIds = new ArrayList<>(); + Integer orderId = switchTableDTO.getOrderId(); + TbCashierCart currentSeatFee = null; + ArrayList updateCartInfos = new ArrayList<>(); + for (TbCashierCart item : cashierCarts) { + if (targetSeatFee == null || !TableConstant.CART_SEAT_ID.equals(item.getId().toString())) { + item.setTableId(switchTableDTO.getTargetTableId()); + item.setMasterId(masterId); + updateCartInfos.add(item); + } + cartIds.add(item.getId()); + + if (item.getOrderId() != null) { + orderId = item.getOrderId(); + } + + if (TableConstant.CART_SEAT_ID.equals(item.getId().toString())) { + currentSeatFee = item; + } + } + + if (currentSeatFee != null && targetSeatFee != null) { + targetSeatFee.setNumber(currentSeatFee.getNumber().add(targetSeatFee.getNumber())); + targetSeatFee.setTotalNumber(currentSeatFee.getTotalNumber().add(targetSeatFee.getTotalNumber())); + targetSeatFee.setTotalAmount(targetSeatFee.getSalePrice().multiply(targetSeatFee.getTotalNumber())); + mpCashierCartService.removeById(currentSeatFee.getId()); + } + mpCashierCartService.updateBatchById(updateCartInfos); + mpCashierCartService.update(new LambdaUpdateWrapper() + .in(TbCashierCart::getId, cartIds) + .set(TbCashierCart::getOrderId, null) + .set(TbCashierCart::getPlaceNum, null)); + mpOrderDetailService.removeByCartIds(cartIds); + + // 删除原有台桌detail和order信息 + if (switchTableDTO.isFull() || switchTableDTO.getCartIds().size() == totalSize) { + mpOrderInfoService.removeById(orderId); + }else { + // 重新创建订单数据 + CreateOrderDTO createOrderDTO = new CreateOrderDTO(); + createOrderDTO.setMasterId(switchTableDTO.getMasterId()); + createOrderDTO.setShopId(switchTableDTO.getShopId()); + createOrderDTO.setTableId(switchTableDTO.getCurrentTableId()); + createOrderDTO.setUseType(shopEatTypeInfoDTO.getUseType()); + createOrder(createOrderDTO, false); + } + + if (targetOrderId != null) { + // 重新创建订单数据 + CreateOrderDTO createOrderDTO = new CreateOrderDTO(); + createOrderDTO.setMasterId(masterId); + createOrderDTO.setShopId(switchTableDTO.getShopId()); + createOrderDTO.setTableId(switchTableDTO.getTargetTableId()); + createOrderDTO.setUseType(targetShopEatTypeInfoDTO.getUseType()); + createOrder(createOrderDTO, false); + } + + return true; + } } From 904357aea9fb826209fd1bb4dee291495cfbea77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 10 Dec 2024 17:44:51 +0800 Subject: [PATCH 09/37] =?UTF-8?q?fix:=20=E8=BD=AC=E6=A1=8C=E5=B9=B6?= =?UTF-8?q?=E6=A1=8C=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/shopimpl/TbShopTableServiceImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index efaa2350..dfea39ed 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -2693,6 +2693,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { tbCashierCart.setNumber(BigDecimal.valueOf(choseCountDTO.getNum())); tbCashierCart.setTotalNumber(BigDecimal.valueOf(choseCountDTO.getNum())); tbCashierCart.setUseType(choseCountDTO.getUseType()); + tbCashierCart.setPlatformType("pc"); tbCashierCartMapper.insert(tbCashierCart); } else { tbCashierCart.setMemberPrice(shopInfo.getTableFee()); @@ -3429,9 +3430,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpOrderDetailService.removeByCartIds(cartIds); // 删除原有台桌detail和order信息 - if (switchTableDTO.isFull() || switchTableDTO.getCartIds().size() == totalSize) { + if (orderId != null && (switchTableDTO.isFull() || switchTableDTO.getCartIds().size() == totalSize)) { mpOrderInfoService.removeById(orderId); - }else { + } + + if (!switchTableDTO.isFull() && switchTableDTO.getCartIds().size() != totalSize){ // 重新创建订单数据 CreateOrderDTO createOrderDTO = new CreateOrderDTO(); createOrderDTO.setMasterId(switchTableDTO.getMasterId()); From 13855e0fabeee0119b744d592f2aab03ce4946ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 10 Dec 2024 17:54:02 +0800 Subject: [PATCH 10/37] =?UTF-8?q?fix:=20=E8=BD=AC=E6=A1=8C=E5=B9=B6?= =?UTF-8?q?=E6=A1=8C=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/shopimpl/TbShopTableServiceImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index dfea39ed..117dd687 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -3342,7 +3342,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public Object switchTable(SwitchTableDTO switchTableDTO) { // 查询当前台桌信息 ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(switchTableDTO.getShopId(), switchTableDTO.getCurrentTableId(), switchTableDTO.getUseType()); @@ -3385,7 +3385,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { TbCashierCart targetSeatFee = null; Integer targetOrderId = null; for (TbCashierCart targetCart : targetCarts) { - if (TableConstant.CART_SEAT_ID.equals(targetCart.getId().toString())) { + if (TableConstant.CART_SEAT_ID.equals(targetCart.getProductId())) { targetSeatFee = targetCart; } @@ -3411,7 +3411,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderId = item.getOrderId(); } - if (TableConstant.CART_SEAT_ID.equals(item.getId().toString())) { + if (TableConstant.CART_SEAT_ID.equals(item.getProductId().toString())) { currentSeatFee = item; } } @@ -3420,6 +3420,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { targetSeatFee.setNumber(currentSeatFee.getNumber().add(targetSeatFee.getNumber())); targetSeatFee.setTotalNumber(currentSeatFee.getTotalNumber().add(targetSeatFee.getTotalNumber())); targetSeatFee.setTotalAmount(targetSeatFee.getSalePrice().multiply(targetSeatFee.getTotalNumber())); + mpCashierCartService.updateById(targetSeatFee); mpCashierCartService.removeById(currentSeatFee.getId()); } mpCashierCartService.updateBatchById(updateCartInfos); From ee7e0a8eb07dca0d47b5dc3f643b158fe0d302ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 10 Dec 2024 18:00:15 +0800 Subject: [PATCH 11/37] =?UTF-8?q?fix:=20=E8=BD=AC=E6=A1=8C=E5=B9=B6?= =?UTF-8?q?=E6=A1=8C=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 117dd687..a95e8954 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -3400,7 +3400,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { TbCashierCart currentSeatFee = null; ArrayList updateCartInfos = new ArrayList<>(); for (TbCashierCart item : cashierCarts) { - if (targetSeatFee == null || !TableConstant.CART_SEAT_ID.equals(item.getId().toString())) { + if (targetSeatFee == null || !TableConstant.CART_SEAT_ID.equals(item.getProductId())) { item.setTableId(switchTableDTO.getTargetTableId()); item.setMasterId(masterId); updateCartInfos.add(item); @@ -3411,7 +3411,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderId = item.getOrderId(); } - if (TableConstant.CART_SEAT_ID.equals(item.getProductId().toString())) { + if (TableConstant.CART_SEAT_ID.equals(item.getProductId())) { currentSeatFee = item; } } From f99b0c64abaf0e755b7592c02a7ccdc428f990be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Wed, 11 Dec 2024 09:48:24 +0800 Subject: [PATCH 12/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TbCreditBuyerOrderService.java | 14 +++- .../impl/TbCreditBuyerOrderServiceImpl.java | 69 +++++++++++++++++++ .../cn/ysk/cashier/pojo/shop/TbShopInfo.java | 5 ++ .../impl/shopimpl/TbShopInfoServiceImpl.java | 12 ++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 9 +-- 5 files changed, 104 insertions(+), 5 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbCreditBuyerOrderService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbCreditBuyerOrderService.java index 01b0c8ab..91064124 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbCreditBuyerOrderService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbCreditBuyerOrderService.java @@ -4,6 +4,7 @@ import cn.ysk.cashier.mybatis.entity.TbCreditBuyerOrder; import cn.ysk.cashier.mybatis.entity.TbCreditPaymentRecord; import com.baomidou.mybatisplus.extension.service.IService; +import java.math.BigDecimal; import java.util.Map; /** @@ -27,11 +28,22 @@ public interface TbCreditBuyerOrderService extends IService boolean save(String creditBuyerId, Long orderId); /** - * 挂账人退款 + * 挂账人退款(整单退款) * @param creditBuyerId 挂账人id * @param orderId 订单id * @return */ + @Deprecated boolean refund(String creditBuyerId, Long orderId); + + /** + * 挂账人退款(部分退款) + * @param creditBuyerId 挂账人id + * @param orderId 订单id + * @param refundAmount 退款金额 + * @return + */ + boolean partRefund(String creditBuyerId, Long orderId, BigDecimal refundAmount); + } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index 2f6fa687..2d420988 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -240,6 +240,7 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpl params = new HashMap<>(2); + params.put("creditBuyerId", creditBuyerId); + params.put("orderId", orderId); + CreditBuyerOrderDTO dto = baseMapper.getOne(params); + if (dto == null) { + throw new BadRequestException("挂账订单不存在"); + } + // 1.只挂账未还款的情况,直接返回挂账额度 + if ("unpaid".equals(dto.getStatus())) { + // 退回额度 + creditBuyer.setCreditAmount(NumberUtil.add(creditBuyer.getCreditAmount(), refundAmount)); + tbCreditBuyerService.updateById(creditBuyer); + return true; + } + // 2.部分还款/已还款,删除挂账订单+红冲还款记录,并把已还款金额退回余额或挂账额度 + if ("partial".equals(dto.getStatus()) || "paid".equals(dto.getStatus())) { + // 已还款金额小于退款金额,需要把已还款金额退回余额 + if (NumberUtil.isLessOrEqual(dto.getPaidAmount(), refundAmount)) { + creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), dto.getPaidAmount())); + // 这部分需要返回到额度 + BigDecimal subAmount = NumberUtil.sub(refundAmount, dto.getPaidAmount()); + creditBuyer.setCreditAmount(NumberUtil.add(creditBuyer.getCreditAmount(), subAmount)); + // 已还款金额进行冲红 + TbCreditPaymentRecord record = new TbCreditPaymentRecord(); + record.setCreditBuyerId(creditBuyerId); + record.setOrderId(orderId); + record.setRepaymentAmount(NumberUtil.sub(BigDecimal.ZERO, dto.getPaidAmount())); + record.setPaymentMethod("挂账退款"); + record.setPaymentTime(new Date()); + record.setRemark(StrUtil.format("挂账订单:{}申请退款¥{}元,还款部分¥{}元已归还至账户余额,剩余¥{}元已归还至挂账额度。", orderInfo.getOrderNo(), refundAmount, dto.getPaidAmount(), subAmount)); + record.setCreateTime(new Date()); + tbCreditPaymentRecordMapper.insert(record); + tbCreditBuyerService.updateById(creditBuyer); + return true; + } + // 已还款金额大于退款金额,需要把已还款金额退回余额 + creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), refundAmount)); + // 已还款金额进行冲红 + TbCreditPaymentRecord record = new TbCreditPaymentRecord(); + record.setCreditBuyerId(creditBuyerId); + record.setOrderId(orderId); + record.setRepaymentAmount(NumberUtil.sub(BigDecimal.ZERO, refundAmount)); + record.setPaymentMethod("挂账退款"); + record.setPaymentTime(new Date()); + record.setRemark(StrUtil.format("挂账订单:{}申请退款¥{}元,还款部分¥{}元已归还至账户余额。", orderInfo.getOrderNo(), refundAmount, refundAmount)); + record.setCreateTime(new Date()); + tbCreditPaymentRecordMapper.insert(record); + tbCreditBuyerService.updateById(creditBuyer); + tbCreditBuyerService.updateById(creditBuyer); + return true; + } + return false; + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopInfo.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopInfo.java index fcabc2ae..64f57aee 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopInfo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbShopInfo.java @@ -17,6 +17,7 @@ package cn.ysk.cashier.pojo.shop; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -299,6 +300,10 @@ public class TbShopInfo implements Serializable { @ApiModelProperty(value = "台桌预订短信") private String bookingSms; + @Transient + @TableField(exist = false) + private String registerCode; + public void copy(TbShopInfo source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java index b6acf46b..82e7e6c9 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopInfoServiceImpl.java @@ -323,6 +323,18 @@ public class TbShopInfoServiceImpl implements TbShopInfoService { ValidationUtil.isNull(tbShopInfo.getId(), "TbShopInfo", "id", resources.getId()); tbShopInfo.copy(resources); tbShopInfo.setUpdatedAt(Instant.now().toEpochMilli()); + if (resources.getRegisterCode() != null) { + TbMerchantRegister tbMerchantRegister = merchantRegisterRepository.findByRegisterCode(resources.getRegisterCode()); + if (tbMerchantRegister == null) { + throw new BadRequestException("激活码有误"); + } + if (tbMerchantRegister.getStatus() == 1) { + throw new BadRequestException("激活码已激活,不能重复绑定"); + } + tbShopInfo.setExpireAt(DateUtil.addMonthsAndGetTimestamp(tbMerchantRegister.getPeriodYear())); + //向redis中存入key + redisUtils.set(CacheKey.ACT_CODE + resources.getAccount(), "1", tbShopInfo.getExpireAt() - Instant.now().toEpochMilli()); + } tbShopInfoRepository.save(tbShopInfo); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 2a5506b2..80a8a182 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -2883,11 +2883,12 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbOrderDetail::getShopId, returnOrderDTO.getShopId()) .eq(TbOrderDetail::getStatus, "closed") .eq(TbOrderDetail::getOrderId, returnOrderDTO.getOrderId()) + .in(TbOrderDetail::getId, detailIds) .orderByDesc(TbOrderDetail::getUserCouponId)); - if (detailList.size() != returnOrderDTO.getOrderDetails().size()) { + /*if (detailList.size() != returnOrderDTO.getOrderDetails().size()) { throw new BadRequestException("挂账退款必须全退"); - } + }*/ } else { detailList = orderDetailMapper.selectList(new LambdaQueryWrapper() .eq(TbOrderDetail::getShopId, returnOrderDTO.getShopId()) @@ -3122,7 +3123,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public Object returnOrder(ReturnOrderDTO returnOrderDTO) { TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaQueryWrapper() .eq(TbOrderInfo::getId, returnOrderDTO.getOrderId()) @@ -3164,7 +3165,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpOrderDetailService.updateStatusByOrderIdAndIds(OrderStatusEnums.REFUNDING, OrderStatusEnums.REFUND, returnOrderDTO.getOrderId(), returnOrderDTO.getOrderDetails().stream().map(ReturnOrderDTO.OrderDetail::getId).collect(Collectors.toList())); } else if (TableConstant.OrderInfo.PayType.CREDIT_BUYER.equalsVals(payType)) { - creditBuyerOrderService.refund(orderInfo.getCreditBuyerId(), Long.valueOf(orderInfo.getId())); + creditBuyerOrderService.partRefund(orderInfo.getCreditBuyerId(), Long.valueOf(orderInfo.getId()), returnAmount); } orderInfo.setStatus(TableConstant.OrderInfo.Status.CLOSED.getValue()); From 4b05243c5b1c6ac53133717cc7d28f8b3746c8f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Wed, 11 Dec 2024 10:07:09 +0800 Subject: [PATCH 13/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TbCreditBuyerOrderServiceImpl.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index 2d420988..8a4fe995 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -315,8 +315,8 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpl Date: Wed, 11 Dec 2024 11:16:56 +0800 Subject: [PATCH 14/37] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=BA=97=E9=93=BA=E6=8E=88=E6=9D=83=E8=BF=87=E6=9C=9F=E6=97=A5?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/TbCreditBuyerOrderServiceImpl.java | 114 ++++++++++++++---- 1 file changed, 90 insertions(+), 24 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index 8a4fe995..0b3775ca 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -46,6 +46,8 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpllambdaUpdate() + .eq(TbCreditBuyerOrder::getId, dto.getId()) + .set(TbCreditBuyerOrder::getPaidAmount, dto.getPaidAmount()) + .set(TbCreditBuyerOrder::getStatus, dto.getStatus())); + + } else { + // 1.把退款归还至余额 + creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), refundAmount)); + // 2.保存挂账退款记录 + TbCreditPaymentRecord record = new TbCreditPaymentRecord(); + record.setCreditBuyerId(creditBuyerId); + record.setOrderId(orderId); + record.setRepaymentAmount(refundAmount); + record.setPaymentMethod("挂账退款"); + record.setPaymentTime(new Date()); + record.setRemark(StrUtil.format("挂账订单:{},申请退款¥{}元,退款金额¥{}元已归还至账户余额,挂账额度已恢复。", orderInfo.getOrderNo(), refundAmount, refundAmount)); + record.setCreateTime(new Date()); + tbCreditPaymentRecordMapper.insert(record); + tbCreditBuyerService.updateById(creditBuyer); + // 3.修正挂账订单已还款数据 + dto.setPaidAmount(NumberUtil.sub(dto.getPaidAmount(), refundAmount)); + if (NumberUtil.equals(dto.getPaidAmount(), BigDecimal.ZERO)) { + dto.setStatus("unpaid"); + } else if (NumberUtil.isGreater(dto.getPaidAmount(), BigDecimal.ZERO) && NumberUtil.isLess(dto.getPaidAmount(), dto.getPayAmount())) { + dto.setStatus("partial"); + } + dto.setUnpaidAmount(NumberUtil.sub(dto.getPayAmount(), dto.getPaidAmount())); + tbCreditBuyerOrderMapper.update( + Wrappers.lambdaUpdate() + .eq(TbCreditBuyerOrder::getId, dto.getId()) + .set(TbCreditBuyerOrder::getPaidAmount, dto.getPaidAmount()) + .set(TbCreditBuyerOrder::getStatus, dto.getStatus())); + // 4.自动还款 + BigDecimal accountBalance = creditBuyer.getAccountBalance(); + BigDecimal sub = NumberUtil.sub(creditBuyer.getAccountBalance(), dto.getUnpaidAmount()); + // 4.1.可以还清 + if (NumberUtil.isGreaterOrEqual(sub, BigDecimal.ZERO)) { + creditBuyer.setAccountBalance(sub); + tbCreditBuyerOrderMapper.update( + Wrappers.lambdaUpdate() + .eq(TbCreditBuyerOrder::getId, dto.getId()) + .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), dto.getUnpaidAmount())) + .set(TbCreditBuyerOrder::getStatus, "paid")); + TbCreditPaymentRecord auto = new TbCreditPaymentRecord(); + auto.setCreditBuyerId(creditBuyerId); + auto.setOrderId(orderId); + auto.setRepaymentAmount(dto.getUnpaidAmount()); + auto.setPaymentMethod("自动还款"); + auto.setPaymentTime(new Date()); + auto.setRemark(StrUtil.format("挂账订单:{},已挂账金额¥{},账户余额¥{},自动还款¥{}。", orderInfo.getOrderNo(), dto.getUnpaidAmount(), accountBalance, dto.getUnpaidAmount())); + auto.setCreateTime(new Date()); + tbCreditPaymentRecordMapper.insert(auto); + } else { + // 4.2.可以还部分 + creditBuyer.setAccountBalance(BigDecimal.ZERO); + tbCreditBuyerOrderMapper.update( + Wrappers.lambdaUpdate() + .eq(TbCreditBuyerOrder::getId, dto.getId()) + .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), accountBalance)) + .set(TbCreditBuyerOrder::getStatus, "partial")); + TbCreditPaymentRecord auto = new TbCreditPaymentRecord(); + auto.setCreditBuyerId(creditBuyerId); + auto.setOrderId(orderId); + auto.setRepaymentAmount(accountBalance); + auto.setPaymentMethod("自动还款"); + auto.setPaymentTime(new Date()); + auto.setRemark(StrUtil.format("挂账订单:{},已挂账金额¥{},账户余额¥{},自动还款¥{}。", orderInfo.getOrderNo(), dto.getUnpaidAmount(), accountBalance, accountBalance)); + auto.setCreateTime(new Date()); + tbCreditPaymentRecordMapper.insert(auto); + } + tbCreditBuyerService.updateById(creditBuyer); return true; } return false; From 9b273893ef0e4fff2627e19fff3e871d168a301d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Wed, 11 Dec 2024 11:25:44 +0800 Subject: [PATCH 15/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/TbCreditBuyerOrderServiceImpl.java | 167 +++++++----------- 1 file changed, 66 insertions(+), 101 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index 0b3775ca..e6e03ab4 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -314,113 +314,78 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpllambdaUpdate() - .eq(TbCreditBuyerOrder::getId, dto.getId()) - .set(TbCreditBuyerOrder::getPaidAmount, dto.getPaidAmount()) - .set(TbCreditBuyerOrder::getStatus, dto.getStatus())); - - } else { - // 1.把退款归还至余额 - creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), refundAmount)); - // 2.保存挂账退款记录 - TbCreditPaymentRecord record = new TbCreditPaymentRecord(); - record.setCreditBuyerId(creditBuyerId); - record.setOrderId(orderId); - record.setRepaymentAmount(refundAmount); - record.setPaymentMethod("挂账退款"); - record.setPaymentTime(new Date()); - record.setRemark(StrUtil.format("挂账订单:{},申请退款¥{}元,退款金额¥{}元已归还至账户余额,挂账额度已恢复。", orderInfo.getOrderNo(), refundAmount, refundAmount)); - record.setCreateTime(new Date()); - tbCreditPaymentRecordMapper.insert(record); - tbCreditBuyerService.updateById(creditBuyer); - // 3.修正挂账订单已还款数据 - dto.setPaidAmount(NumberUtil.sub(dto.getPaidAmount(), refundAmount)); - if (NumberUtil.equals(dto.getPaidAmount(), BigDecimal.ZERO)) { - dto.setStatus("unpaid"); - } else if (NumberUtil.isGreater(dto.getPaidAmount(), BigDecimal.ZERO) && NumberUtil.isLess(dto.getPaidAmount(), dto.getPayAmount())) { - dto.setStatus("partial"); - } - dto.setUnpaidAmount(NumberUtil.sub(dto.getPayAmount(), dto.getPaidAmount())); - tbCreditBuyerOrderMapper.update( - Wrappers.lambdaUpdate() - .eq(TbCreditBuyerOrder::getId, dto.getId()) - .set(TbCreditBuyerOrder::getPaidAmount, dto.getPaidAmount()) - .set(TbCreditBuyerOrder::getStatus, dto.getStatus())); - // 4.自动还款 - BigDecimal accountBalance = creditBuyer.getAccountBalance(); - BigDecimal sub = NumberUtil.sub(creditBuyer.getAccountBalance(), dto.getUnpaidAmount()); - // 4.1.可以还清 - if (NumberUtil.isGreaterOrEqual(sub, BigDecimal.ZERO)) { - creditBuyer.setAccountBalance(sub); - tbCreditBuyerOrderMapper.update( - Wrappers.lambdaUpdate() - .eq(TbCreditBuyerOrder::getId, dto.getId()) - .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), dto.getUnpaidAmount())) - .set(TbCreditBuyerOrder::getStatus, "paid")); - TbCreditPaymentRecord auto = new TbCreditPaymentRecord(); - auto.setCreditBuyerId(creditBuyerId); - auto.setOrderId(orderId); - auto.setRepaymentAmount(dto.getUnpaidAmount()); - auto.setPaymentMethod("自动还款"); - auto.setPaymentTime(new Date()); - auto.setRemark(StrUtil.format("挂账订单:{},已挂账金额¥{},账户余额¥{},自动还款¥{}。", orderInfo.getOrderNo(), dto.getUnpaidAmount(), accountBalance, dto.getUnpaidAmount())); - auto.setCreateTime(new Date()); - tbCreditPaymentRecordMapper.insert(auto); - } else { - // 4.2.可以还部分 - creditBuyer.setAccountBalance(BigDecimal.ZERO); - tbCreditBuyerOrderMapper.update( - Wrappers.lambdaUpdate() - .eq(TbCreditBuyerOrder::getId, dto.getId()) - .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), accountBalance)) - .set(TbCreditBuyerOrder::getStatus, "partial")); - TbCreditPaymentRecord auto = new TbCreditPaymentRecord(); - auto.setCreditBuyerId(creditBuyerId); - auto.setOrderId(orderId); - auto.setRepaymentAmount(accountBalance); - auto.setPaymentMethod("自动还款"); - auto.setPaymentTime(new Date()); - auto.setRemark(StrUtil.format("挂账订单:{},已挂账金额¥{},账户余额¥{},自动还款¥{}。", orderInfo.getOrderNo(), dto.getUnpaidAmount(), accountBalance, accountBalance)); - auto.setCreateTime(new Date()); - tbCreditPaymentRecordMapper.insert(auto); - } - tbCreditBuyerService.updateById(creditBuyer); - return true; + // 1.把退款归还至余额 + creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), refundAmount)); + // 2.保存挂账退款记录 + TbCreditPaymentRecord record = new TbCreditPaymentRecord(); + record.setCreditBuyerId(creditBuyerId); + record.setOrderId(orderId); + record.setRepaymentAmount(NumberUtil.sub(BigDecimal.ZERO, refundAmount)); + record.setPaymentMethod("挂账退款"); + record.setPaymentTime(new Date()); + record.setRemark(StrUtil.format("挂账订单:{},申请退款¥{}元,退款金额¥{}元已转移至账户余额,挂账额度已恢复。", orderInfo.getOrderNo(), refundAmount, refundAmount)); + record.setCreateTime(new Date()); + tbCreditPaymentRecordMapper.insert(record); + tbCreditBuyerService.updateById(creditBuyer); + // 3.修正挂账订单已还款数据 + dto.setPaidAmount(NumberUtil.sub(dto.getPaidAmount(), refundAmount)); + if (NumberUtil.equals(dto.getPaidAmount(), BigDecimal.ZERO)) { + dto.setStatus("unpaid"); + } else if (NumberUtil.isGreater(dto.getPaidAmount(), BigDecimal.ZERO) && NumberUtil.isLess(dto.getPaidAmount(), dto.getPayAmount())) { + dto.setStatus("partial"); } - return false; + dto.setUnpaidAmount(NumberUtil.sub(dto.getPayAmount(), dto.getPaidAmount())); + tbCreditBuyerOrderMapper.update( + Wrappers.lambdaUpdate() + .eq(TbCreditBuyerOrder::getId, dto.getId()) + .set(TbCreditBuyerOrder::getPaidAmount, dto.getPaidAmount()) + .set(TbCreditBuyerOrder::getStatus, dto.getStatus())); + // 4.自动还款 + BigDecimal accountBalance = creditBuyer.getAccountBalance(); + BigDecimal sub = NumberUtil.sub(creditBuyer.getAccountBalance(), dto.getUnpaidAmount()); + // 4.1.可以还清 + if (NumberUtil.isGreaterOrEqual(sub, BigDecimal.ZERO)) { + creditBuyer.setAccountBalance(sub); + tbCreditBuyerOrderMapper.update( + Wrappers.lambdaUpdate() + .eq(TbCreditBuyerOrder::getId, dto.getId()) + .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), dto.getUnpaidAmount())) + .set(TbCreditBuyerOrder::getStatus, "paid")); + TbCreditPaymentRecord auto = new TbCreditPaymentRecord(); + auto.setCreditBuyerId(creditBuyerId); + auto.setOrderId(orderId); + auto.setRepaymentAmount(dto.getUnpaidAmount()); + auto.setPaymentMethod("自动还款"); + auto.setPaymentTime(new Date()); + auto.setRemark(StrUtil.format("挂账订单:{},已挂账金额¥{},账户余额¥{},自动还款¥{}。", orderInfo.getOrderNo(), dto.getUnpaidAmount(), accountBalance, dto.getUnpaidAmount())); + auto.setCreateTime(new Date()); + tbCreditPaymentRecordMapper.insert(auto); + } else { + // 4.2.可以还部分 + creditBuyer.setAccountBalance(BigDecimal.ZERO); + tbCreditBuyerOrderMapper.update( + Wrappers.lambdaUpdate() + .eq(TbCreditBuyerOrder::getId, dto.getId()) + .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), accountBalance)) + .set(TbCreditBuyerOrder::getStatus, "partial")); + TbCreditPaymentRecord auto = new TbCreditPaymentRecord(); + auto.setCreditBuyerId(creditBuyerId); + auto.setOrderId(orderId); + auto.setRepaymentAmount(accountBalance); + auto.setPaymentMethod("自动还款"); + auto.setPaymentTime(new Date()); + auto.setRemark(StrUtil.format("挂账订单:{},已挂账金额¥{},账户余额¥{},自动还款¥{}。", orderInfo.getOrderNo(), dto.getUnpaidAmount(), accountBalance, accountBalance)); + auto.setCreateTime(new Date()); + tbCreditPaymentRecordMapper.insert(auto); + } + tbCreditBuyerService.updateById(creditBuyer); + return true; } } From 686a79bc78fca19d3f2f39900e3d03fe07a0733b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Wed, 11 Dec 2024 11:29:48 +0800 Subject: [PATCH 16/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TbCreditBuyerOrderServiceImpl.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index e6e03ab4..68077fdf 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -314,13 +314,6 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpl Date: Wed, 11 Dec 2024 11:42:45 +0800 Subject: [PATCH 17/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/TbCreditBuyerOrderServiceImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index 68077fdf..629d2551 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -323,10 +323,24 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpl Date: Wed, 11 Dec 2024 11:44:34 +0800 Subject: [PATCH 18/37] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=BA=97=E9=93=BA=E6=8E=88=E6=9D=83=E8=BF=87=E6=9C=9F=E6=97=A5?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index 629d2551..d837b0c5 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -333,9 +333,9 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpl Date: Wed, 11 Dec 2024 14:34:56 +0800 Subject: [PATCH 19/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index d837b0c5..fb7731d3 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -371,7 +371,8 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpl Date: Wed, 11 Dec 2024 16:34:55 +0800 Subject: [PATCH 20/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/TbCreditBuyerOrderServiceImpl.java | 87 ++++--------------- 1 file changed, 16 insertions(+), 71 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index fb7731d3..0e4b347a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -294,6 +294,7 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpllambdaUpdate() - .eq(TbCreditBuyerOrder::getId, dto.getId()) - .set(TbCreditBuyerOrder::getPaidAmount, dto.getPaidAmount()) - .set(TbCreditBuyerOrder::getStatus, dto.getStatus())); - // 4.自动还款 - BigDecimal accountBalance = creditBuyer.getAccountBalance(); - BigDecimal sub = NumberUtil.sub(creditBuyer.getAccountBalance(), dto.getUnpaidAmount()); - // 4.1.可以还清 - if (NumberUtil.isGreaterOrEqual(sub, BigDecimal.ZERO)) { - creditBuyer.setAccountBalance(sub); - tbCreditBuyerOrderMapper.update( - Wrappers.lambdaUpdate() - .eq(TbCreditBuyerOrder::getId, dto.getId()) - .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), dto.getUnpaidAmount())) - .set(TbCreditBuyerOrder::getStatus, "paid")); - TbCreditPaymentRecord auto = new TbCreditPaymentRecord(); - auto.setCreditBuyerId(creditBuyerId); - auto.setOrderId(orderId); - auto.setRepaymentAmount(dto.getUnpaidAmount()); - auto.setPaymentMethod("自动还款"); - auto.setPaymentTime(new Date()); - dto.setUnpaidAmount(NumberUtil.sub(dto.getPayAmount(), NumberUtil.add(dto.getPaidAmount(), dto.getUnpaidAmount()))); - auto.setRemark(StrUtil.format("挂账订单:{},挂账金额¥{},账户余额¥{},自动还款¥{}。", orderInfo.getOrderNo(), dto.getUnpaidAmount(), accountBalance, dto.getUnpaidAmount())); - auto.setCreateTime(new Date()); - tbCreditPaymentRecordMapper.insert(auto); - } else { - // 4.2.可以还部分 - creditBuyer.setAccountBalance(BigDecimal.ZERO); - tbCreditBuyerOrderMapper.update( - Wrappers.lambdaUpdate() - .eq(TbCreditBuyerOrder::getId, dto.getId()) - .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), accountBalance)) - .set(TbCreditBuyerOrder::getStatus, "partial")); - TbCreditPaymentRecord auto = new TbCreditPaymentRecord(); - auto.setCreditBuyerId(creditBuyerId); - auto.setOrderId(orderId); - auto.setRepaymentAmount(accountBalance); - auto.setPaymentMethod("自动还款"); - auto.setPaymentTime(new Date()); - dto.setUnpaidAmount(NumberUtil.sub(dto.getPayAmount(), NumberUtil.add(dto.getPaidAmount(), accountBalance))); - auto.setRemark(StrUtil.format("挂账订单:{},挂账金额¥{},账户余额¥{},自动还款¥{}。", orderInfo.getOrderNo(), dto.getUnpaidAmount(), accountBalance, accountBalance)); - auto.setCreateTime(new Date()); - tbCreditPaymentRecordMapper.insert(auto); - } - tbCreditBuyerService.updateById(creditBuyer); return true; } } From 30156865112ca34d5aa928b6b97416aca1607b74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Wed, 11 Dec 2024 16:39:59 +0800 Subject: [PATCH 21/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index 0e4b347a..ddec441e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -335,7 +335,7 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpl Date: Wed, 11 Dec 2024 16:43:09 +0800 Subject: [PATCH 22/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index ddec441e..7d5da534 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -294,7 +294,6 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpllambdaUpdate() + .eq(TbCreditBuyerOrder::getId, dto.getId()) + .set(TbCreditBuyerOrder::getPaidAmount, BigDecimal.ZERO) + ); // 退回余额 creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), dto.getPaidAmount())); tbCreditBuyerService.updateById(creditBuyer); From 243d1def48ecad24a3e58513f1cbc5c525faaf57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Wed, 11 Dec 2024 16:49:29 +0800 Subject: [PATCH 23/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TbCreditBuyerOrderServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index 7d5da534..b890dd1c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -325,22 +325,22 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpllambdaUpdate() .eq(TbCreditBuyerOrder::getId, dto.getId()) - .set(TbCreditBuyerOrder::getPaidAmount, BigDecimal.ZERO) + .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), dto.getUnpaidAmount())) ); // 退回余额 - creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), dto.getPaidAmount())); + creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), dto.getUnpaidAmount().abs())); tbCreditBuyerService.updateById(creditBuyer); } return true; From 617b2a07d6c49e2210fcc9e68c80372fa163af78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Wed, 11 Dec 2024 17:07:50 +0800 Subject: [PATCH 24/37] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=BA=97=E9=93=BA=E6=8E=88=E6=9D=83=E8=BF=87=E6=9C=9F=E6=97=A5?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TbCreditBuyerOrderServiceImpl.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index b890dd1c..544b916b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -325,22 +325,23 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpllambdaUpdate() .eq(TbCreditBuyerOrder::getId, dto.getId()) - .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.add(dto.getPaidAmount(), dto.getUnpaidAmount())) + .set(TbCreditBuyerOrder::getPaidAmount, NumberUtil.sub(dto.getPaidAmount(), sub)) ); // 退回余额 - creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), dto.getUnpaidAmount().abs())); + creditBuyer.setAccountBalance(NumberUtil.add(creditBuyer.getAccountBalance(), sub)); tbCreditBuyerService.updateById(creditBuyer); } return true; From 1ef2d8f697bed1bdc5beb2b81f5624fcb19fc32b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Wed, 11 Dec 2024 17:36:24 +0800 Subject: [PATCH 25/37] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=82=E8=B4=A6?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java index 544b916b..fce63c59 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbCreditBuyerOrderServiceImpl.java @@ -330,8 +330,8 @@ public class TbCreditBuyerOrderServiceImpl extends ServiceImpl Date: Thu, 12 Dec 2024 11:07:21 +0800 Subject: [PATCH 26/37] =?UTF-8?q?fix:=20=E8=BD=AC=E6=A1=8C=E5=BF=85?= =?UTF-8?q?=E9=A1=BB=E8=A6=81=E6=B1=82=E7=9B=AE=E6=A0=87=E6=A1=8C=E5=B7=B2?= =?UTF-8?q?=E5=BC=80=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 787b45ed..d53701c0 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -3370,7 +3370,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (switchTableDTO.isFull()) { cashierCarts = mpCashierCartService.selectByShopEatTypeAndOrderId(shopEatTypeInfoDTO, switchTableDTO.getMasterId(), switchTableDTO.getOrderId(), true, TableConstant.OrderInfo.Status.CREATE, TableConstant.OrderInfo.Status.RETURN); - }else { + } else { if (switchTableDTO.getCartIds().isEmpty()) { throw new BadRequestException("请选择转单商品"); } @@ -3400,6 +3400,10 @@ public class TbShopTableServiceImpl implements TbShopTableService { } } + if (targetOrderId == null) { + throw new BadRequestException("目标桌未开台"); + } + // 修改原有购物车数据 ArrayList cartIds = new ArrayList<>(); Integer orderId = switchTableDTO.getOrderId(); @@ -3441,7 +3445,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpOrderInfoService.removeById(orderId); } - if (!switchTableDTO.isFull() && switchTableDTO.getCartIds().size() != totalSize){ + if (!switchTableDTO.isFull() && switchTableDTO.getCartIds().size() != totalSize) { // 重新创建订单数据 CreateOrderDTO createOrderDTO = new CreateOrderDTO(); createOrderDTO.setMasterId(switchTableDTO.getMasterId()); @@ -3451,15 +3455,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { createOrder(createOrderDTO, false); } - if (targetOrderId != null) { - // 重新创建订单数据 - CreateOrderDTO createOrderDTO = new CreateOrderDTO(); - createOrderDTO.setMasterId(masterId); - createOrderDTO.setShopId(switchTableDTO.getShopId()); - createOrderDTO.setTableId(switchTableDTO.getTargetTableId()); - createOrderDTO.setUseType(targetShopEatTypeInfoDTO.getUseType()); - createOrder(createOrderDTO, false); - } + // 重新创建订单数据 + CreateOrderDTO createOrderDTO = new CreateOrderDTO(); + createOrderDTO.setMasterId(masterId); + createOrderDTO.setShopId(switchTableDTO.getShopId()); + createOrderDTO.setTableId(switchTableDTO.getTargetTableId()); + createOrderDTO.setUseType(targetShopEatTypeInfoDTO.getUseType()); + createOrder(createOrderDTO, false); return true; From 5c74380b428522a638c0841b4019994a34f06fb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Fri, 13 Dec 2024 10:34:53 +0800 Subject: [PATCH 27/37] =?UTF-8?q?=E5=8F=B0=E6=A1=8C=E9=A2=84=E8=AE=A2?= =?UTF-8?q?=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TbPointsExchangeRecordServiceImpl.java | 2 +- .../impl/TbShopTableBookingServiceImpl.java | 4 +- .../impl/shopimpl/TbShopTableServiceImpl.java | 42 ++++++++++++------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbPointsExchangeRecordServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbPointsExchangeRecordServiceImpl.java index ccb65cda..00071ce7 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbPointsExchangeRecordServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbPointsExchangeRecordServiceImpl.java @@ -250,7 +250,7 @@ public class TbPointsExchangeRecordServiceImpl extends ServiceImpl= 5")); + .last("and TIMESTAMPDIFF(MINUTE, create_time, NOW()) >= 5")); } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopTableBookingServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopTableBookingServiceImpl.java index f0344229..6bb4dee1 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopTableBookingServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopTableBookingServiceImpl.java @@ -286,7 +286,7 @@ public class TbShopTableBookingServiceImpl extends ServiceImpl= timeout_minute")); + .last("and TIMESTAMPDIFF(MINUTE, booking_time, NOW()) >= timeout_minute")); } @Override @@ -296,7 +296,7 @@ public class TbShopTableBookingServiceImpl extends ServiceImpl= timeout_minute+15")); + .last("and TIMESTAMPDIFF(MINUTE, booking_time, NOW()) >= timeout_minute+15")); } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index d53701c0..75f29534 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -29,6 +29,7 @@ import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mapper.shop.TbShopTableMapper; import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord; import cn.ysk.cashier.mybatis.entity.TbShopCoupon; +import cn.ysk.cashier.mybatis.entity.TbShopTableBooking; import cn.ysk.cashier.mybatis.entity.TbThirdPartyCouponRecord; import cn.ysk.cashier.mybatis.mapper.*; import cn.ysk.cashier.mybatis.service.*; @@ -55,6 +56,7 @@ import cn.ysk.cashier.vo.*; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.dianguang.cloud.ossservice.model.DateUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -111,6 +113,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { private final MpProductStockDetailMapper mpProductStockDetailMapper; private final TbMemberPointsService memberPointsService; private final TbShopCouponService shopCouponService; + private final TbShopTableBookingService tbShopTableBookingService; /** @@ -297,30 +300,30 @@ public class TbShopTableServiceImpl implements TbShopTableService { .orderByDesc(TbOrderInfo::getId)).getRecords(); orderInfoList.forEach(item -> currentOrderInfoMap.computeIfAbsent(item.getTableId(), k -> item)); - for (TbShopTable date : tbShopTableList) { - if (StrUtil.isBlank(date.getQrcode())) { - date.setStatus("unbind"); - } else if ((countMap.get(date.getQrcode()) == null || countMap.get(date.getQrcode()) < 1) && !TableStateEnum.CLEANING.getState().equals(date.getStatus())) { - date.setStatus("idle"); + for (TbShopTable data : tbShopTableList) { + if (StrUtil.isBlank(data.getQrcode())) { + data.setStatus("unbind"); + } else if ((countMap.get(data.getQrcode()) == null || countMap.get(data.getQrcode()) < 1) && !TableStateEnum.CLEANING.getState().equals(data.getStatus())) { + data.setStatus("idle"); mpShopTableMapper.update(null, new LambdaUpdateWrapper() - .eq(TbShopTable::getQrcode, date.getQrcode()) + .eq(TbShopTable::getQrcode, data.getQrcode()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); } - Map itemMap = BeanUtil.beanToMap(date, false, false); - if ((date.getStatus().equals("using") || date.getStatus().equals("cleaning")) && date.getUseTime() != null) { - itemMap.put("durationTime", DateUtil.current() - date.getUseTime().getTime()); + Map itemMap = BeanUtil.beanToMap(data, false, false); + if ((data.getStatus().equals("using") || data.getStatus().equals("cleaning")) && data.getUseTime() != null) { + itemMap.put("durationTime", DateUtil.current() - data.getUseTime().getTime()); } else { itemMap.put("durationTime", 0); } - if (!"".equals(date.getQrcode())) { - itemMap.put("qrcode", QRCODE + date.getQrcode().trim()); - itemMap.put("tableId", date.getQrcode()); + if (!"".equals(data.getQrcode())) { + itemMap.put("qrcode", QRCODE + data.getQrcode().trim()); + itemMap.put("tableId", data.getQrcode()); } TbOrderInfo orderInfo = null; - if (StrUtil.isNotBlank(date.getQrcode())) { + if (StrUtil.isNotBlank(data.getQrcode())) { try { - orderInfo = currentOrderInfoMap.get(date.getQrcode()); + orderInfo = currentOrderInfoMap.get(data.getQrcode()); } catch (Exception e) { log.info(e.getMessage()); } @@ -329,6 +332,17 @@ public class TbShopTableServiceImpl implements TbShopTableService { itemMap.put("orderId", orderInfo == null ? null : orderInfo.getId()); itemMap.put("useType", orderInfo == null ? null : orderInfo.getUseType()); itemMap.put("masterId", orderInfo == null ? null : orderInfo.getMasterId()); + Date bookingDate = DateUtil.date().toJdkDate(); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(TbShopTableBooking::getBookingDate, bookingDate); + wrapper.eq(TbShopTableBooking::getShopTableId, data.getId()); + wrapper.ne(TbShopTableBooking::getStatus, -1); + wrapper.eq(TbShopTableBooking::getDelFlag, 0); + List list = tbShopTableBookingService.list(wrapper); + if (list == null) { + list = new ArrayList<>(); + } + itemMap.put("bookingList", list); infoList.add(itemMap); } HashMap map = new HashMap<>(); From 9bf48079652f56769a0bcc0fc7e0fc2992b0b74e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Fri, 13 Dec 2024 11:21:08 +0800 Subject: [PATCH 28/37] =?UTF-8?q?fix:=20=E5=BA=97=E9=93=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=B8=8D=E6=A0=A1=E9=AA=8Cstate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index d53701c0..2fbfec76 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -190,8 +190,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { */ private ShopEatTypeInfoDTO getShopEatTypeInfoDTO(Object shopId, String eatModel, String tableId) { TbShopInfo shopInfo = mpShopInfoMapper.selectOne(new LambdaQueryWrapper() - .eq(TbShopInfo::getId, shopId) - .eq(TbShopInfo::getStatus, 1)); + .eq(TbShopInfo::getId, shopId)); if (shopInfo == null) { throw new BadRequestException("店铺信息不存在"); } From d0543ac9dc73edc11595c0a0d5da262446f5abb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Fri, 13 Dec 2024 11:31:19 +0800 Subject: [PATCH 29/37] =?UTF-8?q?=E5=8F=B0=E6=A1=8C=E9=A2=84=E8=AE=A2?= =?UTF-8?q?=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booking/TbShopTableBookingController.java | 6 +++ .../service/TbShopTableBookingService.java | 3 ++ .../impl/TbShopTableBookingServiceImpl.java | 48 ++++++++++++++++++- .../cn/ysk/cashier/quartz/task/TestTask.java | 3 ++ .../impl/shopimpl/TbShopTableServiceImpl.java | 3 +- 5 files changed, 60 insertions(+), 3 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/booking/TbShopTableBookingController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/booking/TbShopTableBookingController.java index ed245d21..e3924056 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/booking/TbShopTableBookingController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/booking/TbShopTableBookingController.java @@ -50,6 +50,7 @@ public class TbShopTableBookingController { @ApiOperation("预订") public ResponseEntity booking(@RequestBody TbShopTableBooking dto) { String orderNo = tbShopTableBookingService.booking(dto); + tbShopTableBookingService.markSubscribe(dto.getShopTableId()); Map data = new HashMap<>(2); data.put("id", dto.getId()); data.put("orderNo", orderNo); @@ -60,6 +61,7 @@ public class TbShopTableBookingController { @ApiOperation("修改预订信息") public ResponseEntity update(@RequestBody TbShopTableBooking dto) { boolean ret = tbShopTableBookingService.update(dto); + tbShopTableBookingService.markSubscribe(dto.getShopTableId()); return ResponseEntity.ok().body(ret); } @@ -67,6 +69,10 @@ public class TbShopTableBookingController { @ApiOperation("修改预订状态") public ResponseEntity markStatus(@RequestBody TbShopTableBooking dto) { tbShopTableBookingService.markStatus(dto.getId(), dto.getStatus()); + if(dto.getStatus() == -1){ + TbShopTableBooking entity = tbShopTableBookingService.getById(dto.getId()); + tbShopTableBookingService.cancelSubscribe(entity.getShopTableId()); + } return ResponseEntity.ok().build(); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopTableBookingService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopTableBookingService.java index 28d95c8d..bbd495b5 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopTableBookingService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopTableBookingService.java @@ -38,6 +38,9 @@ public interface TbShopTableBookingService extends IService Map summary(Integer shopId,String[] phoneNos); + void markSubscribe(Integer shopTableId); + void cancelSubscribe(Integer shopTableId); + void batchTimeout(); void autoCancel(); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopTableBookingServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopTableBookingServiceImpl.java index 6bb4dee1..d5efd720 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopTableBookingServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopTableBookingServiceImpl.java @@ -280,6 +280,53 @@ public class TbShopTableBookingServiceImpl extends ServiceImpl wrapper = Wrappers.lambdaQuery(); + wrapper.eq(TbShopTableBooking::getBookingDate, today); + wrapper.eq(shopTableId != null, TbShopTableBooking::getShopTableId, shopTableId); + wrapper.ne(TbShopTableBooking::getStatus, -1); + wrapper.eq(TbShopTableBooking::getDelFlag, 0); + List list = super.list(wrapper); + if (CollUtil.isEmpty(list)) { + return; + } + Map> groupMap = list.stream().collect(Collectors.groupingBy(TbShopTableBooking::getShopTableId)); + groupMap.forEach((k, v) -> { + mpShopTableMapper.update(Wrappers.lambdaUpdate() + .set(TbShopTable::getStatus, "subscribe") + .eq(TbShopTable::getStatus, "idle") + .eq(TbShopTable::getId, k)); + }); + } + + @Override + public void cancelSubscribe(Integer shopTableId) { + String today = DateUtil.today(); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(TbShopTableBooking::getBookingDate, today); + wrapper.eq(shopTableId != null, TbShopTableBooking::getShopTableId, shopTableId); + //wrapper.ne(TbShopTableBooking::getStatus, -1); + wrapper.eq(TbShopTableBooking::getDelFlag, 0); + List list = super.list(wrapper); + if (CollUtil.isEmpty(list)) { + return; + } + Map> groupMap = list.stream().collect(Collectors.groupingBy(TbShopTableBooking::getShopTableId)); + groupMap.forEach((k, v) -> { + long count = v.stream().filter(item -> item.getStatus() == -1).count(); + // 全部都取消了,则标记为空闲 + if (v.size() == count) { + mpShopTableMapper.update(Wrappers.lambdaUpdate() + .set(TbShopTable::getStatus, "idle") + .eq(TbShopTable::getStatus, "subscribe") + .eq(TbShopTable::getId, k) + ); + } + }); + } + @Override public void batchTimeout() { baseMapper.update(Wrappers.lambdaUpdate() @@ -298,5 +345,4 @@ public class TbShopTableBookingServiceImpl extends ServiceImpl= timeout_minute+15")); } - } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/quartz/task/TestTask.java b/eladmin-system/src/main/java/cn/ysk/cashier/quartz/task/TestTask.java index 09172c35..87b8662f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/quartz/task/TestTask.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/quartz/task/TestTask.java @@ -106,6 +106,9 @@ public class TestTask { public void cancelPointsExchangeOrder(){ log.info("积分商品订单取消定时任务执行"); tbPointsExchangeRecordService.authCancel(); + log.info("当日预订台桌打标记-预订状态"); + tbShopTableBookingService.markSubscribe(null); + tbShopTableBookingService.cancelSubscribe(null); log.info("预定订单超时定时任务执行"); tbShopTableBookingService.batchTimeout(); log.info("预定订单取消定时任务执行"); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 75f29534..8bffd98c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -332,9 +332,8 @@ public class TbShopTableServiceImpl implements TbShopTableService { itemMap.put("orderId", orderInfo == null ? null : orderInfo.getId()); itemMap.put("useType", orderInfo == null ? null : orderInfo.getUseType()); itemMap.put("masterId", orderInfo == null ? null : orderInfo.getMasterId()); - Date bookingDate = DateUtil.date().toJdkDate(); LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.eq(TbShopTableBooking::getBookingDate, bookingDate); + wrapper.eq(TbShopTableBooking::getBookingDate, DateUtil.today()); wrapper.eq(TbShopTableBooking::getShopTableId, data.getId()); wrapper.ne(TbShopTableBooking::getStatus, -1); wrapper.eq(TbShopTableBooking::getDelFlag, 0); From 22f6c253a0e9f15010d862578bc54aac0c66e3ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Fri, 13 Dec 2024 13:28:27 +0800 Subject: [PATCH 30/37] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=BA=97=E9=93=BA=E6=8E=88=E6=9D=83=E8=BF=87=E6=9C=9F=E6=97=A5?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/security/rest/AuthorizationController.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java index 8a7e1f2a..b8812f90 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java @@ -1,6 +1,7 @@ package cn.ysk.cashier.config.security.rest; +import cn.hutool.core.comparator.CompareUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; @@ -169,8 +170,8 @@ public class AuthorizationController { if (shopInfo != null && shopInfo.getExpireAt() != null) { Long expireAt = shopInfo.getExpireAt(); Date time = DateUtil.calendar(expireAt).getTime(); - authInfo.put("expireDate", DateUtil.formatDate(time)); - if (DateUtil.compare(new Date(), time) > 0) { + authInfo.put("expireDate", DateUtil.formatDateTime(time)); + if (CompareUtil.compare(time, new Date()) < 0) { throw new BadRequestException("店铺已到期,请联系区域经理续费"); } } @@ -248,8 +249,8 @@ public class AuthorizationController { if (shopInfo != null && shopInfo.getExpireAt() != null) { Long expireAt = shopInfo.getExpireAt(); Date time = DateUtil.calendar(expireAt).getTime(); - authInfo.put("expireDate", DateUtil.formatDate(time)); - if (DateUtil.compare(new Date(), time) > 0) { + authInfo.put("expireDate", DateUtil.formatDateTime(time)); + if (DateUtil.compare(time, new Date()) > 0) { throw new BadRequestException("店铺已到期,请联系区域经理续费"); } } @@ -298,5 +299,4 @@ public class AuthorizationController { onlineUserService.logout(tokenProvider.getToken(request)); return new ResponseEntity<>(HttpStatus.OK); } - } From 2ce9909e1bc6c5b7646b36494d302ac914349ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Fri, 13 Dec 2024 16:40:38 +0800 Subject: [PATCH 31/37] =?UTF-8?q?=E5=8F=B0=E6=A1=8C=E9=A2=84=E8=AE=A2?= =?UTF-8?q?=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/ysk/cashier/enums/TableStateEnum.java | 1 + .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 1 + 2 files changed, 2 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java b/eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java index 6fb3613b..de33d46a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java @@ -2,6 +2,7 @@ package cn.ysk.cashier.enums; public enum TableStateEnum { IDLE("idle"), + SUBSCRIBE("subscribe"), CLOSED("closed"), PAYING("paying"), PENDING("pending"), USING("using"), CLEANING("cleaning"); private String state = "closed"; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 033bb382..942ea90b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -306,6 +306,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { data.setStatus("idle"); mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, data.getQrcode()) + .ne(TbShopTable::getStatus, TableStateEnum.SUBSCRIBE.getState()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); } Map itemMap = BeanUtil.beanToMap(data, false, false); From b9e0101841026c1a799a74ce31d1ff6a11382d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Fri, 13 Dec 2024 16:45:34 +0800 Subject: [PATCH 32/37] =?UTF-8?q?=E5=8F=B0=E6=A1=8C=E9=A2=84=E8=AE=A2?= =?UTF-8?q?=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 942ea90b..75aa030d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -303,11 +303,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (StrUtil.isBlank(data.getQrcode())) { data.setStatus("unbind"); } else if ((countMap.get(data.getQrcode()) == null || countMap.get(data.getQrcode()) < 1) && !TableStateEnum.CLEANING.getState().equals(data.getStatus())) { - data.setStatus("idle"); - mpShopTableMapper.update(null, new LambdaUpdateWrapper() - .eq(TbShopTable::getQrcode, data.getQrcode()) - .ne(TbShopTable::getStatus, TableStateEnum.SUBSCRIBE.getState()) - .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + if (!TableStateEnum.SUBSCRIBE.getState().equals(data.getStatus())) { + data.setStatus("idle"); + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, data.getQrcode()) + .ne(TbShopTable::getStatus, TableStateEnum.SUBSCRIBE.getState()) + .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + } } Map itemMap = BeanUtil.beanToMap(data, false, false); if ((data.getStatus().equals("using") || data.getStatus().equals("cleaning")) && data.getUseTime() != null) { From 111a92935a6b79d5c58d8913db0040d8cce40f6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Fri, 13 Dec 2024 17:45:58 +0800 Subject: [PATCH 33/37] =?UTF-8?q?=E5=8F=B0=E6=A1=8C=E9=A2=84=E8=AE=A2?= =?UTF-8?q?=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/dto/shop/TbShopTableQueryCriteria.java | 10 ++++++++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 12 ++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopTableQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopTableQueryCriteria.java index ef4b3645..1e6fcbae 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopTableQueryCriteria.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopTableQueryCriteria.java @@ -53,6 +53,15 @@ public class TbShopTableQueryCriteria{ private Integer page = 1; private Integer size = 99999; + /** + * 预约日期 yyyy-MM-dd + */ + private String bookingDate; + /** + * 预约类型 lunch-午餐 dinner-晚餐 + */ + private String bookingType; + public Integer getIsPredate() { return isPredate; } @@ -60,4 +69,5 @@ public class TbShopTableQueryCriteria{ public void setIsPredate(Integer isPredate) { this.isPredate = isPredate; } + } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 75aa030d..c9ec280b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -334,16 +334,20 @@ public class TbShopTableServiceImpl implements TbShopTableService { itemMap.put("orderId", orderInfo == null ? null : orderInfo.getId()); itemMap.put("useType", orderInfo == null ? null : orderInfo.getUseType()); itemMap.put("masterId", orderInfo == null ? null : orderInfo.getMasterId()); + String bookingDate = StrUtil.blankToDefault(criteria.getBookingDate(), DateUtil.today()); + String bookingType = StrUtil.blankToDefault(criteria.getBookingType(), "lunch"); LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.eq(TbShopTableBooking::getBookingDate, DateUtil.today()); + wrapper.eq(TbShopTableBooking::getBookingDate, bookingDate); + wrapper.eq(TbShopTableBooking::getBookingType, bookingType); wrapper.eq(TbShopTableBooking::getShopTableId, data.getId()); wrapper.ne(TbShopTableBooking::getStatus, -1); wrapper.eq(TbShopTableBooking::getDelFlag, 0); List list = tbShopTableBookingService.list(wrapper); - if (list == null) { - list = new ArrayList<>(); + TbShopTableBooking bookingInfo = null; + if (CollUtil.isNotEmpty(list)) { + bookingInfo = list.get(0); } - itemMap.put("bookingList", list); + itemMap.put("bookingInfo", bookingInfo); infoList.add(itemMap); } HashMap map = new HashMap<>(); From 42b310b23747767c1f126abef8b67cbc98ee7b24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Fri, 13 Dec 2024 18:14:47 +0800 Subject: [PATCH 34/37] =?UTF-8?q?=E5=8F=B0=E6=A1=8C=E9=A2=84=E8=AE=A2?= =?UTF-8?q?=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index c9ec280b..19831bb7 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -303,11 +303,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (StrUtil.isBlank(data.getQrcode())) { data.setStatus("unbind"); } else if ((countMap.get(data.getQrcode()) == null || countMap.get(data.getQrcode()) < 1) && !TableStateEnum.CLEANING.getState().equals(data.getStatus())) { - if (!TableStateEnum.SUBSCRIBE.getState().equals(data.getStatus())) { + if (TableStateEnum.USING.getState().equals(data.getStatus())) { data.setStatus("idle"); mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, data.getQrcode()) - .ne(TbShopTable::getStatus, TableStateEnum.SUBSCRIBE.getState()) + .eq(TbShopTable::getStatus, TableStateEnum.USING.getState()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); } } From 25b56e437fa03bb6a3ea9f0cc206f3f4e24dbcbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 16 Dec 2024 15:05:11 +0800 Subject: [PATCH 35/37] =?UTF-8?q?fix:=20=E5=BA=97=E9=93=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=B8=8D=E6=A0=A1=E9=AA=8Cstate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/mybatis/service/impl/MpCashierCartServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java index 36fd5552..a592adce 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MpCashierCartServiceImpl.java @@ -57,8 +57,7 @@ public class MpCashierCartServiceImpl extends ServiceImpl selectUnTableCart(String masterId, Integer shopId) { TbShopInfo shopInfo = mpShopInfoMapper.selectOne(new LambdaQueryWrapper() - .eq(TbShopInfo::getId, shopId) - .eq(TbShopInfo::getStatus, 1)); + .eq(TbShopInfo::getId, shopId)); if (shopInfo == null) { throw new BadRequestException("店铺信息不存在"); } From a1f1ff3f942136f848ff56554ca83335354fa385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 16 Dec 2024 17:18:37 +0800 Subject: [PATCH 36/37] =?UTF-8?q?fix:=20=E8=BD=AC=E6=A1=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20=E4=B8=8D=E6=89=93=E7=A5=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/product/TbPlaceController.java | 2 +- .../impl/shopimpl/TbShopTableServiceImpl.java | 20 +++++++++---------- .../service/shop/TbShopTableService.java | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbPlaceController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbPlaceController.java index 089a7c0f..2af78c76 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbPlaceController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbPlaceController.java @@ -160,7 +160,7 @@ public class TbPlaceController { @ApiOperation("代客下单 查询购物车 /shop/table") public ResponseEntity createOrder(HttpServletRequest request, @RequestBody CreateOrderDTO createOrderDTO) { Utils.checkLimit(tokenProvider.getToken(request), 1, 400); - return ResponseEntity.ok(tbShopTableService.createOrder(createOrderDTO, false)); + return ResponseEntity.ok(tbShopTableService.createOrder(createOrderDTO, false, true)); } @PostMapping("/pending") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 19831bb7..a6682883 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -1287,7 +1287,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override @Transactional - public TbOrderInfo createOrder(CreateOrderDTO createOrderDTO, boolean byOrderId) { + public TbOrderInfo createOrder(CreateOrderDTO createOrderDTO, boolean byOrderId, boolean isPrint) { createOrderDTO.setTableId(OrderUseTypeEnum.TAKEOUT.getValue().equals(createOrderDTO.getUseType()) ? null : createOrderDTO.getTableId()); return Utils.runFunAndCheckKey(() -> { TbShopUser shopUser = null; @@ -1328,7 +1328,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo, cartInfoDTO.getSeatCart(), shopUser, shopTable, createOrderDTO.getIsWaitCall()); // 修改订单详情并打票 - updateDetailAndPrint(orderInfo, detailPriceDTO, shopEatTypeInfoDTO); + updateDetailAndPrint(orderInfo, detailPriceDTO, shopEatTypeInfoDTO, isPrint); // 修改购物车状态和库存 updateCartAndStock(cartInfoDTO.getNewCashierCarts(), orderInfo, shopEatTypeInfoDTO); @@ -1800,7 +1800,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { return orderInfo; } - private void updateDetailAndPrint(TbOrderInfo orderInfo, OrderPriceDTO priceDTO, ShopEatTypeInfoDTO shopEatTypeInfoDTO) { + private void updateDetailAndPrint(TbOrderInfo orderInfo, OrderPriceDTO priceDTO, ShopEatTypeInfoDTO shopEatTypeInfoDTO, boolean isPrint) { // 添加订单详细数据 Integer orderId = orderInfo.getId(); for (TbOrderDetail orderDetail : priceDTO.getOrderDetailList()) { @@ -1815,14 +1815,14 @@ public class TbShopTableServiceImpl implements TbShopTableService { } // 菜品票 - if (!priceDTO.getNewOrderDetailList().isEmpty() && shopEatTypeInfoDTO.isDineInAfter()) { + if (!priceDTO.getNewOrderDetailList().isEmpty() && shopEatTypeInfoDTO.isDineInAfter() && isPrint) { rabbitMsgUtils.printDishesTicket(orderInfo.getId(), false, priceDTO.getNewOrderDetailList().toArray(new TbOrderDetail[0])); } if (!priceDTO.getRemoveOrderDetailIds().isEmpty()) { // 退单票 orderDetailMapper.deleteBatchIds(priceDTO.getRemoveOrderDetailIds()); - if (shopEatTypeInfoDTO.isDineInAfter()) { + if (shopEatTypeInfoDTO.isDineInAfter() && isPrint) { rabbitMsgUtils.printDishesTicket(orderInfo.getId(), true, priceDTO.getRemoveOrderDetailList().toArray(new TbOrderDetail[0])); } } @@ -2021,7 +2021,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { createOrderDTO.setMasterId(pendingDTO.getMasterId()); createOrderDTO.setNote(pendingDTO.getNote()); createOrderDTO.setUseType(pendingDTO.getUseType()); - orderId = createOrder(createOrderDTO, false).getId(); + orderId = createOrder(createOrderDTO, false, true).getId(); } @@ -2597,7 +2597,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } if (dto != null) { dto.setVipUserId(updateVipDTO.getType() == 0 ? updateVipDTO.getVipUserId() : null); - return createOrder(dto, true); + return createOrder(dto, true, true); } return "哈哈哈"; @@ -3464,14 +3464,14 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpOrderInfoService.removeById(orderId); } - if (!switchTableDTO.isFull() && switchTableDTO.getCartIds().size() != totalSize) { + if (!switchTableDTO.isFull() && switchTableDTO.getCartIds().size() == totalSize) { // 重新创建订单数据 CreateOrderDTO createOrderDTO = new CreateOrderDTO(); createOrderDTO.setMasterId(switchTableDTO.getMasterId()); createOrderDTO.setShopId(switchTableDTO.getShopId()); createOrderDTO.setTableId(switchTableDTO.getCurrentTableId()); createOrderDTO.setUseType(shopEatTypeInfoDTO.getUseType()); - createOrder(createOrderDTO, false); + createOrder(createOrderDTO, false, false); } // 重新创建订单数据 @@ -3480,7 +3480,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { createOrderDTO.setShopId(switchTableDTO.getShopId()); createOrderDTO.setTableId(switchTableDTO.getTargetTableId()); createOrderDTO.setUseType(targetShopEatTypeInfoDTO.getUseType()); - createOrder(createOrderDTO, false); + createOrder(createOrderDTO, false, false); return true; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopTableService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopTableService.java index 4d194042..a40364e5 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopTableService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopTableService.java @@ -117,7 +117,7 @@ public interface TbShopTableService { void pack(PackCartDTO packCartDTO); - Object createOrder(CreateOrderDTO createOrderDTO, boolean addMasterId); + Object createOrder(CreateOrderDTO createOrderDTO, boolean addMasterId, boolean isPrint); JSONObject getMasterId(Integer shopId, String tableId, String useType, Integer orderId); From 099f5f58a511c92b3eee8d6c48c3fa145fd598f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 17 Dec 2024 09:18:54 +0800 Subject: [PATCH 37/37] =?UTF-8?q?fix:=20=E8=BD=AC=E6=A1=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20=E6=9C=AA=E4=B8=8B=E5=8D=95=E4=B8=8D=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E8=BD=AC=E6=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/shopimpl/TbShopTableServiceImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index a6682883..4157c66e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -3429,6 +3429,9 @@ public class TbShopTableServiceImpl implements TbShopTableService { TbCashierCart currentSeatFee = null; ArrayList updateCartInfos = new ArrayList<>(); for (TbCashierCart item : cashierCarts) { + if (item.getOrderId() == null) { + throw new BadRequestException("商品未下单无法转台并台"); + } if (targetSeatFee == null || !TableConstant.CART_SEAT_ID.equals(item.getProductId())) { item.setTableId(switchTableDTO.getTargetTableId()); item.setMasterId(masterId); @@ -3436,9 +3439,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } cartIds.add(item.getId()); - if (item.getOrderId() != null) { - orderId = item.getOrderId(); - } + orderId = item.getOrderId(); if (TableConstant.CART_SEAT_ID.equals(item.getProductId())) { currentSeatFee = item;