diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java index 7654dabe..50d4354b 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java @@ -102,6 +102,8 @@ public interface ErrorCodeConstants { ErrorCode STORE_GOODS_NOT_EXISTS = new ErrorCode(1_007_904_001, "商品不存在"); + ErrorCode STORE_GOODS_IS_SALE = new ErrorCode(1_007_904_001, "售卖商品不允许删除"); + ErrorCode STORE_GOODS_TYPE_NOT_EXISTS = new ErrorCode(1_007_904_002,"商品类别不存在"); ErrorCode STORE_SALE_GOODS_NOT_EXISTS = new ErrorCode(1_007_904_003, "售卖商品不存在"); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/StoreGoodsController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/StoreGoodsController.java index 1f92ad7c..f11b45f3 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/StoreGoodsController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/StoreGoodsController.java @@ -79,6 +79,14 @@ public class StoreGoodsController { return success(BeanUtils.toBean(pageResult, StoreGoodsRespVO.class)); } + @GetMapping("/salePage") + @Operation(summary = "获得商品分页") + public CommonResult> getSaleGoodsPage(@Valid StoreGoodsPageReqVO pageReqVO) { + PageResult pageResult = storeGoodsService.getSaleGoodsPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, StoreGoodsRespVO.class)); + } + + @GetMapping("/export-excel") @Operation(summary = "导出商品 Excel") @PreAuthorize("@ss.hasPermission('member:store-goods:export')") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsPageReqVO.java index a08ae44e..bd875e36 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsPageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsPageReqVO.java @@ -34,4 +34,6 @@ public class StoreGoodsPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + private List ids; + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/StoreOrderController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/StoreOrderController.java index d91a3576..189a3c8c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/StoreOrderController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/StoreOrderController.java @@ -1,5 +1,10 @@ package cn.iocoder.yudao.module.member.controller.admin.storeorder; +import cn.hutool.core.bean.BeanUtil; +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; +import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -37,6 +42,10 @@ public class StoreOrderController { @Resource private StoreOrderService storeOrderService; + @Resource + private MemberUserService userService; + @Resource + private CashregisterinfoApi cashregisterinfoApi; @PostMapping("/create") @Operation(summary = "创建商品订单") @@ -66,17 +75,24 @@ public class StoreOrderController { @Operation(summary = "获得商品订单") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('member:store-order:query')") - public CommonResult getStoreOrder(@RequestParam("id") Integer id) { + public CommonResult getStoreOrder(@RequestParam("id") Integer id) { StoreOrderDO storeOrder = storeOrderService.getStoreOrder(id); - return success(BeanUtils.toBean(storeOrder, StoreOrderRespVO.class)); + StoreOrderDetailVO storeOrderDetailVO = new StoreOrderDetailVO(); + BeanUtil.copyProperties(storeOrder, storeOrderDetailVO); + MemberUserDO user = userService.getUser(storeOrder.getUserId()); + storeOrderDetailVO.setNickName(user.getNickname()); + storeOrderDetailVO.setMobile(user.getMobile()); + String storeName = cashregisterinfoApi.getStoreName(storeOrder.getEquipmentCode()); + storeOrderDetailVO.setStoresName(storeName); + return success(storeOrderDetailVO); } @GetMapping("/page") @Operation(summary = "获得商品订单分页") @PreAuthorize("@ss.hasPermission('member:store-order:query')") - public CommonResult> getStoreOrderPage(@Valid StoreOrderPageReqVO pageReqVO) { - PageResult pageResult = storeOrderService.getStoreOrderPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, StoreOrderRespVO.class)); + public CommonResult> getStoreOrderPage(@Valid StoreOrderPageVO pageReqVO) { + PageResult storeOrderPageNew = storeOrderService.getStoreOrderPageNew(pageReqVO); + return success(storeOrderPageNew); } @GetMapping("/export-excel") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderDetailVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderDetailVO.java new file mode 100644 index 00000000..b09e7325 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderDetailVO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.member.controller.admin.storeorder.vo; + +import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderDetailVo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 商品订单 Response VO") +@Data +@ExcelIgnoreUnannotated +public class StoreOrderDetailVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "22788") + @ExcelProperty("编号") + private Integer orderId; + + @Schema(description = "设备ID") + private String equipmentCode; + + @Schema(description = "总价钱", example = "1722") + private Double totalPrice; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + + @Schema(description = "用户ID") + private Long userId; + + @Schema(description = "减免金额") + private Double reductionPrice; + + @Schema(description = "用户", example = "1722") + private String nickName; + @Schema(description = "手机", example = "1722") + private String mobile; + @Schema(description = "门店", example = "1722") + private String storesName; + + + @Schema(description = "订单详情") + private List detailDOS; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderPageVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderPageVO.java new file mode 100644 index 00000000..1ca00e31 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderPageVO.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.member.controller.admin.storeorder.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 商品订单分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class StoreOrderPageVO extends PageParam { + + + @Schema(description = "总价钱", example = "1722") + private Double totalPrice; + @Schema(description = "订单ID", example = "1722") + private Integer orderId; + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime createTime; + @Schema(description = "用户", example = "1722") + private String nickName; + @Schema(description = "手机", example = "1722") + private String mobile; + @Schema(description = "门店", example = "1722") + private String storesName; + + @Schema(description = "减免金额") + private Double reductionPrice; + + @Schema(description = "时间段", example = "1722") + private String timePeriod; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderRespVO.java index 84dfdee5..99fc1034 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderRespVO.java @@ -51,6 +51,9 @@ public class StoreOrderRespVO { @ExcelProperty("用户") private Long userId; + @Schema(description = "门店", example = "1722") + private String storesName; + @Schema(description = "订单详情") private List detailDOS; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java index f33cd427..32346b55 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java @@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO; import cn.iocoder.yudao.module.member.dal.dataobject.storeorderdetail.StoreOrderDetailDO; import cn.iocoder.yudao.module.member.service.storeorder.StoreOrderService; import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; +import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -41,7 +42,8 @@ public class AppStoreOrderController { private StoreOrderService storeOrderService; @Resource private StoreOrderDetailService orderDetailService; - + @Resource + private CashregisterinfoApi cashregisterinfoApi; @GetMapping("/page") @Operation(summary = "获得商品订单分页") @@ -52,6 +54,7 @@ public class AppStoreOrderController { for (StoreOrderRespVO vo: bean.getList()) { List listByOrderNo = orderDetailService.getListByOrderNo(vo.getOrderId()); vo.setDetailDOS(listByOrderNo); + vo.setStoresName(cashregisterinfoApi.getStoreName(vo.getEquipmentCode())); } return success(bean); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/vo/AppStoreOrderDetailVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/vo/AppStoreOrderDetailVo.java index 9334b627..fd45d757 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/vo/AppStoreOrderDetailVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/vo/AppStoreOrderDetailVo.java @@ -4,9 +4,9 @@ import lombok.Data; @Data public class AppStoreOrderDetailVo { - private Double custom_price; + private Double customPrice; private Integer number; private Double weight; - private String goods_name; + private String goodsName; private String img; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/business/BusinessDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/business/BusinessDO.java index edc7d34a..015496d5 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/business/BusinessDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/business/BusinessDO.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.member.dal.dataobject.business; import lombok.*; + import java.util.*; import java.math.BigDecimal; import java.math.BigDecimal; @@ -12,6 +13,7 @@ import java.math.BigDecimal; import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.LocalDateTime; + import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @@ -58,7 +60,7 @@ public class BusinessDO extends BaseDO { /** * 提现 */ - private BigDecimal withdrawal; + private BigDecimal withdrawal; /** * 补贴钱包 */ @@ -86,9 +88,15 @@ public class BusinessDO extends BaseDO { /** * 门店编号 */ - private Long carteenId; + private Long carteenId; private BigDecimal reduce; + private Integer breakfastNum; + + private Integer lunchNum; + + private Integer dinnerNum; + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storeorder/StoreOrderDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storeorder/StoreOrderDO.java index 7972d7f6..5531a9bd 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storeorder/StoreOrderDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storeorder/StoreOrderDO.java @@ -54,4 +54,9 @@ public class StoreOrderDO extends BaseDO { private Long userId; + /** + * 减免金额 + */ + private Double reductionPrice; + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storegoods/StoreGoodsMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storegoods/StoreGoodsMapper.java index 4607e0ca..f8ae8758 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storegoods/StoreGoodsMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storegoods/StoreGoodsMapper.java @@ -25,6 +25,7 @@ public interface StoreGoodsMapper extends BaseMapperX { .eqIfPresent(StoreGoodsDO::getSalesModel, reqVO.getSalesModel()) .eqIfPresent(StoreGoodsDO::getEquipmentCode, reqVO.getEquipmentCode()) .betweenIfPresent(StoreGoodsDO::getCreateTime, reqVO.getCreateTime()) + .inIfPresent(StoreGoodsDO::getGoodsId, reqVO.getIds()) .orderByDesc(StoreGoodsDO::getCategoryId)); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeorder/StoreOrderMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeorder/StoreOrderMapper.java index c57ee193..e2689e37 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeorder/StoreOrderMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storeorder/StoreOrderMapper.java @@ -6,8 +6,10 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.*; +import org.apache.ibatis.annotations.Param; /** * 商品订单 Mapper @@ -30,4 +32,6 @@ public interface StoreOrderMapper extends BaseMapperX { .orderByDesc(StoreOrderDO::getOrderId)); } + IPage getStoreOrderPageNew(IPage page, @Param("vo") StoreOrderPageVO vo); + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/business/BusinessServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/business/BusinessServiceImpl.java index c94f9f4c..3a833cb7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/business/BusinessServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/business/BusinessServiceImpl.java @@ -107,10 +107,14 @@ public class BusinessServiceImpl implements BusinessService { @Override public void updateStatistics(StatisticsVo vo) { synchronized(getStoreLock(vo.getCarteenId())){ + LocalDate now = LocalDate.now(); + if(vo.getTime()!=null){ + now = vo.getTime().toLocalDate(); + } // 获取今天的开始时间 - LocalDateTime startOfDay = LocalDate.now().atStartOfDay(); + LocalDateTime startOfDay =now.atStartOfDay(); // 获取今天的结束时间 (23:59:59.999) - LocalDateTime endOfDay = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); + LocalDateTime endOfDay = LocalDateTime.of(now, LocalTime.MAX); List businessDOS = businessMapper.selectList(Wrappers.lambdaQuery() .between(BusinessDO::getCreateTime, startOfDay, endOfDay) @@ -150,10 +154,13 @@ public class BusinessServiceImpl implements BusinessService { if(timePeriod.equals(CostTypeEnum.MORNING.getCode())){ businessDO.setBreakfast(businessDO.getBreakfast().add(vo.getTotalMoney())); + businessDO.setBreakfastNum(businessDO.getBreakfastNum() + vo.getOrder_sum()); }else if (timePeriod.equals(CostTypeEnum.NOON.getCode())){ businessDO.setLunch(businessDO.getLunch().add(vo.getTotalMoney())); + businessDO.setLunchNum(businessDO.getLunchNum() + vo.getOrder_sum()); }else if (timePeriod.equals(CostTypeEnum.NIGHT.getCode())){ businessDO.setDinner(businessDO.getDinner().add(vo.getTotalMoney())); + businessDO.setDinnerNum(businessDO.getDinnerNum() + vo.getOrder_sum()); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsService.java index ee94fa62..ddea11fd 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsService.java @@ -55,4 +55,6 @@ public interface StoreGoodsService { List getAll(List goodsIds); + PageResult getSaleGoodsPage(StoreGoodsPageReqVO pageReqVO); + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java index 8e235ec7..94e2120a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java @@ -6,15 +6,20 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsSaveReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.storegoods.StoreGoodsDO; +import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO; import cn.iocoder.yudao.module.member.dal.mysql.storegoods.StoreGoodsMapper; +import cn.iocoder.yudao.module.member.dal.mysql.storesalegoods.StoreSaleGoodsMapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.util.List; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_GOODS_IS_SALE; import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_GOODS_NOT_EXISTS; /** @@ -28,6 +33,8 @@ public class StoreGoodsServiceImpl implements StoreGoodsService { @Resource private StoreGoodsMapper storeGoodsMapper; + @Resource + private StoreSaleGoodsMapper storeSaleGoodsMapper; @Override public Integer createStoreGoods(StoreGoodsSaveReqVO createReqVO) { @@ -51,6 +58,11 @@ public class StoreGoodsServiceImpl implements StoreGoodsService { public void deleteStoreGoods(Integer id) { // 校验存在 validateStoreGoodsExists(id); + // 校验是否售卖商品 + List storeSaleGoodsDOS = storeSaleGoodsMapper.selectList(Wrappers.lambdaQuery().eq(StoreSaleGoodsDO::getGoodsId, id)); + if(CollectionUtil.isNotEmpty(storeSaleGoodsDOS)){ + throw exception(STORE_GOODS_IS_SALE); + } // 删除 storeGoodsMapper.deleteById(id); } @@ -80,4 +92,17 @@ public class StoreGoodsServiceImpl implements StoreGoodsService { } } + + @Override + public PageResult getSaleGoodsPage(StoreGoodsPageReqVO pageReqVO) { + PageResult storeGoodsDOPageResult = null; + + List storeSaleGoodsDOS = storeSaleGoodsMapper.selectList(); + if(CollectionUtil.isNotEmpty(storeSaleGoodsDOS)){ + List ids = storeSaleGoodsDOS.stream().map(StoreSaleGoodsDO::getGoodsId).collect(Collectors.toList()); + pageReqVO.setIds(ids); + storeGoodsDOPageResult = storeGoodsMapper.selectPage(pageReqVO); + } + return storeGoodsDOPageResult; + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java index 92d582c6..c679c344 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.service.storeorder; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageVO; import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderSaveReqVO; import cn.iocoder.yudao.module.member.controller.app.store.dto.FacePayDto; import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreOrderDto; @@ -65,4 +66,6 @@ public interface StoreOrderService { String codePay(StoreOrderDto dto); void batchCacheOrder(StoreOrderUploadDto dto); + + PageResult getStoreOrderPageNew(StoreOrderPageVO pageReqVO); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java index 3b179692..5f153f70 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageVO; import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderSaveReqVO; import cn.iocoder.yudao.module.member.controller.app.store.dto.FacePayDto; import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreGoodsDto; @@ -19,10 +20,13 @@ import cn.iocoder.yudao.module.member.dal.dataobject.storeorderdetail.StoreOrder import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.mysql.storeorder.StoreOrderMapper; import cn.iocoder.yudao.module.member.enums.CostTypeEnum; +import cn.iocoder.yudao.module.member.enums.TimePeriodEnum; import cn.iocoder.yudao.module.member.service.amount.DeductionService; import cn.iocoder.yudao.module.member.service.card.CardService; import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -65,7 +69,6 @@ public class StoreOrderServiceImpl implements StoreOrderService { private DeductionService deductionService; - @Resource private StringRedisTemplate storeOrderRedisTemplate; @@ -144,7 +147,7 @@ public class StoreOrderServiceImpl implements StoreOrderService { BigDecimal compute = compute(total, userDO.getId()); UserInfoVo userInfoVo = new UserInfoVo(); userInfoVo.setUserName(userDO.getNickname()); - userInfoVo.setAvatar("https://yclhit.com:8896"+userDO.getAvatar()); + userInfoVo.setAvatar("https://yclhit.com:8896" + userDO.getAvatar()); userInfoVo.setBalance(compute.doubleValue()); return userInfoVo; } @@ -154,7 +157,7 @@ public class StoreOrderServiceImpl implements StoreOrderService { public String cardPay(StoreOrderDto dto) { MemberUserDO userDO = userService.getByCardId(dto.getCardNumber()); - if (ObjectUtil.isEmpty(userDO)){ + if (ObjectUtil.isEmpty(userDO)) { return "该卡未绑定用户"; } dto.setUserId(userDO.getId()); @@ -191,9 +194,9 @@ public class StoreOrderServiceImpl implements StoreOrderService { @Override public void batchCacheOrder(StoreOrderUploadDto dto) { - for (StoreLocalOrderDto orderDto :dto.getMgcrCacheOrderVoList()){ + for (StoreLocalOrderDto orderDto : dto.getMgcrCacheOrderVoList()) { StoreOrderDO storeOrderDO = new StoreOrderDO(); - BeanUtil.copyProperties(orderDto, storeOrderDO,"createTime"); + BeanUtil.copyProperties(orderDto, storeOrderDO, "createTime"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); storeOrderDO.setCreateTime(LocalDateTime.parse(orderDto.getCreateTime(), formatter)); @@ -216,10 +219,21 @@ public class StoreOrderServiceImpl implements StoreOrderService { } public BigDecimal compute(BigDecimal total, Long userId) { - return deductionService.storeDeduction(total, userId); + return deductionService.storeDeduction(total, userId); } - public void test(){ + @Override + public PageResult getStoreOrderPageNew(StoreOrderPageVO pageReqVO) { + Page page = Page.of(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + IPage pageNew = storeOrderMapper.getStoreOrderPageNew(page, pageReqVO); + List records = pageNew.getRecords(); +// for (StoreOrderPageVO record : records) { +// record.setTimePeriod(TimePeriodEnum.getTimeName(record.getCreateTime())); +// } + return new PageResult<>(records, pageNew.getTotal()); + } + + public void test() { //计算金额 //if (total.compareTo(wxAmount) <= 0) { // cardDO.setWxAmount(wxAmount.subtract(total).setScale(2, BigDecimal.ROUND_HALF_UP)); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/storeorder/StoreOrderMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/storeorder/StoreOrderMapper.xml new file mode 100644 index 00000000..3419a29d --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/storeorder/StoreOrderMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/cashregisterinfo/CashregisterinfoApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/cashregisterinfo/CashregisterinfoApi.java new file mode 100644 index 00000000..6eab18e3 --- /dev/null +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/cashregisterinfo/CashregisterinfoApi.java @@ -0,0 +1,9 @@ +package cn.iocoder.yudao.module.system.api.cashregisterinfo; + +public interface CashregisterinfoApi { + + String getStoreName(String equipmentCode); + + + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/cashregisterinfo/CashregisterinfoApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/cashregisterinfo/CashregisterinfoApiImpl.java new file mode 100644 index 00000000..7360c62f --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/cashregisterinfo/CashregisterinfoApiImpl.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.system.api.cashregisterinfo; + +import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.module.system.dal.dataobject.cashregisterinfo.CashRegisterInfoDO; +import cn.iocoder.yudao.module.system.dal.mysql.carteen.CarteenMapper; +import cn.iocoder.yudao.module.system.dal.mysql.cashregisterinfo.CashRegisterInfoMapper; +import cn.iocoder.yudao.module.system.dal.mysql.dishes.DishesMapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class CashregisterinfoApiImpl implements CashregisterinfoApi{ + + @Resource + private CarteenMapper carteenMapper; + + @Resource + private CashRegisterInfoMapper cashRegisterInfoMapper; + + @Override + public String getStoreName(String equipmentCode) { + List cashRegisterInfoDOS = cashRegisterInfoMapper.selectList(Wrappers.lambdaQuery().eq(CashRegisterInfoDO::getEquipmentCode, equipmentCode)); + if(CollectionUtil.isNotEmpty(cashRegisterInfoDOS)){ + CashRegisterInfoDO cashRegisterInfoDO = cashRegisterInfoDOS.get(0); + return carteenMapper.selectById(cashRegisterInfoDO.getCarteenId()).getStoresName(); + } + return ""; + } +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dishimage/AppDishImageController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dishimage/AppDishImageController.java index 0d8182f6..789e33c2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dishimage/AppDishImageController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dishimage/AppDishImageController.java @@ -40,8 +40,8 @@ public class AppDishImageController { @GetMapping("/get") @Operation(summary = "获得本周菜单") - public CommonResult getThisWeekDishImage(Long carteenId) { - DishImageDO dishImage = dishImageService.getThisWeekDishImage(carteenId); + public CommonResult getThisWeekDishImage(Long carteenId,String time) { + DishImageDO dishImage = dishImageService.getThisWeekDishImage(carteenId,time); return success(BeanUtils.toBean(dishImage, DishImageRespVO.class)); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishimage/DishImageService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishimage/DishImageService.java index 284a8a0f..bd2a4e75 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishimage/DishImageService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishimage/DishImageService.java @@ -57,7 +57,7 @@ public interface DishImageService { /** * 获得本周菜单 */ - DishImageDO getThisWeekDishImage(Long carteenId); + DishImageDO getThisWeekDishImage(Long carteenId,String time); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishimage/DishImageServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishimage/DishImageServiceImpl.java index cc5cacdf..e5740d55 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishimage/DishImageServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishimage/DishImageServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.system.service.dishimage; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.module.system.controller.admin.dishimage.vo.DishImagePageReqVO; import cn.iocoder.yudao.module.system.controller.admin.dishimage.vo.DishImageSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.dishimage.DishImageDO; @@ -81,10 +82,12 @@ public class DishImageServiceImpl implements DishImageService { } @Override - public DishImageDO getThisWeekDishImage(Long carteenId) { + public DishImageDO getThisWeekDishImage(Long carteenId,String time) { // 获取今天的日期 LocalDate today = LocalDate.now(); - + if(StrUtil.isNotBlank(time)){ + today= LocalDate.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + } // 获取本周的开始日期(周一) LocalDate weekStart = today.with(DayOfWeek.MONDAY);