This commit is contained in:
dzc committed 2025-01-08 14:00:04 +08:00
commit f5cc8b27e1
18 files changed
+385 -11

No files matched your search

@@ -44,7 +44,7 @@ public interface RemoteSupermarketSpuService {
* @return R
*/
@PostMapping("/supermarketSpu/ad/selectListAll")
R getSupermarketSpu(@RequestBody SupermarketSpuQueryDTO supermarketSpuQueryDTO);
R getSupermarketSpuScope(@RequestBody SupermarketSpuQueryDTO supermarketSpuQueryDTO);
@@ -64,4 +64,15 @@ public interface RemoteSupermarketSpuService {
*/
@PostMapping("/supermarketSpu/ad/updateSpuStock")
R getSupermarketSpu(@RequestBody SupermarketSpuUpdateStockReqDTO updateStockReqDTO);
/**
* 查询所有的超市spu列表信息,根据条件
* @return R
*/
@PostMapping("/supermarketSpu/app/selectListAll")
R getSupermarketSpu(@RequestBody SupermarketSpuQueryDTO supermarketSpuQueryDTO);
}
@@ -0,0 +1,52 @@
package com.bsd.pjcloud.supermarket.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "App商品 SPU 查询参数")
public class SupermarketSpuAppQueryDTO {
/**
* 商品 SPU 编号,自增
*/
// @Schema(description="商品 SPU 编号,自增")
// private Long id;
// /**
// * 货号
// */
// @Schema(description="货号")
// private String productCode;
//
// /**
// * 自编码/条码
// */
// @Schema(description="自编码/条码")
// private String barcode;
/**
* 商品名称
*/
@Schema(description="商品名称")
private String productName;
/**
* 商品分类编号
*/
@Schema(description="商品分类编号")
private Long categoryId;
/**
* 商品性质(字典)
*/
// @Schema(description="商品性质(字典)")
// private String productNature;
/**
* 商户id
*/
@Schema(description="商户id")
private Long merchantId;
}
@@ -44,4 +44,11 @@ public class SupermarketSpuQueryDTO {
*/
@Schema(description="商品性质(字典)")
private String productNature;
/**
* 商户id
*/
@Schema(description="商户id")
private Long merchantId;
}
@@ -100,4 +100,11 @@ public class SupermarketBrandEntity extends Model<SupermarketBrandEntity> {
*/
@Schema(description="租户编号")
private Long tenantId;
/**
* 商户id
*/
@Schema(description="商户id")
private Long merchantId;
}
@@ -106,4 +106,10 @@ public class SupermarketCategoryEntity extends Model<SupermarketCategoryEntity>
*/
@Schema(description="租户编号")
private Long tenantId;
/**
* 商户id
*/
@Schema(description="商户id")
private Long merchantId;
}
@@ -20,7 +20,6 @@ import java.time.LocalDateTime;
*/
@Data
@TenantTable
@TableName("supermarket_unit")
@Schema(description = "商品包装单位(sku)")
public class SupermarketUnitVo{
@@ -0,0 +1,57 @@
package com.bsd.pjcloud.supermarket.vo.app;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
@Schema(description="app Spuvo")
public class SupermarketAppSpuDetailsVo {
/**
* 商品 SPU 编号,自增
*/
@Schema(description="商品 SPU 编号")
private Long id;
/**
* 商品名称
*/
@Schema(description="商品名称")
private String productName;
/**
* 商品封面图
*/
@Schema(description="商品封面图")
private String picUrl;
/**
* 库存
*/
@Schema(description="剩余库存")
private Integer stock;
/**
* 商户编号
*/
@Schema(description="商户编号")
private Long merchantId;
@Schema(description = "销量")
private Integer salesCount;
@Schema(description = "包装单位集合(sku)")
private List<SupermarketAppUnitVo> skuList;
}
@@ -0,0 +1,54 @@
package com.bsd.pjcloud.supermarket.vo.app;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
@Schema(description="app Spuvo")
public class SupermarketAppSpuVo {
/**
* 商品 SPU 编号,自增
*/
@Schema(description="商品 SPU 编号")
private Long id;
/**
* 商品名称
*/
@Schema(description="商品名称")
private String productName;
/**
* 商品封面图
*/
@Schema(description="商品封面图")
private String picUrl;
/**
* 库存
*/
@Schema(description="剩余库存")
private Integer stock;
/**
* 商户编号
*/
@Schema(description="商户编号")
private Long merchantId;
@Schema(description = "销量")
private Integer salesCount;
}
@@ -0,0 +1,82 @@
package com.bsd.pjcloud.supermarket.vo.app;
import com.baomidou.mybatisplus.annotation.*;
import com.bsd.pjcloud.common.core.util.MoneyDeserializer;
import com.bsd.pjcloud.common.core.util.MoneySerializer;
import com.bsd.pjcloud.common.core.util.TenantTable;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 商品包装单位(sku)
*
* @author zjf
* @date 2024-12-26 11:06:54
*/
@Data
@TenantTable
@Schema(description = "商品包装单位(sku)")
public class SupermarketAppUnitVo {
/**
* 包装单位id
*/
@Schema(description="包装单位id")
private Long id;
/**
* 条码
*/
@Schema(description="条码")
private String barCode;
/**
* 规格
*/
@Schema(description="规格")
private String spec;
/**
* 单位
*/
@Schema(description="单位")
private String unit;
/**
* 内装数量
*/
@Schema(description="内装数量")
private Integer packageNum;
/**
* 零售价/单位分
*/
@Schema(description="零售价")
@JsonSerialize(using = MoneySerializer.class) // 分 -> 元
@JsonDeserialize(using = MoneyDeserializer.class) // 元 -> 分
private Integer retailPrice;
/**
* spuID
*/
@Schema(description="spuID")
private Long spuId;
/**
* 促销价
*/
@Schema(description="促销价")
@JsonSerialize(using = MoneySerializer.class) // 分 -> 元
@JsonDeserialize(using = MoneyDeserializer.class) // 元 -> 分
private Integer promotionPrice;
}
@@ -1,21 +1,23 @@
package com.bsd.pjcloud.supermarket.vo;
package com.bsd.pjcloud.supermarket.vo.app;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.bsd.pjcloud.supermarket.vo.SupermarketUnitVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Schema(description="ad spu详情")
public class SupermarketSpuDetailsVo {
public class SupermarketSpuAppDetailsVo {
/**
* 商品 SPU 编号,自增
*/
@Schema(description="商品 SPU 编号,自增")
@Schema(description="商品 SPU 编号")
private Long id;
/**
@@ -155,4 +157,7 @@ public class SupermarketSpuDetailsVo {
@Schema(description = "包装对象集合")
private List<SupermarketUnitVo> supermarketUnitEntityList;
}
@@ -128,8 +128,25 @@ public class SupermarketCategoryController {
@Operation(summary = "下拉查询")
@GetMapping("/simpleAll")
public R getSimpleAll() {
List<SupermarketCategoryEntity> list = supermarketCategoryService.list();
List<SupermarketCategoryEntity> list = supermarketCategoryService.listScope();
List<SupermarketCategorySimpleVo> bean = BeanUtils.toBean(list, SupermarketCategorySimpleVo.class);
return R.ok(bean);
}
// --------------APP-------------------
/**
* 获取商户下所有分类
* @return
*/
@Operation(summary = "APP分类查询",description = "通过商户id获取该商户下的分类")
@GetMapping("/app/simpleAll")
public R getAppSimpleAll(@RequestParam("merchantId")Long merchantId) {
List<SupermarketCategoryEntity> list = supermarketCategoryService.
list(new LambdaQueryWrapper<SupermarketCategoryEntity>().eq(SupermarketCategoryEntity::getMerchantId, merchantId));
List<SupermarketCategorySimpleVo> bean = BeanUtils.toBean(list, SupermarketCategorySimpleVo.class);
return R.ok(bean);
}
}
@@ -6,9 +6,11 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.supermarket.dto.SupermarketSpuAppQueryDTO;
import com.bsd.pjcloud.supermarket.dto.SupermarketSpuQueryDTO;
import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockReqDTO;
import com.bsd.pjcloud.supermarket.entity.SupermarketAuxiliaryCodeEntity;
@@ -17,6 +19,7 @@ import com.bsd.pjcloud.supermarket.entity.SupermarketUnitEntity;
import com.bsd.pjcloud.supermarket.service.SupermarketAuxiliaryCodeService;
import com.bsd.pjcloud.supermarket.service.SupermarketSpuService;
import com.bsd.pjcloud.supermarket.service.SupermarketUnitService;
import com.bsd.pjcloud.supermarket.vo.app.SupermarketAppSpuVo;
import org.springframework.security.access.prepost.PreAuthorize;
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -149,10 +152,10 @@ public class SupermarketSpuController {
* @param supermarketSpuQueryDTO 商品spu
* @return
*/
@Operation(summary = "条件查询所有" , description = "条件查询所有" )
@Operation(summary = "安卓机条件查询所有" , description = "安卓机条件查询所有" )
@PostMapping("/ad/selectListAll" )
@PreAuthorize("@pms.hasPermission('supermarket_supermarketSpu_view')" )
public R getSupermarketSpu(@RequestBody SupermarketSpuQueryDTO supermarketSpuQueryDTO) {
public R getSupermarketSpuByScope(@RequestBody SupermarketSpuQueryDTO supermarketSpuQueryDTO) {
return R.ok(supermarketSpuService.selectListAllScope(supermarketSpuQueryDTO));
}
@@ -170,6 +173,7 @@ public class SupermarketSpuController {
@PostMapping("/ad/updateSpuStock")
@Operation(summary = "更新库存" , description = "app和安卓公用" )
@SysLog("更新商品库存")
public R updateSkuStock(@RequestBody SupermarketSpuUpdateStockReqDTO updateStockReqDTO){
return supermarketSpuService.updateSpuStock(updateStockReqDTO);
@@ -178,4 +182,38 @@ public class SupermarketSpuController {
/**
* 条件查询spu单表 列表信息
* @param supermarketSpuQueryDTO 商品spu
* @return
*/
@Operation(summary = "APP根据条件查询分页SPU" , description = "APP条件分页查询" )
@PostMapping("/app/selectListAll" )
@PreAuthorize("@pms.hasPermission('supermarket_supermarketSpu_view')" )
public R getSupermarketSpu(@RequestBody SupermarketSpuAppQueryDTO supermarketSpuQueryDTO,@ParameterObject Page page) {
LambdaQueryWrapper<SupermarketSpuEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(supermarketSpuQueryDTO.getMerchantId() != null, SupermarketSpuEntity::getMerchantId, supermarketSpuQueryDTO.getMerchantId());
// wrapper.eq(StrUtil.isNotBlank(supermarketSpuQueryDTO.getProductCode()), SupermarketSpuEntity::getProductCode, supermarketSpuQueryDTO.getProductCode());
// wrapper.eq(StrUtil.isNotBlank(supermarketSpuQueryDTO.getBarcode()), SupermarketSpuEntity::getBarcode, supermarketSpuQueryDTO.getBarcode());
wrapper.like(StrUtil.isNotBlank(supermarketSpuQueryDTO.getProductName()), SupermarketSpuEntity::getProductName, supermarketSpuQueryDTO.getProductName());
Page pageDate = supermarketSpuService.page(page, wrapper);
List list = pageDate.getRecords();
List<SupermarketAppSpuVo> bean = BeanUtils.toBean(list, SupermarketAppSpuVo.class);
pageDate.setRecords(bean);
return R.ok(pageDate);
}
/**
* 根据spu id 查询spu详情,详情包括辅助条码和包装单位基本信息
* @param id
* @return
*/
@Operation(summary = "app获取spu详情" , description = "根据spu的id" )
@GetMapping("/app/SpuDetails" )
public R getSupermarketSpuAppDetailById(@RequestParam("id")Long id) {
return R.ok(supermarketSpuService.getSupermarketSpuAppDetailById(id));
}
}
@@ -3,6 +3,14 @@ package com.bsd.pjcloud.supermarket.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bsd.pjcloud.supermarket.entity.SupermarketCategoryEntity;
import java.util.List;
public interface SupermarketCategoryService extends IService<SupermarketCategoryEntity> {
/**
* 下拉查询
* @return
*/
List<SupermarketCategoryEntity> listScope();
}
@@ -52,4 +52,12 @@ public interface SupermarketSpuService extends IService<SupermarketSpuEntity> {
* @return
*/
Object getSupermarketSpuDetailById(Long id);
/**
* app端查询商品详情
* @param id
* @return
*/
Object getSupermarketSpuAppDetailById(Long id);
}
@@ -1,10 +1,15 @@
package com.bsd.pjcloud.supermarket.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.supermarket.entity.SupermarketCategoryEntity;
import com.bsd.pjcloud.supermarket.mapper.SupermarketCategoryMapper;
import com.bsd.pjcloud.supermarket.service.SupermarketCategoryService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 商品分类
*
@@ -13,4 +18,8 @@ import org.springframework.stereotype.Service;
*/
@Service
public class SupermarketCategoryServiceImpl extends ServiceImpl<SupermarketCategoryMapper, SupermarketCategoryEntity> implements SupermarketCategoryService {
@Override
public List<SupermarketCategoryEntity> listScope() {
return baseMapper.selectListByScope(new LambdaQueryWrapper<SupermarketCategoryEntity>(), DataScope.of());
}
}
@@ -15,9 +15,10 @@ import com.bsd.pjcloud.supermarket.mapper.SupermarketSpuMapper;
import com.bsd.pjcloud.supermarket.service.SupermarketAuxiliaryCodeService;
import com.bsd.pjcloud.supermarket.service.SupermarketSpuService;
import com.bsd.pjcloud.supermarket.service.SupermarketUnitService;
import com.bsd.pjcloud.supermarket.vo.SupermarketAuxiliaryCodeVo;
import com.bsd.pjcloud.supermarket.vo.SupermarketSpuVo;
import com.bsd.pjcloud.supermarket.vo.SupermarketUnitVo;
import com.bsd.pjcloud.supermarket.vo.*;
import com.bsd.pjcloud.supermarket.vo.app.SupermarketAppSpuDetailsVo;
import com.bsd.pjcloud.supermarket.vo.app.SupermarketAppSpuVo;
import com.bsd.pjcloud.supermarket.vo.app.SupermarketAppUnitVo;
import lombok.AllArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
@@ -160,4 +161,15 @@ public class SupermarketSpuServiceImpl extends ServiceImpl<SupermarketSpuMapper,
supermarketSpuVo.setSupermarketAuxiliaryCodeEntityList(supermarketAuxiliaryCodeVos);
return supermarketSpuVo;
}
@Override
public Object getSupermarketSpuAppDetailById(Long id) {
SupermarketSpuEntity supermarketSpuEntity = baseMapper.selectById(id);
List<SupermarketUnitEntity> supermarketUnitEntityList = supermarketUnitService.list(new LambdaQueryWrapper<SupermarketUnitEntity>().eq(SupermarketUnitEntity::getSpuId, id));
List<SupermarketUnitEntity> unitEntities = supermarketUnitEntityList.stream().filter(supermarketUnitEntity -> supermarketUnitEntity.getStatus() == 0).collect(Collectors.toList());
SupermarketAppSpuDetailsVo supermarketAppSpuVo = BeanUtils.toBean(supermarketSpuEntity, SupermarketAppSpuDetailsVo.class);
List<SupermarketAppUnitVo> supermarketAppUnitVos = BeanUtils.toBean(unitEntities, SupermarketAppUnitVo.class);
supermarketAppSpuVo.setSkuList(supermarketAppUnitVos);
return supermarketAppSpuVo;
}
}
@@ -16,5 +16,6 @@
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="merchantId" column="merchant_id"/>
</resultMap>
</mapper>
@@ -17,5 +17,6 @@
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="merchantId" column="merchant_id"/>
</resultMap>
</mapper>