售卖商品

This commit is contained in:
seesaw
2024-10-30 10:22:11 +08:00
parent 3bff7c906a
commit a4fa53440b
10 changed files with 110 additions and 18 deletions

View File

@ -81,4 +81,10 @@ public class BusinessRespVO {
private int orderSumCompare; private int orderSumCompare;
private BigDecimal priceAvgCompare; private BigDecimal priceAvgCompare;
private Integer breakfastNum;
private Integer lunchNum;
private Integer dinnerNum;
} }

View File

@ -80,10 +80,9 @@ public class StoreGoodsController {
} }
@GetMapping("/salePage") @GetMapping("/salePage")
@Operation(summary = "获得商品分页") @Operation(summary = "获得售卖商品分页")
public CommonResult<PageResult<StoreGoodsRespVO>> getSaleGoodsPage(@Valid StoreGoodsPageReqVO pageReqVO) { public CommonResult<PageResult<StoreSaleGoodsPageVO>> getSaleGoodsPage(@Valid StoreSaleGoodsPageVO pageReqVO) {
PageResult<StoreGoodsDO> pageResult = storeGoodsService.getSaleGoodsPage(pageReqVO); return success(storeGoodsService.getSaleGoodsPage(pageReqVO));
return success(BeanUtils.toBean(pageResult, StoreGoodsRespVO.class));
} }

View File

@ -40,4 +40,5 @@ public class StoreGoodsRespVO {
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
} }

View File

@ -0,0 +1,44 @@
package cn.iocoder.yudao.module.member.controller.admin.storegoods.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 java.util.List;
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 StoreSaleGoodsPageVO extends PageParam {
@Schema(description = "id", example = "28357")
private Long id;
@Schema(description = "类别Id", example = "28357")
private Integer categoryId;
@Schema(description = "商品名称", example = "张三")
private String goodsName;
@Schema(description = "价格", example = "11124")
private Double price;
@Schema(description = "售卖模式")
private Integer salesModel;
@Schema(description = "设备ID")
private String equipmentCode;
@Schema(description = "创建时间")
private LocalDateTime createTime;
private Long carteenId;
}

View File

@ -21,4 +21,7 @@ public class StoreSaleGoodsSaveReqVO {
@Schema(description = "设备ID") @Schema(description = "设备ID")
private String equipmentCode; private String equipmentCode;
@Schema(description = "门店ID")
private Long carteenId;
} }

View File

@ -5,9 +5,13 @@ import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreSaleGoodsPageVO;
import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageVO;
import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO; import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.*; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.*;
import org.apache.ibatis.annotations.Param;
/** /**
* 售卖商品 Mapper * 售卖商品 Mapper
@ -26,4 +30,7 @@ public interface StoreSaleGoodsMapper extends BaseMapperX<StoreSaleGoodsDO> {
.orderByDesc(StoreSaleGoodsDO::getId)); .orderByDesc(StoreSaleGoodsDO::getId));
} }
IPage<StoreSaleGoodsPageVO> getSaleGoodsPage(IPage<StoreSaleGoodsPageVO> page, @Param("vo") StoreSaleGoodsPageVO vo);
} }

View File

@ -55,6 +55,6 @@ public interface StoreGoodsService {
List<StoreGoodsDO> getAll(List<Integer> goodsIds); List<StoreGoodsDO> getAll(List<Integer> goodsIds);
PageResult<StoreGoodsDO> getSaleGoodsPage(StoreGoodsPageReqVO pageReqVO); PageResult<StoreSaleGoodsPageVO> getSaleGoodsPage(StoreSaleGoodsPageVO pageReqVO);
} }

View File

@ -5,12 +5,16 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 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.StoreGoodsPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsSaveReqVO; import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsSaveReqVO;
import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreSaleGoodsPageVO;
import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageVO;
import cn.iocoder.yudao.module.member.dal.dataobject.storegoods.StoreGoodsDO; 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.dataobject.storesalegoods.StoreSaleGoodsDO;
import cn.iocoder.yudao.module.member.dal.mysql.storegoods.StoreGoodsMapper; import cn.iocoder.yudao.module.member.dal.mysql.storegoods.StoreGoodsMapper;
import cn.iocoder.yudao.module.member.dal.mysql.storesalegoods.StoreSaleGoodsMapper; import cn.iocoder.yudao.module.member.dal.mysql.storesalegoods.StoreSaleGoodsMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -94,15 +98,12 @@ public class StoreGoodsServiceImpl implements StoreGoodsService {
} }
@Override @Override
public PageResult<StoreGoodsDO> getSaleGoodsPage(StoreGoodsPageReqVO pageReqVO) { public PageResult<StoreSaleGoodsPageVO> getSaleGoodsPage(StoreSaleGoodsPageVO pageReqVO) {
PageResult<StoreGoodsDO> storeGoodsDOPageResult = null;
List<StoreSaleGoodsDO> storeSaleGoodsDOS = storeSaleGoodsMapper.selectList(); Page<StoreSaleGoodsPageVO> page = Page.of(pageReqVO.getPageNo(), pageReqVO.getPageSize());
if(CollectionUtil.isNotEmpty(storeSaleGoodsDOS)){
List<Integer> ids = storeSaleGoodsDOS.stream().map(StoreSaleGoodsDO::getGoodsId).collect(Collectors.toList()); IPage<StoreSaleGoodsPageVO> saleGoodsPage = storeSaleGoodsMapper.getSaleGoodsPage(page, pageReqVO);
pageReqVO.setIds(ids);
storeGoodsDOPageResult = storeGoodsMapper.selectPage(pageReqVO); return new PageResult<>(saleGoodsPage.getRecords(), saleGoodsPage.getTotal());
}
return storeGoodsDOPageResult;
} }
} }

View File

@ -88,10 +88,10 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService {
if(CollectionUtil.isEmpty(dto.getEquipmentGoodsCustoms())){ if(CollectionUtil.isEmpty(dto.getEquipmentGoodsCustoms())){
throw exception(STORE_SALE_GOODS_NOT_NULL); throw exception(STORE_SALE_GOODS_NOT_NULL);
} }
//清空
storeSaleGoodsMapper.delete(new LambdaQueryWrapper<StoreSaleGoodsDO>().eq(StoreSaleGoodsDO::getEquipmentCode, dto.getEquipmentCode()));
ArrayList<StoreSaleGoodsDO> list = new ArrayList<>();
Long storeId = cashregisterinfoApi.getStoreId(dto.getEquipmentCode()); Long storeId = cashregisterinfoApi.getStoreId(dto.getEquipmentCode());
//清空
storeSaleGoodsMapper.delete(new LambdaQueryWrapper<StoreSaleGoodsDO>().eq(StoreSaleGoodsDO::getCarteenId, storeId));
ArrayList<StoreSaleGoodsDO> list = new ArrayList<>();
for (StoreGoodsDto storeGoodsDto : dto.getEquipmentGoodsCustoms()) { for (StoreGoodsDto storeGoodsDto : dto.getEquipmentGoodsCustoms()) {
StoreSaleGoodsDO storeSaleGoodsDO = new StoreSaleGoodsDO(); StoreSaleGoodsDO storeSaleGoodsDO = new StoreSaleGoodsDO();
BeanUtil.copyProperties(storeGoodsDto, storeSaleGoodsDO); BeanUtil.copyProperties(storeGoodsDto, storeSaleGoodsDO);
@ -104,7 +104,10 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService {
@Override @Override
public List<Integer> getGoodsIds(String equipmentCode) { public List<Integer> getGoodsIds(String equipmentCode) {
List<StoreSaleGoodsDO> storeSaleGoodsDOS = storeSaleGoodsMapper.selectList(new LambdaQueryWrapper<StoreSaleGoodsDO>().eq(StoreSaleGoodsDO::getEquipmentCode, equipmentCode));
Long storeId = cashregisterinfoApi.getStoreId(equipmentCode);
List<StoreSaleGoodsDO> storeSaleGoodsDOS = storeSaleGoodsMapper.selectList(new LambdaQueryWrapper<StoreSaleGoodsDO>().eq(StoreSaleGoodsDO::getCarteenId, storeId));
if (CollectionUtil.isEmpty(storeSaleGoodsDOS)){ if (CollectionUtil.isEmpty(storeSaleGoodsDOS)){
return Collections.emptyList(); return Collections.emptyList();
}else { }else {

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.member.dal.mysql.storesalegoods.StoreSaleGoodsMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getSaleGoodsPage" resultType="cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreSaleGoodsPageVO">
select sg.id,sg.carteen_id,sg.create_time,ms.category_id,ms.goods_name,ms.img,ms.sales_model,ms.price
from member_store_sale_goods sg left join member_store_goods ms on sg.goods_id = ms.goods_id
where sg.deleted = false
<if test="vo.categoryId != null ">
and ms.category_id = #{vo.categoryId}
</if>
<if test="vo.goodsName != null and vo.goodsName != ''">
and ms.goods_name like concat('%',#{vo.goodsName},'%')
</if>
<if test="vo.carteenId != null ">
and sg.carteen_id = #{vo.carteenId}
</if>
order by sg.create_time DESC
</select>
</mapper>