diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/controller/TradeReportController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/controller/TradeReportController.java index e4f7333..70b4daa 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/controller/TradeReportController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/controller/TradeReportController.java @@ -2,8 +2,7 @@ package com.bonus.canteen.core.report.controller; import com.bonus.canteen.core.order.domain.OrderDetail; import com.bonus.canteen.core.order.service.IOrderDetailService; -import com.bonus.canteen.core.report.domain.TradeFlowParam; -import com.bonus.canteen.core.report.domain.TradeFlowVO; +import com.bonus.canteen.core.report.domain.*; import com.bonus.canteen.core.report.service.TradeReportService; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; @@ -11,6 +10,7 @@ import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -31,16 +31,58 @@ public class TradeReportController extends BaseController { @Autowired private TradeReportService tradeReportService; - - /** - * 交易流水 - */ + @ApiOperation("交易流水") @PostMapping("/flow") @ResponseBody - public TableDataInfo list(TradeFlowParam param) + public TableDataInfo tradeFlowList(TradeFlowParam param) { startPage(); List list = tradeReportService.selectTradeFlow(param); return getDataTable(list); } + @ApiOperation("营业汇总") + @PostMapping("/revenue/operating") + @ResponseBody + public TableDataInfo selectOperatingRevenue(OperatingRevenueParam param) + { + startPage(); + List list = tradeReportService.selectOperatingRevenue(param); + return getDataTable(list); + } + @ApiOperation("食堂档口汇总") + @PostMapping("/revenue/canteen") + @ResponseBody + public TableDataInfo selectCanteenStallRevenue(CanteenStallRevenueParam param) + { + startPage(); + List list = tradeReportService.selectCanteenStallRevenue(param); + return getDataTable(list); + } + @ApiOperation("设备汇总") + @PostMapping("/revenue/device") + @ResponseBody + public TableDataInfo selectDeviceRevenue(DeviceRevenueParam param) + { + startPage(); + List list = tradeReportService.selectDeviceRevenue(param); + return getDataTable(list); + } + @ApiOperation("个人消费汇总") + @PostMapping("/revenue/user") + @ResponseBody + public TableDataInfo selectUserRevenue(UserRevenueParam param) + { + startPage(); + List list = tradeReportService.selectUserRevenue(param); + return getDataTable(list); + } + @ApiOperation("菜品销售汇总") + @PostMapping("/revenue/goods") + @ResponseBody + public TableDataInfo selectGoodsRevenue(GoodsRevenueParam param) + { + startPage(); + List list = tradeReportService.selectGoodsRevenue(param); + return getDataTable(list); + } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/CanteenStallRevenueParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/CanteenStallRevenueParam.java new file mode 100644 index 0000000..9e78906 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/CanteenStallRevenueParam.java @@ -0,0 +1,25 @@ +package com.bonus.canteen.core.report.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class CanteenStallRevenueParam implements Serializable { + 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; + + public CanteenStallRevenueParam() { + 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/report/domain/CanteenStallRevenueVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/CanteenStallRevenueVO.java new file mode 100644 index 0000000..c1aaf1a --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/CanteenStallRevenueVO.java @@ -0,0 +1,28 @@ +package com.bonus.canteen.core.report.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class CanteenStallRevenueVO implements Serializable { + private Long canteenId; + private Long stallId; + private String canteenAndStallName; + private int breakfastUserCount; + private int breakfastOrderCount; + private BigDecimal breakfastConsumeCount; + private int lunchUserCount; + private int lunchOrderCount; + private BigDecimal lunchConsumeCount; + private int afternoonTeaUserCount; + private int afternoonTeaOrderCount; + private BigDecimal afternoonTeaConsumeCount; + private int dinnerUserCount; + private int dinnerOrderCount; + private BigDecimal dinnerConsumeCount; + private int midnightSnackUserCount; + private int midnightSnackOrderCount; + private BigDecimal midnightSnackConsumeCount; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/DeviceRevenueParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/DeviceRevenueParam.java new file mode 100644 index 0000000..d22f7a6 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/DeviceRevenueParam.java @@ -0,0 +1,26 @@ +package com.bonus.canteen.core.report.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class DeviceRevenueParam implements Serializable { + 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; + private String searchValue; + + public DeviceRevenueParam() { + 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/report/domain/DeviceRevenueVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/DeviceRevenueVO.java new file mode 100644 index 0000000..2f4fea6 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/DeviceRevenueVO.java @@ -0,0 +1,28 @@ +package com.bonus.canteen.core.report.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class DeviceRevenueVO implements Serializable { + private String deviceNum; + private String deviceSn; + private String deviceName; + private int breakfastUserCount; + private int breakfastOrderCount; + private BigDecimal breakfastConsumeCount; + private int lunchUserCount; + private int lunchOrderCount; + private BigDecimal lunchConsumeCount; + private int afternoonTeaUserCount; + private int afternoonTeaOrderCount; + private BigDecimal afternoonTeaConsumeCount; + private int dinnerUserCount; + private int dinnerOrderCount; + private BigDecimal dinnerConsumeCount; + private int midnightSnackUserCount; + private int midnightSnackOrderCount; + private BigDecimal midnightSnackConsumeCount; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/GoodsRevenueParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/GoodsRevenueParam.java new file mode 100644 index 0000000..e8f32af --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/GoodsRevenueParam.java @@ -0,0 +1,28 @@ +package com.bonus.canteen.core.report.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class GoodsRevenueParam implements Serializable { + private List orderDetailTypeList; + // 1:食堂 2:档口 +// private Integer countType; + 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; + + public GoodsRevenueParam() { + 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/report/domain/GoodsRevenueVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/GoodsRevenueVO.java new file mode 100644 index 0000000..286913b --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/GoodsRevenueVO.java @@ -0,0 +1,25 @@ +package com.bonus.canteen.core.report.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class GoodsRevenueVO implements Serializable { + private Long goodsId; + private String goodsName; + private BigDecimal salePrice; + private int breakfastQuantityCount; + private BigDecimal breakfastConsumeCount; + private int lunchQuantityCount; + private BigDecimal lunchConsumeCount; + private int afternoonTeaQuantityCount; + private BigDecimal afternoonTeaConsumeCount; + private int dinnerQuantityCount; + private BigDecimal dinnerConsumeCount; + private int midnightSnackQuantityCount; + private BigDecimal midnightSnackConsumeCount; + private int otherQuantityCount; + private BigDecimal otherConsumeCount; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/OperatingRevenueParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/OperatingRevenueParam.java new file mode 100644 index 0000000..1241940 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/OperatingRevenueParam.java @@ -0,0 +1,25 @@ +package com.bonus.canteen.core.report.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class OperatingRevenueParam implements Serializable { + 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; + + public OperatingRevenueParam() { + 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/report/domain/OperatingRevenueVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/OperatingRevenueVO.java new file mode 100644 index 0000000..0385246 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/OperatingRevenueVO.java @@ -0,0 +1,18 @@ +package com.bonus.canteen.core.report.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class OperatingRevenueVO implements Serializable { + private int userCount; + private int orderCount; + private BigDecimal payableAmount; + private BigDecimal discountsAmount; + private BigDecimal realAmount; + private BigDecimal personalWalletCount; + private BigDecimal subWalletCount; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/TradeFlowParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/TradeFlowParam.java index e4c594e..e99701a 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/TradeFlowParam.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/TradeFlowParam.java @@ -10,9 +10,7 @@ import java.util.List; @Data public class TradeFlowParam implements Serializable { - private Long userId; - private String userName; - private String phonenumber; + private String searchValue; private List deptIdList; @ApiModelProperty("开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/UserRevenueParam.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/UserRevenueParam.java new file mode 100644 index 0000000..724e1f2 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/UserRevenueParam.java @@ -0,0 +1,26 @@ +package com.bonus.canteen.core.report.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class UserRevenueParam implements Serializable { + private String searchValue; + 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; + + public UserRevenueParam() { + 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/report/domain/UserRevenueVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/UserRevenueVO.java new file mode 100644 index 0000000..85851d2 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/domain/UserRevenueVO.java @@ -0,0 +1,28 @@ +package com.bonus.canteen.core.report.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class UserRevenueVO implements Serializable { + private Long userId; + private String nickName; + private String deptFullName; + private int breakfastUserCount; + private int breakfastOrderCount; + private BigDecimal breakfastConsumeCount; + private int lunchUserCount; + private int lunchOrderCount; + private BigDecimal lunchConsumeCount; + private int afternoonTeaUserCount; + private int afternoonTeaOrderCount; + private BigDecimal afternoonTeaConsumeCount; + private int dinnerUserCount; + private int dinnerOrderCount; + private BigDecimal dinnerConsumeCount; + private int midnightSnackUserCount; + private int midnightSnackOrderCount; + private BigDecimal midnightSnackConsumeCount; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/mapper/TradeReportMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/mapper/TradeReportMapper.java index f8b3809..3ab5262 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/mapper/TradeReportMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/mapper/TradeReportMapper.java @@ -1,11 +1,17 @@ package com.bonus.canteen.core.report.mapper; -import com.bonus.canteen.core.report.domain.TradeFlowParam; -import com.bonus.canteen.core.report.domain.TradeFlowVO; +import com.bonus.canteen.core.report.domain.*; import org.apache.ibatis.annotations.Param; import java.util.List; public interface TradeReportMapper { - public List selectTradeFlow(@Param("param")TradeFlowParam param); + public List selectTradeFlow(@Param("param")TradeFlowParam param, + @Param("encryptedSearchValue") String encryptedSearchValue); + public List selectOperatingRevenue(@Param("param") OperatingRevenueParam param); + public List selectCanteenStallRevenue(@Param("param")CanteenStallRevenueParam param); + public List selectDeviceRevenue(@Param("param")DeviceRevenueParam param); + public List selectUserRevenue(@Param("param")UserRevenueParam param, + @Param("encryptedSearchValue") String encryptedSearchValue); + public List selectGoodsRevenue(@Param("param")GoodsRevenueParam param); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/service/TradeReportService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/service/TradeReportService.java index b7100e5..8cf1350 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/service/TradeReportService.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/service/TradeReportService.java @@ -1,10 +1,15 @@ package com.bonus.canteen.core.report.service; -import com.bonus.canteen.core.report.domain.TradeFlowParam; -import com.bonus.canteen.core.report.domain.TradeFlowVO; +import com.bonus.canteen.core.report.domain.*; +import org.apache.ibatis.annotations.Param; import java.util.List; public interface TradeReportService { List selectTradeFlow(TradeFlowParam param); + List selectOperatingRevenue(OperatingRevenueParam param); + List selectCanteenStallRevenue(CanteenStallRevenueParam param); + List selectDeviceRevenue(DeviceRevenueParam param); + List selectUserRevenue(UserRevenueParam param); + List selectGoodsRevenue(GoodsRevenueParam param); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/service/impl/TradeReportServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/service/impl/TradeReportServiceImpl.java index 0aef475..b08d343 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/service/impl/TradeReportServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/report/service/impl/TradeReportServiceImpl.java @@ -1,9 +1,9 @@ package com.bonus.canteen.core.report.service.impl; -import com.bonus.canteen.core.report.domain.TradeFlowParam; -import com.bonus.canteen.core.report.domain.TradeFlowVO; +import com.bonus.canteen.core.report.domain.*; import com.bonus.canteen.core.report.mapper.TradeReportMapper; import com.bonus.canteen.core.report.service.TradeReportService; +import com.bonus.common.houqin.utils.SM4EncryptUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -16,6 +16,32 @@ public class TradeReportServiceImpl implements TradeReportService { @Override public List selectTradeFlow(TradeFlowParam param) { - return tradeReportMapper.selectTradeFlow(param); + String encryptedSearchValue = SM4EncryptUtils.sm4Encrypt(param.getSearchValue()); + return tradeReportMapper.selectTradeFlow(param, encryptedSearchValue); + } + + @Override + public List selectOperatingRevenue(OperatingRevenueParam param) { + return tradeReportMapper.selectOperatingRevenue(param); + } + + @Override + public List selectCanteenStallRevenue(CanteenStallRevenueParam param) { + return tradeReportMapper.selectCanteenStallRevenue(param); + } + + @Override + public List selectDeviceRevenue(DeviceRevenueParam param) { + return tradeReportMapper.selectDeviceRevenue(param); + } + + @Override + public List selectUserRevenue(UserRevenueParam param) { + return tradeReportMapper.selectUserRevenue(param, SM4EncryptUtils.sm4Encrypt(param.getSearchValue())); + } + + @Override + public List selectGoodsRevenue(GoodsRevenueParam param) { + return tradeReportMapper.selectGoodsRevenue(param); } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/TradeReportMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/TradeReportMapper.xml index 4da3746..f0f3522 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/TradeReportMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/report/TradeReportMapper.xml @@ -47,9 +47,347 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ( su.nick_name = #{param.searchValue} - or su.phonenumber = #{param.encryptedSearchValue} + or su.phonenumber = #{encryptedSearchValue} or su.user_id like concat('%', #{param.searchValue}, '%') ) + + + + + + + + + + + \ No newline at end of file