From 9f6f7c2a78f3f45142c6bbf3c2c18951467c65da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 19 Aug 2024 09:45:48 +0800 Subject: [PATCH 01/71] =?UTF-8?q?=E5=88=A4=E6=96=AD=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=80=97=E6=9D=90=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cons/service/impl/TbConsInfoServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java index c40a90fc..d78df579 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java @@ -155,12 +155,12 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { throw new Exception("耗材信息不存在"); } - tbConsInfo.setConName(resource.getConName()); - tbConsInfo.setPrice(resource.getPrice()); - tbConsInfo.setConUnit(resource.getConUnit()); - tbConsInfo.setConWarning(resource.getConWarning()); - tbConsInfo.setStatus(resource.getStatus()); - tbConsInfo.setIsCheck(resource.getIsCheck()); + tbConsInfo.setConName(ObjectUtil.isEmpty(resource.getConName())||ObjectUtil.isNull(resource.getConName())?tbConsInfo.getConName():resource.getConName()); + tbConsInfo.setPrice(ObjectUtil.isEmpty(resource.getPrice())||ObjectUtil.isNull(resource.getPrice())?tbConsInfo.getPrice():resource.getPrice()); + tbConsInfo.setConUnit(ObjectUtil.isEmpty(resource.getConUnit())||ObjectUtil.isNull(resource.getConUnit())?tbConsInfo.getConUnit(): resource.getConUnit()); + tbConsInfo.setConWarning(ObjectUtil.isEmpty(resource.getConWarning())||ObjectUtil.isNull(resource.getConWarning())?tbConsInfo.getConWarning():resource.getConWarning()); + tbConsInfo.setStatus(ObjectUtil.isEmpty(resource.getStatus())||ObjectUtil.isNull(resource.getStatus())?tbConsInfo.getStatus():resource.getStatus()); + tbConsInfo.setIsCheck(ObjectUtil.isEmpty(resource.getIsCheck())||ObjectUtil.isNull(resource.getIsCheck())?tbConsInfo.getIsCheck():resource.getIsCheck()); tbConsInfo.setUpdateTime(new Timestamp(System.currentTimeMillis())); tbConsInfoRepository.save(tbConsInfo); From 96f1dcb768a3ef83e3fe610f5bc992c4f4684a81 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 19 Aug 2024 10:11:51 +0800 Subject: [PATCH 02/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=AE=A2=E5=8D=95=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 | 23 +++++++++---------- .../cashier/dto/shoptable/DeleteOrderDTO.java | 9 ++++++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 20 ++++++++++++++-- .../service/shop/TbShopTableService.java | 2 ++ 4 files changed, 40 insertions(+), 14 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/DeleteOrderDTO.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 154dd508..0bc3f355 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 @@ -92,9 +92,9 @@ public class TbPlaceController { @Log("代客下单 查询购物车") @ApiOperation("代客下单 查询购物车 /shop/table") public ResponseEntity getCart( - @RequestParam Long tableId, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size, + @RequestParam Long tableId, @RequestParam Integer shopId, @RequestParam(required = false) Integer vipUserId, @RequestParam String masterId @@ -139,17 +139,6 @@ public class TbPlaceController { @AnonymousAccess - @GetMapping("/car") - @Log("代客下单 查询购物车") - @ApiOperation("代客下单 查询购物车 /shop/table") - public ResponseEntity getCar( - @RequestParam Integer shopId - ) { - return ResponseEntity.ok(tbShopTableService.getCar(shopId)); - } - - @AnonymousAccess - @GetMapping("/payType") @Log("代客下单 查询购物车") @ApiOperation("代客下单 查询购物车 /shop/table") @@ -170,5 +159,15 @@ public class TbPlaceController { ) { return ResponseEntity.ok(tbShopTableService.pay(payDTO)); } + @AnonymousAccess + + @DeleteMapping("/order") + @Log("代客下单 删除订单") + @ApiOperation("代客下单 查询购物车 /shop/table") + public ResponseEntity delete( + @Validated @RequestBody DeleteOrderDTO deleteOrderDTO + ) { + return ResponseEntity.ok(tbShopTableService.deleteOrder(deleteOrderDTO)); + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/DeleteOrderDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/DeleteOrderDTO.java new file mode 100644 index 00000000..4b4626fc --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/DeleteOrderDTO.java @@ -0,0 +1,9 @@ +package cn.ysk.cashier.dto.shoptable; + +import lombok.Data; + +@Data +public class DeleteOrderDTO { + private Integer shopId; + private Integer orderId; +} 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 67d93221..fba59ba1 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 @@ -648,7 +648,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } redisTemplate.opsForValue().set("SHOP:CODE:" + clientType + ":" + shopId + ":" + day, String.valueOf(Integer.parseInt(orderCode) + 1)); boolean flag = Boolean.TRUE.equals(redisTemplate.opsForValue().setIfAbsent("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + day, orderCode)); - if (flag) { + if (!flag) { return generateOrderCode(day, clientType, shopId); } // 增加计数器 @@ -879,7 +879,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { cashierCart.setStatus(pendingDTO.getIsPending() ? "refund" : "create"); cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper() .eq(TbCashierCart::getOrderId, orderId)); - return orderInfo; + return orderInfoMapper.selectById(orderId); } @Override @@ -965,4 +965,20 @@ public class TbShopTableServiceImpl implements TbShopTableService { rabbitTemplate.convertAndSend(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD_SALE, mqData.toJSONString(), new CorrelationData(UUID.randomUUID().toString())); return null; } + + @Override + public Object deleteOrder(DeleteOrderDTO deleteOrderDTO) { + int count1 = orderInfoMapper.delete(new LambdaQueryWrapper() + .eq(TbOrderInfo::getShopId, deleteOrderDTO.getShopId()) + .eq(TbOrderInfo::getId, deleteOrderDTO.getOrderId())); + + int count2 = orderDetailMapper.delete(new LambdaQueryWrapper() + .eq(TbOrderDetail::getShopId, deleteOrderDTO.getShopId()) + .eq(TbOrderDetail::getOrderId, deleteOrderDTO.getOrderId())); + + int count3 = cashierCartMapper.delete(new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, deleteOrderDTO.getShopId()) + .eq(TbCashierCart::getOrderId, deleteOrderDTO.getOrderId())); + return count1 > 0 && count2 > 0 && count3 > 0; + } } 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 23ce9f60..b73ef0e0 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 @@ -119,4 +119,6 @@ public interface TbShopTableService { Object getPayType(Integer shopId); Object pay(PayDTO payDTO); + + Object deleteOrder(DeleteOrderDTO deleteOrderDTO); } From 5643faab221aad18af98e8c770ca1094aff5acf7 Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Mon, 19 Aug 2024 11:16:47 +0800 Subject: [PATCH 03/71] =?UTF-8?q?=E5=BC=B9=E7=AA=97=E5=B9=BF=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TbMiniAppPagesController.java | 46 +++++++ .../controller/shop/TbShopAdController.java | 39 ++++++ .../cn/ysk/cashier/dto/TbMiniAppPagesDto.java | 22 ++++ .../cn/ysk/cashier/dto/shop/TbShopAdDto.java | 40 ++++++ .../mybatis/entity/TbMiniAppPages.java | 26 ++++ .../ysk/cashier/mybatis/entity/TbShopAd.java | 28 +++++ .../mybatis/mapper/TbMiniAppPagesMapper.java | 10 ++ .../mybatis/mapper/TbShopAdMapper.java | 10 ++ .../service/TbMiniAppPagesService.java | 22 ++++ .../mybatis/service/TbShopAdService.java | 22 ++++ .../impl/TbMiniAppPagesServiceImpl.java | 118 ++++++++++++++++++ .../service/impl/TbShopAdServiceImpl.java | 115 +++++++++++++++++ 12 files changed, 498 insertions(+) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/controller/TbMiniAppPagesController.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopAdController.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/TbMiniAppPagesDto.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopAdDto.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbMiniAppPages.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopAd.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMiniAppPagesMapper.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopAdMapper.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbMiniAppPagesService.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopAdService.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbMiniAppPagesServiceImpl.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopAdServiceImpl.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbMiniAppPagesController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbMiniAppPagesController.java new file mode 100644 index 00000000..a7f6599e --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbMiniAppPagesController.java @@ -0,0 +1,46 @@ +package cn.ysk.cashier.controller; + +import cn.ysk.cashier.dto.TbMiniAppPagesDto; +import cn.ysk.cashier.mybatis.service.TbMiniAppPagesService; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * @author GYJ + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/miniAppPages") +public class TbMiniAppPagesController { + + final private TbMiniAppPagesService tbMiniAppPagesService; + + @PostMapping + @ApiOperation("新增/system/miniAppPages") + public ResponseEntity createTbMiniAppPages(@Validated @RequestBody TbMiniAppPagesDto pagesDto) { + return tbMiniAppPagesService.createTbMiniAppPages(pagesDto); + } + + @PutMapping + @ApiOperation("修改/system/miniAppPages") + public ResponseEntity updateTbMiniAppPages(@Validated @RequestBody TbMiniAppPagesDto pagesDto) { + return tbMiniAppPagesService.updateTbMiniAppPages(pagesDto); + } + + @DeleteMapping("/{pagesId}") + @ApiOperation("删除/system/miniAppPages") + public ResponseEntity deleteTbMiniAppPages(@PathVariable Integer pagesId) { + return tbMiniAppPagesService.deleteTbMiniAppPages(pagesId); + } + + @GetMapping + @ApiOperation("查询/system/miniAppPages") + public ResponseEntity getTbMiniAppPages(@RequestParam Map params) { + return tbMiniAppPagesService.getTbMiniAppPages(params); + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopAdController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopAdController.java new file mode 100644 index 00000000..e1396888 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopAdController.java @@ -0,0 +1,39 @@ +package cn.ysk.cashier.controller.shop; + +import cn.ysk.cashier.dto.shop.TbShopAdDto; +import cn.ysk.cashier.mybatis.service.TbShopAdService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * @author GYJ + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/ad") +public class TbShopAdController { + final private TbShopAdService tbShopAdService; + + @PostMapping + public ResponseEntity createTbShopAd(@RequestBody TbShopAdDto adDto) { + return tbShopAdService.createTbShopAd(adDto); + } + + @PutMapping + public ResponseEntity updateTbShopAd(@RequestBody TbShopAdDto adDto) { + return tbShopAdService.updateTbShopAd(adDto); + } + + @DeleteMapping("/{adId}") + public ResponseEntity deleteTbShopAd(@PathVariable Integer adId) { + return tbShopAdService.deleteTbShopAd(adId); + } + + @GetMapping + public ResponseEntity getTbShopAd(@RequestParam Map params) { + return tbShopAdService.getTbShopAd(params); + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbMiniAppPagesDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbMiniAppPagesDto.java new file mode 100644 index 00000000..e90ba071 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbMiniAppPagesDto.java @@ -0,0 +1,22 @@ +package cn.ysk.cashier.dto; + +import lombok.Data; + +import java.util.Date; + +/** + * @author GYJ + */ +@Data +public class TbMiniAppPagesDto { + private Integer id; + private Integer shopId; + private String name; + private String path; + private String icon; + private String description; + private Integer sort; + private Integer status; + private Date createTime; + private Date updateTime; +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopAdDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopAdDto.java new file mode 100644 index 00000000..59411fea --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopAdDto.java @@ -0,0 +1,40 @@ +package cn.ysk.cashier.dto.shop; + +import cn.ysk.cashier.mybatis.entity.TbShopAd; +import lombok.Data; + +import java.util.Date; + +/** + * @author GYJ + */ +@Data +public class TbShopAdDto { + private Integer id; + private Integer shopId; + private String imgUrl; + private String linkPath; + private Integer borderRadius; + private String showPosition; + private String frequency; + private Integer status; + private Integer sort; + private Date createTime; + private Date updateTime; + + public TbShopAd convertToTbShopAd() { + TbShopAd tbShopAd = new TbShopAd(); + tbShopAd.setId(this.id); + tbShopAd.setShopId(this.shopId); + tbShopAd.setImgUrl(this.imgUrl); + tbShopAd.setLinkPath(this.linkPath); + tbShopAd.setBorderRadius(this.borderRadius); + tbShopAd.setShowPosition(this.showPosition); + tbShopAd.setFrequency(this.frequency); + tbShopAd.setStatus(this.status); + tbShopAd.setSort(this.sort); + tbShopAd.setCreateTime(this.createTime); + tbShopAd.setUpdateTime(this.updateTime); + return tbShopAd; + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbMiniAppPages.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbMiniAppPages.java new file mode 100644 index 00000000..70c1042e --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbMiniAppPages.java @@ -0,0 +1,26 @@ +package cn.ysk.cashier.mybatis.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * @author GYJ + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("tb_mini_app_pages") +public class TbMiniAppPages extends Model { + private Integer id; + private String icon; + private String name; + private String path; + private String description; + private Integer status; + private Integer sort; + private Date createTime; + private Date updateTime; +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopAd.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopAd.java new file mode 100644 index 00000000..31fb11db --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopAd.java @@ -0,0 +1,28 @@ +package cn.ysk.cashier.mybatis.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * @author GYJ + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("tb_shop_ad") +public class TbShopAd extends Model { + private Integer id; + private Integer shopId; + private String imgUrl; + private String linkPath; + private Integer borderRadius; + private String showPosition; + private String frequency; + private Integer status; + private Integer sort; + private Date createTime; + private Date updateTime; +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMiniAppPagesMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMiniAppPagesMapper.java new file mode 100644 index 00000000..e4803dce --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMiniAppPagesMapper.java @@ -0,0 +1,10 @@ +package cn.ysk.cashier.mybatis.mapper; + +import cn.ysk.cashier.mybatis.entity.TbMiniAppPages; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @author GYJ + */ +public interface TbMiniAppPagesMapper extends BaseMapper { +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopAdMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopAdMapper.java new file mode 100644 index 00000000..6ea4b44c --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopAdMapper.java @@ -0,0 +1,10 @@ +package cn.ysk.cashier.mybatis.mapper; + +import cn.ysk.cashier.mybatis.entity.TbShopAd; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @author GYJ + */ +public interface TbShopAdMapper extends BaseMapper { +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbMiniAppPagesService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbMiniAppPagesService.java new file mode 100644 index 00000000..005efedd --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbMiniAppPagesService.java @@ -0,0 +1,22 @@ +package cn.ysk.cashier.mybatis.service; + +import cn.ysk.cashier.dto.TbMiniAppPagesDto; +import cn.ysk.cashier.mybatis.entity.TbMiniAppPages; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.http.ResponseEntity; + +import java.util.Map; + +/** + * @author GYJ + */ +public interface TbMiniAppPagesService extends IService { + + ResponseEntity createTbMiniAppPages(TbMiniAppPagesDto pagesDto); + + ResponseEntity updateTbMiniAppPages(TbMiniAppPagesDto pagesDto); + + ResponseEntity deleteTbMiniAppPages(Integer pagesId); + + ResponseEntity getTbMiniAppPages(Map params); +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopAdService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopAdService.java new file mode 100644 index 00000000..3c5503eb --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopAdService.java @@ -0,0 +1,22 @@ +package cn.ysk.cashier.mybatis.service; + +import cn.ysk.cashier.dto.shop.TbShopAdDto; +import cn.ysk.cashier.mybatis.entity.TbShopAd; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.http.ResponseEntity; + +import java.util.Map; + +/** + * @author GYJ + */ +public interface TbShopAdService extends IService { + + ResponseEntity createTbShopAd(TbShopAdDto adDto); + + ResponseEntity updateTbShopAd(TbShopAdDto adDto); + + ResponseEntity deleteTbShopAd(Integer adId); + + ResponseEntity getTbShopAd(Map params); +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbMiniAppPagesServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbMiniAppPagesServiceImpl.java new file mode 100644 index 00000000..caf356bc --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbMiniAppPagesServiceImpl.java @@ -0,0 +1,118 @@ +package cn.ysk.cashier.mybatis.service.impl; + +import cn.ysk.cashier.dto.TbMiniAppPagesDto; +import cn.ysk.cashier.mybatis.entity.TbMiniAppPages; +import cn.ysk.cashier.mybatis.mapper.TbMiniAppPagesMapper; +import cn.ysk.cashier.mybatis.service.TbMiniAppPagesService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.Map; + +/** + * @author GYJ + */ +@Service +@RequiredArgsConstructor +public class TbMiniAppPagesServiceImpl extends ServiceImpl implements TbMiniAppPagesService { + @Override + public ResponseEntity createTbMiniAppPages(TbMiniAppPagesDto pagesDto) { + if (pagesDto == null) { + return ResponseEntity.badRequest().body("参数不能为空"); + } + if (pagesDto.getName() == null || pagesDto.getPath() == null) { + return ResponseEntity.badRequest().body("页面名称和路径不能为空"); + } + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("name", pagesDto.getName()); + TbMiniAppPages tbMiniAppPages = baseMapper.selectOne(wrapper); + if (tbMiniAppPages != null) { + return ResponseEntity.badRequest().body("页面已存在"); + } + + tbMiniAppPages = new TbMiniAppPages(); + tbMiniAppPages.setName(pagesDto.getName()); + tbMiniAppPages.setPath(pagesDto.getPath()); + tbMiniAppPages.setIcon(pagesDto.getIcon()); + tbMiniAppPages.setSort(pagesDto.getSort()); + tbMiniAppPages.setDescription(pagesDto.getDescription()); + tbMiniAppPages.setStatus(pagesDto.getStatus()); + tbMiniAppPages.setCreateTime(new Date()); + tbMiniAppPages.setUpdateTime(new Date()); + + baseMapper.insert(tbMiniAppPages); + + return ResponseEntity.ok().body("新增成功"); + } + + @Override + public ResponseEntity updateTbMiniAppPages(TbMiniAppPagesDto pagesDto) { + TbMiniAppPages appPages = baseMapper.selectById(pagesDto.getId()); + if (appPages == null) { + return ResponseEntity.badRequest().body("页面不存在"); + } + + if (pagesDto.getName() == null || pagesDto.getPath() == null) { + return ResponseEntity.badRequest().body("页面名称和路径不能为空"); + } + + if (!appPages.getName().equals(pagesDto.getName())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("name", pagesDto.getName()); + TbMiniAppPages tbMiniAppPages = baseMapper.selectOne(wrapper); + if (tbMiniAppPages != null) { + return ResponseEntity.badRequest().body("页面已存在"); + } + } + + if (pagesDto.getName() != null) { + appPages.setName(pagesDto.getName()); + } + if (pagesDto.getPath() != null) { + appPages.setPath(pagesDto.getPath()); + } + if (pagesDto.getIcon() != null) { + appPages.setIcon(pagesDto.getIcon()); + } + if (pagesDto.getSort() != null) { + appPages.setSort(pagesDto.getSort()); + } + if (pagesDto.getDescription() != null) { + appPages.setDescription(pagesDto.getDescription()); + } + if (pagesDto.getStatus() != null) { + appPages.setStatus(pagesDto.getStatus()); + } + appPages.setUpdateTime(new Date()); + + baseMapper.updateById(appPages); + + return ResponseEntity.ok().body("更新成功"); + } + + @Override + public ResponseEntity deleteTbMiniAppPages(Integer pagesId) { + TbMiniAppPages appPages = baseMapper.selectById(pagesId); + if (appPages == null) { + return ResponseEntity.badRequest().body("页面不存在"); + } + + baseMapper.deleteById(pagesId); + + return ResponseEntity.ok().body("删除成功"); + } + + @Override + public ResponseEntity getTbMiniAppPages(Map params) { + QueryWrapper wrapper = new QueryWrapper<>(); + if (params.get("status") != null) { + wrapper.eq("status", params.get("status")); + } + wrapper.orderByDesc("sort"); + return ResponseEntity.ok().body(baseMapper.selectList(wrapper)); + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopAdServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopAdServiceImpl.java new file mode 100644 index 00000000..c1d0c3d4 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopAdServiceImpl.java @@ -0,0 +1,115 @@ +package cn.ysk.cashier.mybatis.service.impl; + +import cn.hutool.core.util.StrUtil; +import cn.ysk.cashier.dto.shop.TbShopAdDto; +import cn.ysk.cashier.mybatis.entity.TbShopAd; +import cn.ysk.cashier.mybatis.mapper.TbShopAdMapper; +import cn.ysk.cashier.mybatis.service.TbShopAdService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.Map; + +/** + * @author GYJ + */ +@Service +@RequiredArgsConstructor +public class TbShopAdServiceImpl extends ServiceImpl implements TbShopAdService { + @Override + public ResponseEntity createTbShopAd(TbShopAdDto adDto) { + if (adDto.getShopId() == null || adDto.getShopId() == 0) { + return ResponseEntity.badRequest().body("店铺ID不能为空"); + } + if (StrUtil.isBlank(adDto.getImgUrl())) { + return ResponseEntity.badRequest().body("图片地址不能为空"); + } + TbShopAd shopAd = adDto.convertToTbShopAd(); + shopAd.setCreateTime(new Date()); + shopAd.setUpdateTime(new Date()); + baseMapper.insert(shopAd); + return ResponseEntity.ok().body("新增成功"); + } + + @Override + public ResponseEntity updateTbShopAd(TbShopAdDto adDto) { + if (adDto.getShopId() == null || adDto.getShopId() == 0) { + return ResponseEntity.badRequest().body("店铺ID不能为空"); + } + if (StrUtil.isBlank(adDto.getImgUrl())) { + return ResponseEntity.badRequest().body("图片地址不能为空"); + } + TbShopAd shopAd = baseMapper.selectById(adDto.getId()); + if (shopAd == null) { + return ResponseEntity.badRequest().body("广告不存在"); + } + + if (StrUtil.isNotBlank(adDto.getImgUrl())) { + shopAd.setImgUrl(adDto.getImgUrl()); + } + if (StrUtil.isNotBlank(adDto.getLinkPath())) { + shopAd.setLinkPath(adDto.getLinkPath()); + } + if (adDto.getBorderRadius() != null) { + shopAd.setBorderRadius(adDto.getBorderRadius()); + } + if (StrUtil.isNotBlank(adDto.getShowPosition())) { + shopAd.setShowPosition(adDto.getShowPosition()); + } + if (StrUtil.isNotBlank(adDto.getFrequency())) { + shopAd.setFrequency(adDto.getFrequency()); + } + if (adDto.getStatus() != null) { + shopAd.setStatus(adDto.getStatus()); + } + if (adDto.getSort() != null) { + shopAd.setSort(adDto.getSort()); + } + shopAd.setUpdateTime(new Date()); + + baseMapper.updateById(shopAd); + + return ResponseEntity.ok().body("修改成功"); + } + + @Override + public ResponseEntity deleteTbShopAd(Integer adId) { + TbShopAd shopAd = baseMapper.selectById(adId); + if (shopAd == null) { + return ResponseEntity.badRequest().body("广告不存在"); + } + + baseMapper.deleteById(adId); + + return ResponseEntity.ok().body("删除成功"); + } + + @Override + public ResponseEntity getTbShopAd(Map params) { + QueryWrapper wrapper = new QueryWrapper<>(); + + if (StrUtil.isBlank((String) params.get("shopId"))) { + return ResponseEntity.badRequest().body("店铺ID不能为空"); + } + + if (StrUtil.isNotBlank((String) params.get("status"))) { + wrapper.eq("status", params.get("status")); + } + + if (StrUtil.isNotBlank((String) params.get("showPosition"))) { + wrapper.eq("show_position", params.get("showPosition")); + } + + if (StrUtil.isNotBlank((String) params.get("frequency"))) { + wrapper.eq("frequency", params.get("frequency")); + } + + wrapper.orderByDesc("sort"); + + return ResponseEntity.ok().body(baseMapper.selectList(wrapper)); + } +} From 89810ae9b92657d8f1211c994a6d731d76375108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 19 Aug 2024 11:20:58 +0800 Subject: [PATCH 04/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E4=BC=9A=E5=91=98=E4=BD=99=E9=A2=9D=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/shop/TbShopUserController.java | 8 +++ .../impl/shopimpl/TbShopUserServiceImpl.java | 70 +++++++++++++++++++ .../service/shop/TbShopUserService.java | 2 + 3 files changed, 80 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index 0dbe5f8b..e5df29ca 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.Map; /** * @author lyf @@ -96,4 +97,11 @@ public class TbShopUserController { public void rechargeListDownload(HttpServletResponse response, @RequestBody TbShopRechargeListDto criteria) throws IOException { tbShopUserService.rechargeListDownload(response, criteria); } + + + @PostMapping("midfiyAccount") + @ApiOperation("增加扣减会员余额") + public ResponseEntity midfiyAccount(Map map){ + return null; + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java index c1c1d916..f0dfc99a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java @@ -1,12 +1,15 @@ package cn.ysk.cashier.service.impl.shopimpl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.dto.shop.TbShopRechargeListDto; import cn.ysk.cashier.dto.shop.TbShopRechargeRespDto; import cn.ysk.cashier.dto.shop.TbShopUserDto; import cn.ysk.cashier.dto.shop.TbShopUserQueryCriteria; +import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mapper.shop.TbShopUserMapper; +import cn.ysk.cashier.mybatis.entity.TbShopUserFlow; import cn.ysk.cashier.mybatis.mapper.ShopUserMapper; import cn.ysk.cashier.mybatis.mapper.TbShopUserFlowMapper; import cn.ysk.cashier.pojo.shop.TbShopUser; @@ -31,6 +34,7 @@ import java.io.IOException; import java.math.BigDecimal; import java.time.Instant; import java.util.*; +import java.util.regex.Pattern; /** * @author lyf @@ -50,6 +54,10 @@ public class TbShopUserServiceImpl implements TbShopUserService { @Autowired private ShopUserMapper shopUserMapper; + @Autowired + private TbShopUserFlowMapper tbShopUserFlowMapper; + + @Override public Map queryShopUser(TbShopUserQueryCriteria criteria) { IPage iPage = shopUserMapper.queryUser(criteria, criteria.getIsVip(), @@ -183,4 +191,66 @@ public class TbShopUserServiceImpl implements TbShopUserService { } FileUtil.downloadExcel(list, response); } + + @Override + public void modfiyAccount(Map map) { + if(ObjectUtil.isNull(map)||ObjectUtil.isEmpty(map)||!map.containsKey("id")||!map.containsKey("type")||!map.containsKey("amount") + ||ObjectUtil.isEmpty(map.get("id"))||ObjectUtil.isNull(map.get("id"))||ObjectUtil.isNull(map.get("type"))||ObjectUtil.isEmpty(map.get("type")) + ||ObjectUtil.isEmpty(map.get("amount"))||ObjectUtil.isNull(map.get("amount")) + + ){ + throw new BadRequestException("参数错误"); + + } + + String regex = "^(([1-9][0-9]*)|(([0]\\.\\d{1,2}|[1-9][0-9]*\\.\\d{1,2})))$"; + if(!map.get("amount").toString().matches(regex)){ + throw new BadRequestException("请输入正确的数字"); + } + + + + TbShopUser tbShopUser= tbShopUserRepository.getById(Integer.valueOf(map.get("id")+"")); + if(ObjectUtil.isNull(tbShopUser)){ + throw new BadRequestException("不存在的会员信息"); + } + + BigDecimal amount=new BigDecimal(map.get("amount").toString()); + if(amount.compareTo(tbShopUser.getAmount())>0){ + throw new BadRequestException("账户余额不足,请输入正确的金额"); + } + + String type=map.get("type").toString(); + TbShopUserFlow flow=new TbShopUserFlow(); + + if("in".equals(type)){ + flow.setType("+"); + flow.setBizName("充值退款"); + flow.setBizCode("manualIn"); + tbShopUser.setAmount(tbShopUser.getAmount().add(amount)); + }else if("out".equals(type)){ + flow.setBizCode("manualOut"); + flow.setBizName("消费"); + flow.setType("-"); + tbShopUser.setAmount(tbShopUser.getAmount().subtract(amount)); + }else { + throw new BadRequestException("错误的请求类型"); + } + + tbShopUser.setUpdatedAt(System.currentTimeMillis()); + tbShopUserRepository.save(tbShopUser); + + + flow.setShopUserId(tbShopUser.getId()); + flow.setAmount(amount); + flow.setBalance(tbShopUser.getAmount()); + flow.setCreateTime(new Date()); + + tbShopUserFlowMapper.insert(flow); + + + + + } + } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java index ad4c884b..608242c3 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java @@ -89,4 +89,6 @@ public interface TbShopUserService { void rechargeListDownload(HttpServletResponse response, TbShopRechargeListDto criteria) throws IOException; + void modfiyAccount(Map map); + } From 2ad3ca3ef88fbc235713b094c410fcde76412d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 19 Aug 2024 11:23:32 +0800 Subject: [PATCH 05/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E4=BC=9A=E5=91=98=E4=BD=99=E9=A2=9D=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/controller/shop/TbShopUserController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index e5df29ca..60ef62cf 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -102,6 +102,7 @@ public class TbShopUserController { @PostMapping("midfiyAccount") @ApiOperation("增加扣减会员余额") public ResponseEntity midfiyAccount(Map map){ - return null; + tbShopUserService.modfiyAccount(map); + return new ResponseEntity<>(HttpStatus.NO_CONTENT) ; } } From 8d73b216efe28991523811335e4f18d10db7c2db Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 17 Aug 2024 10:03:11 +0800 Subject: [PATCH 06/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=8C=82=E8=B5=B7=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/product/TbPlaceController.java | 5 ++-- .../mybatis/mapper/TbCashierCartMapper.java | 5 ++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 26 ++++++++++++++++--- .../service/shop/TbShopTableService.java | 2 +- .../cn/ysk/cashier/vo/PendingCountVO.java | 14 ++++++++++ 5 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.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 118f6870..154dd508 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 @@ -96,9 +96,10 @@ public class TbPlaceController { @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size, @RequestParam Integer shopId, - @RequestParam(required = false) Integer vipUserId + @RequestParam(required = false) Integer vipUserId, + @RequestParam String masterId ) { - return ResponseEntity.ok(tbShopTableService.getCart(tableId, page, size, shopId, vipUserId)); + return ResponseEntity.ok(tbShopTableService.getCart(tableId, page, size, shopId, vipUserId, masterId)); } @AnonymousAccess diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java index b0056e9f..236e460d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java @@ -3,6 +3,7 @@ package cn.ysk.cashier.mybatis.mapper; import cn.ysk.cashier.mybatis.entity.Activate; import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.vo.CarVO; +import cn.ysk.cashier.vo.PendingCountVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -18,4 +19,8 @@ public interface TbCashierCartMapper extends BaseMapper { " ifnull(sum(total_amount),0) as totalAmount\n" + " from tb_cashier_cart where table_id is not null and shop_id = #{shopId} and status = 'refund' group by shop_Id, master_id order by trade_day desc") List selectCar(@Param("shopId") Integer shopId); + + @Select(" SELECT order_id orderId, pending_at, sum(total_amount) toalAmount, count(id) totalCount from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} " + + " GROUP BY order_id ORDER BY trade_day") + List countPending(@Param("shopId") Integer shopId); } 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 19344eab..1938bec8 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 @@ -41,6 +41,7 @@ import cn.ysk.cashier.repository.product.TbProductRepository; import cn.ysk.cashier.repository.product.TbProductSkuRepository; import cn.ysk.cashier.repository.shop.TbShopInfoRepository; import cn.ysk.cashier.utils.*; +import cn.ysk.cashier.vo.PendingCountVO; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -395,7 +396,8 @@ public class TbShopTableServiceImpl implements TbShopTableService { } @Override - public com.baomidou.mybatisplus.extension.plugins.pagination.Page getCart(Long tableId, Integer page, Integer size, Integer shopId, Integer vipUserId) { + public com.baomidou.mybatisplus.extension.plugins.pagination.Page getCart(Long tableId, Integer page, + Integer size, Integer shopId, Integer vipUserId, String masterId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getTableId, tableId) .eq(TbCashierCart::getStatus, "create") @@ -404,6 +406,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (vipUserId != null) { queryWrapper.eq(TbCashierCart::getUserId, vipUserId); }else { + queryWrapper.eq(TbCashierCart::getMasterId, masterId); queryWrapper.isNull(TbCashierCart::getUserId); } @@ -643,7 +646,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } else { orderCode = String.valueOf(Integer.parseInt(code.replace("#", "")) + 1); } - redisTemplate.opsForValue().set("SHOP:CODE:" + clientType + ":" + shopId + ":" + day, "#" + Integer.parseInt(code.replace("#", "")) + 2); + redisTemplate.opsForValue().set("SHOP:CODE:" + clientType + ":" + shopId + ":" + day, String.valueOf(Integer.parseInt(orderCode) + 1)); boolean flag = Boolean.TRUE.equals(redisTemplate.opsForValue().setIfAbsent("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + day, orderCode)); if (flag) { return generateOrderCode(day, clientType, shopId); @@ -872,7 +875,24 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Object getCar(Integer shopId) { - return cashierCartMapper.selectCar(shopId); + ArrayList> data = new ArrayList<>(); + + List pendingCountVOS = cashierCartMapper.countPending(shopId); + List tbCashierCarts = cashierCartMapper.selectList(new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, shopId) + .eq(TbCashierCart::getStatus, "refund")); + + HashMap> cashierMap = new HashMap<>(); + for (TbCashierCart tbCashierCart : tbCashierCarts) { + List list = cashierMap.computeIfAbsent(tbCashierCart.getOrderId().toString(), k -> new ArrayList<>()); + list.add(tbCashierCart); + } + + pendingCountVOS.forEach(item -> { + Map map = BeanUtil.beanToMap(item, false, false); + map.put("carList", cashierMap.get(item.getOrderId().toString())); + }); + return data; } @Override 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 00e4c62c..23ce9f60 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 @@ -102,7 +102,7 @@ public interface TbShopTableService { void clearCart(ClearCartDTO clearCartDTO); - Page getCart(Long tableId, Integer page, Integer size, Integer shopId, Integer vipUserId); + Page getCart(Long tableId, Integer page, Integer size, Integer shopId, Integer vipUserId, String masterId); TbCashierCart updateCart(UpdateCartDTO updateCartDTO); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java new file mode 100644 index 00000000..47c673e3 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java @@ -0,0 +1,14 @@ +package cn.ysk.cashier.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.sql.Timestamp; + +@Data +public class PendingCountVO { + private Long pendingAt; + private BigDecimal totalAmount; + private Integer totalCount; + private Integer orderId; +} From 0ec21c31e944397ce3fc10c5fa16d5460f4ceaa0 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 17 Aug 2024 15:21:45 +0800 Subject: [PATCH 07/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=8C=82=E8=B5=B7=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ysk/cashier/dto/shoptable/PendingDTO.java | 1 + .../mybatis/mapper/TbCashierCartMapper.java | 6 +++- .../impl/shopimpl/TbShopTableServiceImpl.java | 28 +++++++++++++------ .../cn/ysk/cashier/vo/PendingCountVO.java | 1 + .../cn/ysk/cashier/vo/TbCashierCartVO.java | 11 ++++++++ 5 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/vo/TbCashierCartVO.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java index 773e3af5..7bfbedf3 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java @@ -17,4 +17,5 @@ public class PendingDTO { private Integer vipUserId; @NotNull private Boolean isPending; + private Integer orderId; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java index 236e460d..cda17036 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java @@ -4,6 +4,7 @@ import cn.ysk.cashier.mybatis.entity.Activate; import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.vo.CarVO; import cn.ysk.cashier.vo.PendingCountVO; +import cn.ysk.cashier.vo.TbCashierCartVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -20,7 +21,10 @@ public interface TbCashierCartMapper extends BaseMapper { " from tb_cashier_cart where table_id is not null and shop_id = #{shopId} and status = 'refund' group by shop_Id, master_id order by trade_day desc") List selectCar(@Param("shopId") Integer shopId); - @Select(" SELECT order_id orderId, pending_at, sum(total_amount) toalAmount, count(id) totalCount from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} " + + @Select(" SELECT order_id orderId, pending_at, sum(total_amount) totalAmount, count(id) totalCount, count(total_number) totalNumber from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} " + " GROUP BY order_id ORDER BY trade_day") List countPending(@Param("shopId") Integer shopId); + + @Select("select a.*, b.spec_snap from tb_cashier_cart as a left join tb_product_sku as b on a.sku_id=b.id where a.shop_id=#{shopId} and a.status='refund';") + List selectPending(Integer shopId); } 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 1938bec8..67d93221 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 @@ -822,14 +822,23 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Object pending(PendingDTO pendingDTO) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .eq(TbCashierCart::getShopId, pendingDTO.getShopId()) - .eq(TbCashierCart::getTableId, pendingDTO.getTableId()) - .eq(TbCashierCart::getStatus, "create"); - if (pendingDTO.getVipUserId() != null) { - queryWrapper.eq(TbCashierCart::getUserId, pendingDTO.getVipUserId()); + .eq(TbCashierCart::getShopId, pendingDTO.getShopId()); + + if (!pendingDTO.getIsPending()) { + if (pendingDTO.getOrderId() == null) { + throw new BadRequestException("取消挂起订单id不为空"); + } + queryWrapper.eq(TbCashierCart::getOrderId, pendingDTO.getOrderId()); }else { - queryWrapper.eq(TbCashierCart::getMasterId, pendingDTO.getMasterId()) - .isNull(TbCashierCart::getUserId); + queryWrapper.eq(TbCashierCart::getTableId, pendingDTO.getTableId()) + .eq(TbCashierCart::getStatus, "create"); + if (pendingDTO.getVipUserId() != null) { + queryWrapper.eq(TbCashierCart::getUserId, pendingDTO.getVipUserId()); + }else { + queryWrapper.eq(TbCashierCart::getMasterId, pendingDTO.getMasterId()) + .isNull(TbCashierCart::getUserId); + } + } List cashierCarts = cashierCartMapper .selectList(queryWrapper); @@ -875,13 +884,15 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Object getCar(Integer shopId) { - ArrayList> data = new ArrayList<>(); + ArrayList> data = new ArrayList<>(); List pendingCountVOS = cashierCartMapper.countPending(shopId); List tbCashierCarts = cashierCartMapper.selectList(new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopId) .eq(TbCashierCart::getStatus, "refund")); + cashierCartMapper.selectPending(shopId); + HashMap> cashierMap = new HashMap<>(); for (TbCashierCart tbCashierCart : tbCashierCarts) { List list = cashierMap.computeIfAbsent(tbCashierCart.getOrderId().toString(), k -> new ArrayList<>()); @@ -891,6 +902,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { pendingCountVOS.forEach(item -> { Map map = BeanUtil.beanToMap(item, false, false); map.put("carList", cashierMap.get(item.getOrderId().toString())); + data.add(map); }); return data; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java index 47c673e3..43bcf404 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java @@ -10,5 +10,6 @@ public class PendingCountVO { private Long pendingAt; private BigDecimal totalAmount; private Integer totalCount; + private Integer totalNumber; private Integer orderId; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbCashierCartVO.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbCashierCartVO.java new file mode 100644 index 00000000..5268c775 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/TbCashierCartVO.java @@ -0,0 +1,11 @@ +package cn.ysk.cashier.vo; + +import cn.ysk.cashier.pojo.order.TbCashierCart; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class TbCashierCartVO extends TbCashierCart { + private String specSnap; +} From ff07ab528e305cf79cb922c704562ae3336fe5ca Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Sat, 17 Aug 2024 11:49:01 +0800 Subject: [PATCH 08/71] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E8=B5=A0=E9=80=81=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ysk/cashier/mybatis/entity/Activate.java | 25 ++++++++++++++++ .../mybatis/mapper/ActivateMapper.java | 1 - .../mybatis/mapper/TbCashierCartMapper.java | 1 - .../mybatis/rest/StorageController.java | 12 ++++++-- .../cashier/mybatis/service/ShopService.java | 20 ++++--------- .../mybatis/service/impl/ShopServiceImpl.java | 29 +++++++++---------- 6 files changed, 53 insertions(+), 35 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/Activate.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/Activate.java index 47efc722..8252f2fa 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/Activate.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/Activate.java @@ -1,13 +1,19 @@ package cn.ysk.cashier.mybatis.entity; +import cn.ysk.cashier.utils.ListUtil; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; +import org.apache.commons.lang3.StringUtils; +import org.springframework.util.CollectionUtils; import java.math.BigDecimal; +import java.util.List; +import java.util.stream.Collectors; @Data @EqualsAndHashCode(callSuper = true) @@ -23,6 +29,25 @@ public class Activate extends Model { private String handselType; private String isDel; private String isUser; + //是否赠送商品 0否 1是 + private Integer isGiftPro; + private String productIds; + @TableField(exist = false) + private List prodIds; + public void setProductIds(String productIds) { + this.productIds = productIds; + if(StringUtils.isNotBlank(productIds)){ + prodIds=ListUtil.stringChangeIntegerList(productIds); + } + } + public void setProdIds(List prodIds) { + this.prodIds = prodIds; + if(!CollectionUtils.isEmpty(prodIds)){ + productIds="["+prodIds.stream() + .map(String::valueOf) + .collect(Collectors.joining(","))+"]"; + } + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ActivateMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ActivateMapper.java index 813f54a0..cadddeab 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ActivateMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ActivateMapper.java @@ -1,7 +1,6 @@ package cn.ysk.cashier.mybatis.mapper; import cn.ysk.cashier.mybatis.entity.Activate; -import cn.ysk.cashier.mybatis.entity.TbUserStorage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface ActivateMapper extends BaseMapper { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java index cda17036..68b0f273 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java @@ -1,6 +1,5 @@ package cn.ysk.cashier.mybatis.mapper; -import cn.ysk.cashier.mybatis.entity.Activate; import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.vo.CarVO; import cn.ysk.cashier.vo.PendingCountVO; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/rest/StorageController.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/rest/StorageController.java index c91459eb..a9fefcc7 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/rest/StorageController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/rest/StorageController.java @@ -2,7 +2,6 @@ package cn.ysk.cashier.mybatis.rest; import cn.hutool.core.io.IoUtil; import cn.hutool.http.HttpUtil; -import cn.ysk.cashier.annotation.rest.AnonymousPostMapping; import cn.ysk.cashier.domain.QiniuContent; import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.entity.Activate; @@ -14,6 +13,7 @@ import cn.ysk.cashier.utils.SecurityUtils; import com.alibaba.fastjson.JSONObject; import com.google.gson.JsonObject; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -23,9 +23,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.io.InputStream; -import java.util.HashMap; import java.util.Map; -import java.util.concurrent.TimeUnit; @Slf4j @RestController @@ -50,11 +48,19 @@ public class StorageController { } @PostMapping("/modityActivate") public ResponseEntity modityActivate(@RequestBody Activate activate){ + if (activate.getIsGiftPro() != null && activate.getIsGiftPro() == 1 && CollectionUtils.isEmpty(activate.getProdIds())) + throw new BadRequestException("赠送商品不可为空"); String userName = SecurityUtils.getCurrentUsername(); shopService.modityActivate(activate); return new ResponseEntity<>(HttpStatus.OK); } + @GetMapping("/activate/{activateId}") + @ApiOperation("查询活动赠送商品") + public ResponseEntity queryActivatePros(@PathVariable("activateId") Integer activateId){ + return new ResponseEntity<>(shopService.findActivatePros(activateId),HttpStatus.OK); + } + /** * @param params * shopId 必填 diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/ShopService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/ShopService.java index ccd5c489..93a8462d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/ShopService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/ShopService.java @@ -1,24 +1,12 @@ -/* -* Copyright 2019-2020 Zheng Jie -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ package cn.ysk.cashier.mybatis.service; import cn.ysk.cashier.mybatis.entity.Activate; import cn.ysk.cashier.mybatis.entity.StorageVo; +import cn.ysk.cashier.pojo.product.TbProduct; import org.springframework.data.domain.Pageable; +import java.util.List; + /** * @website https://eladmin.vip * @description 服务接口 @@ -36,4 +24,6 @@ public interface ShopService { Object findActivate(String shopId); void modityActivate(Activate activate); + + List findActivatePros(Integer activate); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/ShopServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/ShopServiceImpl.java index 704ca82b..485d762c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/ShopServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/ShopServiceImpl.java @@ -1,23 +1,10 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ package cn.ysk.cashier.mybatis.service.impl; import cn.ysk.cashier.mybatis.entity.Activate; import cn.ysk.cashier.mybatis.mapper.*; +import cn.ysk.cashier.pojo.product.TbProduct; import cn.ysk.cashier.pojo.shop.TbMerchantAccount; +import cn.ysk.cashier.repository.product.TbProductRepository; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -30,6 +17,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.*; @@ -50,6 +38,8 @@ public class ShopServiceImpl implements ShopService { private TbProducSkutMapper producSkutMapper; @Autowired private ActivateMapper activateMapper; + @Autowired + private TbProductRepository tbProductRepository; @Override public Object findStorage(Integer shopId, String account, Pageable pageable) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -139,4 +129,13 @@ public class ShopServiceImpl implements ShopService { activateMapper.insert(activate); } } + + @Override + public List findActivatePros(Integer activateId) { + Activate activate = activateMapper.selectById(activateId); + if (!CollectionUtils.isEmpty(activate.getProdIds())){ + return tbProductRepository.findByIds(activate.getProdIds()); + } + return new ArrayList<>(); + } } \ No newline at end of file From e3f68dc486ef5819d20b1b81ab67ddf70fe6475e Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Sat, 17 Aug 2024 14:15:12 +0800 Subject: [PATCH 09/71] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java index 0d6fa038..7aeff932 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java @@ -27,9 +27,10 @@ public interface ShopUserMapper extends BaseMapper { " or u.telephone like concat('%', #{param.name}, '%') or su.telephone like concat('%', #{param.name}, '%'))" + "" + "" + - "AND su.is_vip=#{isVip}" + + "AND su.is_vip=#{isVip} " + "" + "" + + "order by su.created_at" + "") IPage queryUser(TbShopUserQueryCriteria param, Integer isVip, Page pageInfo); From 2250bda5c17ac787235e35e6264161146769bc0c Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Sat, 17 Aug 2024 14:38:00 +0800 Subject: [PATCH 10/71] =?UTF-8?q?=E5=88=86=E7=BB=84=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E7=AE=A1=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/dto/product/TbProductGroupDto.java | 11 ----------- .../impl/productimpl/TbProductGroupServiceImpl.java | 6 +----- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductGroupDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductGroupDto.java index 3c6d5e75..5bb4eeba 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductGroupDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductGroupDto.java @@ -54,15 +54,4 @@ public class TbProductGroupDto implements Serializable { private String saleStartTime; private String saleEndTime; - - public void upSaleEndTime() { - if (useTime != null && useTime == 1) { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm"); - LocalTime startTime = LocalTime.parse(saleStartTime, formatter); - LocalTime endTime = LocalTime.parse(saleEndTime, formatter); - if (endTime.isBefore(startTime)) { - saleEndTime = "次日 " + saleEndTime; - } - } - } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductGroupServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductGroupServiceImpl.java index 0b4215bd..93efc746 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductGroupServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductGroupServiceImpl.java @@ -58,11 +58,7 @@ public class TbProductGroupServiceImpl implements TbProductGroupService { PageRequest sort = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by("sort")); Page page = tbProductGroupRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),sort); - Page map = page.map(tbProductGroupMapper::toDto); - map.getContent().forEach(s->{ - s.upSaleEndTime(); - }); - return PageUtil.toPage(map); + return PageUtil.toPage(page.map(tbProductGroupMapper::toDto)); } @Override From 8da97add53ed71bcc9002844d5fc775712099a50 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 17 Aug 2024 16:49:18 +0800 Subject: [PATCH 11/71] =?UTF-8?q?1.=E5=95=86=E5=93=81=E4=B8=8D=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ysk/cashier/service/impl/productimpl/StockServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java index 3f49b4c4..f4fe27b4 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java @@ -365,7 +365,8 @@ public class StockServiceImpl implements StockService { break; case "pauseSale": sqlQuery.append(" set is_pause_sale = ").append(updateValueVO.getUpdateValue()); - TbProduct product1 = tbProductRepository.selectBySkuId(Integer.valueOf(updateValueVO.getTargetId())); + TbProduct product1 = tbProductRepository.getById(Integer.valueOf(updateValueVO.getTargetId())); + // 推送微信操作消息 if (product1 != null) { wxMsgUtils.aboardOperationMsg(("0".equals(updateValueVO.getUpdateValue()) ? "关闭售罄: " : "开启售罄: ") + product1.getName(), Integer.valueOf(updateValueVO.getShopId())); From 5f2950ab728f7bce9cb5716052ae69b33acef077 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Sat, 17 Aug 2024 17:37:06 +0800 Subject: [PATCH 12/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E6=8C=82=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java index 7bfbedf3..f6720c7f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java @@ -8,11 +8,9 @@ import javax.validation.constraints.NotNull; @Data public class PendingDTO { - @NotEmpty private String masterId; @NotNull private Integer shopId; - @NotNull private Long tableId; private Integer vipUserId; @NotNull From fa868cce3163fb41d54a39fd41d9ca7bb3a938bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Sat, 17 Aug 2024 15:28:21 +0800 Subject: [PATCH 13/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=80=97=E6=9D=90?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=8D=95=E4=BB=B7=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java | 4 ++++ .../cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java | 2 ++ 2 files changed, 6 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java index 97967dc0..d15646af 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java @@ -123,6 +123,10 @@ public class ViewConInfoFlow implements Serializable { @ApiModelProperty(value = "更新时间") private Date updateTime; + @Column(name = "price") + @ApiModelProperty(value = "单价") + private BigDecimal price; + public void copy(ViewConInfoFlow source){ diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java index 00fc202f..3b35c877 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java @@ -68,4 +68,6 @@ public class ViewConInfoFlowDto implements Serializable { private String isCheck; private Date createTime; private Date updateTime; + + private BigDecimal price; } \ No newline at end of file From 4909ebe8072ac70f8ea5b121544f262c1dfc90a9 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 19 Aug 2024 10:11:51 +0800 Subject: [PATCH 14/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=AE=A2=E5=8D=95=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 | 23 +++++++++---------- .../cashier/dto/shoptable/DeleteOrderDTO.java | 9 ++++++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 20 ++++++++++++++-- .../service/shop/TbShopTableService.java | 2 ++ 4 files changed, 40 insertions(+), 14 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/DeleteOrderDTO.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 154dd508..0bc3f355 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 @@ -92,9 +92,9 @@ public class TbPlaceController { @Log("代客下单 查询购物车") @ApiOperation("代客下单 查询购物车 /shop/table") public ResponseEntity getCart( - @RequestParam Long tableId, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size, + @RequestParam Long tableId, @RequestParam Integer shopId, @RequestParam(required = false) Integer vipUserId, @RequestParam String masterId @@ -139,17 +139,6 @@ public class TbPlaceController { @AnonymousAccess - @GetMapping("/car") - @Log("代客下单 查询购物车") - @ApiOperation("代客下单 查询购物车 /shop/table") - public ResponseEntity getCar( - @RequestParam Integer shopId - ) { - return ResponseEntity.ok(tbShopTableService.getCar(shopId)); - } - - @AnonymousAccess - @GetMapping("/payType") @Log("代客下单 查询购物车") @ApiOperation("代客下单 查询购物车 /shop/table") @@ -170,5 +159,15 @@ public class TbPlaceController { ) { return ResponseEntity.ok(tbShopTableService.pay(payDTO)); } + @AnonymousAccess + + @DeleteMapping("/order") + @Log("代客下单 删除订单") + @ApiOperation("代客下单 查询购物车 /shop/table") + public ResponseEntity delete( + @Validated @RequestBody DeleteOrderDTO deleteOrderDTO + ) { + return ResponseEntity.ok(tbShopTableService.deleteOrder(deleteOrderDTO)); + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/DeleteOrderDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/DeleteOrderDTO.java new file mode 100644 index 00000000..4b4626fc --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/DeleteOrderDTO.java @@ -0,0 +1,9 @@ +package cn.ysk.cashier.dto.shoptable; + +import lombok.Data; + +@Data +public class DeleteOrderDTO { + private Integer shopId; + private Integer orderId; +} 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 67d93221..fba59ba1 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 @@ -648,7 +648,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } redisTemplate.opsForValue().set("SHOP:CODE:" + clientType + ":" + shopId + ":" + day, String.valueOf(Integer.parseInt(orderCode) + 1)); boolean flag = Boolean.TRUE.equals(redisTemplate.opsForValue().setIfAbsent("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + day, orderCode)); - if (flag) { + if (!flag) { return generateOrderCode(day, clientType, shopId); } // 增加计数器 @@ -879,7 +879,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { cashierCart.setStatus(pendingDTO.getIsPending() ? "refund" : "create"); cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper() .eq(TbCashierCart::getOrderId, orderId)); - return orderInfo; + return orderInfoMapper.selectById(orderId); } @Override @@ -965,4 +965,20 @@ public class TbShopTableServiceImpl implements TbShopTableService { rabbitTemplate.convertAndSend(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD_SALE, mqData.toJSONString(), new CorrelationData(UUID.randomUUID().toString())); return null; } + + @Override + public Object deleteOrder(DeleteOrderDTO deleteOrderDTO) { + int count1 = orderInfoMapper.delete(new LambdaQueryWrapper() + .eq(TbOrderInfo::getShopId, deleteOrderDTO.getShopId()) + .eq(TbOrderInfo::getId, deleteOrderDTO.getOrderId())); + + int count2 = orderDetailMapper.delete(new LambdaQueryWrapper() + .eq(TbOrderDetail::getShopId, deleteOrderDTO.getShopId()) + .eq(TbOrderDetail::getOrderId, deleteOrderDTO.getOrderId())); + + int count3 = cashierCartMapper.delete(new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, deleteOrderDTO.getShopId()) + .eq(TbCashierCart::getOrderId, deleteOrderDTO.getOrderId())); + return count1 > 0 && count2 > 0 && count3 > 0; + } } 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 23ce9f60..b73ef0e0 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 @@ -119,4 +119,6 @@ public interface TbShopTableService { Object getPayType(Integer shopId); Object pay(PayDTO payDTO); + + Object deleteOrder(DeleteOrderDTO deleteOrderDTO); } From 58eb528047a6658cf5306d1f81ad4b2574c2de9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Sat, 17 Aug 2024 18:25:03 +0800 Subject: [PATCH 15/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=80=97=E6=9D=90?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=8D=95=E4=BB=B7=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/cons/domain/ViewConInfoFlow.java | 5 +++++ .../cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java index d15646af..a9167784 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java @@ -75,6 +75,11 @@ public class ViewConInfoFlow implements Serializable { private BigDecimal balance; + @Column(name = "`status`",nullable = false) + @ApiModelProperty(value = "status") + private String status; + + @Column(name = "`product_id`") @ApiModelProperty(value = "商品id") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java index 3b35c877..6e5e19ed 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/dto/ViewConInfoFlowDto.java @@ -50,7 +50,7 @@ public class ViewConInfoFlowDto implements Serializable { private String productId; private String productName; - + private String status; private String conCode; From cf62b77128c6fb8e90168292efed8d0d281e066d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Sat, 17 Aug 2024 18:33:35 +0800 Subject: [PATCH 16/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=80=97=E6=9D=90?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=8D=95=E4=BB=B7=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java index a9167784..a5848254 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/ViewConInfoFlow.java @@ -75,7 +75,7 @@ public class ViewConInfoFlow implements Serializable { private BigDecimal balance; - @Column(name = "`status`",nullable = false) + @Column(name = "`status`") @ApiModelProperty(value = "status") private String status; From 53fd7e24c03e084175f5eb7a8c495d1ba974adb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 19 Aug 2024 09:45:48 +0800 Subject: [PATCH 17/71] =?UTF-8?q?=E5=88=A4=E6=96=AD=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=80=97=E6=9D=90=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cons/service/impl/TbConsInfoServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java index c40a90fc..d78df579 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java @@ -155,12 +155,12 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { throw new Exception("耗材信息不存在"); } - tbConsInfo.setConName(resource.getConName()); - tbConsInfo.setPrice(resource.getPrice()); - tbConsInfo.setConUnit(resource.getConUnit()); - tbConsInfo.setConWarning(resource.getConWarning()); - tbConsInfo.setStatus(resource.getStatus()); - tbConsInfo.setIsCheck(resource.getIsCheck()); + tbConsInfo.setConName(ObjectUtil.isEmpty(resource.getConName())||ObjectUtil.isNull(resource.getConName())?tbConsInfo.getConName():resource.getConName()); + tbConsInfo.setPrice(ObjectUtil.isEmpty(resource.getPrice())||ObjectUtil.isNull(resource.getPrice())?tbConsInfo.getPrice():resource.getPrice()); + tbConsInfo.setConUnit(ObjectUtil.isEmpty(resource.getConUnit())||ObjectUtil.isNull(resource.getConUnit())?tbConsInfo.getConUnit(): resource.getConUnit()); + tbConsInfo.setConWarning(ObjectUtil.isEmpty(resource.getConWarning())||ObjectUtil.isNull(resource.getConWarning())?tbConsInfo.getConWarning():resource.getConWarning()); + tbConsInfo.setStatus(ObjectUtil.isEmpty(resource.getStatus())||ObjectUtil.isNull(resource.getStatus())?tbConsInfo.getStatus():resource.getStatus()); + tbConsInfo.setIsCheck(ObjectUtil.isEmpty(resource.getIsCheck())||ObjectUtil.isNull(resource.getIsCheck())?tbConsInfo.getIsCheck():resource.getIsCheck()); tbConsInfo.setUpdateTime(new Timestamp(System.currentTimeMillis())); tbConsInfoRepository.save(tbConsInfo); From 635625842ac5b3c67d422e0106c2adeaaf5697ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 19 Aug 2024 11:20:58 +0800 Subject: [PATCH 18/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E4=BC=9A=E5=91=98=E4=BD=99=E9=A2=9D=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/shop/TbShopUserController.java | 8 +++ .../impl/shopimpl/TbShopUserServiceImpl.java | 70 +++++++++++++++++++ .../service/shop/TbShopUserService.java | 2 + 3 files changed, 80 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index 0dbe5f8b..e5df29ca 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.Map; /** * @author lyf @@ -96,4 +97,11 @@ public class TbShopUserController { public void rechargeListDownload(HttpServletResponse response, @RequestBody TbShopRechargeListDto criteria) throws IOException { tbShopUserService.rechargeListDownload(response, criteria); } + + + @PostMapping("midfiyAccount") + @ApiOperation("增加扣减会员余额") + public ResponseEntity midfiyAccount(Map map){ + return null; + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java index c1c1d916..f0dfc99a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java @@ -1,12 +1,15 @@ package cn.ysk.cashier.service.impl.shopimpl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.dto.shop.TbShopRechargeListDto; import cn.ysk.cashier.dto.shop.TbShopRechargeRespDto; import cn.ysk.cashier.dto.shop.TbShopUserDto; import cn.ysk.cashier.dto.shop.TbShopUserQueryCriteria; +import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mapper.shop.TbShopUserMapper; +import cn.ysk.cashier.mybatis.entity.TbShopUserFlow; import cn.ysk.cashier.mybatis.mapper.ShopUserMapper; import cn.ysk.cashier.mybatis.mapper.TbShopUserFlowMapper; import cn.ysk.cashier.pojo.shop.TbShopUser; @@ -31,6 +34,7 @@ import java.io.IOException; import java.math.BigDecimal; import java.time.Instant; import java.util.*; +import java.util.regex.Pattern; /** * @author lyf @@ -50,6 +54,10 @@ public class TbShopUserServiceImpl implements TbShopUserService { @Autowired private ShopUserMapper shopUserMapper; + @Autowired + private TbShopUserFlowMapper tbShopUserFlowMapper; + + @Override public Map queryShopUser(TbShopUserQueryCriteria criteria) { IPage iPage = shopUserMapper.queryUser(criteria, criteria.getIsVip(), @@ -183,4 +191,66 @@ public class TbShopUserServiceImpl implements TbShopUserService { } FileUtil.downloadExcel(list, response); } + + @Override + public void modfiyAccount(Map map) { + if(ObjectUtil.isNull(map)||ObjectUtil.isEmpty(map)||!map.containsKey("id")||!map.containsKey("type")||!map.containsKey("amount") + ||ObjectUtil.isEmpty(map.get("id"))||ObjectUtil.isNull(map.get("id"))||ObjectUtil.isNull(map.get("type"))||ObjectUtil.isEmpty(map.get("type")) + ||ObjectUtil.isEmpty(map.get("amount"))||ObjectUtil.isNull(map.get("amount")) + + ){ + throw new BadRequestException("参数错误"); + + } + + String regex = "^(([1-9][0-9]*)|(([0]\\.\\d{1,2}|[1-9][0-9]*\\.\\d{1,2})))$"; + if(!map.get("amount").toString().matches(regex)){ + throw new BadRequestException("请输入正确的数字"); + } + + + + TbShopUser tbShopUser= tbShopUserRepository.getById(Integer.valueOf(map.get("id")+"")); + if(ObjectUtil.isNull(tbShopUser)){ + throw new BadRequestException("不存在的会员信息"); + } + + BigDecimal amount=new BigDecimal(map.get("amount").toString()); + if(amount.compareTo(tbShopUser.getAmount())>0){ + throw new BadRequestException("账户余额不足,请输入正确的金额"); + } + + String type=map.get("type").toString(); + TbShopUserFlow flow=new TbShopUserFlow(); + + if("in".equals(type)){ + flow.setType("+"); + flow.setBizName("充值退款"); + flow.setBizCode("manualIn"); + tbShopUser.setAmount(tbShopUser.getAmount().add(amount)); + }else if("out".equals(type)){ + flow.setBizCode("manualOut"); + flow.setBizName("消费"); + flow.setType("-"); + tbShopUser.setAmount(tbShopUser.getAmount().subtract(amount)); + }else { + throw new BadRequestException("错误的请求类型"); + } + + tbShopUser.setUpdatedAt(System.currentTimeMillis()); + tbShopUserRepository.save(tbShopUser); + + + flow.setShopUserId(tbShopUser.getId()); + flow.setAmount(amount); + flow.setBalance(tbShopUser.getAmount()); + flow.setCreateTime(new Date()); + + tbShopUserFlowMapper.insert(flow); + + + + + } + } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java index ad4c884b..608242c3 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/shop/TbShopUserService.java @@ -89,4 +89,6 @@ public interface TbShopUserService { void rechargeListDownload(HttpServletResponse response, TbShopRechargeListDto criteria) throws IOException; + void modfiyAccount(Map map); + } From 95e37c20487399102a9f7716825ee518bd7ec5c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 19 Aug 2024 11:25:01 +0800 Subject: [PATCH 19/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E4=BC=9A=E5=91=98=E4=BD=99=E9=A2=9D=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/controller/shop/TbShopUserController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index e5df29ca..c45c7de8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -102,6 +102,7 @@ public class TbShopUserController { @PostMapping("midfiyAccount") @ApiOperation("增加扣减会员余额") public ResponseEntity midfiyAccount(Map map){ - return null; + tbShopUserService.modfiyAccount(map); + return new ResponseEntity<>(HttpStatus.OK); } } From a74612f5a6dbc4d1af5e46826cdb6c72b8d1f027 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 19 Aug 2024 14:12:07 +0800 Subject: [PATCH 20/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=A1=8C=E5=8F=B7=E8=8E=B7=E5=8F=96?= 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 fba59ba1..194d30c4 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 @@ -648,7 +648,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } redisTemplate.opsForValue().set("SHOP:CODE:" + clientType + ":" + shopId + ":" + day, String.valueOf(Integer.parseInt(orderCode) + 1)); boolean flag = Boolean.TRUE.equals(redisTemplate.opsForValue().setIfAbsent("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + day, orderCode)); - if (!flag) { + if (flag) { return generateOrderCode(day, clientType, shopId); } // 增加计数器 From b5fc56c0aa2db89b131c947e32a4498904a27748 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 19 Aug 2024 15:43:11 +0800 Subject: [PATCH 21/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=8C=82=E5=8D=95=E8=A7=84=E6=A0=BC=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/product/TbPlaceController.java | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 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 0bc3f355..4252c149 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 @@ -101,6 +101,16 @@ public class TbPlaceController { ) { return ResponseEntity.ok(tbShopTableService.getCart(tableId, page, size, shopId, vipUserId, masterId)); } + @AnonymousAccess + + @GetMapping("/pending/cart") + @Log("代客下单 查询购物车") + @ApiOperation("代客下单 查询购物车 /shop/table") + public ResponseEntity getPendingCart( + @RequestParam Integer shopId + ) { + return ResponseEntity.ok(tbShopTableService.getCar(shopId)); + } @AnonymousAccess @@ -148,17 +158,6 @@ public class TbPlaceController { return ResponseEntity.ok(tbShopTableService.getPayType(shopId)); } - - @AnonymousAccess - - @PutMapping("/pay") - @Log("代客下单 查询购物车") - @ApiOperation("代客下单 查询购物车 /shop/table") - public ResponseEntity pay( - @Validated @RequestBody PayDTO payDTO - ) { - return ResponseEntity.ok(tbShopTableService.pay(payDTO)); - } @AnonymousAccess @DeleteMapping("/order") @@ -170,4 +169,15 @@ public class TbPlaceController { return ResponseEntity.ok(tbShopTableService.deleteOrder(deleteOrderDTO)); } + @AnonymousAccess + + @PutMapping("/pay") + @Log("代客下单 查询购物车") + @ApiOperation("代客下单 查询购物车 /shop/table") + public ResponseEntity pay( + @Validated @RequestBody PayDTO payDTO + ) { + return ResponseEntity.ok(tbShopTableService.pay(payDTO)); + } + } From 53275cd5de0841edf994a51308ece58362fc02d9 Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Mon, 19 Aug 2024 16:09:44 +0800 Subject: [PATCH 22/71] =?UTF-8?q?=E9=9B=86=E6=88=90model=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/ysk/cashier/mybatis/entity/TbShopAd.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopAd.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopAd.java index 31fb11db..ef625f97 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopAd.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopAd.java @@ -13,7 +13,7 @@ import java.util.Date; @Data @EqualsAndHashCode(callSuper = true) @TableName("tb_shop_ad") -public class TbShopAd extends Model { +public class TbShopAd extends Model { private Integer id; private Integer shopId; private String imgUrl; From ea86b428474382769fb720e32f77e01f9fc99cbd Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 19 Aug 2024 16:15:01 +0800 Subject: [PATCH 23/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E7=82=B9=E5=8D=95=20=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E7=82=B9=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/product/TbPlaceController.java | 11 +++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 41 +++++++++++++++++-- .../service/shop/TbShopTableService.java | 2 + 3 files changed, 51 insertions(+), 3 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 4252c149..ca2e6679 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 @@ -180,4 +180,15 @@ public class TbPlaceController { return ResponseEntity.ok(tbShopTableService.pay(payDTO)); } + @AnonymousAccess + + @PutMapping("/updateVip") + @Log("代客下单 查询购物车") + @ApiOperation("代客下单 查询购物车 /shop/table") + public ResponseEntity updateVip( + @Validated @RequestBody UpdateVipDTO updateVipDTO + ) { + return ResponseEntity.ok(tbShopTableService.updateVip(updateVipDTO)); + } + } 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 194d30c4..248c59ab 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 @@ -57,6 +57,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Page; @@ -891,12 +892,30 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbCashierCart::getShopId, shopId) .eq(TbCashierCart::getStatus, "refund")); + ArrayList skuIds = new ArrayList<>(); + tbCashierCarts.forEach(item -> { + skuIds.add(Integer.valueOf(item.getSkuId())); + }); + + List skuList = productSkuRepository.findAllById(skuIds); + + HashMap skuMap = new HashMap<>(); + skuList.forEach(item -> { + skuMap.put(item.getId().toString(), item); + }); + + cashierCartMapper.selectPending(shopId); - HashMap> cashierMap = new HashMap<>(); + HashMap>> cashierMap = new HashMap<>(); for (TbCashierCart tbCashierCart : tbCashierCarts) { - List list = cashierMap.computeIfAbsent(tbCashierCart.getOrderId().toString(), k -> new ArrayList<>()); - list.add(tbCashierCart); + TbProductSku productSku = skuMap.get(tbCashierCart.getSkuId()); + Map map = BeanUtil.beanToMap(tbCashierCart, false, false); + map.put("specSnap", productSku == null ? "" : productSku.getSpecSnap()); + + List> list = cashierMap.computeIfAbsent(tbCashierCart.getOrderId().toString(), k -> new ArrayList<>()); + + list.add(map); } pendingCountVOS.forEach(item -> { @@ -981,4 +1000,20 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbCashierCart::getOrderId, deleteOrderDTO.getOrderId())); return count1 > 0 && count2 > 0 && count3 > 0; } + + @Override + public Object updateVip(UpdateVipDTO updateVipDTO) { + LambdaUpdateWrapper queryWrapper = new LambdaUpdateWrapper<>(); + queryWrapper.eq(TbCashierCart::getTableId, updateVipDTO.getTableId()) + .eq(TbCashierCart::getShopId, updateVipDTO.getShopId()) + .eq(TbCashierCart::getMasterId, updateVipDTO.getMasterId()); + + if (updateVipDTO.getType().equals(0)) { + queryWrapper.set(TbCashierCart::getUserId, null); + queryWrapper.eq(TbCashierCart::getUserId, updateVipDTO.getVipUserId()); + }else { + queryWrapper.set(TbCashierCart::getUserId, updateVipDTO.getVipUserId()); + } + return cashierCartMapper.update(null, queryWrapper); + } } 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 b73ef0e0..e8eea1b2 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 @@ -121,4 +121,6 @@ public interface TbShopTableService { Object pay(PayDTO payDTO); Object deleteOrder(DeleteOrderDTO deleteOrderDTO); + + Object updateVip(UpdateVipDTO updateVipDTO); } From 15de68b7045355db521e80f2b70008c55a683265 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 19 Aug 2024 16:24:45 +0800 Subject: [PATCH 24/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E7=82=B9=E5=8D=95=20=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E7=82=B9=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/product/TbPlaceController.java | 12 ------------ .../impl/shopimpl/TbShopTableServiceImpl.java | 3 ++- 2 files changed, 2 insertions(+), 13 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 10b6f268..69199a2c 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 @@ -180,18 +180,6 @@ public class TbPlaceController { return ResponseEntity.ok(tbShopTableService.pay(payDTO)); } @AnonymousAccess - - @DeleteMapping("/order") - @Log("代客下单 删除订单") - @ApiOperation("代客下单 查询购物车 /shop/table") - public ResponseEntity delete( - @Validated @RequestBody DeleteOrderDTO deleteOrderDTO - ) { - return ResponseEntity.ok(tbShopTableService.deleteOrder(deleteOrderDTO)); - } - - @AnonymousAccess - @PutMapping("/updateVip") @Log("代客下单 查询购物车") @ApiOperation("代客下单 查询购物车 /shop/table") 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 248c59ab..5379a252 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 @@ -758,8 +758,8 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setFreightAmount(feeAmount); orderInfo.setProductAmount(saleAmount); orderInfo.setTradeDay(DateUtils.getDay()); + orderInfo.setUserId(String.valueOf(createOrderDTO.getVipUserId())); orderInfoMapper.updateById(orderInfo); - }else { String orderNo = generateOrderNumber(); orderInfo = new TbOrderInfo(); @@ -779,6 +779,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setTradeDay(day); orderInfo.setMasterId(createOrderDTO.getMasterId()); orderInfo.setRemark(createOrderDTO.getNote()); + orderInfo.setUserId(String.valueOf(createOrderDTO.getVipUserId())); orderInfoMapper.insert(orderInfo); } From 2567044da8623de28e69e11cca8e01b741684aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 19 Aug 2024 17:41:25 +0800 Subject: [PATCH 25/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E4=BC=9A=E5=91=98=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java | 2 ++ .../src/main/java/cn/ysk/cashier/pojo/shop/TbShopInfo.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java index 4e8ed426..59d5ca08 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java @@ -186,4 +186,6 @@ public class TbShopInfoDto implements Serializable { private String districts; private String cities; + + private String isCustom; } \ No newline at end of file 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 b8eded9c..a1b6e21b 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 @@ -244,6 +244,10 @@ public class TbShopInfo implements Serializable { @ApiModelProperty(value = "区") private String districts; + @Column(name = "is_custom") + @ApiModelProperty(value = "是否允许用户自定义金额") + private String isCustom; + public void copy(TbShopInfo source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(false)); } From d6bbe73d585a0b97baa859f2ceb7a9c2446a0039 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 19 Aug 2024 17:42:47 +0800 Subject: [PATCH 26/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E7=82=B9=E5=8D=95=20=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E7=82=B9=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/controller/TbPayController.java | 26 ++ .../java/cn/ysk/cashier/dto/ScanPayDTO.java | 10 + .../cashier/dto/shoptable/UpdateVipDTO.java | 22 ++ .../mybatis/mapper/TbShopPayTypeMapper.java | 8 + .../cashier/mybatis/vo/pay/BaseRequest.java | 16 + .../cn/ysk/cashier/mybatis/vo/pay/PayReq.java | 51 +++ .../cashier/mybatis/vo/pay/ScanPayReq.java | 36 +++ .../cn/ysk/cashier/service/TbPayService.java | 7 + .../service/impl/TbPayServiceImpl.java | 296 ++++++++++++++++++ .../impl/shopimpl/TbShopTableServiceImpl.java | 7 +- .../java/cn/ysk/cashier/utils/MD5Util.java | 158 ++++++++++ .../cn/ysk/cashier/utils/RabbitMsgUtils.java | 46 +++ 12 files changed, 680 insertions(+), 3 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/controller/TbPayController.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/ScanPayDTO.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/UpdateVipDTO.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopPayTypeMapper.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/BaseRequest.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/PayReq.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/ScanPayReq.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/utils/MD5Util.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbPayController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbPayController.java new file mode 100644 index 00000000..01cb486d --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbPayController.java @@ -0,0 +1,26 @@ +package cn.ysk.cashier.controller; + +import cn.ysk.cashier.dto.ScanPayDTO; +import cn.ysk.cashier.service.TbPayService; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/pay") +public class TbPayController { + + private final TbPayService payService; + + public TbPayController(TbPayService payService) { + this.payService = payService; + } + + @PostMapping("/scanPay") + public ResponseEntity scanPay( + @RequestBody @Validated ScanPayDTO scanPayDTO + ) { + payService.scanPay(scanPayDTO); + return null; + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/ScanPayDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/ScanPayDTO.java new file mode 100644 index 00000000..e526a9d5 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/ScanPayDTO.java @@ -0,0 +1,10 @@ +package cn.ysk.cashier.dto; + +import lombok.Data; + +@Data +public class ScanPayDTO { + private Integer shopId; + private Integer orderId; + private String authCode; +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/UpdateVipDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/UpdateVipDTO.java new file mode 100644 index 00000000..a0de0032 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/UpdateVipDTO.java @@ -0,0 +1,22 @@ +package cn.ysk.cashier.dto.shoptable; + +import lombok.Data; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +public class UpdateVipDTO { + @NotNull + private Integer shopId; + @NotEmpty + private String tableId; + @NotNull + private String masterId; + + private Integer vipUserId; + @NotNull + @Range(min = 0, max = 1) + private Integer type; +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopPayTypeMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopPayTypeMapper.java new file mode 100644 index 00000000..38b1dfb3 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopPayTypeMapper.java @@ -0,0 +1,8 @@ +package cn.ysk.cashier.mybatis.mapper; + +import cn.ysk.cashier.mybatis.entity.TbShopOpenId; +import cn.ysk.cashier.pojo.TbShopPayType; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface TbShopPayTypeMapper extends BaseMapper { +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/BaseRequest.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/BaseRequest.java new file mode 100644 index 00000000..8e5dd850 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/BaseRequest.java @@ -0,0 +1,16 @@ +package cn.ysk.cashier.mybatis.vo.pay; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class BaseRequest implements Serializable { + + private String appId; + + private String sign; + + private Long timestamp; + +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/PayReq.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/PayReq.java new file mode 100644 index 00000000..0056e373 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/PayReq.java @@ -0,0 +1,51 @@ +package cn.ysk.cashier.mybatis.vo.pay; + +import cn.hutool.json.JSONUtil; +import cn.ysk.cashier.utils.BeanUtil; +import cn.ysk.cashier.utils.MD5Util; +import lombok.Data; + +import java.util.Map; + +@Data +public class PayReq extends BaseRequest{ + + private String ip; + private String mercOrderNo; + + private String notifyUrl; + + private String payAmt; + + private String payType; + + private String payWay; + + private String subject; + + private String userId; + + + public static void main(String[] args){ + PayReq req=new PayReq(); + String privateKey="MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIqNqTqhN8zE7eFZnwKcyBTENce2wdAtl/gaDHNuNVgg33dS27Jx0fKl9QSHXyzyxbAdG8F94niYbRBstrMymFRjuO72jH+rIH62Ym1k7l8JSLVK2dKHXt8lHDaQGUP10q0EEocnDQ9cL93oBNG1ttsV6vOAu1TPvRK9TGihRAe1AgMBAAECgYBmI8KCl0DkcrSOsRvYuC2DqZWf8el1B3eFjeZp3e/zVOCIPYv6Q5ArWg6DVSxjnWEA0KSagqvGjU+xkQMqnXzPcPMhsIS+1wyR/pP+pwiatO2ioHaQpEqHg9eXhxrgA477/xuKVw9zl5GNqaIgd++2NDXnqLh0Y6OR73f0OB5eDQJBAPihEm+UWLOam/Q/k2+k4Lm2dvxJTBur1fslBiJpgMhgcz/PlwRwpL7aPD0AuPv0NqLouuoTiKpq9icnUv12tgsCQQCOqTANw0IErCHUNdinjXewmG3ui1j9XgM41rSn5ZeTrPL4GhZc2zbS/pZT4PBKUL6NLGkfPHmw4rOmNL/Xc5E/AkBqAwQBX5eSvVHSC2mqKPtJNGv3lqlFAzfyJg8/jQzEY5vAkZsq4Xzdg+A7gptdkvvY6rMIK9wSDhl3CGVyfbORAkA1N+g1OiHmnFACWhP4bU25EyPvWQxZeDi7e1zpRTzGWj5JT3IIMb7B9zcdE0yQbI6pG2gbvvOmiOt7lTH7raEBAkBas2gugvR3f0aGqQcqMpyM627pyRppQ2h58/7KBylP3oR2BReqMUcXeiJ8TuBXzbRXpeVQ0DWOva5CWZJmBMdz"; + + req.setAppId("M800202305094c170c"); + req.setTimestamp(1693966210242l); + req.setIp("47.97.26.47"); + req.setMercOrderNo("bb243a4731234f19af7734350fad19a4"); + req.setNotifyUrl("https://cashier.machine.sxczgkj.cn/web-custom/custom/third/ysk/wx-pay-notify/bb243a4731234f19af7734350fad19a4"); + req.setPayAmt("20.00"); + req.setPayType("03"); + req.setPayWay("WXZF"); + req.setSubject("描述"); + req.setUserId("o5Fun5XQAaAhf00hB9qBNnel9vYQ"); + + Map map= BeanUtil.transBean2Map(req); + + req.setSign(MD5Util.encrypt(map,privateKey)); + System.out.println(JSONUtil.toJsonStr(req)); + } + + +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/ScanPayReq.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/ScanPayReq.java new file mode 100644 index 00000000..8a3de20a --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/pay/ScanPayReq.java @@ -0,0 +1,36 @@ +package cn.ysk.cashier.mybatis.vo.pay; + +import lombok.Data; + +@Data +public class ScanPayReq extends BaseRequest{ + + private String consumeFee; + + private String authCode; + + private String notifyUrl; + + + + + public static void main(String[] args){ +// String privateKey="MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALqNx7fzuGjrBFBxbLHOy3SPdVXacVShGAQbpjBP9C+64iQfMnGUUTSTU1IOCY+KTirgE1tZ9oDGYd6bXZcvoMvTheP1rjBlvPxeyolaK0w72bufEcr3TyiZwSEjDzvl0dnj1kUmZTnyImvQeLptVKTPbtdc0ak6ebBB61FuHvPFAgMBAAECgYAYWLKM7lDN2IYanYLq/asNzj8o8jZCLjf9KUKaIYUjyYcD4dJqgknKy8Ne/RgAVLN44v+Dt4z1J27UZ4BiX8PjPIb1MfLnQtNBQf+gITXy6+vRILK7K5js4c23BWHlmxpjsFQjVIN57/d3/eZHY8+wiSCi63fudIEWQcy7xY9BTQJBAPZj8AMSbD89D6iPbB9K5CoqpbWY1XOrbtPdG43FVEcz3Mx45U5Z7pfTuHACsTEkMBB5DjNQavZK5ZIc/mtvtqcCQQDB1GjzaeUVJ3nb4zudaDrB5UoJUsVgFCHZ7TdEB0dWyGg5CtW5Au4auMcHzBvozJDbTLQ8uZsKGbKQ09/TwHuzAkAMsELY9abrbsqSpKgtyF6NqVqVSoSbi1WOxZE4sNPRQuN5CDTO3yTBXt7drdXQMQvknUdU7yxC+MJvztxvTfZ7AkBEkK37hTcrL4a02QIKoYc/daul9qipXxXGcFp/bw+2TDhKDWIjCz1NKJYHVRV+WXbYjJ6paILGpOZ8wuZHkqxvAkAfX4h0XMyastZHj7BNB2rPHYcX8DjThRKNgSKPI5X8Ld0LCssuhkyjwv8qI3jO0+P0yXWqw4T8xZ+fqSmw1eS4"; +// ScanPayReq req=new ScanPayReq(); +// +// req.setAppId("M800202307127ae681"); +// req.setTimestamp(1692929677702L); +// req.setAuthCode("133423954644827557"); +// req.setNotifyUrl("https://cashier.machine.sxczgkj.cn/web-netty/netty/third-pay/third-pay-notify/ef554b58bf3a487eabe277c3f16e7200"); +// req.setConsumeFee(N.mul(new BigDecimal(0.01),BigDecimal.ONE)); +// +// Map map= BeanUtil.transBean2Map(req); +// req.setSign(MD5Util.encrypt(map,privateKey,true)); +// +// +// System.out.println(MD5Util.check(req,privateKey)); +// +// System.out.println(JSONUtil.toJsonStr(req)); + + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java new file mode 100644 index 00000000..aebeb931 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java @@ -0,0 +1,7 @@ +package cn.ysk.cashier.service; + +import cn.ysk.cashier.dto.ScanPayDTO; + +public interface TbPayService { + void scanPay(ScanPayDTO scanPayDTO); +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java new file mode 100644 index 00000000..3b2eca65 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java @@ -0,0 +1,296 @@ +package cn.ysk.cashier.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import cn.ysk.cashier.dto.ScanPayDTO; +import cn.ysk.cashier.exception.BadRequestException; +import cn.ysk.cashier.mybatis.entity.TbOrderPayment; +import cn.ysk.cashier.mybatis.mapper.TbCashierCartMapper; +import cn.ysk.cashier.mybatis.mapper.TbOrderDetailMapper; +import cn.ysk.cashier.mybatis.mapper.TbOrderInfoMapper; +import cn.ysk.cashier.mybatis.mapper.TbShopPayTypeMapper; +import cn.ysk.cashier.mybatis.service.TbOrderPaymentService; +import cn.ysk.cashier.mybatis.vo.pay.ScanPayReq; +import cn.ysk.cashier.pojo.TbShopPayType; +import cn.ysk.cashier.pojo.order.TbCashierCart; +import cn.ysk.cashier.pojo.order.TbOrderDetail; +import cn.ysk.cashier.pojo.order.TbOrderInfo; +import cn.ysk.cashier.pojo.shop.TbMerchantThirdApply; +import cn.ysk.cashier.repository.shop.TbMerchantThirdApplyRepository; +import cn.ysk.cashier.service.TbPayService; +import cn.ysk.cashier.utils.BeanUtil; +import cn.ysk.cashier.utils.MD5Util; +import cn.ysk.cashier.utils.RabbitMsgUtils; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +public class TbPayServiceImpl implements TbPayService { + +// @Value("${gateway.url}") +// private String gateWayUrl; +// @Value("${client.backUrl}") +// private String backUrl; +// @Value("${thirdPay.payType}") +// private String thirdPayType; +// @Value("${thirdPay.url}") +// private String url; +// @Value("${thirdPay.callBack}") +// private String callBack; + + private final TbOrderInfoMapper orderInfoMapper; + private final TbCashierCartMapper cashierCartMapper; + private final TbMerchantThirdApplyRepository merchantThirdApplyRepository; + private final TbOrderPaymentService orderPaymentService; + private final TbShopPayTypeMapper shopPayTypeMapper; + private final TbOrderDetailMapper orderDetailMapper; + private final RabbitTemplate rabbitTemplate; + private final RabbitMsgUtils rabbitMsgUtils; + + + public TbPayServiceImpl(TbOrderInfoMapper orderInfoMapper, TbCashierCartMapper cashierCartMapper, TbMerchantThirdApplyRepository merchantThirdApplyRepository, TbOrderPaymentService orderPaymentService, TbShopPayTypeMapper shopPayTypeMapper, TbOrderDetailMapper orderDetailMapper,RabbitTemplate rabbitTemplate, RabbitMsgUtils rabbitMsgUtils) { + this.orderInfoMapper = orderInfoMapper; + this.cashierCartMapper = cashierCartMapper; + this.merchantThirdApplyRepository = merchantThirdApplyRepository; + this.orderPaymentService = orderPaymentService; + this.shopPayTypeMapper = shopPayTypeMapper; + this.orderDetailMapper = orderDetailMapper; + this.rabbitTemplate = rabbitTemplate; + this.rabbitMsgUtils = rabbitMsgUtils; + } + + @Override + public void scanPay(ScanPayDTO scanPayDTO) { + TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper() + .in(TbOrderInfo::getStatus, "unpaid", "paying") + .eq(TbOrderInfo::getId, scanPayDTO.getOrderId()) + .eq(TbOrderInfo::getShopId, scanPayDTO.getShopId())); + + if (orderInfo == null) { + throw new BadRequestException("订单不存在或已支付"); + } + + + if (ObjectUtil.isNull(orderInfo.getMerchantId()) || ObjectUtil.isEmpty(orderInfo.getMerchantId())) { + throw new BadRequestException("订单商户id为空"); + } + + + List cashierCarts = cashierCartMapper.selectList(new LambdaUpdateWrapper() + .eq(TbCashierCart::getShopId, scanPayDTO.getShopId()) + .eq(TbCashierCart::getOrderId, scanPayDTO.getOrderId())); + if (cashierCarts.isEmpty()) { + throw new BadRequestException("购物车为空"); + } + + StringBuilder body = new StringBuilder(); + for (TbCashierCart cashierCart : cashierCarts) { + body.append(cashierCart.getName()); + } + + + TbMerchantThirdApply thirdApply = merchantThirdApplyRepository.getById(Integer.valueOf(orderInfo.getMerchantId())); + if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) { + throw new BadRequestException("三方支付信息不存在"); + } + + String payType; + String payName; + String qpay; + String payTypeCode = scanPayDTO.getAuthCode().substring(0, 2);// 判断收款码 + + if(Integer.parseInt(payTypeCode) >=25 && Integer.parseInt(payTypeCode) <= 30){ + payType = "aliPay"; + payName = "支付宝支付"; + qpay = "scanCode"; + }else if(Integer.parseInt(payTypeCode) >=10 &&Integer.parseInt(payTypeCode) <=19){ + payType = "wechatPay"; + payName = "微信支付"; + qpay = "scanCode"; + }else if("62".equals(payTypeCode)){ + throw new BadRequestException("错误码"); + }else if("01".equals(payTypeCode)){ + throw new BadRequestException("错误码"); + }else { + throw new BadRequestException("错误码"); + } + + long count = shopPayTypeMapper.selectCount(new LambdaUpdateWrapper() + .eq(TbShopPayType::getShopId, scanPayDTO.getShopId()) + .eq(TbShopPayType::getIsDisplay, 1) + .eq(TbShopPayType::getPayType, qpay)); + if (count < 1) { + throw new BadRequestException("未到找支付方式"); + } + + TbOrderPayment payment = orderPaymentService.getById(scanPayDTO.getOrderId()); + if (ObjectUtil.isEmpty(payment) || payment == null) { + payment = new TbOrderPayment(); + payment.setPayTypeId("ysk"); + payment.setAmount(orderInfo.getOrderAmount().doubleValue()); + payment.setPaidAmount(orderInfo.getPayAmount().doubleValue()); + payment.setHasRefundAmount((double) 0); + payment.setPayName(payName); + payment.setPayType(payType); + payment.setReceived(payment.getAmount()); + payment.setChangeFee((double) 0); + payment.setMemberId(orderInfo.getMemberId()); + payment.setShopId(orderInfo.getShopId()); + payment.setOrderId(orderInfo.getId().toString()); + payment.setCreatedAt(System.currentTimeMillis()); + payment.setAuthCode(scanPayDTO.getAuthCode()); + orderPaymentService.save(payment); + } else { + payment.setAuthCode(scanPayDTO.getAuthCode()); + payment.setUpdatedAt(System.currentTimeMillis()); + orderPaymentService.updateById(payment); + } + + + orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayType(qpay); + orderInfo.setUpdatedAt(System.currentTimeMillis()); + orderInfoMapper.update(orderInfo, new LambdaUpdateWrapper() + .eq(TbOrderInfo::getId, scanPayDTO.getOrderId())); + +// if ("ysk".equals(thirdPayType)) { +// +// ScanPayReq scanPayReq = new ScanPayReq(); +// scanPayReq.setAppId(thirdApply.getAppId()); +// scanPayReq.setTimestamp(System.currentTimeMillis()); +// scanPayReq.setAuthCode(scanPayDTO.getAuthCode()); +// scanPayReq.setNotifyUrl(backUrl); +// scanPayReq.setConsumeFee(BigDecimal.valueOf(payment.getAmount()).setScale(2, RoundingMode.DOWN).toPlainString()); +// +// Map map = BeanUtil.transBean2Map(scanPayReq); +// scanPayReq.setSign(MD5Util.encrypt(map, thirdApply.getAppToken(), true)); +// +// +// ResponseEntity response = restTemplate.postForEntity(gateWayUrl.concat("merchantOrder/scanPay"), scanPayReq, String.class); +// if (response.getStatusCodeValue() == 200 && ObjectUtil.isNotEmpty(response.getBody())) { +// JSONObject object = JSONObject.parseObject(response.getBody()); +// if (object.get("code").equals("0")) { +// payment.setTradeNumber(object.getJSONObject("data").get("orderNumber").toString()); +// payment.setUpdatedAt(System.currentTimeMillis()); +// orderPaymentService.saveOrUpdate(payment); +// +// //处理支付成功的订单 +// orderInfo.setStatus("closed"); +// orderInfo.setPayOrderNo(object.getJSONObject("data").get("orderNumber").toString()); +// orderInfoMapper.update(orderInfo, new LambdaQueryWrapper() +// .eq(TbOrderInfo::getId, scanPayDTO.getOrderId())); +// +// //更新购物车状态 +// TbCashierCart cashierCart = new TbCashierCart(); +// cashierCart.setStatus("final"); +// int cartCount = cashierCartMapper.update(cashierCart, new LambdaQueryWrapper() +// .eq(TbCashierCart::getOrderId, scanPayDTO.getOrderId())); +// log.info("更新购物车:{}", cartCount); +// +// //更新子单状态 +// TbOrderDetail orderDetail = new TbOrderDetail(); +// orderDetail.setStatus("closed"); +// orderDetailMapper.update(orderDetail, new LambdaQueryWrapper() +// .eq(TbOrderDetail::getOrderId, scanPayDTO.getOrderId())); +// +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("type", "create"); +// jsonObject.put("orderId", scanPayDTO.getOrderId()); +// +// rabbitMsgUtils.sendOrderCollectMsg(jsonObject); +// +// +// producer.printMechine(orderId); +// +// return Result.success(CodeEnum.SUCCESS, object.getJSONObject("data")); +// } else { +// String status = ObjectUtil.isNotEmpty(object.getJSONObject("data")) ? object.getJSONObject("data").getString("status") : null; +// if (ObjectUtil.isNotNull(status) && "7".equals(status)) { +// +// orderInfo.setStatus("paying"); +// orderInfo.setPayOrderNo(payment.getTradeNumber()); +// tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); +// +// payment.setTradeNumber(object.getJSONObject("data").get("orderNumber").toString()); +// payment.setUpdatedAt(System.currentTimeMillis()); +// tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); +// return Result.success(CodeEnum.PAYING); +// } +//// orderInfo.setStatus("fail"); +//// orderInfo.setPayOrderNo(payment.getTradeNumber()); +//// tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); +// +// return Result.fail(object.getString("msg")); +// } +// } +// } else { +// +// String reqbody = ""; +// +// if (body.length() > 15) { +// reqbody = body.substring(0, 6).concat("....").concat(body.substring(body.length() - 6, body.length())); +// } else { +// reqbody = body.toString(); +// } +// +// PublicResp publicResp = thirdPayService.mainScan(url, thirdApply.getAppId(), reqbody, reqbody, payment.getAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), payType.equals("wechatPay") ? thirdApply.getSmallAppid() : null, authCode, DateUtils.getSsdfTimes(), thirdApply.getStoreId(), callBack, thirdApply.getAppToken()); +// if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { +// if ("000000".equals(publicResp.getCode())) { +// MainScanResp mainScanResp = publicResp.getObjData(); +// if ("TRADE_SUCCESS".equals(mainScanResp.getState())) { +// payment.setTradeNumber(mainScanResp.getPayOrderId()); +// payment.setUpdatedAt(System.currentTimeMillis()); +// tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); +// +// //处理支付成功的订单 +// orderInfo.setStatus("closed"); +// orderInfo.setPayOrderNo(mainScanResp.getPayOrderId()); +// tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); +// +// //更新购物车状态 +// int cartCount = tbCashierCartMapper.updateByOrderId(orderId, "final"); +// log.info("更新购物车:{}", cartCount); +// +// //更新子单状态 +// tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed"); +// +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("token", token); +// jsonObject.put("type", "create"); +// jsonObject.put("orderId", orderId); +// +// producer.putOrderCollect(jsonObject.toJSONString()); +// +// producer.printMechine(orderId); +// +// return Result.success(CodeEnum.SUCCESS, mainScanResp); +// } else if ("TRADE_AWAIT".equals(mainScanResp.getState())) { +// orderInfo.setStatus("paying"); +// orderInfo.setPayOrderNo(payment.getTradeNumber()); +// tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); +// +// payment.setTradeNumber(mainScanResp.getPayOrderId()); +// payment.setUpdatedAt(System.currentTimeMillis()); +// tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); +// return Result.success(CodeEnum.PAYING); +// } +// } +// } +// +// } + + } +} 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 5379a252..c14352b7 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 @@ -669,7 +669,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { TbMerchantAccount merchantAccount = merchantAccountMapper.selectOne(new LambdaQueryWrapper().eq(TbMerchantAccount::getAccount, account)); String day = DateUtils.getDay(); JSONObject jsonObject = new JSONObject(); - String key = "SHOP:CODE:USER:pc" + ":" + shopId + ":" + day + ":" + tableId + ":" + (vipUserId == null ? "" : vipUserId); + String key = "SHOP:CODE:USER:pc" + ":" + shopId + ":" + day + ":" + tableId; String userCode = redisTemplate.opsForValue().get(key); if (StringUtils.isEmpty(userCode) || "null".equals(userCode) || "#null".equals(userCode)) { @@ -809,8 +809,9 @@ public class TbShopTableServiceImpl implements TbShopTableService { cashierCartMapper.updateById(cashierCart); } if (isFirst) { - redisTemplate.delete("SHOP:CODE:USER:pc:" + createOrderDTO.getShopId() + ":" - + day + ":" + createOrderDTO.getTableId() + ":" + (createOrderDTO.getVipUserId() == null ? "" : createOrderDTO.getVipUserId())); + String key = "SHOP:CODE:USER:pc" + ":" + createOrderDTO.getShopId() + ":" + day + ":" + createOrderDTO.getTableId(); + + redisTemplate.delete(key); } // 推送耗材信息 diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/utils/MD5Util.java b/eladmin-system/src/main/java/cn/ysk/cashier/utils/MD5Util.java new file mode 100644 index 00000000..3afde0a5 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/utils/MD5Util.java @@ -0,0 +1,158 @@ +package cn.ysk.cashier.utils; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.HashMap; +import java.util.Map; + +public class MD5Util { + + + private static final Logger log = LoggerFactory.getLogger(MD5Util.class); + + private static final String hexDigIts[] = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}; + + public static String encrypt(String plainText) { + try { + return encrypt(plainText,true); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + log.error("MD5加密异常:",e); + return null; + } + } + + /** + * @Title: encrypt + * @Description: TODO(16位或32位密码) + * @param @param + * plainText + * @param @param + * flag true为32位,false为16位 + * @throws UnsupportedEncodingException + */ + public static String encrypt(String plainText, boolean flag) throws UnsupportedEncodingException { + try { + if (ObjectUtil.isEmpty(plainText)) { + return null; + } + MessageDigest md = MessageDigest.getInstance("MD5"); + String encrStr = byteArrayToHexString(md.digest(plainText.getBytes("UTF-8"))); + if (flag) + return encrStr; + else + return encrStr.substring(8, 24); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return null; + } + + } + + @SuppressWarnings("unchecked") + public static String encrypt(Object obj,String privateKey){ + if(obj==null){ + return null; + } + Map map = new HashMap(); + if(obj instanceof Map){ + map=(Map) obj; + }else{ + map = BeanUtil.transBean2Map(obj); + } + return encrypt(map,privateKey,true); + } + + /** + * @Title: encrypt + * @Description: TODO(16位或32位密码) + * @param @param + * plainText + * @param @param + * flag true为32位,false为16位 + * @throws UnsupportedEncodingException + */ + public static String encrypt(Map map, String privateKey,boolean flag) { + String param = null; + map.remove("sign"); + map.remove("encrypt"); + String result = BeanUtil.mapOrderStr(map); + if (StringUtils.isEmpty(result)) { + return null; + } + param = encrypt(encrypt(result)+privateKey); + if (flag) { + return param; + } else { + param = param.substring(8, 24); + } + return param; + } + + public static Map resultMap = new HashMap(); + @SuppressWarnings("unchecked") + public static Map mapFn(Map map) { + for (String key : map.keySet()) { + if (map.get(key) != null && map.get(key) != "" && (!key.equals("BTYPE") && !key.equals("SIGN"))) { + if (key.equals("INPUT")) { + if (map.get(key) != null) { + mapFn((Map) map.get(key)); + } + } else { + resultMap.put(key, map.get(key)); + } + } + } + return resultMap; + } + + @SuppressWarnings("unchecked") + public static boolean check(Object obj,String privateKey){ + Map map=new HashMap(); + if(obj==null){ + return false; + } + if(obj instanceof Map){ + map=(Map) obj; + }else{ + map = BeanUtil.transBean2Map(obj); + } + System.out.println("check:"+ JSONUtil.toJsonStr(map)); + String sign=(String)map.get("sign"); + if(sign==null){ + return false; + } + String str=encrypt(obj,privateKey); + System.out.println("check: "+str); + + return sign.equals(str)?true:false; + } + + public static String byteArrayToHexString(byte b[]){ + StringBuffer resultSb = new StringBuffer(); + for(int i = 0; i < b.length; i++){ + resultSb.append(byteToHexString(b[i])); + } + return resultSb.toString(); + } + + public static String byteToHexString(byte b){ + int n = b; + if(n < 0){ + n += 256; + } + int d1 = n / 16; + int d2 = n % 16; + return hexDigIts[d1] + hexDigIts[d2]; + } + + + +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java b/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java new file mode 100644 index 00000000..029f3c89 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java @@ -0,0 +1,46 @@ +package cn.ysk.cashier.utils; + +import cn.ysk.cashier.cons.rabbit.RabbitConstants; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.connection.CorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +@Slf4j +public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback { + private final RabbitTemplate rabbitTemplate; + + public RabbitMsgUtils(RabbitTemplate rabbitTemplate) { + this.rabbitTemplate = rabbitTemplate; + } + + @Override + public void confirm(CorrelationData correlationData, boolean ack, String cause) { + log.info(" 回调id:{}", correlationData); + if (ack) { + log.info("消息成功消费"); + } else { + log.info("消息消费失败:{}", cause); + } + } + + private void sendMsg(String exchange, String routingKey, T data, String note) { + CorrelationData correlationId = new CorrelationData(UUID.randomUUID().toString()); + log.info("开始发送{}mq消息, msgId: {}, exchange: {}, routingKey: {}, data: {}", correlationId.getId(), note, exchange, routingKey, data); + rabbitTemplate.convertAndSend(exchange, routingKey, JSONObject.toJSONString(data), correlationId); + } + + public void sendOrderCollectMsg(T data) { + sendMsg(RabbitConstants.CART_ORDER_COLLECT_PUT, RabbitConstants.CART_ORDER_COLLECT_ROUTINGKEY_PUT, data, "订单信息收集"); + } + + public void printTicket(String content){ + CorrelationData correlationId = new CorrelationData(UUID.randomUUID().toString()); + rabbitTemplate.convertAndSend(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, content, correlationId); + } + +} From fcfe0a2f53e35de4c2f1350a4bf69fe54f621bc9 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 20 Aug 2024 14:39:01 +0800 Subject: [PATCH 27/71] =?UTF-8?q?1.=E5=BA=93=E5=AD=98=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/dto/product/StockQueryDto.java | 2 ++ .../product/TbProductSkuRepository.java | 20 +++++++++++++++++++ .../impl/productimpl/StockServiceImpl.java | 5 ++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java index da4acb10..b1aed940 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java @@ -1,5 +1,6 @@ package cn.ysk.cashier.dto.product; +import cn.ysk.cashier.annotation.Query; import lombok.Data; import org.apache.commons.lang3.StringUtils; @@ -11,6 +12,7 @@ public class StockQueryDto { private Double num; private Integer isStock; private String categoryId; + private boolean sort; public void setName(String name) { if (StringUtils.isNotBlank(name)) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java index 7996d6a6..e17c6af0 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java @@ -80,6 +80,26 @@ public interface TbProductSkuRepository extends JpaRepository searchProStockV2(@Param("shopId") String shopId, @Param("proName") String proName, @Param("isStock")Integer isStock, @Param("categoryId") String categoryId, Pageable pageable); + @Query("SELECT new cn.ysk.cashier.vo.StockV2Vo(" + + "sku.id,pro.id,pro.coverImg,pro.name,unit.name,pro.typeEnum,sku.specSnap,pro.isStock, " + + "CASE WHEN pro.isDistribute = 1 THEN IFNULL(pro.stockNumber, 0) ELSE SUM(sku.stockNumber) END as number" + + ", pro.isDistribute, pro.isPauseSale, true, sku.warnLine, pro.lowPrice, CASE WHEN sum(sku.isGrounding) > 0 THEN true ELSE false END as isGrounding) " + + "from " + + "TbProduct pro " + + "LEFT JOIN TbProductSku sku on pro.id = sku.productId " + + "LEFT JOIN TbShopUnit unit ON pro.unitId = unit.id " + + "WHERE " + + "pro.shopId = :shopId " + + "AND pro.status = 1 " + + "AND sku.isDel = 0 " + + "AND (:categoryId IS NULL OR pro.categoryId = :categoryId) " + + "AND (:proName IS NULL OR pro.name LIKE %:proName%) " + + "AND (:isStock IS NULL OR pro.isStock = :isStock) " + + "group by pro.id " + + "order by number desc ") + Page searchProStockV2ByDesc(@Param("shopId") String shopId, @Param("proName") String proName, @Param("isStock")Integer isStock, + @Param("categoryId") String categoryId, Pageable pageable); + @Query("SELECT new cn.ysk.cashier.vo.StockV2Vo(" + "sku.id,pro.id,pro.coverImg,pro.name,unit.name,pro.typeEnum,sku.specSnap,pro.isStock, " + "CASE " + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java index f4fe27b4..19f70e4e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java @@ -73,7 +73,10 @@ public class StockServiceImpl implements StockService { @Override public Page queryAllV2(StockQueryDto criteria, Integer page, Integer size) { Pageable pageable = PageRequest.of(page, size); - return tbProductSkuRepository.searchProStockV2(criteria.getShopId(), criteria.getName(), criteria.getIsStock(), criteria.getCategoryId(), pageable); + if (criteria.isSort()) { + return tbProductSkuRepository.searchProStockV2ByDesc(criteria.getShopId(), criteria.getName(), criteria.getIsStock(), criteria.getCategoryId(), pageable); + } + return tbProductSkuRepository.searchProStockV2(criteria.getShopId(), criteria.getName(), criteria.getIsStock(), criteria.getCategoryId(), pageable); } @Override From d6b8919294100363a9408a9fc1af81ff96a57b55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Tue, 20 Aug 2024 14:46:12 +0800 Subject: [PATCH 28/71] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E7=94=A8=E6=88=B7=E8=B5=84=E9=87=91=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopUserServiceImpl.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java index f0dfc99a..e397431e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java @@ -196,7 +196,7 @@ public class TbShopUserServiceImpl implements TbShopUserService { public void modfiyAccount(Map map) { if(ObjectUtil.isNull(map)||ObjectUtil.isEmpty(map)||!map.containsKey("id")||!map.containsKey("type")||!map.containsKey("amount") ||ObjectUtil.isEmpty(map.get("id"))||ObjectUtil.isNull(map.get("id"))||ObjectUtil.isNull(map.get("type"))||ObjectUtil.isEmpty(map.get("type")) - ||ObjectUtil.isEmpty(map.get("amount"))||ObjectUtil.isNull(map.get("amount")) + ||ObjectUtil.isEmpty(map.get("amount"))||ObjectUtil.isNull(map.get("amount"))||!map.containsKey("operationType")||ObjectUtil.isEmpty(map.get("operationType"))||ObjectUtil.isNull(map.get("operationType")) ){ throw new BadRequestException("参数错误"); @@ -220,17 +220,18 @@ public class TbShopUserServiceImpl implements TbShopUserService { throw new BadRequestException("账户余额不足,请输入正确的金额"); } + String operationType=map.get("operationType").toString(); String type=map.get("type").toString(); TbShopUserFlow flow=new TbShopUserFlow(); - if("in".equals(type)){ + if("in".equals(operationType)){ flow.setType("+"); - flow.setBizName("充值退款"); - flow.setBizCode("manualIn"); + flow.setBizName("inMoney".equals(type)?"充值退款":"消费退款"); + flow.setBizCode("inMoney".equals(type)?"inMoneyIn":"consumeIn"); tbShopUser.setAmount(tbShopUser.getAmount().add(amount)); - }else if("out".equals(type)){ - flow.setBizCode("manualOut"); - flow.setBizName("消费"); + }else if("out".equals(operationType)){ + flow.setBizName("inMoney".equals(type)?"充值退款扣除":"消费扣除"); + flow.setBizCode("inMoney".equals(type)?"inMoneyOut":"consumeOut"); flow.setType("-"); tbShopUser.setAmount(tbShopUser.getAmount().subtract(amount)); }else { From b388b3a04433dca42b8abc19c4ffa5b68b98bfb4 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 20 Aug 2024 14:47:32 +0800 Subject: [PATCH 29/71] =?UTF-8?q?1.=E5=BA=93=E5=AD=98=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/ysk/cashier/dto/product/StockQueryDto.java | 2 +- .../ysk/cashier/service/impl/productimpl/StockServiceImpl.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java index b1aed940..77814e33 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java @@ -12,7 +12,7 @@ public class StockQueryDto { private Double num; private Integer isStock; private String categoryId; - private boolean sort; + private String sort; public void setName(String name) { if (StringUtils.isNotBlank(name)) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java index 19f70e4e..6ee1abff 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java @@ -1,5 +1,6 @@ package cn.ysk.cashier.service.impl.productimpl; +import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.dto.product.OutAndOnDto; import cn.ysk.cashier.dto.product.StockQueryDto; import cn.ysk.cashier.dto.product.TbProductDto; @@ -73,7 +74,7 @@ public class StockServiceImpl implements StockService { @Override public Page queryAllV2(StockQueryDto criteria, Integer page, Integer size) { Pageable pageable = PageRequest.of(page, size); - if (criteria.isSort()) { + if (StrUtil.isNotBlank(criteria.getSort()) && Boolean.parseBoolean(criteria.getSort())) { return tbProductSkuRepository.searchProStockV2ByDesc(criteria.getShopId(), criteria.getName(), criteria.getIsStock(), criteria.getCategoryId(), pageable); } return tbProductSkuRepository.searchProStockV2(criteria.getShopId(), criteria.getName(), criteria.getIsStock(), criteria.getCategoryId(), pageable); From 1cb0d9c80f6c4bab6897dbc022cdc8dfb8cd5bcf Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 20 Aug 2024 14:57:55 +0800 Subject: [PATCH 30/71] =?UTF-8?q?=E4=BC=9A=E5=91=98=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E8=B5=A0=E9=80=81=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/TbActivateProductQueryCriteria.java | 30 +++++++ .../mybatis/Handler/MyMetaObjectHandler.java | 22 +++++ .../ysk/cashier/mybatis/entity/Activate.java | 24 +----- .../mybatis/entity/TbActivateProduct.java | 83 +++++++++++++++++++ .../mapper/TbActivateProductMapper.java | 15 ++++ .../mybatis/rest/StorageController.java | 2 +- .../cashier/mybatis/service/ShopService.java | 3 +- .../service/TbActivateProductService.java | 17 ++++ .../mybatis/service/impl/ShopServiceImpl.java | 48 ++++++++++- .../impl/TbActivateProductServiceImpl.java | 27 ++++++ .../cashier/mybatis/vo/ActivateProsVo.java | 17 ++++ 11 files changed, 259 insertions(+), 29 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/dto/TbActivateProductQueryCriteria.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/Handler/MyMetaObjectHandler.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateProduct.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateProductMapper.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateProductService.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateProductServiceImpl.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/ActivateProsVo.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbActivateProductQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbActivateProductQueryCriteria.java new file mode 100644 index 00000000..b6f4b3a3 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/TbActivateProductQueryCriteria.java @@ -0,0 +1,30 @@ +package cn.ysk.cashier.dto; + +import java.util.Date; + +import lombok.Data; + +/** + * 活动赠送商品表(TbActivateProduct)表查询类 + * + * @author ww + * @since 2024-08-20 11:27:40 + */ +@Data +public class TbActivateProductQueryCriteria { + + private Integer id; + //活动Id + private Integer activateId; + //商品id + private Integer productId; + //数量 + private Integer num; + + private Date createTime; + + private Date updateTime; + private long page; + private long size; +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/Handler/MyMetaObjectHandler.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/Handler/MyMetaObjectHandler.java new file mode 100644 index 00000000..36a34034 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/Handler/MyMetaObjectHandler.java @@ -0,0 +1,22 @@ +package cn.ysk.cashier.mybatis.Handler; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.util.Date; + +@Component +public class MyMetaObjectHandler implements MetaObjectHandler { + + @Override + public void insertFill(MetaObject metaObject) { + this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); + } + + @Override + public void updateFill(MetaObject metaObject) { + this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); + + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/Activate.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/Activate.java index 8252f2fa..214a96ee 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/Activate.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/Activate.java @@ -1,6 +1,5 @@ package cn.ysk.cashier.mybatis.entity; -import cn.ysk.cashier.utils.ListUtil; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -8,12 +7,9 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; -import org.apache.commons.lang3.StringUtils; -import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.List; -import java.util.stream.Collectors; @Data @EqualsAndHashCode(callSuper = true) @@ -28,26 +24,8 @@ public class Activate extends Model { private BigDecimal handselNum; private String handselType; private String isDel; - private String isUser; //是否赠送商品 0否 1是 private Integer isGiftPro; - private String productIds; @TableField(exist = false) - private List prodIds; - - public void setProductIds(String productIds) { - this.productIds = productIds; - if(StringUtils.isNotBlank(productIds)){ - prodIds=ListUtil.stringChangeIntegerList(productIds); - } - } - - public void setProdIds(List prodIds) { - this.prodIds = prodIds; - if(!CollectionUtils.isEmpty(prodIds)){ - productIds="["+prodIds.stream() - .map(String::valueOf) - .collect(Collectors.joining(","))+"]"; - } - } + private List products; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateProduct.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateProduct.java new file mode 100644 index 00000000..952423a4 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbActivateProduct.java @@ -0,0 +1,83 @@ +package cn.ysk.cashier.mybatis.entity; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; + +/** + * 活动赠送商品表(TbActivateProduct)表实体类 + * + * @author ww + * @since 2024-08-20 11:27:40 + */ +@SuppressWarnings("serial") +public class TbActivateProduct extends Model { + + private Integer id; + //活动Id + private Integer activateId; + //商品id + private Integer productId; + //数量 + private Integer num; + + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + @TableField(fill = FieldFill.UPDATE) + private Date updateTime; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActivateId() { + return activateId; + } + + public void setActivateId(Integer activateId) { + this.activateId = activateId; + } + + public Integer getProductId() { + return productId; + } + + public void setProductId(Integer productId) { + this.productId = productId; + } + + public Integer getNum() { + return num; + } + + public void setNum(Integer num) { + this.num = num; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateProductMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateProductMapper.java new file mode 100644 index 00000000..71e3d676 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbActivateProductMapper.java @@ -0,0 +1,15 @@ +package cn.ysk.cashier.mybatis.mapper; + +import cn.ysk.cashier.mybatis.entity.TbActivateProduct; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 活动赠送商品表(TbActivateProduct)表数据库访问层 + * + * @author ww + * @since 2024-08-20 11:27:40 + */ +public interface TbActivateProductMapper extends BaseMapper { + +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/rest/StorageController.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/rest/StorageController.java index a9fefcc7..d6d3631e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/rest/StorageController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/rest/StorageController.java @@ -48,7 +48,7 @@ public class StorageController { } @PostMapping("/modityActivate") public ResponseEntity modityActivate(@RequestBody Activate activate){ - if (activate.getIsGiftPro() != null && activate.getIsGiftPro() == 1 && CollectionUtils.isEmpty(activate.getProdIds())) + if (activate.getIsGiftPro() != null && activate.getIsGiftPro() == 1 && CollectionUtils.isEmpty(activate.getProducts())) throw new BadRequestException("赠送商品不可为空"); String userName = SecurityUtils.getCurrentUsername(); shopService.modityActivate(activate); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/ShopService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/ShopService.java index 93a8462d..a0588b83 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/ShopService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/ShopService.java @@ -2,6 +2,7 @@ package cn.ysk.cashier.mybatis.service; import cn.ysk.cashier.mybatis.entity.Activate; import cn.ysk.cashier.mybatis.entity.StorageVo; +import cn.ysk.cashier.mybatis.vo.ActivateProsVo; import cn.ysk.cashier.pojo.product.TbProduct; import org.springframework.data.domain.Pageable; @@ -25,5 +26,5 @@ public interface ShopService { void modityActivate(Activate activate); - List findActivatePros(Integer activate); + List findActivatePros(Integer activate); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateProductService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateProductService.java new file mode 100644 index 00000000..14781817 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbActivateProductService.java @@ -0,0 +1,17 @@ +package cn.ysk.cashier.mybatis.service; + +import cn.ysk.cashier.mybatis.entity.TbActivateProduct; +import com.baomidou.mybatisplus.extension.service.IService; + + +/** + * 活动赠送商品表(TbActivateProduct)表服务接口 + * + * @author ww + * @since 2024-08-20 11:27:40 + */ +public interface TbActivateProductService extends IService { + + +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/ShopServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/ShopServiceImpl.java index 485d762c..11477210 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/ShopServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/ShopServiceImpl.java @@ -1,8 +1,12 @@ package cn.ysk.cashier.mybatis.service.impl; import cn.ysk.cashier.mybatis.entity.Activate; +import cn.ysk.cashier.mybatis.entity.TbActivateProduct; import cn.ysk.cashier.mybatis.mapper.*; +import cn.ysk.cashier.mybatis.service.TbActivateProductService; +import cn.ysk.cashier.mybatis.vo.ActivateProsVo; import cn.ysk.cashier.pojo.product.TbProduct; +import cn.ysk.cashier.pojo.product.TbProductSku; import cn.ysk.cashier.pojo.shop.TbMerchantAccount; import cn.ysk.cashier.repository.product.TbProductRepository; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -19,7 +23,9 @@ import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * @author admin @@ -40,6 +46,8 @@ public class ShopServiceImpl implements ShopService { private ActivateMapper activateMapper; @Autowired private TbProductRepository tbProductRepository; + @Resource + private TbActivateProductService actProductService; @Override public Object findStorage(Integer shopId, String account, Pageable pageable) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -128,13 +136,45 @@ public class ShopServiceImpl implements ShopService { activate.setMaxNum(activate.getMinNum()); activateMapper.insert(activate); } + if(!CollectionUtils.isEmpty(activate.getProducts())){ + List collect = new ArrayList<>(); + for (TbActivateProduct product : activate.getProducts()) { + product.setActivateId(activate.getId()); + if (product.getId() != null) collect.add(product.getId()); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("activate_id",activate.getId()); + List actProducts = actProductService.list(queryWrapper); + for (TbActivateProduct actProduct : actProducts) { + if (!collect.contains(actProduct.getId())) { + actProductService.removeById(actProduct.getId()); + } + } + actProductService.saveOrUpdateBatch(activate.getProducts()); + } } @Override - public List findActivatePros(Integer activateId) { - Activate activate = activateMapper.selectById(activateId); - if (!CollectionUtils.isEmpty(activate.getProdIds())){ - return tbProductRepository.findByIds(activate.getProdIds()); + public List findActivatePros(Integer activateId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("activate_id", activateId); + List actProducts = actProductService.list(queryWrapper); + if (!CollectionUtils.isEmpty(actProducts)) { + Map map = actProducts.stream().collect( + Collectors.toMap( + TbActivateProduct::getProductId, + TbActivateProduct::getNum, + (existing, replacement) -> existing)); + if (!CollectionUtils.isEmpty(map)) { + List products = tbProductRepository.findByIds(new ArrayList<>(map.keySet())); + List results= new ArrayList<>(); + for (TbProduct product : products) { + ActivateProsVo pro =new ActivateProsVo(product.getId(),product.getName(),product.getCoverImg()); + pro.setNum(map.get(pro.getId())); + results.add(pro); + } + return results; + } } return new ArrayList<>(); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateProductServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateProductServiceImpl.java new file mode 100644 index 00000000..ec780b6c --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbActivateProductServiceImpl.java @@ -0,0 +1,27 @@ +package cn.ysk.cashier.mybatis.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.ysk.cashier.mybatis.mapper.TbActivateProductMapper; +import cn.ysk.cashier.mybatis.entity.TbActivateProduct; +import cn.ysk.cashier.mybatis.service.TbActivateProductService; +import org.springframework.stereotype.Service; +import org.apache.commons.lang3.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import cn.ysk.cashier.dto.TbActivateProductQueryCriteria; +import org.springframework.beans.factory.annotation.Autowired; +import cn.ysk.cashier.utils.PageUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.util.Map; + +/** + * 活动赠送商品表(TbActivateProduct)表服务实现类 + * + * @author ww + * @since 2024-08-20 11:27:40 + */ +@Service("tbActivateProductService") +public class TbActivateProductServiceImpl extends ServiceImpl implements TbActivateProductService { + +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/ActivateProsVo.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/ActivateProsVo.java new file mode 100644 index 00000000..2292ce20 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/vo/ActivateProsVo.java @@ -0,0 +1,17 @@ +package cn.ysk.cashier.mybatis.vo; + +import lombok.Data; + +@Data +public class ActivateProsVo { + private Integer id; + private String name; + private String coverImg; + private Integer num; + + public ActivateProsVo(Integer id, String name, String coverImg) { + this.id = id; + this.name = name; + this.coverImg = coverImg; + } +} From aa7c5d3744453408d5ffcce8197b454bb6ba6efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Tue, 20 Aug 2024 15:20:04 +0800 Subject: [PATCH 31/71] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E7=94=A8=E6=88=B7=E8=B5=84=E9=87=91=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/controller/shop/TbShopUserController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index c45c7de8..15f0a5d5 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -101,7 +101,7 @@ public class TbShopUserController { @PostMapping("midfiyAccount") @ApiOperation("增加扣减会员余额") - public ResponseEntity midfiyAccount(Map map){ + public ResponseEntity midfiyAccount(@RequestBody Map map){ tbShopUserService.modfiyAccount(map); return new ResponseEntity<>(HttpStatus.OK); } From 972ab851c8929f1399be381e67e9859599685971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Tue, 20 Aug 2024 15:30:21 +0800 Subject: [PATCH 32/71] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E7=94=A8=E6=88=B7=E8=B5=84=E9=87=91=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/shopimpl/TbShopUserServiceImpl.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java index e397431e..f33a6e4b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java @@ -214,13 +214,17 @@ public class TbShopUserServiceImpl implements TbShopUserService { if(ObjectUtil.isNull(tbShopUser)){ throw new BadRequestException("不存在的会员信息"); } + String operationType=map.get("operationType").toString(); BigDecimal amount=new BigDecimal(map.get("amount").toString()); - if(amount.compareTo(tbShopUser.getAmount())>0){ - throw new BadRequestException("账户余额不足,请输入正确的金额"); + if("out".equals(operationType)){ + if(amount.compareTo(tbShopUser.getAmount())>0){ + throw new BadRequestException("账户余额不足,请输入正确的金额"); + } } - String operationType=map.get("operationType").toString(); + + String type=map.get("type").toString(); TbShopUserFlow flow=new TbShopUserFlow(); From f00ad6a46ce64de2ccc3c221b2b9df721c9631d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Tue, 20 Aug 2024 16:13:13 +0800 Subject: [PATCH 33/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=91=98=E5=B7=A5?= =?UTF-8?q?=E6=8A=98=E6=89=A3=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/shop/TbPlussShopStaffDto.java | 2 ++ .../main/java/cn/ysk/cashier/pojo/shop/TbPlussShopStaff.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbPlussShopStaffDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbPlussShopStaffDto.java index 2167d8b0..64457292 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbPlussShopStaffDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbPlussShopStaffDto.java @@ -49,6 +49,8 @@ public class TbPlussShopStaffDto implements Serializable { /** 密码 */ private String password; + private String discountType; + /** 最大优惠金额 */ private BigDecimal maxDiscountAmount; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPlussShopStaff.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPlussShopStaff.java index 8f36c074..5eb0a5d8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPlussShopStaff.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/shop/TbPlussShopStaff.java @@ -57,6 +57,10 @@ public class TbPlussShopStaff implements Serializable { @ApiModelProperty(value = "密码") private String password; + @Column(name = "`discount_type`") + @ApiModelProperty(value = "优惠类型 1 折扣 0 金额") + private String discountType; + @Column(name = "`max_discount_amount`") @ApiModelProperty(value = "最大优惠金额") private BigDecimal maxDiscountAmount; From 376af15266b8de8e30ce3ac02f996fd279a86522 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 20 Aug 2024 17:05:36 +0800 Subject: [PATCH 34/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=90=8E=E4=BB=98=E6=AC=BE=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/product/TbPlaceController.java | 22 +++++++- .../cashier/dto/shoptable/CreateOrderDTO.java | 2 + .../cn/ysk/cashier/enums/TableStateEnum.java | 15 ++++++ .../mybatis/mapper/MpShopTableMapper.java | 7 +++ .../ysk/cashier/pojo/order/TbOrderInfo.java | 2 + .../impl/shopimpl/TbShopTableServiceImpl.java | 53 ++++++++++++++++--- .../cn/ysk/cashier/utils/RabbitMsgUtils.java | 4 +- 7 files changed, 95 insertions(+), 10 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/MpShopTableMapper.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 69199a2c..31002bc9 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 @@ -2,11 +2,15 @@ package cn.ysk.cashier.controller.product; import cn.ysk.cashier.annotation.AnonymousAccess; import cn.ysk.cashier.annotation.Log; +import cn.ysk.cashier.cons.rabbit.RabbitConstants; import cn.ysk.cashier.dto.shoptable.*; import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.service.product.TbProductService; import cn.ysk.cashier.service.shop.TbShopTableService; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.ApiOperation; +import org.springframework.amqp.rabbit.connection.CorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.Validator; @@ -14,6 +18,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.UUID; @RestController @RequestMapping("/api/place") @@ -38,10 +43,11 @@ public class TbPlaceController { return new ResponseEntity<>(tbProductService.activateProduct(page, size, categoryId, shopId, productId),HttpStatus.OK); } - public TbPlaceController(TbShopTableService tbShopTableService, TbProductService tbProductService, Validator validator) { + public TbPlaceController(TbShopTableService tbShopTableService, TbProductService tbProductService, Validator validator, RabbitTemplate rabbitTemplate) { this.tbShopTableService = tbShopTableService; this.tbProductService = tbProductService; this.validator = validator; + this.rabbitTemplate = rabbitTemplate; } @AnonymousAccess @@ -179,6 +185,7 @@ public class TbPlaceController { ) { return ResponseEntity.ok(tbShopTableService.pay(payDTO)); } + @AnonymousAccess @PutMapping("/updateVip") @Log("代客下单 查询购物车") @@ -189,4 +196,17 @@ public class TbPlaceController { return ResponseEntity.ok(tbShopTableService.updateVip(updateVipDTO)); } + private final RabbitTemplate rabbitTemplate; + @AnonymousAccess +@GetMapping("/test") + public void test() { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("type", "create"); + jsonObject.put("orderId", "2980"); + rabbitTemplate.convertAndSend(RabbitConstants.CART_ORDER_COLLECT_PUT, RabbitConstants.CART_ORDER_COLLECT_ROUTINGKEY_PUT, jsonObject.toJSONString(), new CorrelationData(UUID.randomUUID().toString())); + + rabbitTemplate.convertAndSend(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, "2980", new CorrelationData(UUID.randomUUID().toString())); + + } + } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/CreateOrderDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/CreateOrderDTO.java index 00ef438b..780ee187 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/CreateOrderDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/CreateOrderDTO.java @@ -15,4 +15,6 @@ public class CreateOrderDTO { @NotEmpty private Long tableId; private String note; + private boolean postPay; + private boolean print; } 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 new file mode 100644 index 00000000..06805e2c --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java @@ -0,0 +1,15 @@ +package cn.ysk.cashier.enums; + +public enum TableStateEnum { + IDLE("idle"), + CLOSED("closed"), PAYING("paying"); + private String state = "closed"; + + TableStateEnum(String state) { + this.state = state; + } + + public String getState() { + return state; + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/MpShopTableMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/MpShopTableMapper.java new file mode 100644 index 00000000..a796853d --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/MpShopTableMapper.java @@ -0,0 +1,7 @@ +package cn.ysk.cashier.mybatis.mapper; + +import cn.ysk.cashier.pojo.shop.TbShopTable; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface MpShopTableMapper extends BaseMapper { +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbOrderInfo.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbOrderInfo.java index bdf44d16..4ac4f9e8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbOrderInfo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbOrderInfo.java @@ -226,6 +226,8 @@ public class TbOrderInfo implements Serializable { @Column(name = "`is_use_coupon`") @ApiModelProperty(value = "是否使用优惠券") private String isUseCoupon; + @Column(name = "`use_type`") + private String useType; public void copy(TbOrderInfo source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } 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 c14352b7..65d4cec8 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 @@ -19,11 +19,13 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.config.security.security.TokenProvider; import cn.ysk.cashier.cons.RedisConstant; import cn.ysk.cashier.cons.rabbit.RabbitConstants; import cn.ysk.cashier.dto.shoptable.*; import cn.ysk.cashier.enums.ShopWxMsgTypeEnum; +import cn.ysk.cashier.enums.TableStateEnum; import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.entity.TbShopOpenId; import cn.ysk.cashier.mybatis.mapper.*; @@ -101,11 +103,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { private final WxAccountUtil wxAccountUtil; private final WxMsgUtils wxMsgUtils; private final TbShopPayTypeRepository payTypeRepository; + private final MpShopTableMapper mpShopTableMapper; /** * 桌码前缀 */ private final String QRCODE = "https://kysh.sxczgkj.cn/codeplate?code="; + private final RabbitMsgUtils rabbitMsgUtils; @Override public Map queryAll(TbShopTableQueryCriteria criteria, Pageable pageable) { @@ -276,8 +280,26 @@ public class TbShopTableServiceImpl implements TbShopTableService { return tbCashierCart; } + /** + * 台桌状态校验 + * @param tableId 桌码 + * @return z + */ + private TbShopTable checkTableIsOpen(String tableId) { + TbShopTable shopTable = tbShopTableRepository.findByQrcode(tableId); + if (shopTable == null) { + throw new BadRequestException("桌码不存在,桌码" + tableId); + } + if (!shopTable.getStatus().equals("opening") && !shopTable.getStatus().equals("idle")) { + throw new BadRequestException("当前台桌非开台状态"); + } + return shopTable; + } + @Override public TbCashierCart addCartForUser(AddCartDTO addCartDTO) { + checkTableIsOpen(addCartDTO.getTableId()); + TbProductSku productSku = productMapper.selectSkuByIdAndShopId(addCartDTO.getShopId(), addCartDTO.getSkuId()); TbProduct product = productMapper.selectByIdAndShopId(addCartDTO.getShopId(), addCartDTO.getProductId()); @@ -291,11 +313,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("商品库存不足"); } - TbShopTable shopTable = tbShopTableRepository.findByQrcode(addCartDTO.getTableId()); - if (shopTable == null) { - throw new BadRequestException("桌码不存在,桌码" + addCartDTO.getTableId()); - } - LambdaQueryWrapper query = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, addCartDTO.getShopId()) .eq(TbCashierCart::getSkuId, addCartDTO.getSkuId()) @@ -774,6 +791,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setTableId(String.valueOf(createOrderDTO.getTableId())); orderInfo.setSendType("table"); orderInfo.setOrderType("cash"); + orderInfo.setUseType(createOrderDTO.isPostPay() ? "postPay" : "afterPay"); orderInfo.setShopId(createOrderDTO.getShopId().toString()); orderInfo.setRefundAble(1); orderInfo.setTradeDay(day); @@ -784,7 +802,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { } - // 添加订单详细数据 orderId = orderInfo.getId(); for (TbOrderDetail orderDetail : orderDetails) { @@ -816,6 +833,16 @@ public class TbShopTableServiceImpl implements TbShopTableService { // 推送耗材信息 pushConsMsg(orderInfo, cashierCarts); + + // 后付款订单,修改台桌状态并打票 + if (createOrderDTO.isPostPay()) { + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, createOrderDTO.getTableId()) + .set(TbShopTable::getStatus, "opening")); + + rabbitMsgUtils.printTicket(String.valueOf(orderId)); + } + return orderInfo; } @@ -947,6 +974,10 @@ public class TbShopTableServiceImpl implements TbShopTableService { return new BadRequestException("此订单不处于未支付状态"); } + + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, orderInfo.getTableId()) + .set(TbShopTable::getStatus, TableStateEnum.PAYING.getState())); // int count = shopInfoRepository.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash"); // if (count < 1) { // return Result.fail(CodeEnum.PAYTYPENOEXIST); @@ -977,13 +1008,21 @@ public class TbShopTableServiceImpl implements TbShopTableService { rabbitTemplate.convertAndSend(RabbitConstants.CART_ORDER_COLLECT_PUT, RabbitConstants.CART_ORDER_COLLECT_ROUTINGKEY_PUT, jsonObject.toJSONString(), new CorrelationData(UUID.randomUUID().toString())); // 打印消息 - rabbitTemplate.convertAndSend(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, payDTO.getOrderId().toString(), new CorrelationData(UUID.randomUUID().toString())); + if (StrUtil.isBlank(orderInfo.getUseType()) || orderInfo.getUseType().equals("afterPay")) { + rabbitTemplate.convertAndSend(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, payDTO.getOrderId().toString(), new CorrelationData(UUID.randomUUID().toString())); + } // 发送库存记录mq消息 JSONObject mqData = new JSONObject(); mqData.put("orderId", payDTO.getOrderId()); mqData.put("type", "pc"); rabbitTemplate.convertAndSend(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD_SALE, mqData.toJSONString(), new CorrelationData(UUID.randomUUID().toString())); + + // 修改台桌状态 + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, orderInfo.getTableId()) + .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); + return null; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java b/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java index 029f3c89..8f0b7c22 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java @@ -38,9 +38,9 @@ public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback { sendMsg(RabbitConstants.CART_ORDER_COLLECT_PUT, RabbitConstants.CART_ORDER_COLLECT_ROUTINGKEY_PUT, data, "订单信息收集"); } - public void printTicket(String content){ + public void printTicket(String orderId){ CorrelationData correlationId = new CorrelationData(UUID.randomUUID().toString()); - rabbitTemplate.convertAndSend(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, content, correlationId); + rabbitTemplate.convertAndSend(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, orderId, correlationId); } } From beea5e902c5eb0f59d78a7f85b540e4b7365638d Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Tue, 20 Aug 2024 17:30:24 +0800 Subject: [PATCH 35/71] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E5=88=97=E8=A1=A8=20-=20=E4=BB=8EshopUser?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/controller/shop/TbShopUserController.java | 1 - .../cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java | 11 +++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index 0dbe5f8b..ee7d8fd9 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -50,7 +50,6 @@ public class TbShopUserController { @GetMapping("queryAllShopUser") @ApiOperation("查询商家用户") - @AnonymousGetMapping public ResponseEntity queryAllShopUser(TbShopUserQueryCriteria criteria) { return new ResponseEntity<>(tbShopUserService.queryShopUser(criteria), HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java index 0d6fa038..e9d4d8da 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java @@ -13,18 +13,17 @@ import org.apache.ibatis.annotations.Select; public interface ShopUserMapper extends BaseMapper { @Select("") Map selectUserSummary(@Param("shopId") String shopId, @Param("isVip") Integer isVip); + @Update("update tb_shop_user set amount=amount-#{orderAmount}, consume_amount=consume_amount+#{orderAmount} where id=#{vipUserId} and amount >= 0") + long decrBalance(@Param("vipUserId") Integer vipUserId, @Param("orderAmount") BigDecimal orderAmount); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java index aebeb931..275dab9e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java @@ -2,6 +2,10 @@ package cn.ysk.cashier.service; import cn.ysk.cashier.dto.ScanPayDTO; +import javax.validation.constraints.NotNull; + public interface TbPayService { void scanPay(ScanPayDTO scanPayDTO); + + void vipPay(@NotNull Integer shopId, @NotNull Integer orderId); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java index 3b2eca65..f6d34bee 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java @@ -1,40 +1,32 @@ package cn.ysk.cashier.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.ysk.cashier.dto.ScanPayDTO; import cn.ysk.cashier.exception.BadRequestException; +import cn.ysk.cashier.mybatis.entity.TbMShopUser; import cn.ysk.cashier.mybatis.entity.TbOrderPayment; -import cn.ysk.cashier.mybatis.mapper.TbCashierCartMapper; -import cn.ysk.cashier.mybatis.mapper.TbOrderDetailMapper; -import cn.ysk.cashier.mybatis.mapper.TbOrderInfoMapper; -import cn.ysk.cashier.mybatis.mapper.TbShopPayTypeMapper; +import cn.ysk.cashier.mybatis.entity.TbShopUserFlow; +import cn.ysk.cashier.mybatis.mapper.*; import cn.ysk.cashier.mybatis.service.TbOrderPaymentService; -import cn.ysk.cashier.mybatis.vo.pay.ScanPayReq; import cn.ysk.cashier.pojo.TbShopPayType; import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.pojo.order.TbOrderDetail; import cn.ysk.cashier.pojo.order.TbOrderInfo; import cn.ysk.cashier.pojo.shop.TbMerchantThirdApply; +import cn.ysk.cashier.pojo.shop.TbShopUser; import cn.ysk.cashier.repository.shop.TbMerchantThirdApplyRepository; import cn.ysk.cashier.service.TbPayService; -import cn.ysk.cashier.utils.BeanUtil; -import cn.ysk.cashier.utils.MD5Util; import cn.ysk.cashier.utils.RabbitMsgUtils; +import cn.ysk.cashier.utils.SnowFlakeUtil; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; -import java.math.BigDecimal; -import java.math.RoundingMode; +import javax.validation.constraints.NotNull; import java.util.List; -import java.util.Map; @Service @Slf4j @@ -61,7 +53,7 @@ public class TbPayServiceImpl implements TbPayService { private final RabbitMsgUtils rabbitMsgUtils; - public TbPayServiceImpl(TbOrderInfoMapper orderInfoMapper, TbCashierCartMapper cashierCartMapper, TbMerchantThirdApplyRepository merchantThirdApplyRepository, TbOrderPaymentService orderPaymentService, TbShopPayTypeMapper shopPayTypeMapper, TbOrderDetailMapper orderDetailMapper,RabbitTemplate rabbitTemplate, RabbitMsgUtils rabbitMsgUtils) { + public TbPayServiceImpl(TbOrderInfoMapper orderInfoMapper, TbCashierCartMapper cashierCartMapper, TbMerchantThirdApplyRepository merchantThirdApplyRepository, TbOrderPaymentService orderPaymentService, TbShopPayTypeMapper shopPayTypeMapper, TbOrderDetailMapper orderDetailMapper, RabbitTemplate rabbitTemplate, RabbitMsgUtils rabbitMsgUtils, TbMShopUserMapper shopUserMapper, TbShopUserFlowMapper shopUserFlowMapper) { this.orderInfoMapper = orderInfoMapper; this.cashierCartMapper = cashierCartMapper; this.merchantThirdApplyRepository = merchantThirdApplyRepository; @@ -70,6 +62,8 @@ public class TbPayServiceImpl implements TbPayService { this.orderDetailMapper = orderDetailMapper; this.rabbitTemplate = rabbitTemplate; this.rabbitMsgUtils = rabbitMsgUtils; + this.shopUserMapper = shopUserMapper; + this.shopUserFlowMapper = shopUserFlowMapper; } @Override @@ -293,4 +287,75 @@ public class TbPayServiceImpl implements TbPayService { // } } + + private final TbMShopUserMapper shopUserMapper; + private final TbShopUserFlowMapper shopUserFlowMapper; + + @Override + public void vipPay(@NotNull Integer shopId, @NotNull Integer orderId) { + + TbOrderInfo orderInfo = orderInfoMapper.selectById(orderId); + + if (ObjectUtil.isEmpty(orderInfo)) { + throw new BadRequestException("订单不存在"); + } + + if (!"unpaid".equals(orderInfo.getStatus())) { + throw new BadRequestException("订单非未支付状态"); + } + + + // 扣减会员余额 + TbMShopUser shopUser = shopUserMapper.selectOne(new LambdaUpdateWrapper() + .eq(TbMShopUser::getStatus, 1) + .eq(TbMShopUser::getId, orderInfo.getUserId())); + + if (shopUser == null) { + throw new BadRequestException("用户不存在或已被禁用"); + } + + long flag = shopUserMapper.decrBalance(Integer.valueOf(orderInfo.getUserId()), orderInfo.getOrderAmount()); + if (flag < 1) { + throw new BadRequestException("余额不足或扣除余额失败"); + } + + TbShopUserFlow userFlow = new TbShopUserFlow(); + userFlow.setAmount(orderInfo.getOrderAmount()); + userFlow.setBalance(shopUser.getAmount()); + userFlow.setShopUserId(shopUser.getId()); + userFlow.setBizCode("vipCardCash"); + userFlow.setBizName("代客下单会员余额支付"); + userFlow.setCreateTime(DateUtil.date()); + userFlow.setType("-"); + shopUserFlowMapper.insert(userFlow); + + orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayType("cash"); + orderInfo.setStatus("closed"); + orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); + orderInfoMapper.updateById(orderInfo); + //更新购物车状态 + int cartCount = cashierCartMapper.update(null, new LambdaUpdateWrapper() + .eq(TbCashierCart::getOrderId, orderId) + .set(TbCashierCart::getStatus, "final")); + + orderDetailMapper.update(null, new LambdaUpdateWrapper() + .eq(TbOrderDetail::getOrderId, orderId) + .set(TbOrderDetail::getStatus, "closed")); + log.info("更新购物车:{}", cartCount); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("token", null); + jsonObject.put("type", "create"); + jsonObject.put("orderId", orderId); + + rabbitMsgUtils.sendOrderCollectMsg(jsonObject); + rabbitMsgUtils.printTicket(String.valueOf(orderId)); + + // 发送库存记录mq消息 + JSONObject mqData = new JSONObject(); + mqData.put("orderId", orderId); + mqData.put("type", "pc"); + rabbitMsgUtils.sendStockMsg(mqData); + } } 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 a3e67612..2860f570 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 @@ -42,6 +42,7 @@ import cn.ysk.cashier.repository.order.TbCashierCartRepository; import cn.ysk.cashier.repository.product.TbProductRepository; import cn.ysk.cashier.repository.product.TbProductSkuRepository; import cn.ysk.cashier.repository.shop.TbShopInfoRepository; +import cn.ysk.cashier.service.impl.TbPayServiceImpl; import cn.ysk.cashier.utils.*; import cn.ysk.cashier.vo.PendingCountVO; import com.alibaba.fastjson.JSONObject; @@ -110,6 +111,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { */ private final String QRCODE = "https://kysh.sxczgkj.cn/codeplate?code="; private final RabbitMsgUtils rabbitMsgUtils; + private final TbPayServiceImpl tbPayServiceImpl; @Override public Map queryAll(TbShopTableQueryCriteria criteria, Pageable pageable) { @@ -395,6 +397,17 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public void removeCart(RemoveCartDTO removeCartDTO) { // 会员点单 + TbCashierCart cashierCart = cashierCartMapper.selectOne(new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, removeCartDTO.getShopId()) + .eq(TbCashierCart::getId, removeCartDTO.getCartId())); + if (cashierCart == null) { + throw new BadRequestException("购物车商品不存在"); + } + + if (cashierCart.getOrderId() != null) { + orderDetailMapper.delete(new LambdaQueryWrapper() + .eq(TbOrderDetail::getOrderId, cashierCart.getOrderId())); + } cashierCartMapper.delete(new LambdaQueryWrapper().eq(TbCashierCart::getShopId, removeCartDTO.getShopId()) .eq(TbCashierCart::getId, removeCartDTO.getCartId())); } @@ -419,7 +432,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { Integer size, Integer shopId, Integer vipUserId, String masterId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getTableId, tableId) - .in(TbCashierCart::getStatus, "create", "refund") + .in(TbCashierCart::getStatus, "create") .eq(TbCashierCart::getMasterId, masterId) .eq(TbCashierCart::getShopId, shopId) .and(query -> { @@ -808,6 +821,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { String orderNo = generateOrderNumber(); orderInfo = new TbOrderInfo(); orderInfo.setOrderNo(orderNo); + orderInfo.setUseType(createOrderDTO.isPostPay() ? "postPay" : "afterPay"); orderInfo.setAmount(totalAmount); orderInfo.setPackFee(packAMount); orderInfo.setSettlementAmount(totalAmount); @@ -824,6 +838,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setMasterId(createOrderDTO.getMasterId()); orderInfo.setRemark(createOrderDTO.getNote()); orderInfo.setUserId(String.valueOf(createOrderDTO.getVipUserId())); + orderInfo.setCreatedAt(DateUtil.current()); orderInfoMapper.insert(orderInfo); } @@ -852,7 +867,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { cashierCartMapper.updateById(cashierCart); } if (isFirst) { - addGlobalCode(day, "pc", String.valueOf(createOrderDTO.getShopId())); + // 后付费,不增加当前台桌取餐号 + if (createOrderDTO.isPostPay()) { + addGlobalCode(day, "pc", String.valueOf(createOrderDTO.getShopId())); + }else { + String key = "SHOP:CODE:USER:pc" + ":" + createOrderDTO.getShopId() + ":" + day + ":" + orderInfo.getTableId(); + redisTemplate.delete(key); + } } // 推送耗材信息 @@ -860,7 +881,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { mpShopTableMapper.update(null, new LambdaUpdateWrapper() .eq(TbShopTable::getQrcode, createOrderDTO.getTableId()) - .set(TbShopTable::getStatus, TableStateEnum.PENDING.getState())); + .set(TbShopTable::getStatus, TableStateEnum.USING.getState())); + if (createOrderDTO.isPostPay()) { + rabbitMsgUtils.printTicket(String.valueOf(orderId)); + } + return orderInfo; } @@ -914,7 +939,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { createOrderDTO.setShopId(pendingDTO.getShopId()); createOrderDTO.setMasterId(pendingDTO.getMasterId()); createOrderDTO.setVipUserId(pendingDTO.getVipUserId()); - orderId = createOrder(createOrderDTO, false).getId(); + orderId = createOrder(createOrderDTO, true).getId(); } @@ -997,6 +1022,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Object pay(PayDTO payDTO) { + + switch (payDTO.getPayType()) { + case "vipPay": + tbPayServiceImpl.vipPay(payDTO.getShopId(), payDTO.getOrderId()); + return null; + } + TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper() .eq(TbOrderInfo::getId, payDTO.getOrderId()) .eq(TbOrderInfo::getShopId, payDTO.getShopId())); @@ -1058,9 +1090,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbShopTable::getQrcode, orderInfo.getTableId()) .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); - String day = DateUtils.getDay(); - String key = "SHOP:CODE:USER:pc" + ":" + payDTO.getShopId() + ":" + day + ":" + orderInfo.getTableId(); - redisTemplate.delete(key); + if ("postPay".equals(orderInfo.getUseType())) { + String day = DateUtils.getDay(); + String key = "SHOP:CODE:USER:pc" + ":" + payDTO.getShopId() + ":" + day + ":" + orderInfo.getTableId(); + redisTemplate.delete(key); + } return null; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java b/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java index ae7fd4cd..203ba29f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/utils/RabbitMsgUtils.java @@ -42,4 +42,8 @@ public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback { sendMsg(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, orderId, "打印票", false); } + public void sendStockMsg(T mqData) { + // 发送库存记录mq消息 + sendMsg(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD_SALE, mqData, "库存记录", true); + } } From 532dec69e376ecc4e3fa07b9e5322801d4472a0a Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 09:41:27 +0800 Subject: [PATCH 47/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9F=A5=E8=AF=A2=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 1 - 1 file changed, 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 2860f570..8ebd661c 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 @@ -433,7 +433,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getTableId, tableId) .in(TbCashierCart::getStatus, "create") - .eq(TbCashierCart::getMasterId, masterId) .eq(TbCashierCart::getShopId, shopId) .and(query -> { query.eq(TbCashierCart::getMasterId, masterId).or() From 614ffc9abfe568b4fe1857330e54d559676d324e Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 10:28:49 +0800 Subject: [PATCH 48/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9F=A5=E8=AF=A2=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/{TbMShopUser.java => TbShopUser.java} | 14 ++++++-------- .../cashier/mybatis/mapper/TbMShopUserMapper.java | 5 ++--- .../cashier/mybatis/mapper/TbOrderInfoMapper.java | 2 -- .../mybatis/service/TbMShopUserService.java | 4 ++-- .../service/impl/TbMShopUserServiceImpl.java | 4 ++-- .../ysk/cashier/service/impl/TbPayServiceImpl.java | 9 ++++----- .../main/resources/mapper/TbMShopUserMapper.xml | 2 +- 7 files changed, 17 insertions(+), 23 deletions(-) rename eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/{TbMShopUser.java => TbShopUser.java} (98%) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbMShopUser.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUser.java similarity index 98% rename from eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbMShopUser.java rename to eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUser.java index 19382b3b..5e3d56bd 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbMShopUser.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUser.java @@ -2,8 +2,6 @@ package cn.ysk.cashier.mybatis.entity; import java.io.Serializable; import java.math.BigDecimal; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import lombok.Data; @@ -14,7 +12,7 @@ import lombok.Data; */ @Table(name="tb_shop_user") @Data -public class TbMShopUser implements Serializable { +public class TbShopUser implements Serializable { /** * (随机) */ @@ -82,7 +80,7 @@ public class TbMShopUser implements Serializable { private String name; /** - * + * */ private String head_img; @@ -142,12 +140,12 @@ public class TbMShopUser implements Serializable { private Integer sort; /** - * + * */ private Long created_at; /** - * + * */ private Long updated_at; @@ -174,7 +172,7 @@ public class TbMShopUser implements Serializable { if (getClass() != that.getClass()) { return false; } - TbMShopUser other = (TbMShopUser) that; + TbShopUser other = (TbShopUser) that; return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) && (this.getAmount() == null ? other.getAmount() == null : this.getAmount().equals(other.getAmount())) && (this.getCredit_amount() == null ? other.getCredit_amount() == null : this.getCredit_amount().equals(other.getCredit_amount())) @@ -281,4 +279,4 @@ public class TbMShopUser implements Serializable { sb.append("]"); return sb.toString(); } -} \ No newline at end of file +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMShopUserMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMShopUserMapper.java index a308f567..e3b4285a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMShopUserMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMShopUserMapper.java @@ -1,7 +1,6 @@ package cn.ysk.cashier.mybatis.mapper; -import cn.ysk.cashier.dto.shop.TbShopUserQueryCriteria; -import cn.ysk.cashier.mybatis.entity.TbMShopUser; +import cn.ysk.cashier.mybatis.entity.TbShopUser; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -16,7 +15,7 @@ import java.util.Map; * @createDate 2024-07-06 11:46:46 * @Entity cn.ysk.cashier.mybatis.entity.TbMShopUser */ -public interface TbMShopUserMapper extends BaseMapper { +public interface TbMShopUserMapper extends BaseMapper { @Select("") Map selectUserSummary(@Param("shopId") String shopId, @Param("isVip") Integer isVip); - @Update("update tb_shop_user set amount=amount-#{orderAmount}, consume_amount=consume_amount+#{orderAmount} where id=#{vipUserId} and amount >= 0") + @Update("update tb_shop_user set amount=amount-#{orderAmount}, consume_amount=consume_amount+#{orderAmount} where id=#{vipUserId} and amount-#{orderAmount} >= 0") long decrBalance(@Param("vipUserId") Integer vipUserId, @Param("orderAmount") BigDecimal orderAmount); } From f8a902206411f91369a1613bddab806ee6299aa7 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 11:06:26 +0800 Subject: [PATCH 52/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E6=94=AF=E4=BB=98=EF=BC=8C=E5=8F=B0=E6=A1=8C?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ysk/cashier/pojo/order/TbCashierCart.java | 2 + .../cn/ysk/cashier/service/TbPayService.java | 6 +- .../service/impl/TbPayServiceImpl.java | 63 ++++++++++++++----- .../impl/shopimpl/TbShopTableServiceImpl.java | 55 ++++------------ 4 files changed, 67 insertions(+), 59 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java index 9dac0ef8..0496bf4d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java @@ -153,6 +153,8 @@ public class TbCashierCart implements Serializable { @Column(name = "`uuid`") @ApiModelProperty(value = "uuid") private String uuid; + @Column(name = "`sku_name`") + private String skuName; public void copy(TbCashierCart source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java index 275dab9e..44bdd047 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/TbPayService.java @@ -1,11 +1,15 @@ package cn.ysk.cashier.service; import cn.ysk.cashier.dto.ScanPayDTO; +import cn.ysk.cashier.dto.shoptable.PayDTO; +import cn.ysk.cashier.pojo.order.TbOrderInfo; import javax.validation.constraints.NotNull; public interface TbPayService { void scanPay(ScanPayDTO scanPayDTO); - void vipPay(@NotNull Integer shopId, @NotNull Integer orderId); + TbOrderInfo vipPay(@NotNull Integer shopId, @NotNull Integer orderId); + + TbOrderInfo cashPay(PayDTO payDTO); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java index 0c6ab6f8..b97b624f 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java @@ -3,6 +3,8 @@ package cn.ysk.cashier.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.ysk.cashier.dto.ScanPayDTO; +import cn.ysk.cashier.dto.shoptable.PayDTO; +import cn.ysk.cashier.enums.TableStateEnum; import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.entity.TbShopUser; import cn.ysk.cashier.mybatis.entity.TbOrderPayment; @@ -14,6 +16,7 @@ import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.pojo.order.TbOrderDetail; import cn.ysk.cashier.pojo.order.TbOrderInfo; import cn.ysk.cashier.pojo.shop.TbMerchantThirdApply; +import cn.ysk.cashier.pojo.shop.TbShopTable; import cn.ysk.cashier.repository.shop.TbMerchantThirdApplyRepository; import cn.ysk.cashier.service.TbPayService; import cn.ysk.cashier.utils.RabbitMsgUtils; @@ -50,9 +53,11 @@ public class TbPayServiceImpl implements TbPayService { private final TbOrderDetailMapper orderDetailMapper; private final RabbitTemplate rabbitTemplate; private final RabbitMsgUtils rabbitMsgUtils; + private final MpShopTableMapper mpShopTableMapper; - public TbPayServiceImpl(TbOrderInfoMapper orderInfoMapper, TbCashierCartMapper cashierCartMapper, TbMerchantThirdApplyRepository merchantThirdApplyRepository, TbOrderPaymentService orderPaymentService, TbShopPayTypeMapper shopPayTypeMapper, TbOrderDetailMapper orderDetailMapper, RabbitTemplate rabbitTemplate, RabbitMsgUtils rabbitMsgUtils, TbMShopUserMapper shopUserMapper, TbShopUserFlowMapper shopUserFlowMapper) { + + public TbPayServiceImpl(TbOrderInfoMapper orderInfoMapper, TbCashierCartMapper cashierCartMapper, TbMerchantThirdApplyRepository merchantThirdApplyRepository, TbOrderPaymentService orderPaymentService, TbShopPayTypeMapper shopPayTypeMapper, TbOrderDetailMapper orderDetailMapper, RabbitTemplate rabbitTemplate, RabbitMsgUtils rabbitMsgUtils, MpShopTableMapper mpShopTableMapper, TbMShopUserMapper shopUserMapper, TbShopUserFlowMapper shopUserFlowMapper) { this.orderInfoMapper = orderInfoMapper; this.cashierCartMapper = cashierCartMapper; this.merchantThirdApplyRepository = merchantThirdApplyRepository; @@ -61,6 +66,7 @@ public class TbPayServiceImpl implements TbPayService { this.orderDetailMapper = orderDetailMapper; this.rabbitTemplate = rabbitTemplate; this.rabbitMsgUtils = rabbitMsgUtils; + this.mpShopTableMapper = mpShopTableMapper; this.shopUserMapper = shopUserMapper; this.shopUserFlowMapper = shopUserFlowMapper; } @@ -291,7 +297,7 @@ public class TbPayServiceImpl implements TbPayService { private final TbShopUserFlowMapper shopUserFlowMapper; @Override - public void vipPay(@NotNull Integer shopId, @NotNull Integer orderId) { + public TbOrderInfo vipPay(@NotNull Integer shopId, @NotNull Integer orderId) { TbOrderInfo orderInfo = orderInfoMapper.selectById(orderId); @@ -341,20 +347,49 @@ public class TbPayServiceImpl implements TbPayService { orderDetailMapper.update(null, new LambdaUpdateWrapper() .eq(TbOrderDetail::getOrderId, orderId) .set(TbOrderDetail::getStatus, "closed")); - log.info("更新购物车:{}", cartCount); + return orderInfo; + } - JSONObject jsonObject = new JSONObject(); - jsonObject.put("token", null); - jsonObject.put("type", "create"); - jsonObject.put("orderId", orderId); + @Override + public TbOrderInfo cashPay(PayDTO payDTO) { + TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper() + .eq(TbOrderInfo::getId, payDTO.getOrderId()) + .eq(TbOrderInfo::getShopId, payDTO.getShopId())); - rabbitMsgUtils.sendOrderCollectMsg(jsonObject); - rabbitMsgUtils.printTicket(String.valueOf(orderId)); + if (orderInfo == null) { + throw new BadRequestException("订单信息不存在"); + } - // 发送库存记录mq消息 - JSONObject mqData = new JSONObject(); - mqData.put("orderId", orderId); - mqData.put("type", "pc"); - rabbitMsgUtils.sendStockMsg(mqData); + if (!"unpaid".equals(orderInfo.getStatus())) { + throw new BadRequestException("此订单不处于未支付状态"); + } + + + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, orderInfo.getTableId()) + .set(TbShopTable::getStatus, TableStateEnum.PAYING.getState())); +// int count = shopInfoRepository.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash"); +// if (count < 1) { +// return Result.fail(CodeEnum.PAYTYPENOEXIST); +// } + + orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayType("cash"); + orderInfo.setStatus("closed"); + orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); + orderInfoMapper.updateById(orderInfo); + + //更新购物车状态 + TbCashierCart cashierCart = new TbCashierCart(); + cashierCart.setStatus("final"); + int cartCount = cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper() + .eq(TbCashierCart::getOrderId, payDTO.getOrderId())); + + TbOrderDetail orderDetail = new TbOrderDetail(); + orderDetail.setStatus("closed"); + orderDetailMapper.update(orderDetail, new LambdaUpdateWrapper() + .eq(TbOrderDetail::getOrderId, payDTO.getOrderId())); + + return orderInfo; } } 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 8ebd661c..44baa54a 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 @@ -349,6 +349,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { tbCashierCart.setIsGift(String.valueOf(addCartDTO.isGift())); tbCashierCart.setSalePrice(productSku.getSalePrice()); tbCashierCart.setTotalAmount(new BigDecimal(addCartDTO.getNum()).multiply(productSku.getSalePrice())); + tbCashierCart.setSkuName(productSku.getSpecSnap()); if (!addCartDTO.isPack()) { tbCashierCart.setPackFee(BigDecimal.ZERO); } else { @@ -1022,60 +1023,26 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Object pay(PayDTO payDTO) { + TbOrderInfo orderInfo = null; switch (payDTO.getPayType()) { case "vipPay": - tbPayServiceImpl.vipPay(payDTO.getShopId(), payDTO.getOrderId()); - return null; + orderInfo = tbPayServiceImpl.vipPay(payDTO.getShopId(), payDTO.getOrderId()); + break; + case "cashPay": + orderInfo = tbPayServiceImpl.cashPay(payDTO); } - TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper() - .eq(TbOrderInfo::getId, payDTO.getOrderId()) - .eq(TbOrderInfo::getShopId, payDTO.getShopId())); - - if (orderInfo == null) { - throw new BadRequestException("订单信息不存在"); - } - - if (!"unpaid".equals(orderInfo.getStatus())) { - return new BadRequestException("此订单不处于未支付状态"); - } - - - mpShopTableMapper.update(null, new LambdaUpdateWrapper() - .eq(TbShopTable::getQrcode, orderInfo.getTableId()) - .set(TbShopTable::getStatus, TableStateEnum.PAYING.getState())); -// int count = shopInfoRepository.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash"); -// if (count < 1) { -// return Result.fail(CodeEnum.PAYTYPENOEXIST); -// } - - orderInfo.setPayAmount(orderInfo.getOrderAmount()); - orderInfo.setPayType("cash"); - orderInfo.setStatus("closed"); - orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); - orderInfoMapper.updateById(orderInfo); - - //更新购物车状态 - TbCashierCart cashierCart = new TbCashierCart(); - cashierCart.setStatus("final"); - int cartCount = cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper() - .eq(TbCashierCart::getOrderId, payDTO.getOrderId())); - - TbOrderDetail orderDetail = new TbOrderDetail(); - orderDetail.setStatus("closed"); - orderDetailMapper.update(orderDetail, new LambdaUpdateWrapper() - .eq(TbOrderDetail::getOrderId, payDTO.getOrderId())); - - log.info("更新购物车:{}", cartCount); + log.info("更新购物车"); JSONObject jsonObject = new JSONObject(); + jsonObject.put("token", null); jsonObject.put("type", "create"); - jsonObject.put("orderId", payDTO.getOrderId()); - rabbitTemplate.convertAndSend(RabbitConstants.CART_ORDER_COLLECT_PUT, RabbitConstants.CART_ORDER_COLLECT_ROUTINGKEY_PUT, jsonObject.toJSONString(), new CorrelationData(UUID.randomUUID().toString())); + jsonObject.put("orderId", orderInfo.getId()); // 打印消息 + rabbitMsgUtils.sendOrderCollectMsg(jsonObject); if (StrUtil.isBlank(orderInfo.getUseType()) || orderInfo.getUseType().equals("afterPay")) { - rabbitTemplate.convertAndSend(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, payDTO.getOrderId().toString(), new CorrelationData(UUID.randomUUID().toString())); + rabbitMsgUtils.printTicket(String.valueOf(orderInfo.getId())); } // 发送库存记录mq消息 From a2e16bf05de46bbb3ac33a4768f49eaa3ea94cbb Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 23 Aug 2024 11:34:37 +0800 Subject: [PATCH 53/71] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E5=95=86=E5=93=81=20=E5=90=8D=E7=A7=B0=20?= =?UTF-8?q?=E5=8F=98=E9=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/ysk/cashier/dto/order/TbOrderDetailDto.java | 3 +++ .../main/java/cn/ysk/cashier/pojo/order/TbOrderDetail.java | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderDetailDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderDetailDto.java index 896b3aba..08cff336 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderDetailDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbOrderDetailDto.java @@ -59,4 +59,7 @@ public class TbOrderDetailDto implements Serializable { /** 打包费 */ private BigDecimal packAmount; + + private Integer isVip; + } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbOrderDetail.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbOrderDetail.java index bdb1eef2..1fbe6c20 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbOrderDetail.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbOrderDetail.java @@ -103,6 +103,10 @@ public class TbOrderDetail implements Serializable { @ApiModelProperty(value = "退单数量") private Integer refundNumber; + @Column(name = "`is_vip`") + @ApiModelProperty(value = "isVip") + private Integer isVip; + public void copy(TbOrderDetail source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } From 28874a59f1a7b25616fa290e721516920af519a6 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 11:48:02 +0800 Subject: [PATCH 54/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=AD=E7=89=A9=E8=BD=A6=20=E4=B8=8D?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=98=A8=E6=97=A5=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 42 ++++++++++++++----- 1 file changed, 31 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 44baa54a..dbe19ecd 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 @@ -320,14 +320,19 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbCashierCart::getShopId, addCartDTO.getShopId()) .eq(TbCashierCart::getSkuId, addCartDTO.getSkuId()) .eq(TbCashierCart::getProductId, addCartDTO.getProductId()) - .eq(TbCashierCart::getTableId, addCartDTO.getTableId()); - if (addCartDTO.getVipUserId() != null) { - query.eq(TbCashierCart::getUserId, addCartDTO.getVipUserId()); - } else { - query.eq(TbCashierCart::getMasterId, addCartDTO.getMasterId()); - query.isNull(TbCashierCart::getUserId); - } - + .eq(TbCashierCart::getTableId, addCartDTO.getTableId()) + .and(query2 -> { + query2.and(query3 -> { + query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) + .eq(TbCashierCart::getMasterId, addCartDTO.getMasterId()); + }) + .or() + .and(query4 -> { + query4.isNull(TbCashierCart::getTradeDay) + .eq(TbCashierCart::getMasterId, ""); + }) + ; + }); TbCashierCart tbCashierCart = cashierCartMapper.selectOne(query); // 首次加入 if (tbCashierCart == null) { @@ -435,9 +440,17 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbCashierCart::getTableId, tableId) .in(TbCashierCart::getStatus, "create") .eq(TbCashierCart::getShopId, shopId) - .and(query -> { - query.eq(TbCashierCart::getMasterId, masterId).or() - .isNull(TbCashierCart::getMasterId); + .and(query2 -> { + query2.and(query3 -> { + query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) + .eq(TbCashierCart::getMasterId, masterId); + }) + .or() + .and(query4 -> { + query4.isNull(TbCashierCart::getTradeDay) + .eq(TbCashierCart::getMasterId, ""); + }) + ; }); // if (vipUserId != null) { @@ -839,6 +852,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setRemark(createOrderDTO.getNote()); orderInfo.setUserId(String.valueOf(createOrderDTO.getVipUserId())); orderInfo.setCreatedAt(DateUtil.current()); + TbMerchantAccount merchantAccount = merchantAccountMapper.selectOne(new LambdaQueryWrapper() + .eq(TbMerchantAccount::getShopId, createOrderDTO.getShopId()) + .eq(TbMerchantAccount::getStatus, 1)); + if (merchantAccount == null) { + throw new BadRequestException("商户信息不存在"); + } + orderInfo.setMerchantId(merchantAccount.getId().toString()); orderInfoMapper.insert(orderInfo); } From 64e89d5ed651a9eeb16c951bbb4075446feeb6f9 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 13:31:10 +0800 Subject: [PATCH 55/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=8F=96=E5=8D=95sql=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/shopimpl/TbShopTableServiceImpl.java | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 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 dbe19ecd..eb7038b0 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 @@ -284,6 +284,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { /** * 台桌状态校验 + * * @param tableId 桌码 * @return z */ @@ -323,15 +324,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbCashierCart::getTableId, addCartDTO.getTableId()) .and(query2 -> { query2.and(query3 -> { - query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) - .eq(TbCashierCart::getMasterId, addCartDTO.getMasterId()); + query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) + .eq(TbCashierCart::getMasterId, addCartDTO.getMasterId()); }) - .or() - .and(query4 -> { + .or((query4 -> { query4.isNull(TbCashierCart::getTradeDay) .eq(TbCashierCart::getMasterId, ""); - }) - ; + })); }); TbCashierCart tbCashierCart = cashierCartMapper.selectOne(query); // 首次加入 @@ -441,16 +440,14 @@ public class TbShopTableServiceImpl implements TbShopTableService { .in(TbCashierCart::getStatus, "create") .eq(TbCashierCart::getShopId, shopId) .and(query2 -> { - query2.and(query3 -> { + query2.or(query3 -> { query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) .eq(TbCashierCart::getMasterId, masterId); }) - .or() - .and(query4 -> { + .or((query4 -> { query4.isNull(TbCashierCart::getTradeDay) .eq(TbCashierCart::getMasterId, ""); - }) - ; + })); }); // if (vipUserId != null) { @@ -523,24 +520,26 @@ public class TbShopTableServiceImpl implements TbShopTableService { /** * 增加库存 + * * @param productId 商品id - * @param skuId sku - * @param addNum 增加的库存数量 + * @param skuId sku + * @param addNum 增加的库存数量 */ public void incrStock(Integer productId, Integer skuId, Integer addNum) { TbProduct product = productMapper.selectById(productId); if (product.getIsDistribute() == 1) { productMapper.incrStock(product.getId(), addNum); - }else { + } else { producSkutMapper.incrStock(skuId, addNum); } } /** * 减少库存 + * * @param productId 商品数据 - * @param skuId sku - * @param decrNum 减少的数量 + * @param skuId sku + * @param decrNum 减少的数量 */ public void decrStock(Integer productId, String skuId, int decrNum) { TbProduct product = productMapper.selectById(productId); @@ -549,15 +548,15 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (productMapper.decrStock(productId, decrNum) < 1) { throw new BadRequestException("库存不足,下单失败"); } - }else { + } else { productMapper.decrStockUnCheck(productId, decrNum); } - }else { + } else { if (product.getIsStock() == 1) { if (producSkutMapper.decrStock(String.valueOf(skuId), decrNum) < 1) { throw new BadRequestException("库存不足,下单失败"); } - }else { + } else { producSkutMapper.decrStockUnCheck(String.valueOf(skuId), decrNum); } } @@ -589,6 +588,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { /** * 更新库存 + * * @param cashierCart 购物车 * @return 是否是第一次添加的商品 */ @@ -618,6 +618,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { /** * 更新取餐号 + * * @param shopId 店铺id * @return 当前取餐号 */ @@ -679,7 +680,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { ); wxMsgUtils.aboardStockMsg(shopInfo.getShopName(), shopId, product.getName(), - product.getIsDistribute() == 1 ? product.getStockNumber()-num : (int) (productSku.getStockNumber() - num)); + product.getIsDistribute() == 1 ? product.getStockNumber() - num : (int) (productSku.getStockNumber() - num)); } } @@ -694,7 +695,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { String code = redisTemplate.opsForValue().get("SHOP:CODE:" + clientType + ":" + shopId + ":" + day); if (StrUtil.isBlank(code)) { redisTemplate.opsForValue().set("SHOP:CODE:" + clientType + ":" + shopId + ":" + day, "1"); - }else { + } else { redisTemplate.opsForValue().get("SHOP:CODE:" + clientType + ":" + shopId + ":" + (Integer.parseInt(code) + 1)); } redisTemplate.opsForValue().setIfAbsent("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + day, "1"); @@ -734,7 +735,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { JSONObject jsonObject = new JSONObject(); // 当前台桌码 String key = "SHOP:CODE:USER:pc" + ":" + shopId + ":" + day + ":" + tableId; - String userCode = redisTemplate.opsForValue().get(key); + String userCode = redisTemplate.opsForValue().get(key); if (StringUtils.isEmpty(userCode) || "null".equals(userCode) || "#null".equals(userCode)) { String code = "#" + generateOrderCode(day, "pc", String.valueOf(shopId)); @@ -830,7 +831,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setTradeDay(DateUtils.getDay()); orderInfo.setUserId(String.valueOf(createOrderDTO.getVipUserId())); orderInfoMapper.updateById(orderInfo); - }else { + } else { String orderNo = generateOrderNumber(); orderInfo = new TbOrderInfo(); orderInfo.setOrderNo(orderNo); @@ -890,7 +891,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { // 后付费,不增加当前台桌取餐号 if (createOrderDTO.isPostPay()) { addGlobalCode(day, "pc", String.valueOf(createOrderDTO.getShopId())); - }else { + } else { String key = "SHOP:CODE:USER:pc" + ":" + createOrderDTO.getShopId() + ":" + day + ":" + orderInfo.getTableId(); redisTemplate.delete(key); } @@ -911,8 +912,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { } - - @Override public Object pending(PendingDTO pendingDTO) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() @@ -924,7 +923,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } queryWrapper.eq(TbCashierCart::getOrderId, pendingDTO.getOrderId()); - }else { + } else { queryWrapper.eq(TbCashierCart::getTableId, pendingDTO.getTableId()) .eq(TbCashierCart::getStatus, "create") .eq(TbCashierCart::getTableId, pendingDTO.getTableId()) @@ -1110,7 +1109,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (updateVipDTO.getType().equals(0)) { queryWrapper.set(TbCashierCart::getUserId, null); queryWrapper.eq(TbCashierCart::getUserId, updateVipDTO.getVipUserId()); - }else { + } else { queryWrapper.set(TbCashierCart::getUserId, updateVipDTO.getVipUserId()); } return cashierCartMapper.update(null, queryWrapper); From e16d9dfcb1a5a2371e4f5cc793df847218351825 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 13:34:03 +0800 Subject: [PATCH 56/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E4=BC=9A=E5=91=98=E4=B8=BA?= =?UTF-8?q?null=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 | 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 eb7038b0..793eb24a 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 @@ -829,7 +829,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setFreightAmount(feeAmount); orderInfo.setProductAmount(saleAmount); orderInfo.setTradeDay(DateUtils.getDay()); - orderInfo.setUserId(String.valueOf(createOrderDTO.getVipUserId())); + orderInfo.setUserId(createOrderDTO.getVipUserId() == null ? null : String.valueOf(createOrderDTO.getVipUserId())); orderInfoMapper.updateById(orderInfo); } else { String orderNo = generateOrderNumber(); @@ -851,7 +851,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setTradeDay(day); orderInfo.setMasterId(createOrderDTO.getMasterId()); orderInfo.setRemark(createOrderDTO.getNote()); - orderInfo.setUserId(String.valueOf(createOrderDTO.getVipUserId())); + orderInfo.setUserId(createOrderDTO.getVipUserId() == null ? null : String.valueOf(createOrderDTO.getVipUserId())); orderInfo.setCreatedAt(DateUtil.current()); TbMerchantAccount merchantAccount = merchantAccountMapper.selectOne(new LambdaQueryWrapper() .eq(TbMerchantAccount::getShopId, createOrderDTO.getShopId()) From 01d92b3812af77ceb39ff93c8cb063d72d5c8310 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 14:14:59 +0800 Subject: [PATCH 57/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=8C=82=E5=8D=95=E5=88=97=E8=A1=A8=E6=A0=B9=E6=8D=AEtableId?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/controller/product/TbPlaceController.java | 5 +++-- .../service/impl/shopimpl/TbShopTableServiceImpl.java | 10 ++++++---- .../ysk/cashier/service/shop/TbShopTableService.java | 2 +- 3 files changed, 10 insertions(+), 7 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 0ed7237b..317ed545 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 @@ -116,9 +116,10 @@ public class TbPlaceController { @Log("代客下单 查询购物车") @ApiOperation("代客下单 查询购物车 /shop/table") public ResponseEntity getPendingCart( - @RequestParam Integer shopId + @RequestParam Integer shopId, + @RequestParam String tableId ) { - return ResponseEntity.ok(tbShopTableService.getCar(shopId)); + return ResponseEntity.ok(tbShopTableService.getCar(shopId, tableId)); } @AnonymousAccess 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 793eb24a..abcce67a 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 @@ -18,7 +18,6 @@ package cn.ysk.cashier.service.impl.shopimpl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.thread.ThreadUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.config.security.security.TokenProvider; import cn.ysk.cashier.cons.RedisConstant; @@ -60,7 +59,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Page; @@ -992,12 +990,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { } @Override - public Object getCar(Integer shopId) { + public Object getCar(Integer shopId, String tableId) { ArrayList> data = new ArrayList<>(); List pendingCountVOS = cashierCartMapper.countPending(shopId); List tbCashierCarts = cashierCartMapper.selectList(new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopId) + .eq(TbCashierCart::getTableId, tableId) .eq(TbCashierCart::getStatus, "refund")); ArrayList skuIds = new ArrayList<>(); @@ -1047,8 +1046,11 @@ public class TbShopTableServiceImpl implements TbShopTableService { case "vipPay": orderInfo = tbPayServiceImpl.vipPay(payDTO.getShopId(), payDTO.getOrderId()); break; - case "cashPay": + case "cash": orderInfo = tbPayServiceImpl.cashPay(payDTO); + break; + default: + throw new BadRequestException("未知支付方式"); } log.info("更新购物车"); 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 f1a7bca0..44cd95a4 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 @@ -114,7 +114,7 @@ public interface TbShopTableService { Object pending(PendingDTO pendingDTO); - Object getCar(Integer shopId); + Object getCar(Integer shopId, String tableId); Object getPayType(Integer shopId); From b4f113e8114fcb1096c8acfd342cdace98bbd129 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 14:23:35 +0800 Subject: [PATCH 58/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=8C=82=E5=8D=95=E5=88=97=E8=A1=A8=E6=A0=B9=E6=8D=AEtableId?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java | 4 ++-- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java index 68b0f273..d43bb77a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java @@ -20,9 +20,9 @@ public interface TbCashierCartMapper extends BaseMapper { " from tb_cashier_cart where table_id is not null and shop_id = #{shopId} and status = 'refund' group by shop_Id, master_id order by trade_day desc") List selectCar(@Param("shopId") Integer shopId); - @Select(" SELECT order_id orderId, pending_at, sum(total_amount) totalAmount, count(id) totalCount, count(total_number) totalNumber from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} " + + @Select(" SELECT order_id orderId, pending_at, sum(total_amount) totalAmount, count(id) totalCount, count(total_number) totalNumber from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} and table_id=#{tableId} " + " GROUP BY order_id ORDER BY trade_day") - List countPending(@Param("shopId") Integer shopId); + List countPending(@Param("shopId") Integer shopId, @Param("tableId") String tableId); @Select("select a.*, b.spec_snap from tb_cashier_cart as a left join tb_product_sku as b on a.sku_id=b.id where a.shop_id=#{shopId} and a.status='refund';") List selectPending(Integer shopId); 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 abcce67a..a2d4dc79 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 @@ -993,7 +993,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { public Object getCar(Integer shopId, String tableId) { ArrayList> data = new ArrayList<>(); - List pendingCountVOS = cashierCartMapper.countPending(shopId); + List pendingCountVOS = cashierCartMapper.countPending(shopId, tableId); List tbCashierCarts = cashierCartMapper.selectList(new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopId) .eq(TbCashierCart::getTableId, tableId) From 96791306f21c48369bf897f83348f8377e29db69 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 14:51:47 +0800 Subject: [PATCH 59/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=8C=82=E5=8D=95=E4=B9=8B=E5=90=8EmasterId=E6=9C=AA=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=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 | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 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 a2d4dc79..0ed1e89b 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 @@ -754,10 +754,15 @@ public class TbShopTableServiceImpl implements TbShopTableService { .eq(TbCashierCart::getShopId, createOrderDTO.getShopId()) .eq(TbCashierCart::getTableId, createOrderDTO.getTableId()) .in(TbCashierCart::getStatus, "create", "refund") - .and(query -> { - query.eq(TbCashierCart::getMasterId, createOrderDTO.getMasterId()) - .or(). - isNull(TbCashierCart::getMasterId); + .and(query2 -> { + query2.or(query3 -> { + query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) + .eq(TbCashierCart::getMasterId, createOrderDTO.getMasterId()); + }) + .or((query4 -> { + query4.isNull(TbCashierCart::getTradeDay) + .eq(TbCashierCart::getMasterId, ""); + })); }); // if (createOrderDTO.getVipUserId() != null) { // queryWrapper.eq(TbCashierCart::getUserId, createOrderDTO.getVipUserId()); @@ -925,9 +930,15 @@ public class TbShopTableServiceImpl implements TbShopTableService { queryWrapper.eq(TbCashierCart::getTableId, pendingDTO.getTableId()) .eq(TbCashierCart::getStatus, "create") .eq(TbCashierCart::getTableId, pendingDTO.getTableId()) - .and(query -> { - query.eq(TbCashierCart::getMasterId, pendingDTO.getMasterId()).or() - .isNull(TbCashierCart::getMasterId); + .and(query2 -> { + query2.or(query3 -> { + query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) + .eq(TbCashierCart::getMasterId, pendingDTO.getMasterId()); + }) + .or((query4 -> { + query4.isNull(TbCashierCart::getTradeDay) + .eq(TbCashierCart::getMasterId, ""); + })); }); // if (pendingDTO.getVipUserId() != null) { // queryWrapper.eq(TbCashierCart::getUserId, pendingDTO.getVipUserId()); @@ -1006,7 +1017,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { List skuList = productSkuRepository.findAllById(skuIds); - HashMap skuMap = new HashMap<>(); + LinkedHashMap skuMap = new LinkedHashMap<>(); skuList.forEach(item -> { skuMap.put(item.getId().toString(), item); }); From 98bc995b717d6c7253eaf7be838b908cb7bab5ef Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 14:57:51 +0800 Subject: [PATCH 60/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=8C=82=E5=8D=95=E5=88=97=E8=A1=A8=E6=95=B0=E9=87=8F=E4=B8=8D?= =?UTF-8?q?=E5=87=86=E7=A1=AEfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java index d43bb77a..c9455b3c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java @@ -20,7 +20,7 @@ public interface TbCashierCartMapper extends BaseMapper { " from tb_cashier_cart where table_id is not null and shop_id = #{shopId} and status = 'refund' group by shop_Id, master_id order by trade_day desc") List selectCar(@Param("shopId") Integer shopId); - @Select(" SELECT order_id orderId, pending_at, sum(total_amount) totalAmount, count(id) totalCount, count(total_number) totalNumber from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} and table_id=#{tableId} " + + @Select(" SELECT order_id orderId, pending_at, sum(total_amount) totalAmount, count(id) totalCount, sum(total_number) totalNumber from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} and table_id=#{tableId} " + " GROUP BY order_id ORDER BY trade_day") List countPending(@Param("shopId") Integer shopId, @Param("tableId") String tableId); From f6e473b8bbd61efb3c10aaf254cc812e8216d32f Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 15:34:13 +0800 Subject: [PATCH 61/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=8F=96=E5=8D=95=E4=B8=8D=E6=93=8D=E4=BD=9C=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/product/TbPlaceController.java | 1 + .../service/impl/TbPayServiceImpl.java | 4 +-- .../impl/shopimpl/TbShopTableServiceImpl.java | 30 +++++++++++++++---- 3 files changed, 27 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 317ed545..ce3bea56 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 @@ -154,6 +154,7 @@ public class TbPlaceController { public ResponseEntity pending( @RequestBody PendingDTO pendingDTO ) { + pendingDTO.setIsPending(true); return ResponseEntity.ok(tbShopTableService.pending(pendingDTO)); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java index b97b624f..6af0e008 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java @@ -305,7 +305,7 @@ public class TbPayServiceImpl implements TbPayService { throw new BadRequestException("订单不存在"); } - if (!"unpaid".equals(orderInfo.getStatus())) { + if (!"unpaid".equals(orderInfo.getStatus()) && !"pending".equals(orderInfo.getStatus())) { throw new BadRequestException("订单非未支付状态"); } @@ -360,7 +360,7 @@ public class TbPayServiceImpl implements TbPayService { throw new BadRequestException("订单信息不存在"); } - if (!"unpaid".equals(orderInfo.getStatus())) { + if (!"unpaid".equals(orderInfo.getStatus()) && !"pending".equals(orderInfo.getStatus())) { throw new BadRequestException("此订单不处于未支付状态"); } 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 0ed1e89b..a44baa1e 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 @@ -435,7 +435,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { Integer size, Integer shopId, Integer vipUserId, String masterId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getTableId, tableId) - .in(TbCashierCart::getStatus, "create") + .in(TbCashierCart::getStatus, "create", "refund") .eq(TbCashierCart::getShopId, shopId) .and(query2 -> { query2.or(query3 -> { @@ -489,10 +489,16 @@ public class TbShopTableServiceImpl implements TbShopTableService { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getTableId, packCartDTO.getTableId()) .eq(TbCashierCart::getShopId, packCartDTO.getShopId()) - .eq(TbCashierCart::getStatus, "create") - .and(query -> { - query.eq(TbCashierCart::getMasterId, packCartDTO.getMasterId()).or() - .isNull(TbCashierCart::getMasterId); + .in(TbCashierCart::getStatus, "create", "refund") + .and(query2 -> { + query2.or(query3 -> { + query3.eq(TbCashierCart::getTradeDay, DateUtils.getDay()) + .eq(TbCashierCart::getMasterId, packCartDTO.getMasterId()); + }) + .or((query4 -> { + query4.isNull(TbCashierCart::getTradeDay) + .eq(TbCashierCart::getMasterId, ""); + })); }); // if (packCartDTO.getVipUserId() != null) { @@ -826,12 +832,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setSettlementAmount(totalAmount); orderInfo.setAmount(totalAmount); orderInfo.setOriginAmount(totalAmount); - orderInfo.setStatus("unpaid"); +// orderInfo.setStatus("unpaid"); orderInfo.setOrderAmount(totalAmount); orderInfo.setRemark(createOrderDTO.getNote()); orderInfo.setFreightAmount(feeAmount); orderInfo.setProductAmount(saleAmount); orderInfo.setTradeDay(DateUtils.getDay()); + orderInfo.setUseType(createOrderDTO.isPostPay() ? "postPay" : "afterPay"); orderInfo.setUserId(createOrderDTO.getVipUserId() == null ? null : String.valueOf(createOrderDTO.getVipUserId())); orderInfoMapper.updateById(orderInfo); } else { @@ -888,6 +895,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { isFirst = updateStock(cashierCart); cashierCart.setOrderId(orderId); cashierCart.setUpdatedAt(System.currentTimeMillis()); + cashierCart.setStatus("pending".equals(orderInfo.getStatus()) ? "refund" : cashierCart.getStatus()); cashierCartMapper.updateById(cashierCart); } if (isFirst) { @@ -917,6 +925,16 @@ public class TbShopTableServiceImpl implements TbShopTableService { @Override public Object pending(PendingDTO pendingDTO) { + + if (pendingDTO.getOrderId() != null) { + TbOrderInfo tbOrderInfo = orderInfoMapper.selectOne(new LambdaQueryWrapper() + .eq(TbOrderInfo::getId, pendingDTO.getOrderId()) + .eq(TbOrderInfo::getStatus, "pending")); + if (tbOrderInfo != null) { + return tbOrderInfo; + } + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, pendingDTO.getShopId()); From f9931b50ea10ad0e30df028a3bc6e8c7b2c4d73f Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 17:26:54 +0800 Subject: [PATCH 62/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=AD=98=E5=8D=95=E4=BF=9D=E5=AD=98=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java | 1 + .../java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java | 2 +- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java index f6720c7f..ab3f920a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PendingDTO.java @@ -16,4 +16,5 @@ public class PendingDTO { @NotNull private Boolean isPending; private Integer orderId; + private String note; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java index c9455b3c..9241209d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java @@ -21,7 +21,7 @@ public interface TbCashierCartMapper extends BaseMapper { List selectCar(@Param("shopId") Integer shopId); @Select(" SELECT order_id orderId, pending_at, sum(total_amount) totalAmount, count(id) totalCount, sum(total_number) totalNumber from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} and table_id=#{tableId} " + - " GROUP BY order_id ORDER BY trade_day") + " GROUP BY order_id ORDER BY id desc") List countPending(@Param("shopId") Integer shopId, @Param("tableId") String tableId); @Select("select a.*, b.spec_snap from tb_cashier_cart as a left join tb_product_sku as b on a.sku_id=b.id where a.shop_id=#{shopId} and a.status='refund';") 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 a44baa1e..a15e004b 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 @@ -985,6 +985,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { createOrderDTO.setShopId(pendingDTO.getShopId()); createOrderDTO.setMasterId(pendingDTO.getMasterId()); createOrderDTO.setVipUserId(pendingDTO.getVipUserId()); + createOrderDTO.setNote(pendingDTO.getNote()); orderId = createOrder(createOrderDTO, true).getId(); } From 29ccf35e5fb890c07cc5e4a30ba923ce38ecd01f Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 17:48:36 +0800 Subject: [PATCH 63/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=AD=98=E5=8D=95=E8=BF=94=E5=9B=9E=E5=A4=87=E6=B3=A8=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java | 6 ++++-- .../service/impl/shopimpl/TbShopTableServiceImpl.java | 1 + .../src/main/java/cn/ysk/cashier/vo/PendingCountVO.java | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java index 9241209d..7f8e35ea 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java @@ -20,8 +20,10 @@ public interface TbCashierCartMapper extends BaseMapper { " from tb_cashier_cart where table_id is not null and shop_id = #{shopId} and status = 'refund' group by shop_Id, master_id order by trade_day desc") List selectCar(@Param("shopId") Integer shopId); - @Select(" SELECT order_id orderId, pending_at, sum(total_amount) totalAmount, count(id) totalCount, sum(total_number) totalNumber from tb_cashier_cart where status = 'refund' and shop_id=#{shopId} and table_id=#{tableId} " + - " GROUP BY order_id ORDER BY id desc") + @Select("select a.id orderId,b.pending_at pendingAt, sum(b.total_amount) totalAmount, count(b.id) totalCount, sum(b.total_number) totalNumber, a.remark from tb_order_info a " + + "JOIN tb_cashier_cart b on a.id=b.order_id " + + "where a.shop_id=#{shopId} and a.`status`='pending' and a.table_id=#{tableId} " + + "GROUP BY a.id ORDER BY a.id desc ") List countPending(@Param("shopId") Integer shopId, @Param("tableId") String tableId); @Select("select a.*, b.spec_snap from tb_cashier_cart as a left join tb_product_sku as b on a.sku_id=b.id where a.shop_id=#{shopId} and a.status='refund';") 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 a15e004b..76ae3854 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 @@ -1004,6 +1004,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { TbCashierCart cashierCart = new TbCashierCart(); cashierCart.setStatus(pendingDTO.getIsPending() ? "refund" : "create"); + cashierCart.setPendingAt(pendingDTO.getIsPending() ? DateUtil.current() : cashierCart.getPendingAt()); cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper() .eq(TbCashierCart::getOrderId, orderId)); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java index 43bcf404..95609dd0 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/PendingCountVO.java @@ -12,4 +12,5 @@ public class PendingCountVO { private Integer totalCount; private Integer totalNumber; private Integer orderId; + private String remark; } From d272efa45f2da09b88b7197910a2d2c33b4f31a9 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 26 Aug 2024 09:21:50 +0800 Subject: [PATCH 64/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=8F=AA=E6=9F=A5=E8=AF=A2=E5=BD=93=E5=A4=A9=E6=8C=82=E8=B5=B7?= =?UTF-8?q?=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java | 4 ++-- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java index 7f8e35ea..ef59f927 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbCashierCartMapper.java @@ -22,9 +22,9 @@ public interface TbCashierCartMapper extends BaseMapper { @Select("select a.id orderId,b.pending_at pendingAt, sum(b.total_amount) totalAmount, count(b.id) totalCount, sum(b.total_number) totalNumber, a.remark from tb_order_info a " + "JOIN tb_cashier_cart b on a.id=b.order_id " + - "where a.shop_id=#{shopId} and a.`status`='pending' and a.table_id=#{tableId} " + + "where a.shop_id=#{shopId} and a.`status`='pending' and a.table_id=#{tableId} and a.trade_day=#{day}" + "GROUP BY a.id ORDER BY a.id desc ") - List countPending(@Param("shopId") Integer shopId, @Param("tableId") String tableId); + List countPending(@Param("shopId") Integer shopId, @Param("tableId") String tableId, @Param("day") String day); @Select("select a.*, b.spec_snap from tb_cashier_cart as a left join tb_product_sku as b on a.sku_id=b.id where a.shop_id=#{shopId} and a.status='refund';") List selectPending(Integer shopId); 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 76ae3854..5bda00ac 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 @@ -1024,7 +1024,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { public Object getCar(Integer shopId, String tableId) { ArrayList> data = new ArrayList<>(); - List pendingCountVOS = cashierCartMapper.countPending(shopId, tableId); + List pendingCountVOS = cashierCartMapper.countPending(shopId, tableId, DateUtils.getDay()); List tbCashierCarts = cashierCartMapper.selectList(new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopId) .eq(TbCashierCart::getTableId, tableId) From 078a986e6b7c5ff687499b8c0e53f4da42a23f86 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 26 Aug 2024 10:17:38 +0800 Subject: [PATCH 65/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=B8=8D=E8=B6=B3=E6=8F=90=E7=A4=BA=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=90=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 5bda00ac..a8d098d0 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 @@ -312,7 +312,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { if ((product.getIsDistribute().equals(1) && product.getStockNumber() < 1) || (!product.getIsDistribute().equals(1) && productSku.getStockNumber() < 1) ) { - throw new BadRequestException("商品库存不足"); + throw new BadRequestException(product.getName() + "商品库存不足"); } LambdaQueryWrapper query = new LambdaQueryWrapper() From 48aab9eeac1e24a11b06bcbea00ac998c8fd5532 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 26 Aug 2024 10:21:21 +0800 Subject: [PATCH 66/71] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=B8=8D=E8=B6=B3=E6=8F=90=E7=A4=BA=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=90=8D?= 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 a8d098d0..96f77679 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 @@ -550,7 +550,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { if (product.getIsDistribute() == 1) { if (product.getIsStock() == 1) { if (productMapper.decrStock(productId, decrNum) < 1) { - throw new BadRequestException("库存不足,下单失败"); + throw new BadRequestException(product.getName() + "库存不足,下单失败"); } } else { productMapper.decrStockUnCheck(productId, decrNum); @@ -558,7 +558,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { } else { if (product.getIsStock() == 1) { if (producSkutMapper.decrStock(String.valueOf(skuId), decrNum) < 1) { - throw new BadRequestException("库存不足,下单失败"); + throw new BadRequestException(product.getName() + "库存不足,下单失败"); } } else { producSkutMapper.decrStockUnCheck(String.valueOf(skuId), decrNum); From f0476f05e076166192a47a90852bbf18d5adf84d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=89=9B=E5=8F=89=E9=97=AA=E9=97=AA?= <18322780655@163.com> Date: Mon, 26 Aug 2024 10:53:48 +0800 Subject: [PATCH 67/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E3=80=81=E4=BC=9A=E5=91=98=E9=80=80=E6=AC=BE=E3=80=81=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E5=85=85=E5=80=BC=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ysk/cashier/dto/shop/TbShopInfoDto.java | 4 ++++ .../cn/ysk/cashier/pojo/shop/TbShopInfo.java | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java index 59d5ca08..8560fec3 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shop/TbShopInfoDto.java @@ -188,4 +188,8 @@ public class TbShopInfoDto implements Serializable { private String cities; private String isCustom; + + private String isReturn; + private String isMemberIn; + private String isMemberReturn; } \ No newline at end of file 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 a1b6e21b..5f8a7944 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 @@ -248,6 +248,24 @@ public class TbShopInfo implements Serializable { @ApiModelProperty(value = "是否允许用户自定义金额") private String isCustom; + + @Column(name = "is_return") + @ApiModelProperty(value = "是否允许用户自定义金额") + private String isReturn; + + + @Column(name = "is_member_in") + @ApiModelProperty(value = "是否允许用户自定义金额") + private String isMemberIn; + + + @Column(name = "is_member_return") + @ApiModelProperty(value = "是否允许用户自定义金额") + private String isMemberReturn; + + + + public void copy(TbShopInfo source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(false)); } From bbcd6edf20492544d388d67e0824bc900891efcb Mon Sep 17 00:00:00 2001 From: yijiegong Date: Mon, 26 Aug 2024 11:33:11 +0800 Subject: [PATCH 68/71] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=80=E5=90=8E?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java index 6f9847d9..90ac2b4b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java @@ -14,9 +14,10 @@ public interface ShopUserMapper extends BaseMapper { @Select("