Browse Source

适配商城端页面接口

v1.0
Yen 2 years ago
parent
commit
e24b5aef1e
  1. 116
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSaleGroupController.java
  2. 2
      src/main/java/com/qs/serve/modules/goods/controller/api/GoodsBrandApi.java
  3. 22
      src/main/java/com/qs/serve/modules/goods/controller/api/GoodsCategoryApi.java
  4. 48
      src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSaleGroupApi.java
  5. 4
      src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSeriesApi.java
  6. 24
      src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java
  7. 91
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSaleGroup.java
  8. 10
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java
  9. 14
      src/main/java/com/qs/serve/modules/goods/mapper/GoodsSaleGroupMapper.java
  10. 14
      src/main/java/com/qs/serve/modules/goods/service/GoodsSaleGroupService.java
  11. 22
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSaleGroupServiceImpl.java

116
src/main/java/com/qs/serve/modules/goods/controller/GoodsSaleGroupController.java

@ -0,0 +1,116 @@
package com.qs.serve.modules.goods.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.goods.entity.GoodsSaleGroup;
import com.qs.serve.modules.goods.service.GoodsSaleGroupService;
import javax.validation.Valid;
import java.util.List;
/**
* 商品 商品销售分组
* @author YenHex
* @since 2023-08-21
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("goods/saleGroup")
public class GoodsSaleGroupController {
private GoodsSaleGroupService goodsSaleGroupService;
/**
* 列表
* @param param
* @return
*/
//@GetMapping("/list")
public R<List<GoodsSaleGroup>> getList(GoodsSaleGroup param){
LambdaQueryWrapper<GoodsSaleGroup> lqw = new LambdaQueryWrapper<>(param);
lqw.orderByDesc(GoodsSaleGroup::getSort);
List<GoodsSaleGroup> list = goodsSaleGroupService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<GoodsSaleGroup>> getPage(GoodsSaleGroup param){
LambdaQueryWrapper<GoodsSaleGroup> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
lqw.orderByDesc(GoodsSaleGroup::getSort);
List<GoodsSaleGroup> list = goodsSaleGroupService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.GOODS, title = "商品销售分组", biz = BizType.QUERY)
@PreAuthorize("hasRole('goods:saleGroup:query')")
public R<GoodsSaleGroup> getById(@PathVariable("id") String id){
GoodsSaleGroup goodsSaleGroup = goodsSaleGroupService.getById(id);
return R.ok(goodsSaleGroup);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.GOODS, title = "商品销售分组", biz = BizType.UPDATE)
public R<?> updateById(@RequestBody @Valid GoodsSaleGroup param){
boolean result = goodsSaleGroupService.updateById(param);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.GOODS, title = "商品销售分组", biz = BizType.INSERT)
public R<?> save(@RequestBody @Valid GoodsSaleGroup param){
boolean result = goodsSaleGroupService.save(param);
return R.isTrue(result);
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
@SysLog(module = SystemModule.GOODS, title = "商品销售分组", biz = BizType.DELETE)
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = goodsSaleGroupService.removeByIds(idsLong);
return R.isTrue(result);
}
}

2
src/main/java/com/qs/serve/modules/goods/controller/api/GoodsBrandApi.java

@ -27,7 +27,7 @@ import java.util.List;
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("api/brand")
@RequestMapping("my/brand")
public class GoodsBrandApi {
private GoodsBrandService goodsBrandService;

22
src/main/java/com/qs/serve/modules/goods/controller/api/GoodsCategoryApi.java

@ -1,9 +1,11 @@
package com.qs.serve.modules.goods.controller.api;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.dto.TreeNode;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CopierUtil;
@ -18,6 +20,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@ -29,7 +32,7 @@ import java.util.stream.Collectors;
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("/api/category")
@RequestMapping("/my/category")
public class GoodsCategoryApi {
private GoodsCategoryService goodsCategoryService;
@ -50,7 +53,24 @@ public class GoodsCategoryApi {
treeNode.setSort(0);
return treeNode;
}).collect(Collectors.toList());
treeVoList.sort((o1,o2) -> (o2.getSort()-o1.getSort()));
treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING);
for (GoodsCategoryTreeVo treeVo : treeVoList) {
//第二级为空,补充第二,三级
if(CollUtil.isEmpty(treeVo.getChildren())){
GoodsCategoryTreeVo treeVoLv2 = CopierUtil.copy(treeVo,new GoodsCategoryTreeVo());
treeVoLv2.getChildren().add(CopierUtil.copy(treeVo,new GoodsCategoryTreeVo()));
treeVo.getChildren().add(treeVoLv2);
}else {
for (TreeNode object : treeVo.getChildren()) {
//第三级为空,补充第三级
if(CollUtil.isEmpty(object.getChildren())){
GoodsCategoryTreeVo child2 = (GoodsCategoryTreeVo)object;
treeVo.getChildren().add(CopierUtil.copy(child2,new GoodsCategoryTreeVo()));
}
}
}
}
return R.ok(treeVoList);
}

48
src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSaleGroupApi.java

@ -0,0 +1,48 @@
package com.qs.serve.modules.goods.controller.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.goods.entity.GoodsSaleGroup;
import com.qs.serve.modules.goods.service.GoodsSaleGroupService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* API商品销售分组
* @author YenHex
* @since 2023-08-21
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("my/saleGroup")
public class GoodsSaleGroupApi {
private GoodsSaleGroupService goodsSaleGroupService;
/**
* 列表
* @return
*/
@GetMapping("/list")
public R<List<GoodsSaleGroup>> getList(){
LambdaQueryWrapper<GoodsSaleGroup> lqw = new LambdaQueryWrapper<>();
lqw.eq(GoodsSaleGroup::getShowFlag,1);
lqw.orderByDesc(GoodsSaleGroup::getSort);
List<GoodsSaleGroup> list = goodsSaleGroupService.list(lqw);
return R.ok(list);
}
}

4
src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSeriesApi.java

@ -24,8 +24,8 @@ import java.util.List;
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("/api/series")
//@RestController
//@RequestMapping("/my/series")
public class GoodsSeriesApi {
private GoodsSeriesService goodsSeriesService;

24
src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java

@ -7,6 +7,7 @@ import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo;
import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo;
@ -27,7 +28,7 @@ import java.util.List;
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("/api/spu")
@RequestMapping("/my/spu")
public class GoodsSpuApi {
private GoodsSpuService goodsSpuService;
@ -41,7 +42,27 @@ public class GoodsSpuApi {
public R<PageVo<GoodsSpu>> getPage(GoodsSpu param){
PageUtil.startPage();
LambdaQueryWrapper<GoodsSpu> spuWrapper = new LambdaQueryWrapper<>(param);
//销售分组id(默认0,表所有 不进行条件过滤)
if(param.getGoodsSaleGroupId().equals(0L)){
param.setGoodsSaleGroupId(null);
}
if(StringUtils.hasText(param.getSearchValue())){
spuWrapper.like(GoodsSpu::getSpuCode,param.getSearchValue());
spuWrapper.like(GoodsSpu::getName,param.getSearchValue());
}
Long selectCateId = param.getSelectCategoryId();
if(selectCateId!=null){
spuWrapper.and(qw->{
qw.eq(GoodsSpu::getCategoryFirst,selectCateId)
.or().eq(GoodsSpu::getCategoryLast,selectCateId)
.or().eq(GoodsSpu::getCategorySecond,selectCateId)
.or().eq(GoodsSpu::getCategoryThird,selectCateId);
});
}
spuWrapper.eq(GoodsSpu::getShelf,1);
spuWrapper.orderByDesc(GoodsSpu::getSort);
List<GoodsSpu> list = goodsSpuService.list(spuWrapper);
//TODO 获取价格
return R.byPageHelperList(list);
}
@ -53,6 +74,7 @@ public class GoodsSpuApi {
@GetMapping("/getById/{id}")
public R<GoodsSpuVo> getById(@PathVariable("id") Long id){
GoodsSpuVo goodsSpu = goodsSpuService.getVoById(id);
//TODO 获取价格
return R.ok(goodsSpu);
}

91
src/main/java/com/qs/serve/modules/goods/entity/GoodsSaleGroup.java

@ -0,0 +1,91 @@
package com.qs.serve.modules.goods.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 商品销售分组 实体类
* @author YenHex
* @since 2023-08-21
*/
@Data
@TableName("goods_sale_group")
public class GoodsSaleGroup implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 标题 */
@Length(max = 255,message = "标题长度不能超过255字")
private String label;
/** 显示在页面标识 */
private Integer showFlag;
/** 排序 */
private Integer sort;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
public static GoodsSaleGroup toNewObject(GoodsSaleGroup source){
GoodsSaleGroup saleGroup = new GoodsSaleGroup();
saleGroup.setId(source.getId());
saleGroup.setLabel(source.getLabel());
saleGroup.setShowFlag(source.getShowFlag());
saleGroup.setSort(source.getSort());
saleGroup.setCreateTime(source.getCreateTime());
saleGroup.setUpdateTime(source.getUpdateTime());
saleGroup.setTenantId(source.getTenantId());
saleGroup.setDelFlag(source.getDelFlag());
saleGroup.setCreateBy(source.getCreateBy());
saleGroup.setUpdateBy(source.getUpdateBy());
return saleGroup;
}
}

10
src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java

@ -107,6 +107,16 @@ public class GoodsSpu implements Serializable {
private String belong;
/** 销售分组id(默认0,表所有) */
private Long goodsSaleGroupId;
/** 商品销售类型:0-普通商品;1-赠品 */
private Integer goodsSaleType;
/** 选中的类目ID */
@TableField(exist = false)
private Long selectCategoryId;
/** 一级类目:品牌名称 */
@TableField(exist = false)
private String cateFirstLabel;

14
src/main/java/com/qs/serve/modules/goods/mapper/GoodsSaleGroupMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.goods.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.goods.entity.GoodsSaleGroup;
/**
* 商品销售分组 Mapper
* @author YenHex
* @date 2023-08-21
*/
public interface GoodsSaleGroupMapper extends BaseMapper<GoodsSaleGroup> {
}

14
src/main/java/com/qs/serve/modules/goods/service/GoodsSaleGroupService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.goods.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.goods.entity.GoodsSaleGroup;
/**
* 商品销售分组 服务接口
* @author YenHex
* @date 2023-08-21
*/
public interface GoodsSaleGroupService extends IService<GoodsSaleGroup> {
}

22
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSaleGroupServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.goods.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.goods.entity.GoodsSaleGroup;
import com.qs.serve.modules.goods.service.GoodsSaleGroupService;
import com.qs.serve.modules.goods.mapper.GoodsSaleGroupMapper;
/**
* 商品销售分组 服务实现类
* @author YenHex
* @since 2023-08-21
*/
@Slf4j
@Service
@AllArgsConstructor
public class GoodsSaleGroupServiceImpl extends ServiceImpl<GoodsSaleGroupMapper,GoodsSaleGroup> implements GoodsSaleGroupService {
}
Loading…
Cancel
Save