From ebb4d734c59176f67b80a18c8fc21bc05c21c5be Mon Sep 17 00:00:00 2001 From: gaowdong Date: Wed, 7 May 2025 16:49:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A6=E6=88=B7=E6=B6=88=E8=B4=B9=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=8F=8A=E8=B6=85=E5=B8=82=E8=AE=A2=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AccTradeController.java | 15 ++ .../param/AccConsumeDetailQueryParam.java | 29 ++++ .../account/domain/vo/AccConsumeDetailVO.java | 67 +++++++++ .../core/account/mapper/AccTradeMapper.java | 5 + .../account/service/IAccTradeService.java | 5 + .../service/impl/AccTradeServiceImpl.java | 8 + .../controller/SupermarketInfoController.java | 20 +++ .../domain/ShopOrderQueryParam.java | 137 ++++++++++++++++++ .../mapper/account/AccTradeMapper.xml | 56 +++++++ 9 files changed, 342 insertions(+) create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/domain/param/AccConsumeDetailQueryParam.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/domain/vo/AccConsumeDetailVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/supermarket/domain/ShopOrderQueryParam.java diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/controller/AccTradeController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/controller/AccTradeController.java index 9c50462..76fac5a 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/controller/AccTradeController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/controller/AccTradeController.java @@ -2,6 +2,8 @@ package com.bonus.canteen.core.account.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.bonus.canteen.core.account.domain.param.AccConsumeDetailQueryParam; import com.bonus.common.log.enums.OperaType; import com.bonus.canteen.core.common.annotation.PreventRepeatSubmit; import io.swagger.annotations.Api; @@ -116,4 +118,17 @@ public class AccTradeController extends BaseController { public AjaxResult remove(@PathVariable Long[] tradeIds) { return toAjax(accTradeService.deleteAccTradeByTradeIds(tradeIds)); } + + /** + * 账户消费记录 + */ + @ApiOperation(value = "账户消费记录") + //@PreventRepeatSubmit + //@RequiresPermissions("account:trade:remove") + @SysLog(title = "账户消费记录", businessType = OperaType.QUERY, logType = 1,module = "账户->账户消费记录") + @PostMapping("/consume/detail") + public TableDataInfo consumeDetail(@RequestBody AccConsumeDetailQueryParam param) { + startPage(); + return getDataTable(accTradeService.queryAccConsumeDetail(param)); + } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/domain/param/AccConsumeDetailQueryParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/domain/param/AccConsumeDetailQueryParam.java new file mode 100644 index 0000000..d04236c --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/domain/param/AccConsumeDetailQueryParam.java @@ -0,0 +1,29 @@ +package com.bonus.canteen.core.account.domain.param; + +import com.bonus.common.core.web.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class AccConsumeDetailQueryParam extends BaseEntity { + @ApiModelProperty("查询组织id集合") + private List deptIdList; + @ApiModelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startDateTime; + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endDateTime; + @ApiModelProperty("交易类型") + private Integer tradeType; + private Integer walletId; + private String searchValue; + public AccConsumeDetailQueryParam() { + this.endDateTime = LocalDateTime.now().plusDays(7); + this.startDateTime = LocalDateTime.now().minusDays(7); + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/domain/vo/AccConsumeDetailVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/domain/vo/AccConsumeDetailVO.java new file mode 100644 index 0000000..66eda63 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/domain/vo/AccConsumeDetailVO.java @@ -0,0 +1,67 @@ +package com.bonus.canteen.core.account.domain.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class AccConsumeDetailVO implements Serializable { + private Long tradeId; + + /** + * 用户ID + */ + private Long userId; + + /** + * 用户昵称 + */ + private String nickName; + + /** + * 部门全名 + */ + private String deptFullName; + + /** + * 用户类型 + */ + private Integer userType; + + /** + * 支付时间 + */ + private LocalDateTime payTime; + + /** + * 下单时间 + */ + private LocalDateTime orderTime; + + /** + * 交易类型 + */ + private Integer tradeType; + + /** + * 钱包ID + */ + private Long walletId; + + /** + * 金额 + */ + private BigDecimal amount; + + /** + * 钱包余额 + */ + private BigDecimal walletBal; + + /** + * 来源类型 + */ + private Integer sourceType; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/mapper/AccTradeMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/mapper/AccTradeMapper.java index a056d31..6fd57eb 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/mapper/AccTradeMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/mapper/AccTradeMapper.java @@ -3,7 +3,9 @@ package com.bonus.canteen.core.account.mapper; import java.util.List; import com.bonus.canteen.core.account.domain.AccTrade; import com.bonus.canteen.core.account.domain.bo.TradeAndWallerInfo; +import com.bonus.canteen.core.account.domain.param.AccConsumeDetailQueryParam; import com.bonus.canteen.core.account.domain.param.AccWalletOperationQueryParam; +import com.bonus.canteen.core.account.domain.vo.AccConsumeDetailVO; import com.bonus.canteen.core.account.domain.vo.AccOperationListVO; import com.bonus.canteen.core.account.domain.vo.AccTradeVo; import org.apache.ibatis.annotations.Param; @@ -74,4 +76,7 @@ public interface AccTradeMapper { List queryTradeAndWallerInfoByOrderNo(@Param("orderNo") String orderNo, @Param("accTradeType") Integer accTradeType); + + List queryAccConsumeDetail(@Param("param") AccConsumeDetailQueryParam param, + @Param("encryptedSearchValue") String encryptedSearchValue); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/IAccTradeService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/IAccTradeService.java index f8b653c..182f63d 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/IAccTradeService.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/IAccTradeService.java @@ -3,9 +3,12 @@ package com.bonus.canteen.core.account.service; import com.bonus.canteen.core.account.constants.AccTradeTypeEnum; import com.bonus.canteen.core.account.domain.AccTrade; import com.bonus.canteen.core.account.domain.bo.TradeAndWallerInfo; +import com.bonus.canteen.core.account.domain.param.AccConsumeDetailQueryParam; import com.bonus.canteen.core.account.domain.param.AccWalletOperationQueryParam; +import com.bonus.canteen.core.account.domain.vo.AccConsumeDetailVO; import com.bonus.canteen.core.account.domain.vo.AccOperationListVO; import com.bonus.canteen.core.account.domain.vo.AccTradeVo; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -73,4 +76,6 @@ public interface IAccTradeService { List queryAccOperationList(AccWalletOperationQueryParam param); List queryTradeAndWallerInfoByOrderNo(String orderNo, AccTradeTypeEnum accTradeTypeEnum); + + List queryAccConsumeDetail(AccConsumeDetailQueryParam param); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/impl/AccTradeServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/impl/AccTradeServiceImpl.java index 5baa338..e96c39f 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/impl/AccTradeServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/impl/AccTradeServiceImpl.java @@ -4,7 +4,9 @@ import cn.hutool.core.collection.CollUtil; import com.bonus.canteen.core.account.constants.AccTradeTypeEnum; import com.bonus.canteen.core.account.domain.AccTrade; import com.bonus.canteen.core.account.domain.bo.TradeAndWallerInfo; +import com.bonus.canteen.core.account.domain.param.AccConsumeDetailQueryParam; import com.bonus.canteen.core.account.domain.param.AccWalletOperationQueryParam; +import com.bonus.canteen.core.account.domain.vo.AccConsumeDetailVO; import com.bonus.canteen.core.account.domain.vo.AccOperationListVO; import com.bonus.canteen.core.account.domain.vo.AccTradeVo; import com.bonus.canteen.core.account.mapper.AccTradeMapper; @@ -152,4 +154,10 @@ public class AccTradeServiceImpl implements IAccTradeService { public List queryTradeAndWallerInfoByOrderNo(String orderNo, AccTradeTypeEnum accTradeTypeEnum) { return accTradeMapper.queryTradeAndWallerInfoByOrderNo(orderNo, accTradeTypeEnum.getKey()); } + + @Override + public List queryAccConsumeDetail(AccConsumeDetailQueryParam param) { + String encryptedSearchValue = SM4EncryptUtils.sm4Encrypt(param.getSearchValue()); + return accTradeMapper.queryAccConsumeDetail(param, encryptedSearchValue); + } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/supermarket/controller/SupermarketInfoController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/supermarket/controller/SupermarketInfoController.java index d6b50e8..9c617ec 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/supermarket/controller/SupermarketInfoController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/supermarket/controller/SupermarketInfoController.java @@ -1,5 +1,9 @@ package com.bonus.canteen.core.supermarket.controller; +import com.bonus.canteen.core.order.domain.OrderInfo; +import com.bonus.canteen.core.order.domain.param.OrderQueryParam; +import com.bonus.canteen.core.order.service.IOrderInfoService; +import com.bonus.canteen.core.supermarket.domain.ShopOrderQueryParam; import com.bonus.canteen.core.supermarket.domain.SupermarketInfo; import com.bonus.canteen.core.supermarket.service.SupermarketInfoService; import com.bonus.common.core.utils.poi.ExcelUtil; @@ -10,10 +14,12 @@ import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.util.List; /** @@ -28,6 +34,8 @@ import java.util.List; public class SupermarketInfoController extends BaseController { @Autowired private SupermarketInfoService supermarketInfoService; + @Autowired + private IOrderInfoService orderInfoService; /** * @author jsk @@ -86,4 +94,16 @@ public class SupermarketInfoController extends BaseController { return toAjax(supermarketInfoService.deleteSupermarketInfoBySupermarketId(supermarketInfo)); } + @ApiOperation(value = "查询超市订单列表") + @PostMapping("/order/list") + public TableDataInfo orderList(@RequestBody @Valid ShopOrderQueryParam shopOrderQueryParam) { + startPage(); + shopOrderQueryParam.setStartDateTime(shopOrderQueryParam.getStartDate().atTime(0,0,0)); + shopOrderQueryParam.setEndDateTime(shopOrderQueryParam.getEndDate().atTime(23,59,59)); + OrderQueryParam orderQueryParam = new OrderQueryParam(); + BeanUtils.copyProperties(shopOrderQueryParam, orderQueryParam); + List list = orderInfoService.selectOrderInfoList(orderQueryParam); + return getDataTable(list); + } + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/supermarket/domain/ShopOrderQueryParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/supermarket/domain/ShopOrderQueryParam.java new file mode 100644 index 0000000..9303cd8 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/supermarket/domain/ShopOrderQueryParam.java @@ -0,0 +1,137 @@ +package com.bonus.canteen.core.supermarket.domain; + +import com.alibaba.excel.util.StringUtils; +import com.bonus.common.houqin.utils.SM4EncryptUtils; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +/** + * 订单对象 order_info + * + * @author ruoyi + * @date 2025-04-14 + */ + +@Data +public class ShopOrderQueryParam implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 设备订单号 */ + private String deviceOrderId; + + /** 设备sn */ + private String deviceSn; + + private Long orderId; + + private List orderIdList; + + private List deptIdList; + + /** 设备编号 */ + private String deviceNum; + + /** 人员编号 */ + private Long userId; + + /** 身份验证方式 1 刷卡 2 刷脸 3 扫码 */ + private Integer identityVerification; + + /** 订单来源类型 */ + private Integer sourceType; + + /** 是否在线订单 1 是 2 否 */ + private Integer isOnline; + + private Long areaId; + + /** 食堂id */ + private Long canteenId; + + private List canteenIdList; + + /** 档口id */ + private Long stallId; + + private List stallIdList; + + /** 餐次类型 1-早餐 2-午餐 3-晚餐 4-下午茶 5-夜宵 */ + private Integer mealtimeType; + + private List mealtimeTypeList; + + /** 订单日期 yyyy-MM-dd */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date orderDate; + + /** 下单时间 yyyy-MM-dd HH:mm:ss */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date orderTime; + + /** 订单类型 1 当餐 2 预订餐 3 报餐 4 商城 11 线下消费 12 自助餐 21 补扣 22 外部订单 */ + @NotNull(message = "订单类型不能为空") + private Integer orderType; + + private List orderTypeList; + + /** 订单状态 1 已下单 2 已完成 3 已取消 */ + private Integer orderState; + + private List orderStateList; + + /** 订单退款状态 1 未退单 2 已退单 3 部分退单 */ + private Integer orderRefundState; + + /** 扣款类型 1 下单扣款 2 核销扣款 */ + private Integer deductionType; + + /** 支付时间 yyyy-MM-dd HH:mm:ss */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date payTime; + + /** 支付方式 */ + private Integer payType; + + /** 支付渠道 */ + private Integer payChannel; + + /** 支付状态 1 待支付 2 支付中 3 支付成功 4 支付失败 5 支付取消 6 部分支付 */ + private Integer payState; + + private List payStateList; + + /** 评论状态 1 已评论 2 未评论 */ + private Integer commentState; + + @ApiModelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startDateTime; + + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endDateTime; + + @ApiModelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate startDate; + + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate endDate; + + private String custSearchInfo; + + public ShopOrderQueryParam() { + this.endDate = LocalDate.now().plusDays(7); + this.startDate = LocalDate.now().minusDays(7); + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/account/AccTradeMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/account/AccTradeMapper.xml index 7c47403..f296a98 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/account/AccTradeMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/account/AccTradeMapper.xml @@ -294,4 +294,60 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ate.trade_type = #{accTradeType} + + \ No newline at end of file