diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java index 60043f2a..f28ad88e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfo.java @@ -48,9 +48,6 @@ public class TbConsInfo implements Serializable { @ApiModelProperty(value = "库存值") private BigDecimal stockNumber; - @Column(name = "`balance`") - @ApiModelProperty(value = "实际库存值") - private BigDecimal balance; @Column(name = "`con_unit`") @ApiModelProperty(value = "单位值") @@ -105,7 +102,4 @@ public class TbConsInfo implements Serializable { BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } - public static void main(String[] args){ - System.out.println(JSONUtil.toJSONString(new TbConsInfo())); - } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfoV2.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfoV2.java new file mode 100644 index 00000000..6696efb4 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/domain/TbConsInfoV2.java @@ -0,0 +1,106 @@ +package cn.ysk.cashier.cons.domain; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.persistence.*; +import java.io.Serializable; +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.List; +import java.util.Map; + +/** +* @author admin +* @date 2024-06-22 +**/ +@Entity +@Data +@Table(name="tb_cons_info") +public class TbConsInfoV2 implements Serializable { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "`id`") + @ApiModelProperty(value = "id") + private Integer id; + + @Column(name = "`con_type_id`") + @ApiModelProperty(value = "耗材类型id") + private Integer conTypeId; + + @Column(name = "`con_type_name`") + @ApiModelProperty(value = "耗材类型名称") + private String conTypeName; + + @Column(name = "`con_code`") + @ApiModelProperty(value = "耗材代码") + private String conCode; + + @Column(name = "`con_name`") + @ApiModelProperty(value = "耗材名称") + private String conName; + + @Column(name = "`stock_number`") + @ApiModelProperty(value = "库存值") + private BigDecimal stockNumber; + +// @Column(name = "`balance`") + @ApiModelProperty(value = "实际库存值") + private BigDecimal balance; + + @Column(name = "`con_unit`") + @ApiModelProperty(value = "单位值") + private String conUnit; + + + @Column(name = "`laster_in_stock`") + @ApiModelProperty(value = "最近一次入库量") + private BigDecimal lasterInStock; + + @Column(name = "`con_warning`") + @ApiModelProperty(value = "耗材预警值") + private BigDecimal conWarning; + + @Column(name = "`create_time`") + @ApiModelProperty(value = "创建时间") + private Timestamp createTime; + + @Column(name = "`update_time`") + @ApiModelProperty(value = "更新时间") + private Timestamp updateTime; + + @Column(name = "`shop_id`") + @ApiModelProperty(value = "店铺id") + private Integer shopId; + + + @Column(name = "`price`") + @ApiModelProperty(value = "单价") + private BigDecimal price; + + + @Column(name = "`status`") + @ApiModelProperty(value = "状态 1 启用 0 禁用") + private String status; + + + @Column(name = "`stock_consume`") + @ApiModelProperty(value = "消耗总量") + private BigDecimal stockConsume; + + + + @Column(name = "`is_check`") + @ApiModelProperty(value = "是否检测库存") + private String isCheck; + + @Transient + private List> product; + + public void copy(TbConsInfoV2 source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoV2Repository.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoV2Repository.java new file mode 100644 index 00000000..79d5d183 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/repository/TbConsInfoV2Repository.java @@ -0,0 +1,9 @@ +package cn.ysk.cashier.cons.repository; + +import cn.ysk.cashier.cons.domain.TbConsInfoV2; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + +public interface TbConsInfoV2Repository extends JpaRepository, JpaSpecificationExecutor { + +} \ No newline at end of file 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 7cce301f..2b6e42f3 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 @@ -4,10 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.util.ObjectUtil; import cn.ysk.cashier.cons.domain.*; -import cn.ysk.cashier.cons.repository.TbConsInfoFlowRepository; -import cn.ysk.cashier.cons.repository.TbConsInfoRepository; -import cn.ysk.cashier.cons.repository.TbConsSuppFlowRepository; -import cn.ysk.cashier.cons.repository.TbConsTypeRepository; +import cn.ysk.cashier.cons.repository.*; import cn.ysk.cashier.cons.service.TbConsInfoService; import cn.ysk.cashier.cons.service.dto.TbConsInfoDto; import cn.ysk.cashier.cons.service.dto.TbConsInfoQueryCriteria; @@ -57,6 +54,7 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { public final TbConsInfoFlowRepository tbConsInfoFlowRepository; public final TbConsSuppFlowRepository tbConsSuppFlowRepository; private final TbConsInfoRepository tbConsInfoRepository; + private final TbConsInfoV2Repository tbConsInfoV2Repository; private final TbConsInfoMapper tbConsInfoMapper; private final TbShopPurveyorRepository tbShopPurveyorRepository; @@ -86,13 +84,12 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { sort = Sort.by(sortDirection, sortField); } Pageable pageable = PageRequest.of(criteria.getPage(), criteria.getSize(), sort); - Page page = tbConsInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); - Page result = page.map(tbConsInfoMapper::toDto); - result.getContent().forEach(it -> { + Page page = tbConsInfoV2Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); + page.getContent().forEach(it -> { List> list = tbConsInfoRepository.queryAllAndPro(criteria.getShopId(), it.getId()); it.setProduct(list); }); - return PageUtil.toPage(result); + return PageUtil.toPage(page); } @@ -155,7 +152,6 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { } BeanUtil.copyProperties(resource,tbConsInfo, CopyOptions.create().setIgnoreNullValue(true)); tbConsInfo.setUpdateTime(new Timestamp(System.currentTimeMillis())); - tbConsInfoRepository.save(tbConsInfo); } 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 fac840c8..2185f039 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,6 +2,7 @@ package cn.ysk.cashier.controller.product; import cn.ysk.cashier.annotation.AnonymousAccess; import cn.ysk.cashier.annotation.Log; +import cn.ysk.cashier.config.security.security.TokenProvider; import cn.ysk.cashier.dto.shoptable.*; import cn.ysk.cashier.pojo.order.TbCashierCart; import cn.ysk.cashier.service.product.TbProductService; @@ -13,6 +14,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; @RestController @@ -21,6 +24,8 @@ public class TbPlaceController { private final TbShopTableService tbShopTableService; private final TbProductService tbProductService; private final RabbitMsgUtils rabbitMsgUtils; + @Resource + private TokenProvider tokenProvider; @GetMapping("/activate") @ApiOperation("查询/product") @@ -138,7 +143,9 @@ public class TbPlaceController { @PutMapping("/pay") @ApiOperation("代客下单 支付订单") - public ResponseEntity pay(@Validated @RequestBody PayDTO payDTO) { + public ResponseEntity pay(HttpServletRequest request, @Validated @RequestBody PayDTO payDTO) { + String token = tokenProvider.getToken(request); + payDTO.setToken(token); return ResponseEntity.ok(tbShopTableService.pay(payDTO)); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PayDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PayDTO.java index e7ba0a20..aafea9f8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PayDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/PayDTO.java @@ -20,4 +20,6 @@ public class PayDTO { private Double discount; private Integer vipUserId; private String code; + + private String token; } 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 7d4e518b..b7888766 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 @@ -9,10 +9,12 @@ 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.shop.TbShopTableDto; +import cn.ysk.cashier.dto.shop.TbShopTableQueryCriteria; import cn.ysk.cashier.dto.shoptable.*; import cn.ysk.cashier.enums.*; import cn.ysk.cashier.exception.BadRequestException; -import cn.ysk.cashier.mybatis.entity.TbShopUserFlow; +import cn.ysk.cashier.mapper.shop.TbShopTableMapper; import cn.ysk.cashier.mybatis.mapper.*; import cn.ysk.cashier.mybatis.service.MpCashierCartService; import cn.ysk.cashier.mybatis.service.MpOrderDetailService; @@ -29,9 +31,11 @@ import cn.ysk.cashier.repository.TbShopPayTypeRepository; import cn.ysk.cashier.repository.order.TbCashierCartRepository; import cn.ysk.cashier.repository.product.TbProductSkuRepository; import cn.ysk.cashier.repository.shop.TbShopInfoRepository; +import cn.ysk.cashier.repository.shop.TbShopTableRepository; import cn.ysk.cashier.service.PayService; import cn.ysk.cashier.service.impl.TbPayServiceImpl; import cn.ysk.cashier.service.order.TbOrderInfoService; +import cn.ysk.cashier.service.shop.TbShopTableService; import cn.ysk.cashier.utils.*; import cn.ysk.cashier.vo.PendingCountVO; import com.alibaba.fastjson.JSONObject; @@ -39,32 +43,27 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.dianguang.cloud.ossservice.model.DateUtils; import lombok.RequiredArgsConstructor; -import cn.ysk.cashier.repository.shop.TbShopTableRepository; -import cn.ysk.cashier.service.shop.TbShopTableService; -import cn.ysk.cashier.dto.shop.TbShopTableDto; -import cn.ysk.cashier.dto.shop.TbShopTableQueryCriteria; -import cn.ysk.cashier.mapper.shop.TbShopTableMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.Instant; import java.util.*; -import java.io.IOException; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; /** * @author lyf @@ -1603,10 +1602,10 @@ public class TbShopTableServiceImpl implements TbShopTableService { .set(TbOrderDetail::getStatus, "closed")); JSONObject jsonObject = new JSONObject(); - jsonObject.put("token", null); + jsonObject.put("token", payDTO.getToken()); jsonObject.put("type", "create"); jsonObject.put("orderId", orderInfo.getId()); - rabbitMsgUtils.sendOrderCollectMsg(jsonObject); + rabbitMsgUtils.sendOrderCollectMsg(jsonObject,3); // 打印消息 if (!shopEatTypeInfoDTO.isDineInAfter()) { 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 a2387524..07c9f1fc 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 @@ -32,7 +32,7 @@ public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback { } } - private void sendMsg(String exchange, String routingKey, T data, String note, boolean isJson, Integer waitTime) { + private void sendMsg(String exchange, String routingKey, T data, String note, boolean isJson, Integer waitTime) { ThreadUtil.execAsync(() -> { if (waitTime != null) { ThreadUtil.sleep(waitTime, TimeUnit.SECONDS); @@ -47,7 +47,11 @@ public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback { sendMsg(RabbitConstants.CART_ORDER_COLLECT_PUT, RabbitConstants.CART_ORDER_COLLECT_ROUTINGKEY_PUT, data, "订单信息收集", true, null); } - public void printTicket(String orderId){ + public void sendOrderCollectMsg(T data, int waitTime) { + sendMsg(RabbitConstants.CART_ORDER_COLLECT_PUT, RabbitConstants.CART_ORDER_COLLECT_ROUTINGKEY_PUT, data, "订单信息收集", true, waitTime); + } + + public void printTicket(String orderId) { sendMsg(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, orderId, "打印票", false, null); } @@ -91,7 +95,7 @@ public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback { printDTO.setCurrentUserId(SecurityUtils.getCurrentUserId()); printDTO.setCurrentUserName(SecurityUtils.getCurrentUsername()); printDTO.setCurrentUserNickName(SecurityUtils.getCurrentUserNickName()); - }catch (Exception e){ + } catch (Exception e) { log.error("获取当前用户信息失败", e); } sendMsg(RabbitConstants.EXCHANGE_PRINT, RabbitConstants.ROUTING_KEY_CALL_TABLE, printDTO, "排号小票打印", true, null); @@ -106,12 +110,12 @@ public class RabbitMsgUtils implements RabbitTemplate.ConfirmCallback { } - public void buildCurrentUserInfo(JSONObject jsonObject){ + public void buildCurrentUserInfo(JSONObject jsonObject) { try { jsonObject.put("currentUserId", SecurityUtils.getCurrentUserId()); jsonObject.put("currentUserName", SecurityUtils.getCurrentUsername()); jsonObject.put("currentUserNickName", SecurityUtils.getCurrentUserNickName()); - }catch (Exception e){ + } catch (Exception e) { log.error("获取当前用户信息失败", e); } }