From e2a624e6532bd0732af12e3b46112e7d9d850577 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 09:53:26 +0800 Subject: [PATCH 01/21] =?UTF-8?q?perf:=20=E5=8F=B0=E6=A1=8C=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/TbShopTableController.java | 4 ++-- .../dto/shop/TbShopTableQueryCriteria.java | 6 ++++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 21 +++++++++++++++++-- .../service/shop/TbShopTableService.java | 2 +- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopTableController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopTableController.java index 1178d57d..f7cc3f12 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopTableController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopTableController.java @@ -53,8 +53,8 @@ public class TbShopTableController { @GetMapping @ApiOperation("查询/shop/table") - public ResponseEntity queryTbShopTable(TbShopTableQueryCriteria criteria){ - return new ResponseEntity<>(tbShopTableService.queryAllNoPage(criteria),HttpStatus.OK); + public ResponseEntity queryTbShopTable(@Validated TbShopTableQueryCriteria criteria){ + return new ResponseEntity<>(tbShopTableService.queryAllPage(criteria),HttpStatus.OK); } @PostMapping 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 2b3de201..1cf14c92 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 @@ -18,6 +18,8 @@ package cn.ysk.cashier.dto.shop; import lombok.Data; import cn.ysk.cashier.annotation.Query; +import javax.validation.constraints.NotNull; + /** * @website https://eladmin.vip * @author lyf @@ -32,6 +34,7 @@ public class TbShopTableQueryCriteria{ /** 精确 */ @Query + @NotNull private Integer shopId; @Query @@ -39,4 +42,7 @@ public class TbShopTableQueryCriteria{ @Query private Long qrcode; + + private Integer page = 1; + private Integer size = 99999; } 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 9a93eb79..9a1c1e31 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 @@ -217,11 +217,28 @@ public class TbShopTableServiceImpl implements TbShopTableService { } @Override - public Map queryAllNoPage(TbShopTableQueryCriteria criteria) { + public Map queryAllPage(TbShopTableQueryCriteria criteria) { if (null == criteria.getAreaId() || criteria.getAreaId() == 0) { criteria.setAreaId(null); } - List tbShopTableList = tbShopTableRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)); + + LambdaQueryWrapper query = new LambdaQueryWrapper() + .eq(TbShopTable::getShopId, criteria.getShopId()); + if (StrUtil.isNotBlank(criteria.getName())) { + query.like(TbShopTable::getName, criteria.getName()); + } + + if (criteria.getAreaId() != null) { + query.eq(TbShopTable::getAreaId, criteria.getAreaId()); + } + + if (criteria.getQrcode() != null) { + query.eq(TbShopTable::getQrcode, criteria.getQrcode()); + } + + com.baomidou.mybatisplus.extension.plugins.pagination.Page shopTablePage = + mpShopTableService.page(new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(criteria.getPage(), criteria.getSize()), query); + List tbShopTableList = shopTablePage.getRecords(); ArrayList> infoList = new ArrayList<>(); for (TbShopTable date : tbShopTableList) { if (StrUtil.isBlank(date.getQrcode())) { 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 ad77dffc..58fd4474 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 @@ -43,7 +43,7 @@ public interface TbShopTableService { */ Map queryAll(TbShopTableQueryCriteria criteria, Pageable pageable); - Map queryAllNoPage(TbShopTableQueryCriteria criteria); + Map queryAllPage(TbShopTableQueryCriteria criteria); /** * 查询所有数据不分页 From edfaaa8c446a42960ee59c5e8fad99e565fe6462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Thu, 24 Oct 2024 16:41:03 +0800 Subject: [PATCH 02/21] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/member/MemberController.java | 33 +++++++ .../mybatis/service/MemberService.java | 13 +++ .../service/impl/MemberServiceImpl.java | 99 +++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/controller/member/MemberController.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MemberService.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MemberServiceImpl.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/member/MemberController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/member/MemberController.java new file mode 100644 index 00000000..cc2197fb --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/member/MemberController.java @@ -0,0 +1,33 @@ +package cn.ysk.cashier.controller.member; + +import cn.ysk.cashier.mybatis.service.MemberService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * @author tankaikai + * @since 2024-10-24 16:13 + */ +@RestController +@RequestMapping("/api/member") +@Api(tags="会员管理") +public class MemberController { + + @Resource + private MemberService memberService; + + @PostMapping + @ApiOperation("保存") + public ResponseEntity save(@RequestBody Map map) { + memberService.createMember(map); + return ResponseEntity.ok().build(); + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MemberService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MemberService.java new file mode 100644 index 00000000..9f5146d0 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MemberService.java @@ -0,0 +1,13 @@ +package cn.ysk.cashier.mybatis.service; + +import java.util.Map; + +/** + * 会员管理 + * @author tankaikai + * @since 2024-10-24 16:15 + */ +public interface MemberService { + + void createMember(Map map); +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MemberServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MemberServiceImpl.java new file mode 100644 index 00000000..5452bdf9 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MemberServiceImpl.java @@ -0,0 +1,99 @@ +package cn.ysk.cashier.mybatis.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import cn.ysk.cashier.exception.BadRequestException; +import cn.ysk.cashier.mybatis.mapper.MpUserInfoMapper; +import cn.ysk.cashier.mybatis.mapper.ShopUserMapper; +import cn.ysk.cashier.mybatis.service.MemberService; +import cn.ysk.cashier.pojo.TbUserInfo; +import cn.ysk.cashier.pojo.shop.TbShopUser; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.List; +import java.util.Map; + +/** + * 会员管理 + * + * @author tankaikai + * @since 2024-10-24 16:16 + */ +@Service +public class MemberServiceImpl implements MemberService { + + @Resource + private ShopUserMapper shopUserMapper; + @Resource + private MpUserInfoMapper mpUserInfoMapper; + + @Override + public void createMember(Map map) { + if (ObjectUtil.isEmpty(map) || !map.containsKey("shopId") || ObjectUtil.isEmpty(map.get("shopId")) + || !map.containsKey("phone") || ObjectUtil.isEmpty(map.get("phone")) + || !map.containsKey("nickName") || ObjectUtil.isEmpty(map.get("nickName")) + || !map.containsKey("sex") || ObjectUtil.isEmpty(map.get("sex")) + || !map.containsKey("level") || ObjectUtil.isEmpty(map.get("level")) || + !map.containsKey("birthDay") || ObjectUtil.isEmpty(map.get("birthDay")) + ) { + throw new BadRequestException("请求参数不允许为空"); + } + String phone = String.valueOf(map.get("phone")); + + String shopId = String.valueOf(map.get("shopId")); + + List tbShopUsers = shopUserMapper.selectList(Wrappers.lambdaQuery().eq(TbShopUser::getShopId, shopId).eq(TbShopUser::getTelephone, phone)); + + if (ObjectUtil.isNotEmpty(tbShopUsers) && tbShopUsers.stream().filter(it -> "1".equals(it.getIsVip().toString())).count() > 0) { + throw new BadRequestException("会员已存在"); + } + + Long count = mpUserInfoMapper.selectCount(Wrappers.lambdaQuery().eq(TbUserInfo::getTelephone, phone)); + if (count > 1) { + throw new BadRequestException("相同的手机号已存在多个记录"); + } + + if (ObjectUtil.isNotNull(tbShopUsers) && ObjectUtil.isNotEmpty(tbShopUsers)) { + TbShopUser tbShopUser = tbShopUsers.get(0); + tbShopUser.setTelephone(phone); + tbShopUser.setBirthDay(String.valueOf(map.get("birthDay"))); + tbShopUser.setName(String.valueOf(map.get("nickName"))); + tbShopUser.setSex(Convert.toInt(map.get("sex"))); + tbShopUser.setLevel(Convert.toInt(map.get("level"))); + tbShopUser.setIsVip(1); + tbShopUser.setUpdatedAt(System.currentTimeMillis()); + tbShopUser.setJoinTime(new Timestamp(System.currentTimeMillis())); + shopUserMapper.updateById(tbShopUser); + return; + } + + TbShopUser tbShopUser = new TbShopUser(); + TbUserInfo tbUserInfo = mpUserInfoMapper.selectOne(Wrappers.lambdaQuery().eq(TbUserInfo::getTelephone, phone)); + if (tbUserInfo != null) { + tbShopUser.setUserId(tbUserInfo.getId().toString()); + } + tbShopUser.setAmount(BigDecimal.ZERO); + tbShopUser.setCreditAmount(BigDecimal.ZERO); + tbShopUser.setConsumeAmount(BigDecimal.ZERO); + tbShopUser.setConsumeNumber(0); + tbShopUser.setLevelConsume(BigDecimal.ZERO); + tbShopUser.setStatus(1); + tbShopUser.setShopId(shopId); + tbShopUser.setTelephone(phone); + tbShopUser.setBirthDay(String.valueOf(map.get("birthDay"))); + tbShopUser.setName(String.valueOf(map.get("nickName"))); + tbShopUser.setSex(Convert.toInt((map.get("sex")))); + tbShopUser.setLevel(Convert.toInt(map.get("level"))); + String code = RandomUtil.randomNumbers(8); + tbShopUser.setCode(code); + tbShopUser.setIsVip(1); + tbShopUser.setCreatedAt(System.currentTimeMillis()); + tbShopUser.setJoinTime(new Timestamp(System.currentTimeMillis())); + shopUserMapper.insert(tbShopUser); + } +} From 6b75ca5ff9b9f4b20f1ba24886c693590bc6c23e Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 24 Oct 2024 16:59:18 +0800 Subject: [PATCH 03/21] =?UTF-8?q?=E5=95=86=E5=93=81=20=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/productimpl/TbProductServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java index 46fdf887..10bb2257 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java @@ -251,7 +251,11 @@ public class TbProductServiceImpl implements TbProductService { if ("sku".equals(product.getTypeEnum())){ if(tbProductSkus.size() > 1){ BigDecimal maxPrice = tbProductSkus.stream().map(TbProductSku::getSalePrice).max(BigDecimal::compareTo).get(); - productNewVo.setLowPrice("¥" +productNewVo.getLowPrice() + "~¥" + maxPrice); + if (maxPrice.compareTo(new BigDecimal(productNewVo.getLowPrice())) == 0) { + productNewVo.setLowPrice("¥" +productNewVo.getLowPrice()); + }else { + productNewVo.setLowPrice("¥" +productNewVo.getLowPrice() + "~¥" + maxPrice); + } }else { productNewVo.setLowPrice("¥" +productNewVo.getLowPrice()); } From a9f1649749bb0bda0c2c58e13e8e69683edae172 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 10:34:17 +0800 Subject: [PATCH 04/21] =?UTF-8?q?perf:=20=E6=9B=B4=E6=94=B9=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E5=9C=B0=E5=9D=80=20=E5=95=86=E5=93=81=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0typeEnum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ysk/cashier/controller/product/TbPlaceController.java | 3 ++- .../service/impl/productimpl/TbProductServiceImpl.java | 3 ++- .../cn/ysk/cashier/service/product/TbProductService.java | 2 +- .../src/main/resources/config/application-dev.yml | 8 +++++++- .../src/main/resources/config/application-pre.yml | 5 +++++ eladmin-system/src/main/resources/config/application.yml | 4 ---- 6 files changed, 17 insertions(+), 8 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 803689f2..2f0db743 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 @@ -56,10 +56,11 @@ public class TbPlaceController { @ApiOperation("查询/product") public ResponseEntity queryActivateTbProductInfo(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "30") Integer size, + @RequestParam(required = false) String typeEnum, @RequestParam(required = false) Integer categoryId, @RequestParam Integer shopId, @RequestParam(required = false) Integer productId) { - return new ResponseEntity<>(tbProductService.activateProduct(page, size, categoryId, shopId, productId), HttpStatus.OK); + return new ResponseEntity<>(tbProductService.activateProduct(page, size, categoryId, shopId, productId, typeEnum), HttpStatus.OK); } public TbPlaceController(TbShopTableService tbShopTableService, TbProductService tbProductService, RabbitMsgUtils rabbitMsgUtils) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java index 46fdf887..5e255f8c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java @@ -754,10 +754,11 @@ public class TbProductServiceImpl implements TbProductService { } @Override - public Object activateProduct(Integer page, Integer size, Integer categoryId, Integer shopId, Integer productId) { + public Object activateProduct(Integer page, Integer size, Integer categoryId, Integer shopId, Integer productId, String typeEnum) { com.baomidou.mybatisplus.extension.plugins.pagination.Page page1 = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page, size); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("is_del", 0) + .eq("type_enum", typeEnum) .eq("shop_id", shopId) .eq("is_delete", 0) .eq("status", 1) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/product/TbProductService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/product/TbProductService.java index 82661bc2..68378892 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/product/TbProductService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/product/TbProductService.java @@ -106,5 +106,5 @@ public interface TbProductService { */ void returnStockByPro(Integer productId, Integer productSkuId, Integer num); - Object activateProduct(Integer page, Integer size, Integer categoryId, Integer shopId, Integer productId); + Object activateProduct(Integer page, Integer size, Integer categoryId, Integer shopId, Integer productId, String typeEnum); } diff --git a/eladmin-system/src/main/resources/config/application-dev.yml b/eladmin-system/src/main/resources/config/application-dev.yml index ffd0536f..a91875f9 100644 --- a/eladmin-system/src/main/resources/config/application-dev.yml +++ b/eladmin-system/src/main/resources/config/application-dev.yml @@ -146,4 +146,10 @@ decorator: multiline: false cashier: server: - wx: https://wxcashiertest.sxczgkj.cn/ \ No newline at end of file + wx: https://wxcashiertest.sxczgkj.cn/ + +# 三方支付回调信息 +thirdPay: + notify: + fstPay: https://admintestpapi.sxczgkj.cn/notify/fstPay + fstReturn: https://admintestpapi.sxczgkj.cn/notify/fstReturn diff --git a/eladmin-system/src/main/resources/config/application-pre.yml b/eladmin-system/src/main/resources/config/application-pre.yml index 16d10bf2..d6c6f898 100644 --- a/eladmin-system/src/main/resources/config/application-pre.yml +++ b/eladmin-system/src/main/resources/config/application-pre.yml @@ -138,3 +138,8 @@ file: cashier: server: wx: https://pre-cashier.sxczgkj.cn/ + +thirdPay: + notify: + fstPay: https://pre-cashiernewadmin.sxczgkj.cn/notify/fstPay + fstReturn: https://pre-cashiernewadmin.sxczgkj.cn/notify/fstReturn diff --git a/eladmin-system/src/main/resources/config/application.yml b/eladmin-system/src/main/resources/config/application.yml index b77a4176..5d57fe2c 100644 --- a/eladmin-system/src/main/resources/config/application.yml +++ b/eladmin-system/src/main/resources/config/application.yml @@ -65,11 +65,7 @@ qrcode: https://kysh.sxczgkj.cn/codeplate?code= thirdPay: groupCallBack: https://wxcashiertest.sxczgkj.cn/cashierService/notify/notifyCallBackGroup payType: fushangtong - callBack: https://cashierclient.sxczgkj.cn/cashier-client/notify/notifyPay url: https://paymentapi.sxczgkj.cn - notify: - fstPay: https://admintestpapi.sxczgkj.cn/notify/fstPay - fstReturn: https://admintestpapi.sxczgkj.cn/notify/fstReturn mybatis-plus: mapper-locations: classpath:/cn/ysk/cashier/mybatis/mapper/*Mapper.xml From 56d8195450e2a41a4c5931c870ab0140ff1d1b34 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 10:36:43 +0800 Subject: [PATCH 05/21] =?UTF-8?q?perf:=20=E5=95=86=E5=93=81=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0typeEnum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/controller/product/TbPlaceController.java | 3 +-- .../service/impl/productimpl/TbProductServiceImpl.java | 4 ++-- .../java/cn/ysk/cashier/service/product/TbProductService.java | 2 +- 3 files changed, 4 insertions(+), 5 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 2f0db743..803689f2 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 @@ -56,11 +56,10 @@ public class TbPlaceController { @ApiOperation("查询/product") public ResponseEntity queryActivateTbProductInfo(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "30") Integer size, - @RequestParam(required = false) String typeEnum, @RequestParam(required = false) Integer categoryId, @RequestParam Integer shopId, @RequestParam(required = false) Integer productId) { - return new ResponseEntity<>(tbProductService.activateProduct(page, size, categoryId, shopId, productId, typeEnum), HttpStatus.OK); + return new ResponseEntity<>(tbProductService.activateProduct(page, size, categoryId, shopId, productId), HttpStatus.OK); } public TbPlaceController(TbShopTableService tbShopTableService, TbProductService tbProductService, RabbitMsgUtils rabbitMsgUtils) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java index cd0f305a..a694e328 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductServiceImpl.java @@ -758,11 +758,11 @@ public class TbProductServiceImpl implements TbProductService { } @Override - public Object activateProduct(Integer page, Integer size, Integer categoryId, Integer shopId, Integer productId, String typeEnum) { + public Object activateProduct(Integer page, Integer size, Integer categoryId, Integer shopId, Integer productId) { com.baomidou.mybatisplus.extension.plugins.pagination.Page page1 = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page, size); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("is_del", 0) - .eq("type_enum", typeEnum) + .in("type_enum", "sku", "normal") .eq("shop_id", shopId) .eq("is_delete", 0) .eq("status", 1) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/product/TbProductService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/product/TbProductService.java index 68378892..82661bc2 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/product/TbProductService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/product/TbProductService.java @@ -106,5 +106,5 @@ public interface TbProductService { */ void returnStockByPro(Integer productId, Integer productSkuId, Integer num); - Object activateProduct(Integer page, Integer size, Integer categoryId, Integer shopId, Integer productId, String typeEnum); + Object activateProduct(Integer page, Integer size, Integer categoryId, Integer shopId, Integer productId); } From 35ad186a9dcbc4858c624b6f511ec13f069a0efb Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 11:02:39 +0800 Subject: [PATCH 06/21] =?UTF-8?q?perf:=20=E5=8F=B0=E6=A1=8C=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=20=E9=80=89=E6=8B=A9=E5=8F=B0=E6=A1=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=B8=85=E7=A9=BA=E5=8E=9F=E6=9C=89=E8=B4=AD=E7=89=A9=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/dto/shop/TbShopTableQueryCriteria.java | 2 ++ .../ysk/cashier/dto/shoptable/ChoseTableDTO.java | 2 ++ .../mybatis/service/MpCashierCartService.java | 10 +++++++++- .../service/impl/MpCashierCartServiceImpl.java | 14 ++++++++++---- .../impl/shopimpl/TbShopTableServiceImpl.java | 12 ++++++++++-- 5 files changed, 33 insertions(+), 7 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 1cf14c92..72099d7d 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 @@ -15,6 +15,7 @@ */ package cn.ysk.cashier.dto.shop; +import cn.ysk.cashier.enums.TableStateEnum; import lombok.Data; import cn.ysk.cashier.annotation.Query; @@ -42,6 +43,7 @@ public class TbShopTableQueryCriteria{ @Query private Long qrcode; + private String state; private Integer page = 1; private Integer size = 99999; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/ChoseTableDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/ChoseTableDTO.java index d96950cf..fb5ba9ec 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/ChoseTableDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/ChoseTableDTO.java @@ -12,5 +12,7 @@ public class ChoseTableDTO { private String masterId; @NotBlank private String tableId; + @NotNull + private Boolean isClear; } 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 664c4391..53c2c62a 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 @@ -2,7 +2,6 @@ package cn.ysk.cashier.mybatis.service; import cn.ysk.cashier.enums.OrderStatusEnums; import cn.ysk.cashier.pojo.order.TbCashierCart; -import cn.ysk.cashier.pojo.order.TbOrderDetail; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -31,5 +30,14 @@ public interface MpCashierCartService extends IService { * @return 购物车数量 */ long countByTableId(Integer shopId, String tableId, OrderStatusEnums... statusEnums); + + /** + * 根据tableIdId和用餐类型清空购物车 + * + * @param tableId 台桌id + * @param useType 用餐类型 + * @param shopId 店铺id + */ + boolean clearCartByTableIdAndUseType(String tableId, String useType, Integer shopId); } 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 f23e0655..b7f55bca 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 @@ -4,17 +4,13 @@ import cn.hutool.core.date.DateUtil; import cn.ysk.cashier.enums.OrderStatusEnums; import cn.ysk.cashier.enums.OrderUseTypeEnum; import cn.ysk.cashier.mybatis.mapper.TbCashierCartMapper; -import cn.ysk.cashier.mybatis.mapper.TbOrderDetailMapper; import cn.ysk.cashier.mybatis.service.MpCashierCartService; -import cn.ysk.cashier.mybatis.service.MpOrderDetailService; import cn.ysk.cashier.pojo.order.TbCashierCart; -import cn.ysk.cashier.pojo.order.TbOrderDetail; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.ArrayList; -import java.util.Collections; import java.util.List; /** @@ -49,5 +45,15 @@ public class MpCashierCartServiceImpl extends ServiceImpl() + .in(TbCashierCart::getStatus, OrderStatusEnums.CREATE.getValue(), OrderStatusEnums.RETURN.getValue()) + .gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime()) + .eq(TbCashierCart::getShopId, shopId) + .eq(TbCashierCart::getTableId, tableId) + .eq(TbCashierCart::getUseType, useType)); + } } 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 9a1c1e31..06381a41 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 @@ -236,6 +236,10 @@ public class TbShopTableServiceImpl implements TbShopTableService { query.eq(TbShopTable::getQrcode, criteria.getQrcode()); } + if (StrUtil.isNotBlank(criteria.getState())) { + query.eq(TbShopTable::getStatus, criteria.getState()); + } + com.baomidou.mybatisplus.extension.plugins.pagination.Page shopTablePage = mpShopTableService.page(new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(criteria.getPage(), criteria.getSize()), query); List tbShopTableList = shopTablePage.getRecords(); @@ -281,10 +285,9 @@ public class TbShopTableServiceImpl implements TbShopTableService { itemMap.put("masterId", orderInfo == null ? null : orderInfo.getMasterId()); infoList.add(itemMap); } - int i = tbShopTableRepository.countAllByShopId(criteria.getShopId()); HashMap map = new HashMap<>(); map.put("content", infoList); - map.put("total", i); + map.put("total", shopTablePage.getTotal()); return map; } @@ -1786,6 +1789,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(choseTableDTO.getShopId(), choseTableDTO.getTableId()); + // 清空原有桌台商品 + if (choseTableDTO.getIsClear()) { + mpCashierCartService.clearCartByTableIdAndUseType(choseTableDTO.getTableId(), shopEatTypeInfoDTO.getUseType(), choseTableDTO.getShopId()); + } + ArrayList cartIds = new ArrayList<>(); Integer orderId = null; for (TbCashierCart item : tbCashierCarts) { From dbf29b5e38f2aab5f37d56f48240383220120514 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 11:39:34 +0800 Subject: [PATCH 07/21] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E5=8F=B0=E6=A1=8C=E8=B4=AD=E7=89=A9=E8=BD=A6=E6=9C=AA?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=87=BA=E6=95=B0=E6=8D=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/service/MpCashierCartService.java | 9 ++++++ .../impl/MpCashierCartServiceImpl.java | 32 +++++++++++++++++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 2 +- 3 files changed, 42 insertions(+), 1 deletion(-) 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 53c2c62a..daf32c47 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 @@ -22,6 +22,14 @@ public interface MpCashierCartService extends IService { */ List selectTakeoutCart(String masterId, Integer shopId); + /** + * 查询无台桌购物车商品 + * @param masterId 取餐码 + * @param shopId 店铺did + */ + List selectUnTableCart(String masterId, Integer shopId); + + /** * 统计当前台桌购物车数量 * @param shopId 店铺id @@ -39,5 +47,6 @@ public interface MpCashierCartService extends IService { * @param shopId 店铺id */ boolean clearCartByTableIdAndUseType(String tableId, String useType, Integer shopId); + } 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 b7f55bca..6980e295 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 @@ -1,16 +1,23 @@ package cn.ysk.cashier.mybatis.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.enums.OrderStatusEnums; import cn.ysk.cashier.enums.OrderUseTypeEnum; +import cn.ysk.cashier.enums.ShopInfoEatModelEnum; +import cn.ysk.cashier.enums.ShopInfoRegisterlEnum; +import cn.ysk.cashier.exception.BadRequestException; +import cn.ysk.cashier.mybatis.mapper.MpShopInfoMapper; import cn.ysk.cashier.mybatis.mapper.TbCashierCartMapper; import cn.ysk.cashier.mybatis.service.MpCashierCartService; import cn.ysk.cashier.pojo.order.TbCashierCart; +import cn.ysk.cashier.pojo.shop.TbShopInfo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -21,6 +28,12 @@ import java.util.List; */ @Service public class MpCashierCartServiceImpl extends ServiceImpl implements MpCashierCartService { + private final MpShopInfoMapper mpShopInfoMapper; + + public MpCashierCartServiceImpl(MpShopInfoMapper mpShopInfoMapper) { + this.mpShopInfoMapper = mpShopInfoMapper; + } + @Override public List selectTakeoutCart(String masterId, Integer shopId) { return list(new LambdaQueryWrapper() @@ -30,6 +43,25 @@ public class MpCashierCartServiceImpl extends ServiceImpl selectUnTableCart(String masterId, Integer shopId) { + TbShopInfo shopInfo = mpShopInfoMapper.selectOne(new LambdaQueryWrapper() + .eq(TbShopInfo::getId, shopId) + .eq(TbShopInfo::getStatus, 1)); + if (shopInfo == null) { + throw new BadRequestException("店铺信息不存在"); + } + + boolean isMunchies = StrUtil.isNotBlank(shopInfo.getRegisterType()) && + ShopInfoRegisterlEnum.MUNCHIES.getValue().equals(shopInfo.getRegisterType()); + + return list(new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, shopId) + .eq(TbCashierCart::getMasterId, masterId) + .eq(TbCashierCart::getUseType, isMunchies ? OrderUseTypeEnum.DINE_IN_BEFORE.getValue() : OrderUseTypeEnum.DINE_IN_AFTER.getValue()) + .gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime())); + } + @Override public long countByTableId(Integer shopId, String tableId, OrderStatusEnums... statusEnums) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() 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 06381a41..364fc26e 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 @@ -1782,7 +1782,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("台桌不存在或不处于空闲状态"); } - List tbCashierCarts = mpCashierCartService.selectTakeoutCart(choseTableDTO.getMasterId(), choseTableDTO.getShopId()); + List tbCashierCarts = mpCashierCartService.selectUnTableCart(choseTableDTO.getMasterId(), choseTableDTO.getShopId()); if (tbCashierCarts.isEmpty()) { throw new BadRequestException("购物车为空"); } From b49b7ef8af682147d64b36c1f1cabde1f0cffade Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 11:43:01 +0800 Subject: [PATCH 08/21] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=A0?= =?UTF-8?q?=E5=8F=B0=E6=A1=8C=E5=95=86=E5=93=81=E6=97=A0=E6=B3=95=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/shopimpl/TbShopTableServiceImpl.java | 5 +---- 1 file changed, 1 insertion(+), 4 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 364fc26e..7dd769e3 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 @@ -596,9 +596,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public void removeCart(RemoveCartDTO removeCartDTO) { - ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(removeCartDTO.getShopId(), removeCartDTO.getTableId()); - - int currentPlaceNum = getCurrentPlaceNum(shopEatTypeInfoDTO); // 会员点单 TbCashierCart cashierCart = cashierCartMapper.selectOne(new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, removeCartDTO.getShopId()) @@ -608,7 +605,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("购物车商品不存在"); } - if (removeCartDTO.getTableId() != null && cashierCart.getPlaceNum() != null && !cashierCart.getPlaceNum().equals(currentPlaceNum)) { + if (removeCartDTO.getTableId() != null && cashierCart.getPlaceNum() != null) { throw new BadRequestException("已下单商品仅支持退单操作"); } From f0632942d53f236b45565dd6bc39210530438427 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 15:02:33 +0800 Subject: [PATCH 09/21] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E5=9C=B0=E5=9D=80=20=E4=BF=AE=E5=A4=8D=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=8F=B0=E6=A1=8C=E5=8F=96=E9=A4=90=E7=A0=81=E6=9C=AA?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/shopimpl/TbShopTableServiceImpl.java | 8 +++++--- .../src/main/resources/config/application-dev.yml | 3 ++- .../src/main/resources/config/application-pre.yml | 4 ++-- 3 files changed, 9 insertions(+), 6 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 7dd769e3..2da13fda 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 @@ -49,7 +49,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.redis.core.StringRedisTemplate; @@ -632,7 +631,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (cashierCart.getTableId() != null && removeCartDTO.getTableId() != null) { // 清空购物车 出票 - long carCount = countCar(Long.valueOf(cashierCart.getTableId()), cashierCart.getShopId(), cashierCart.getMasterId()); + long carCount = countCar(Long.valueOf(cashierCart.getTableId()), cashierCart.getShopId()); log.info("购物车数量: {}", carCount); setRedisTableCartInfo(removeCartDTO.getTableId(), removeCartDTO.getShopId().toString(), Collections.singletonList(cashierCart), false); } @@ -768,7 +767,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { cashierCartMapper.delete(query); } - private long countCar(Long tableId, String shopId, String masterId) { + private long countCar(Long tableId, String shopId) { String orderId = redisTemplate.opsForValue().get(RedisConstant.getCurrentOrderKey(tableId.toString(), shopId)); return tbOrderDetailMapper.selectCount(new LambdaQueryWrapper() .eq(TbOrderDetail::getShopId, shopId) @@ -1791,11 +1790,14 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpCashierCartService.clearCartByTableIdAndUseType(choseTableDTO.getTableId(), shopEatTypeInfoDTO.getUseType(), choseTableDTO.getShopId()); } + String masterId = getMasterId(choseTableDTO.getShopId(), choseTableDTO.getTableId(), shopEatTypeInfoDTO.getUseType(), null).getString("masterId"); + ArrayList cartIds = new ArrayList<>(); Integer orderId = null; for (TbCashierCart item : tbCashierCarts) { item.setTableId(choseTableDTO.getTableId()); item.setUseType(shopEatTypeInfoDTO.getUseType()); + item.setMasterId(masterId); cartIds.add(item.getId()); if (item.getOrderId() != null) { orderId = item.getOrderId(); diff --git a/eladmin-system/src/main/resources/config/application-dev.yml b/eladmin-system/src/main/resources/config/application-dev.yml index a91875f9..86fd03fa 100644 --- a/eladmin-system/src/main/resources/config/application-dev.yml +++ b/eladmin-system/src/main/resources/config/application-dev.yml @@ -4,8 +4,9 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource # driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:p6spy:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_test?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true +# url: jdbc:p6spy:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_test?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true # url: jdbc:mysql://127.0.0.1:3306/fycashier?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true + url: jdbc:p6spy:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_pre?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true username: cashier password: Cashier@1@ # driver-class-name: com.mysql.cj.jdbc.Driver diff --git a/eladmin-system/src/main/resources/config/application-pre.yml b/eladmin-system/src/main/resources/config/application-pre.yml index d6c6f898..4122b44a 100644 --- a/eladmin-system/src/main/resources/config/application-pre.yml +++ b/eladmin-system/src/main/resources/config/application-pre.yml @@ -141,5 +141,5 @@ cashier: thirdPay: notify: - fstPay: https://pre-cashiernewadmin.sxczgkj.cn/notify/fstPay - fstReturn: https://pre-cashiernewadmin.sxczgkj.cn/notify/fstReturn + fstPay: https://pre-cashieradmin.sxczgkj.cn/notify/fstPay + fstReturn: https://pre-cashieradmin.sxczgkj.cn/notify/fstReturn From 201210202fa3f3419bb33f4df49c30fa537f1b50 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 15:34:06 +0800 Subject: [PATCH 10/21] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=8F=B0=E6=A1=8C=E5=8F=96=E9=A4=90=E7=A0=81=E6=9C=AA?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=97=AE=E9=A2=98?= 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, 2 insertions(+), 1 deletion(-) 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 2da13fda..968701f8 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 @@ -1783,6 +1783,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("购物车为空"); } + ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(choseTableDTO.getShopId(), choseTableDTO.getTableId()); // 清空原有桌台商品 @@ -1790,7 +1791,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpCashierCartService.clearCartByTableIdAndUseType(choseTableDTO.getTableId(), shopEatTypeInfoDTO.getUseType(), choseTableDTO.getShopId()); } - String masterId = getMasterId(choseTableDTO.getShopId(), choseTableDTO.getTableId(), shopEatTypeInfoDTO.getUseType(), null).getString("masterId"); + String masterId = getMasterId(choseTableDTO.getShopId(), choseTableDTO.getTableId(), "", null).getString("masterId"); ArrayList cartIds = new ArrayList<>(); Integer orderId = null; From 34b7c233925d58437d7b63927c354461c092aa72 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 15:42:42 +0800 Subject: [PATCH 11/21] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8F=B0?= =?UTF-8?q?=E6=A1=8C=E8=B4=AD=E7=89=A9=E8=BD=A6=E6=95=B0=E9=87=8F=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E4=B8=8D=E6=AD=A3=E7=A1=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 968701f8..01040c29 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 @@ -2221,7 +2221,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { public Object getShopState(Integer shopId, String tableId) { TbShopTable tbShopTable = mpShopTableService.selectByTableId(tableId, shopId); if (tbShopTable != null) { - long cartCount = mpCashierCartService.countByTableId(shopId, tableId); + long cartCount = mpCashierCartService.countByTableId(shopId, tableId, OrderStatusEnums.CREATE, OrderStatusEnums.RETURN); Map map = BeanUtil.beanToMap(tbShopTable, false, false); map.put("cartCount", cartCount); return map; From 61b80c5a854b0605edc66ccb4681dd4723a44d2e Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 15:54:31 +0800 Subject: [PATCH 12/21] =?UTF-8?q?feat=EF=BC=9A=E5=8F=B0=E6=A1=8C=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=AD=9B=E9=80=89=E6=9C=AA=E7=BB=91=E5=AE=9A=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 01040c29..374dc634 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 @@ -236,7 +236,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } if (StrUtil.isNotBlank(criteria.getState())) { - query.eq(TbShopTable::getStatus, criteria.getState()); + query.eq(TbShopTable::getStatus, criteria.getState()).isNotNull(TbShopTable::getQrcode).ne(TbShopTable::getQrcode, ""); } com.baomidou.mybatisplus.extension.plugins.pagination.Page shopTablePage = From 96ecaa840e87d6900806dbf8313aada96ebb13f8 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 16:58:57 +0800 Subject: [PATCH 13/21] =?UTF-8?q?feat:=20=E4=B8=8D=E4=BC=A0=E9=80=92?= =?UTF-8?q?=E6=A1=8C=E7=A0=81=E4=B8=8D=E4=BF=AE=E6=94=B9=E4=BA=BA=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/controller/product/TbPlaceController.java | 9 +++++++++ .../java/cn/ysk/cashier/dto/shoptable/ChoseCountDTO.java | 2 -- 2 files changed, 9 insertions(+), 2 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 803689f2..0103d389 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 @@ -1,10 +1,12 @@ package cn.ysk.cashier.controller.product; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.annotation.AnonymousAccess; import cn.ysk.cashier.annotation.Log; import cn.ysk.cashier.config.security.security.TokenProvider; import cn.ysk.cashier.dto.shoptable.*; +import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.mapper.TbMerchantAccountMapper; import cn.ysk.cashier.pojo.TbToken; import cn.ysk.cashier.pojo.order.TbCashierCart; @@ -199,6 +201,13 @@ public class TbPlaceController { @ApiOperation("代客下单 选择用餐人数") public ResponseEntity choseCount(@Validated @RequestBody ChoseCountDTO choseCountDTO) { + if (StrUtil.isBlank(choseCountDTO.getTableId())) { + return ResponseEntity.ok(null); + } + + if (StrUtil.isNotBlank(choseCountDTO.getTableId()) && choseCountDTO.getNum() == null) { + throw new BadRequestException("人数不为空"); + } return ResponseEntity.ok(tbShopTableService.choseCount(choseCountDTO)); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/ChoseCountDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/ChoseCountDTO.java index ae1ad2f9..14b9416c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/ChoseCountDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/ChoseCountDTO.java @@ -12,9 +12,7 @@ public class ChoseCountDTO { private String masterId; @NotNull private Integer shopId; - @NotEmpty private String tableId; - @NotNull @Min(1) private Integer num; @NotEmpty From 0f097f7d86631a73cfa04ecb2af535cd4cfc0033 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 17:27:51 +0800 Subject: [PATCH 14/21] =?UTF-8?q?fix:=20=E6=97=A0=E5=8F=B0=E6=A1=8C?= =?UTF-8?q?=E4=B8=8B=E5=8D=95=E6=8A=A5=E9=94=99=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 374dc634..dfee8e9e 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 @@ -1103,7 +1103,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (shopInfo == null) throw new BadRequestException("店铺信息不存在"); // 就餐模式信息 - ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(createOrderDTO.getShopId(), createOrderDTO.getTableId()); + ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(createOrderDTO.getShopId(), createOrderDTO.getTableId(), createOrderDTO.getUseType()); // 传递orderId直接取否则取当前缓存id Integer orderId = shopEatTypeInfoDTO.isDineInAfter() ? From 42563c3ce032d290ed556754ec2a12a3e2b02a4d Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 17:36:40 +0800 Subject: [PATCH 15/21] =?UTF-8?q?fix:=20=E6=97=A0=E5=8F=B0=E6=A1=8C?= =?UTF-8?q?=E4=B8=8B=E5=8D=95=E6=8A=A5=E9=94=99=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 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 dfee8e9e..9358448d 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 @@ -1122,15 +1122,18 @@ public class TbShopTableServiceImpl implements TbShopTableService { queryWrapper.and(q -> q.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, "")) .in(TbCashierCart::getPlatformType, OrderPlatformTypeEnum.PC.getValue(), OrderPlatformTypeEnum.CASH.getValue()); } else { - queryWrapper.eq(TbCashierCart::getTableId, createOrderDTO.getTableId()); - - tbShopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper() - .eq(TbShopTable::getQrcode, createOrderDTO.getTableId()) - .in(TbShopTable::getStatus, "idle", "using")); - if (tbShopTable == null) { - throw new BadRequestException("台桌未开台或不存在"); + if (StrUtil.isNotBlank(createOrderDTO.getTableId())) { + tbShopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper() + .eq(TbShopTable::getQrcode, createOrderDTO.getTableId()) + .in(TbShopTable::getStatus, "idle", "using")); + if (tbShopTable == null) { + throw new BadRequestException("台桌未开台或不存在"); + } + queryWrapper.eq(TbCashierCart::getTableId, createOrderDTO.getTableId()); + }else { + queryWrapper.isNull(TbCashierCart::getTableId); } - queryWrapper.eq(TbCashierCart::getTableId, createOrderDTO.getTableId()); + } List allCashierCarts = cashierCartMapper @@ -1350,7 +1353,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } // 先付费模式,结束购物车状态 - if (shopEatTypeInfoDTO.isDineInBefore() || shopEatTypeInfoDTO.isTakeout()) { + if (shopEatTypeInfoDTO.isDineInBefore() || shopEatTypeInfoDTO.isTakeout() || StrUtil.isBlank(createOrderDTO.getTableId())) { cashierCart.setStatus("final"); } cashierCartMapper.updateById(cashierCart); @@ -1384,7 +1387,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { // 推送耗材信息 pushConsMsg(orderInfo, cashierCarts); - if (!shopEatTypeInfoDTO.isTakeout()) { + if (!shopEatTypeInfoDTO.isTakeout() && StrUtil.isNotBlank(createOrderDTO.getTableId())) { // 清空台桌信息 if (shopEatTypeInfoDTO.isDineInBefore()) { mpShopTableMapper.update(null, new LambdaUpdateWrapper() @@ -1414,8 +1417,10 @@ public class TbShopTableServiceImpl implements TbShopTableService { } - String tableCartKey = RedisConstant.getTableCartKey(createOrderDTO.getTableId(), createOrderDTO.getShopId().toString()); - redisTemplate.delete(tableCartKey); + if (StrUtil.isNotBlank(createOrderDTO.getTableId())) { + String tableCartKey = RedisConstant.getTableCartKey(createOrderDTO.getTableId(), createOrderDTO.getShopId().toString()); + redisTemplate.delete(tableCartKey); + } return orderInfo; }, stringRedisTemplate, RedisConstant.getLockKey(RedisConstant.CREATE_ORDER, createOrderDTO.getShopId(), createOrderDTO.getTableId(), createOrderDTO.getMasterId(), createOrderDTO.getUseType())); From e9956b53360f1320086d3a4917c6f082d481598d Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 25 Oct 2024 18:10:45 +0800 Subject: [PATCH 16/21] =?UTF-8?q?fix:=20=E6=97=A0=E5=8F=B0=E6=A1=8C?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E9=9C=80=E8=A6=81=E9=A4=90=E4=BD=8D=E8=B4=B9?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 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 9358448d..487396f0 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 @@ -1151,8 +1151,8 @@ public class TbShopTableServiceImpl implements TbShopTableService { } } - if (allCashierCarts.isEmpty() || (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart != null && allCashierCarts.size() < 2) - || (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart == null)) { + if (StrUtil.isNotBlank(createOrderDTO.getTableId()) && (allCashierCarts.isEmpty() || (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart != null && allCashierCarts.size() < 2) + || (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart == null))) { throw new BadRequestException("购物车为空或未选择餐位费,请先添加商品或选择餐位费"); } @@ -1591,8 +1591,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("订单非未支付状态"); } - ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(payDTO.getShopId(), orderInfo.getTableId()); - if (payDTO.getDiscount() == null) { payDTO.setDiscount((double) 1); } @@ -1660,7 +1658,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { rabbitMsgUtils.sendOrderCollectMsg(jsonObject,3); // 打印消息 - if (!shopEatTypeInfoDTO.isDineInAfter()) { + if (!OrderUseTypeEnum.DINE_IN_AFTER.getValue().equals(orderInfo.getUseType())) { List detailList = orderDetailMapper.selectList(new LambdaQueryWrapper() .eq(TbOrderDetail::getOrderId, orderInfo.getId()) .eq(TbOrderDetail::getStatus, "closed")); @@ -1675,7 +1673,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { rabbitTemplate.convertAndSend(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD_SALE, mqData.toJSONString(), new CorrelationData(UUID.randomUUID().toString())); // 修改台桌状态 - if (!shopEatTypeInfoDTO.isTakeout()) { + if (!OrderUseTypeEnum.TAKEOUT.getValue().equals(orderInfo.getUseType()) && StrUtil.isNotBlank(orderInfo.getTableId())) { TbShopTable tbShopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper() .eq(TbShopTable::getShopId, payDTO.getShopId()) .eq(TbShopTable::getQrcode, orderInfo.getTableId())); @@ -1691,16 +1689,12 @@ public class TbShopTableServiceImpl implements TbShopTableService { .set(TbShopTable::getEndTime, DateUtil.date()) .set(TbShopTable::getStatus, TableStateEnum.CLEANING.getState())); } - } - - if (!shopEatTypeInfoDTO.isTakeout()) { String day = DateUtils.getDay(); String key = "SHOP:CODE:USER:pc" + ":" + payDTO.getShopId() + ":" + day + ":" + orderInfo.getTableId(); redisTemplate.delete(key); } - String currentOrderKey = RedisConstant.CURRENT_TABLE_ORDER + payDTO.getShopId() + ":" + orderInfo.getTableId(); redisTemplate.delete(currentOrderKey); From e19535d71e4d14fc7d4845fe72d23d4be1309114 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 26 Oct 2024 09:55:33 +0800 Subject: [PATCH 17/21] =?UTF-8?q?feat:=20=E8=AE=A2=E5=8D=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E8=BF=94=E5=9B=9E=E6=98=AF=E5=90=A6=E6=89=93=E5=8C=85?= =?UTF-8?q?=E8=B5=A0=E9=80=81=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/ysk/cashier/dto/order/TbOrderInfoDto.java | 3 ++- .../cashier/mybatis/mapper/TbOrderDetailMapper.java | 11 +++++++++++ .../cashier/mybatis/service/MpOrderDetailService.java | 9 +++++++++ .../service/impl/MpOrderDetailServiceImpl.java | 8 ++++++++ .../service/impl/order/TbOrderInfoServiceImpl.java | 7 ++++++- .../service/impl/shopimpl/TbShopTableServiceImpl.java | 8 ++++++-- 6 files changed, 42 insertions(+), 4 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderInfoDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderInfoDto.java index 5b596b59..e1e0a765 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderInfoDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderInfoDto.java @@ -16,6 +16,7 @@ package cn.ysk.cashier.dto.order; import cn.ysk.cashier.pojo.order.TbCashierCart; +import cn.ysk.cashier.pojo.order.TbFullOrderDetail; import cn.ysk.cashier.pojo.order.TbOrderDetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -159,7 +160,7 @@ public class TbOrderInfoDto implements Serializable { private String remark; - private List detailList; + private List detailList; private String payRemark; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbOrderDetailMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbOrderDetailMapper.java index 7158bce5..415eb6ce 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbOrderDetailMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbOrderDetailMapper.java @@ -1,9 +1,13 @@ package cn.ysk.cashier.mybatis.mapper; +import cn.ysk.cashier.pojo.order.TbFullOrderDetail; import cn.ysk.cashier.pojo.order.TbOrderDetail; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; +import java.util.List; + public interface TbOrderDetailMapper extends BaseMapper { /** @@ -16,4 +20,11 @@ public interface TbOrderDetailMapper extends BaseMapper { @Update("update tb_order_detail set status=#{status}, price_amount=(num+#{changeNum})*price,num=num+#{changeNum} " + "where id=#{id}") int updateNumAmountStatus(Integer id, String status, int changeNum); + + /** + * 查询包含打包费和是否赠送的订单详情信息 + * @param orderId 订单id + */ + @Select("select a.*, b.is_gift, b.is_pack from tb_order_detail as a left join tb_cashier_cart as b on a.cart_id=b.id where a.order_id=#{orderId}") + List selectFullInfoByOrderId(Integer orderId); } 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 23d352fa..8d766da5 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 @@ -2,6 +2,7 @@ package cn.ysk.cashier.mybatis.service; import cn.ysk.cashier.dto.shoptable.ReturnOrderDTO; import cn.ysk.cashier.enums.OrderStatusEnums; +import cn.ysk.cashier.pojo.order.TbFullOrderDetail; import cn.ysk.cashier.pojo.order.TbOrderDetail; import com.baomidou.mybatisplus.extension.service.IService; @@ -33,5 +34,13 @@ public interface MpOrderDetailService extends IService { * @return 是否成功 */ boolean updateUseTypeByCartIds(ArrayList cartIds, String useType); + + /** + * 根据订单id查询订单详情 + * @param orderId 订单id + * @return 详情信息 + */ + List selectByOrderId(Integer orderId); + } 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 9be766b1..d6d9b89c 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 @@ -5,11 +5,13 @@ import cn.ysk.cashier.enums.OrderStatusEnums; import cn.ysk.cashier.mybatis.mapper.TbOrderDetailMapper; import cn.ysk.cashier.mybatis.service.MpOrderDetailService; import cn.ysk.cashier.pojo.order.TbOrderDetail; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -38,5 +40,11 @@ public class MpOrderDetailServiceImpl extends ServiceImpl selectByOrderId(Integer orderId) { + return list(new LambdaQueryWrapper() + .eq(TbOrderDetail::getOrderId, orderId)); + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java index 54726f8e..d532fcdc 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java @@ -16,10 +16,13 @@ import cn.ysk.cashier.mapper.product.TbProductSkuMapper; import cn.ysk.cashier.mybatis.entity.*; import cn.ysk.cashier.mybatis.mapper.TbCashierCartMapper; import cn.ysk.cashier.mybatis.mapper.TbMShopUserMapper; +import cn.ysk.cashier.mybatis.mapper.TbOrderDetailMapper; import cn.ysk.cashier.mybatis.mapper.TbShopUserFlowMapper; +import cn.ysk.cashier.mybatis.service.MpOrderDetailService; import cn.ysk.cashier.mybatis.service.TbActivateInRecordService; import cn.ysk.cashier.mybatis.service.TbActivateOutRecordService; import cn.ysk.cashier.mybatis.service.TbOrderPaymentService; +import cn.ysk.cashier.mybatis.service.impl.MpOrderDetailServiceImpl; import cn.ysk.cashier.pojo.TbShopPayType; import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.pojo.order.TbFullOrderDetail; @@ -105,6 +108,8 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { private final TbCashierCartMapper tbCashierCartMapper; private final PayService payService; + private final MpOrderDetailService mpOrderDetailService; + private final TbOrderDetailMapper tbOrderDetailMapper; @Value("${thirdPay.url}") private String url; @@ -291,7 +296,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { dto.setPayType("退单"); } } - List details = tbOrderDetailRepository.searchDetailByOrderId(tbOrderInfo.getId()); + List details = tbOrderDetailMapper.selectFullInfoByOrderId(tbOrderInfo.getId()); dto.setIsRefund(0); dto.setRefundAmount(BigDecimal.ZERO); dto.setRefundRemark(tbOrderInfo.getRefundRemark()); 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 487396f0..f079ee52 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 @@ -778,7 +778,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Map getCart(String tableId, Integer page, Integer size, Integer shopId, String masterId, String useType) { - ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(shopId, OrderUseTypeEnum.TAKEOUT.getValue().equals(useType) ? null : tableId); + ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(shopId, OrderUseTypeEnum.TAKEOUT.getValue().equals(useType) ? null : tableId, useType); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .in(TbCashierCart::getStatus, "create", "return") .eq(TbCashierCart::getShopId, shopId) @@ -787,7 +787,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { .and(q -> q.eq(TbCashierCart::getMasterId, masterId).or().isNull(TbCashierCart::getMasterId)); if (!shopEatTypeInfoDTO.isTakeout()) { - queryWrapper.eq(TbCashierCart::getTableId, tableId); + if (StrUtil.isBlank(tableId)) { + queryWrapper.isNull(TbCashierCart::getTableId); + }else { + queryWrapper.eq(TbCashierCart::getTableId, tableId); + } } else { queryWrapper.and(q -> q.isNull(TbCashierCart::getTableId).or().eq(TbCashierCart::getTableId, "")) .in(TbCashierCart::getPlatformType, OrderPlatformTypeEnum.PC.getValue(), OrderPlatformTypeEnum.CASH.getValue()); From 763014f65ad4e258eff7e352f5f863228594adc4 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 26 Oct 2024 13:35:04 +0800 Subject: [PATCH 18/21] =?UTF-8?q?feat:=20=E8=AE=A2=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=BF=94=E5=9B=9E=E9=A4=90=E4=BD=8D=E8=B4=B9=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/order/TbOrderInfoServiceImpl.java | 13 ++++++++++++- .../main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java index d532fcdc..439afeab 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java @@ -195,8 +195,19 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { detail.setRefundNumber(detail.getNum()); }); } + + TbOrderDetail seatInfo = null; + ArrayList detailList = new ArrayList<>(); + for (TbOrderDetail detail : details) { + if (TableConstant.CART_SEAT_ID.equals(detail.getProductId().toString())) { + seatInfo = detail; + }else { + detailList.add(detail); + } + } orderInfoVo.setTableName(tbOrderInfo.getTableName()); - orderInfoVo.setDetailList(details); + orderInfoVo.setDetailList(detailList); + orderInfoVo.setSeatInfo(seatInfo); BeanUtils.copyProperties(tbOrderInfo, orderInfoVo); orderInfoVo.setRefundAmount(refundAmount); orderInfoVoList.add(orderInfoVo); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java index c95b542b..7a8c4949 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java @@ -115,4 +115,6 @@ public class TbOrderInfoVo { private String remark; private List detailList; + + private TbOrderDetail seatInfo; } From ce94bd7e4e2bcc37df7e7acd507be93aa4eccb3d Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 26 Oct 2024 13:51:07 +0800 Subject: [PATCH 19/21] =?UTF-8?q?feat:=20=E8=AE=A2=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=BF=94=E5=9B=9E=E9=A4=90=E4=BD=8D=E8=B4=B9=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/service/impl/order/TbOrderInfoServiceImpl.java | 6 +++--- .../src/main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java index 439afeab..430b540f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java @@ -172,7 +172,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { for (TbOrderInfo tbOrderInfo : page.getContent()) { TbOrderInfoVo orderInfoVo = new TbOrderInfoVo(); BigDecimal refundAmount = BigDecimal.ZERO; - List details = tbOrderDetailRepository.searchDetailByOrderId(tbOrderInfo.getId()); + List details = tbOrderDetailMapper.selectFullInfoByOrderId(tbOrderInfo.getId()); if (!tbOrderInfo.getOrderType().equals("return")) { List tbOrderInfos = tbOrderInfoRepository.selTbOrdersBysource(tbOrderInfo.getId(), tbOrderInfo.getShopId()); Map map; @@ -197,8 +197,8 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { } TbOrderDetail seatInfo = null; - ArrayList detailList = new ArrayList<>(); - for (TbOrderDetail detail : details) { + ArrayList detailList = new ArrayList<>(); + for (TbFullOrderDetail detail : details) { if (TableConstant.CART_SEAT_ID.equals(detail.getProductId().toString())) { seatInfo = detail; }else { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java index 7a8c4949..f8f6a1fc 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbOrderInfoVo.java @@ -114,7 +114,7 @@ public class TbOrderInfoVo { private String remark; - private List detailList; + private List detailList; private TbOrderDetail seatInfo; } From f75aae14a876cc2fadc89b96f2e50c356fb0b274 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 26 Oct 2024 16:14:12 +0800 Subject: [PATCH 20/21] =?UTF-8?q?fix:=20=E9=A4=90=E4=BD=8D=E8=B4=B9?= =?UTF-8?q?=E9=80=80=E8=8F=9C=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 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 f079ee52..84f6e895 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 @@ -165,11 +165,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { /** * 通过店铺id和就餐模式获取当前店铺的就餐类型信息 * - * @param shopId 店铺id + * @param shopId 店铺id * @param eatModel 就餐模式 - * @param tableId 台桌id + * @param tableId 台桌id * @return just餐类型信息 - * */ + */ private ShopEatTypeInfoDTO getShopEatTypeInfoDTO(Object shopId, String eatModel, String tableId) { TbShopInfo shopInfo = mpShopInfoMapper.selectOne(new LambdaQueryWrapper() .eq(TbShopInfo::getId, shopId) @@ -420,7 +420,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { tbCashierCart.setIsPack(updateCartDTO.getIsPack() ? "true" : "false"); } - if (updateCartDTO.getIsGift() != null ) { + if (updateCartDTO.getIsGift() != null) { tbCashierCart.setTotalAmount(updateCartDTO.getIsGift() ? tbCashierCart.getPackFee() : tbCashierCart.getTotalAmount()); tbCashierCart.setIsGift(updateCartDTO.getIsGift() ? "true" : "false"); } @@ -462,7 +462,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("商品不存在或已下架, id: " + addCartDTO.getSkuId()); } - if (product.getIsStock() != null && product.getIsStock() == 1 &&product.getStockNumber() < 1) { + if (product.getIsStock() != null && product.getIsStock() == 1 && product.getStockNumber() < 1) { throw new BadRequestException(product.getName() + "商品库存不足"); } @@ -673,18 +673,15 @@ public class TbShopTableServiceImpl implements TbShopTableService { TbOrderDetail orderDetail = orderDetailMapper.selectOne(new LambdaQueryWrapper() .eq(TbOrderDetail::getCartId, cashierCart.getId())); - if (cashierCart.getId() == -999) { + if (cashierCart.getProductId().equals("-999")) { cashierCartMapper.deleteById(cashierCart.getId()); - if (cashierCart.getOrderId() != null) { - orderDetailMapper.delete(new LambdaQueryWrapper() - .eq(TbOrderDetail::getCartId, cashierCart.getId())); - - orderInfoMapper.update(null, new LambdaUpdateWrapper() - .eq(TbOrderInfo::getId, cashierCart.getOrderId()) - .eq(TbOrderInfo::getShopId, removeCartDTO.getShopId()) - .set(TbOrderInfo::getSeatCount, null) - .set(TbOrderInfo::getSeatAmount, null)); - } + cashierCartMapper.update(null, new LambdaUpdateWrapper() + .eq(TbCashierCart::getId, cashierCart.getId()) + .set(TbCashierCart::getStatus, "return")); + orderDetailMapper.update(null, new LambdaUpdateWrapper() + .eq(TbOrderDetail::getId, tbOrderDetail.getId()) + .set(TbOrderDetail::getUpdateTime, DateUtil.date()) + .set(TbOrderDetail::getStatus, "return")); } else { @@ -697,7 +694,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { .set(TbOrderDetail::getUpdateTime, DateUtil.date()) .set(TbOrderDetail::getStatus, "return")); rabbitMsgUtils.printDishesTicket(tbOrderDetail.getOrderId(), true, tbOrderDetail); - }else { + } else { //生成退菜的购物车记录 TbCashierCart returnCart = BeanUtil.copyProperties(cashierCart, TbCashierCart.class); returnCart.setNumber(removeCartDTO.getNum()); @@ -789,7 +786,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (!shopEatTypeInfoDTO.isTakeout()) { if (StrUtil.isBlank(tableId)) { queryWrapper.isNull(TbCashierCart::getTableId); - }else { + } else { queryWrapper.eq(TbCashierCart::getTableId, tableId); } } else { @@ -1134,7 +1131,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("台桌未开台或不存在"); } queryWrapper.eq(TbCashierCart::getTableId, createOrderDTO.getTableId()); - }else { + } else { queryWrapper.isNull(TbCashierCart::getTableId); } @@ -1155,7 +1152,9 @@ public class TbShopTableServiceImpl implements TbShopTableService { } } - if (StrUtil.isNotBlank(createOrderDTO.getTableId()) && (allCashierCarts.isEmpty() || (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart != null && allCashierCarts.size() < 2) + if (StrUtil.isNotBlank(createOrderDTO.getTableId()) + && (cashierCarts.isEmpty() || + (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart != null && cashierCarts.size() < 2) || (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart == null))) { throw new BadRequestException("购物车为空或未选择餐位费,请先添加商品或选择餐位费"); } @@ -1196,7 +1195,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { List addOrderDetails = new ArrayList<>(); - boolean hasNewInfo = false; for (TbCashierCart cashierCart : cashierCarts) { if (!"return".equals(cashierCart.getStatus())) { @@ -1659,7 +1657,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { jsonObject.put("token", payDTO.getToken()); jsonObject.put("type", "create"); jsonObject.put("orderId", orderInfo.getId()); - rabbitMsgUtils.sendOrderCollectMsg(jsonObject,3); + rabbitMsgUtils.sendOrderCollectMsg(jsonObject, 3); // 打印消息 if (!OrderUseTypeEnum.DINE_IN_AFTER.getValue().equals(orderInfo.getUseType())) { @@ -1813,7 +1811,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpOrderDetailService.updateUseTypeByCartIds(cartIds, shopEatTypeInfoDTO.getUseType()); // 修改订单表台桌信息 - if(orderId != null) { + if (orderId != null) { mpOrderInfoService.updateTableIdAndUseTypeById(orderId, shopEatTypeInfoDTO.getUseType(), choseTableDTO.getTableId()); mpShopTableService.updateStateByTableId(TableStateEnum.USING, choseTableDTO.getTableId()); // 将台桌redis数据迁移 @@ -1848,7 +1846,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbCashierCart::getProductId, TableConstant.CART_SEAT_ID) .eq(TbCashierCart::getUseType, choseCountDTO.getUseType()) .gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime()) - .in(TbCashierCart::getStatus, OrderStatusEnums.CREATE.getValue(), OrderStatusEnums.RETURN.getValue()) + .in(TbCashierCart::getStatus, OrderStatusEnums.CREATE.getValue(), OrderStatusEnums.RETURN.getValue()) .eq(TbCashierCart::getTableId, choseCountDTO.getTableId()); TbCashierCart tbCashierCart = cashierCartMapper.selectOne(query); @@ -2117,7 +2115,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { returnOrder.setSource(oldOrderInfo.getId()); returnOrder.setRefundRemark(returnOrderDTO.getNote()); orderInfoMapper.insert(returnOrder); - }else { + } else { returnOrder.setUpdatedAt(DateUtil.current()); returnOrder.setRefundRemark(returnOrderDTO.getNote()); returnOrder.setRefundAmount(returnOrder.getRefundAmount().add(returnAmount)); @@ -2170,7 +2168,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Transactional public Object returnOrder(ReturnOrderDTO returnOrderDTO) { TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaQueryWrapper() - .eq(TbOrderInfo::getId, returnOrderDTO.getOrderId()) + .eq(TbOrderInfo::getId, returnOrderDTO.getOrderId()) .in(TbOrderInfo::getStatus, OrderStatusEnums.REFUND.getValue(), OrderStatusEnums.CLOSED.getValue()) // .eq(TbOrderInfo::getStatus, "closed") ); From 3b2f2e4bbe90bef0df3133091cd83a8616d86ff5 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 26 Oct 2024 16:20:42 +0800 Subject: [PATCH 21/21] =?UTF-8?q?fix:=20=E9=A4=90=E4=BD=8D=E8=B4=B9?= =?UTF-8?q?=E9=80=80=E8=8F=9C=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 21 +++++++++---------- 1 file changed, 10 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 84f6e895..0bfdf177 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 @@ -655,15 +655,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("最大退菜数量为: {}", cashierCart.getNumber()); } - TbOrderDetail tbOrderDetail = orderDetailMapper.selectOne(new LambdaQueryWrapper() - .eq(TbOrderDetail::getShopId, removeCartDTO.getShopId()) - .eq(TbOrderDetail::getCartId, cashierCart.getId()) - .eq(TbOrderDetail::getProductId, cashierCart.getProductId()) - .eq(TbOrderDetail::getProductSkuId, cashierCart.getSkuId()) - .eq(TbOrderDetail::getOrderId, cashierCart.getOrderId())); - if (tbOrderDetail == null) { - throw new BadRequestException("购物车商品不存在或已退单"); - } + if (cashierCart.getOrderId() == null) { throw new BadRequestException("此商品还未下单,无需退单"); @@ -679,12 +671,19 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbCashierCart::getId, cashierCart.getId()) .set(TbCashierCart::getStatus, "return")); orderDetailMapper.update(null, new LambdaUpdateWrapper() - .eq(TbOrderDetail::getId, tbOrderDetail.getId()) .set(TbOrderDetail::getUpdateTime, DateUtil.date()) .set(TbOrderDetail::getStatus, "return")); } else { - + TbOrderDetail tbOrderDetail = orderDetailMapper.selectOne(new LambdaQueryWrapper() + .eq(TbOrderDetail::getShopId, removeCartDTO.getShopId()) + .eq(TbOrderDetail::getCartId, cashierCart.getId()) + .eq(TbOrderDetail::getProductId, cashierCart.getProductId()) + .eq(TbOrderDetail::getProductSkuId, cashierCart.getSkuId()) + .eq(TbOrderDetail::getOrderId, cashierCart.getOrderId())); + if (tbOrderDetail == null) { + throw new BadRequestException("购物车商品不存在或已退单"); + } if (cashierCart.getNumber().equals(removeCartDTO.getNum())) { cashierCartMapper.update(null, new LambdaUpdateWrapper() .eq(TbCashierCart::getId, cashierCart.getId())