From 7851e8af39d79a9d3cb2bc15efcf6d47251dd941 Mon Sep 17 00:00:00 2001 From: Chopper Date: Wed, 23 Jun 2021 16:46:52 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=A7=84=E6=A0=BC=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/GoodsBuyerController.java | 4 +- .../lili/controller/trade/CartController.java | 8 +- .../modules/goods/entity/dos/SpecValues.java | 42 ------ .../goods/entity/dos/Specification.java | 12 ++ .../entity/dto/SpecificationSearchParams.java | 34 ----- .../entity/vos/CategorySpecificationVO.java | 25 ---- .../goods/entity/vos/GoodsSpecValueVO.java | 32 ---- .../modules/goods/entity/vos/SpecValueVO.java | 23 +-- .../goods/entity/vos/SpecificationVO.java | 35 ----- .../mapper/CategorySpecificationMapper.java | 6 +- .../goods/mapper/SpecValuesMapper.java | 15 -- .../goods/mapper/SpecificationMapper.java | 14 -- .../service/CategorySpecificationService.java | 11 +- .../goods/service/SpecValuesService.java | 63 -------- .../goods/service/SpecificationService.java | 63 -------- .../CategorySpecificationServiceImpl.java | 14 +- .../serviceimpl/GoodsSkuServiceImpl.java | 71 ++++----- .../serviceimpl/SpecValuesServiceImpl.java | 113 --------------- .../serviceimpl/SpecificationServiceImpl.java | 137 +++--------------- ...ategorySpecificationManagerController.java | 11 +- .../goods/SpecValuesManagerController.java | 54 ------- .../goods/SpecificationManagerController.java | 70 ++++----- .../CategorySpecificationStoreController.java | 43 +----- .../goods/SpecValuesStoreController.java | 54 ------- .../goods/SpecificationStoreController.java | 47 ++---- 25 files changed, 122 insertions(+), 879 deletions(-) delete mode 100644 framework/src/main/java/cn/lili/modules/goods/entity/dos/SpecValues.java delete mode 100644 framework/src/main/java/cn/lili/modules/goods/entity/dto/SpecificationSearchParams.java delete mode 100644 framework/src/main/java/cn/lili/modules/goods/entity/vos/CategorySpecificationVO.java delete mode 100644 framework/src/main/java/cn/lili/modules/goods/entity/vos/GoodsSpecValueVO.java delete mode 100644 framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecificationVO.java delete mode 100644 framework/src/main/java/cn/lili/modules/goods/mapper/SpecValuesMapper.java delete mode 100644 framework/src/main/java/cn/lili/modules/goods/service/SpecValuesService.java delete mode 100644 framework/src/main/java/cn/lili/modules/goods/serviceimpl/SpecValuesServiceImpl.java delete mode 100644 manager-api/src/main/java/cn/lili/controller/goods/SpecValuesManagerController.java delete mode 100644 seller-api/src/main/java/cn/lili/controller/goods/SpecValuesStoreController.java diff --git a/buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java b/buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java index fea39510..b293b4fa 100644 --- a/buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java +++ b/buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java @@ -89,8 +89,8 @@ public class GoodsBuyerController { Map map = goodsSkuService.getGoodsSkuDetail(goodsId, skuId); return ResultUtil.data(map); } catch (ServiceException se) { - log.error(se.getMsg(), se); - return ResultUtil.error(se.getResultCode().code(), se.getResultCode().message()); + log.info(se.getMsg(), se); + throw se; } catch (Exception e) { log.error(ResultCode.GOODS_ERROR.message(), e); return ResultUtil.error(ResultCode.GOODS_ERROR); diff --git a/buyer-api/src/main/java/cn/lili/controller/trade/CartController.java b/buyer-api/src/main/java/cn/lili/controller/trade/CartController.java index 5ee81233..3ae85451 100644 --- a/buyer-api/src/main/java/cn/lili/controller/trade/CartController.java +++ b/buyer-api/src/main/java/cn/lili/controller/trade/CartController.java @@ -56,7 +56,7 @@ public class CartController { return ResultUtil.success(); } catch (ServiceException se) { log.info(se.getMsg(), se); - return ResultUtil.error(se.getResultCode().code(), se.getResultCode().message()); + throw se; } catch (Exception e) { log.error(ResultCode.CART_ERROR.message(), e); throw new ServiceException(ResultCode.CART_ERROR); @@ -161,7 +161,7 @@ public class CartController { return ResultUtil.data(this.cartService.getCheckedTradeDTO(CartTypeEnum.valueOf(way))); } catch (ServiceException se) { log.error(se.getMsg(), se); - return ResultUtil.error(se.getResultCode().code(), se.getResultCode().message()); + throw se; } catch (Exception e) { log.error(ResultCode.CART_ERROR.message(), e); throw new ServiceException(ResultCode.CART_ERROR); @@ -205,7 +205,7 @@ public class CartController { return ResultUtil.success(); } catch (ServiceException se) { log.error(se.getMsg(), se); - return ResultUtil.error(se.getResultCode().code(), se.getResultCode().message()); + throw se; } catch (Exception e) { log.error(ResultCode.CART_ERROR.message(), e); throw new ServiceException(ResultCode.CART_ERROR); @@ -243,7 +243,7 @@ public class CartController { return ResultUtil.data(this.cartService.createTrade(tradeParams)); } catch (ServiceException se) { log.info(se.getMsg(), se); - return ResultUtil.error(se.getResultCode().code(), se.getResultCode().message()); + throw se; } catch (Exception e) { log.error(ResultCode.ORDER_ERROR.message(), e); throw new ServiceException(ResultCode.ORDER_ERROR); diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/dos/SpecValues.java b/framework/src/main/java/cn/lili/modules/goods/entity/dos/SpecValues.java deleted file mode 100644 index 796610c9..00000000 --- a/framework/src/main/java/cn/lili/modules/goods/entity/dos/SpecValues.java +++ /dev/null @@ -1,42 +0,0 @@ -package cn.lili.modules.goods.entity.dos; - -import cn.lili.base.BaseEntity; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.persistence.Entity; -import javax.persistence.Table; - -/** - * 规格值 - * - * @author pikachu - * @date 2020-02-18 15:18:56 - */ -@Data -@Entity -@Table(name = "li_spec_values") -@TableName("li_spec_values") -@ApiModel(value = "规格值") -public class SpecValues extends BaseEntity { - - private static final long serialVersionUID = 1L; - - /** - * 规格项id - */ - @TableField(value = "spec_id") - @ApiModelProperty(value = "规格项id") - private String specId; - - /** - * 规格值名字 - */ - @TableField(value = "spec_value") - @ApiModelProperty(value = "规格值名字") - private String specValue; - -} \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/dos/Specification.java b/framework/src/main/java/cn/lili/modules/goods/entity/dos/Specification.java index 95245cf1..436d6ce3 100644 --- a/framework/src/main/java/cn/lili/modules/goods/entity/dos/Specification.java +++ b/framework/src/main/java/cn/lili/modules/goods/entity/dos/Specification.java @@ -1,11 +1,13 @@ package cn.lili.modules.goods.entity.dos; import cn.lili.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import javax.validation.constraints.NotEmpty; @@ -34,9 +36,19 @@ public class Specification extends BaseEntity { /** * 所属卖家 0属于平台 + *

+ * 店铺自定义规格暂时废弃 2021-06-23 后续推出新配置方式 */ @ApiModelProperty(hidden = true) private String storeId; + /** + * 规格值名字 + */ + @TableField(value = "spec_value") + @Column(columnDefinition = "TEXT") + @ApiModelProperty(value = "规格值名字, 《,》分割") + private String specValue; + } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/dto/SpecificationSearchParams.java b/framework/src/main/java/cn/lili/modules/goods/entity/dto/SpecificationSearchParams.java deleted file mode 100644 index 6160c66c..00000000 --- a/framework/src/main/java/cn/lili/modules/goods/entity/dto/SpecificationSearchParams.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.lili.modules.goods.entity.dto; - -import cn.lili.common.utils.StringUtils; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * 规格搜索参数 - * - * @author paulG - * @date 2020/12/19 - **/ -@Data -public class SpecificationSearchParams { - - - @ApiModelProperty(value = "规格id") - private String specId; - - @ApiModelProperty(value = "绑定分类") - private String categoryPath; - - @ApiModelProperty(value = "未删除 ") - private Boolean deleteFlag; - - public QueryWrapper queryWrapper() { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(StringUtils.isNotEmpty(specId), "spec_id", specId); - queryWrapper.eq(deleteFlag != null, "delete_flag", deleteFlag); - return queryWrapper; - } - -} diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/vos/CategorySpecificationVO.java b/framework/src/main/java/cn/lili/modules/goods/entity/vos/CategorySpecificationVO.java deleted file mode 100644 index 209cc5fc..00000000 --- a/framework/src/main/java/cn/lili/modules/goods/entity/vos/CategorySpecificationVO.java +++ /dev/null @@ -1,25 +0,0 @@ -package cn.lili.modules.goods.entity.vos; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * 分类规格VO - * - * @author pikachu - * @date 2020-02-26 23:24:13 - */ -@Data -public class CategorySpecificationVO { - /** - * 规格id - */ - @ApiModelProperty(value = "规格id", required = true) - private String id; - - /** - * 规格名称 - */ - @ApiModelProperty(value = "规格名称", required = true) - private String name; -} diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/vos/GoodsSpecValueVO.java b/framework/src/main/java/cn/lili/modules/goods/entity/vos/GoodsSpecValueVO.java deleted file mode 100644 index ff4bdc63..00000000 --- a/framework/src/main/java/cn/lili/modules/goods/entity/vos/GoodsSpecValueVO.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.lili.modules.goods.entity.vos; - -import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.List; - -/** - * 规格值VO - * - * @author paulG - * @date 2020-02-26 23:24:13 - */ -@Data -public class GoodsSpecValueVO { - - /** - * 规格值名字 - */ - @TableField(value = "name") - @ApiModelProperty(value = "规格值名字") - private String name; - - /** - * 规格值名字 - */ - @TableField(value = "value") - @ApiModelProperty(value = "规格值") - private List value; - -} diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecValueVO.java b/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecValueVO.java index 7cf635b3..79ee16af 100644 --- a/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecValueVO.java +++ b/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecValueVO.java @@ -18,18 +18,10 @@ public class SpecValueVO implements Serializable { private static final long serialVersionUID = -4433579132929428572L; - @TableField(value = "spec_name_id") - @ApiModelProperty(value = "规格项ID") - private String specNameId; - @TableField(value = "spec_name") @ApiModelProperty(value = "规格项名字") private String specName; - @TableField(value = "spec_value_id") - @ApiModelProperty(value = "规格值") - private String specValueId; - @TableField(value = "spec_value") @ApiModelProperty(value = "规格值") private String specValue; @@ -43,18 +35,5 @@ public class SpecValueVO implements Serializable { * 规格图片 */ @ApiModelProperty(value = "规格的图片") - private List specImage; - - @Data - public static class SpecImages implements Serializable { - - private static final long serialVersionUID = 1816357809660916086L; - - private String url; - - private String name; - - private String status; - - } + private List specImage; } diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecificationVO.java b/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecificationVO.java deleted file mode 100644 index ba1b0c27..00000000 --- a/framework/src/main/java/cn/lili/modules/goods/entity/vos/SpecificationVO.java +++ /dev/null @@ -1,35 +0,0 @@ -package cn.lili.modules.goods.entity.vos; - -import cn.lili.modules.goods.entity.dos.Specification; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * 规格VO - * - * @author Chopper - * @date 2020-02-26 23:24:13 - */ -@Data -@NoArgsConstructor -public class SpecificationVO extends Specification { - - private static final long serialVersionUID = 5504602856844228350L; - - @ApiModelProperty(value = "规格项名称") - private String specValue; - - @ApiModelProperty(value = "分类path") - private String categoryPath; - - public SpecificationVO(String specName, String storeId, String categoryPath) { - - this.setSpecName(specName); - this.setStoreId(storeId); - this.categoryPath = categoryPath; - - - } - -} diff --git a/framework/src/main/java/cn/lili/modules/goods/mapper/CategorySpecificationMapper.java b/framework/src/main/java/cn/lili/modules/goods/mapper/CategorySpecificationMapper.java index 26913b77..703ac95e 100644 --- a/framework/src/main/java/cn/lili/modules/goods/mapper/CategorySpecificationMapper.java +++ b/framework/src/main/java/cn/lili/modules/goods/mapper/CategorySpecificationMapper.java @@ -1,7 +1,7 @@ package cn.lili.modules.goods.mapper; import cn.lili.modules.goods.entity.dos.CategorySpecification; -import cn.lili.modules.goods.entity.vos.CategorySpecificationVO; +import cn.lili.modules.goods.entity.dos.Specification; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Select; @@ -20,8 +20,8 @@ public interface CategorySpecificationMapper extends BaseMapper getCategorySpecList(String categoryId); + List getCategorySpecList(String categoryId); } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/goods/mapper/SpecValuesMapper.java b/framework/src/main/java/cn/lili/modules/goods/mapper/SpecValuesMapper.java deleted file mode 100644 index 18e37215..00000000 --- a/framework/src/main/java/cn/lili/modules/goods/mapper/SpecValuesMapper.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.lili.modules.goods.mapper; - -import cn.lili.modules.goods.entity.dos.SpecValues; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -/** - * 规格项数据处理层 - * - * @author pikachu - * @date 2020-02-18 15:18:56 - */ -public interface SpecValuesMapper extends BaseMapper { - - -} \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/goods/mapper/SpecificationMapper.java b/framework/src/main/java/cn/lili/modules/goods/mapper/SpecificationMapper.java index 5af49de0..609f4cd1 100644 --- a/framework/src/main/java/cn/lili/modules/goods/mapper/SpecificationMapper.java +++ b/framework/src/main/java/cn/lili/modules/goods/mapper/SpecificationMapper.java @@ -2,14 +2,7 @@ package cn.lili.modules.goods.mapper; import cn.lili.modules.goods.entity.dos.Specification; -import cn.lili.modules.goods.entity.vos.SpecificationVO; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; - -import java.util.List; /** * 规格数据处理层 @@ -19,11 +12,4 @@ import java.util.List; */ public interface SpecificationMapper extends BaseMapper { - /** - * 查询规格信息列表 - * @return - */ - @Select("SELECT s.id, s.spec_name,s.create_time ,GROUP_CONCAT(sv.spec_value SEPARATOR ',') AS spec_value" + - " FROM li_specification s LEFT JOIN li_spec_values sv ON s.id = sv.spec_id ${ew.customSqlSegment} ") - List findSpecList(@Param(Constants.WRAPPER) Wrapper queryWrapper); } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/goods/service/CategorySpecificationService.java b/framework/src/main/java/cn/lili/modules/goods/service/CategorySpecificationService.java index 38725044..c0a24f78 100644 --- a/framework/src/main/java/cn/lili/modules/goods/service/CategorySpecificationService.java +++ b/framework/src/main/java/cn/lili/modules/goods/service/CategorySpecificationService.java @@ -1,7 +1,7 @@ package cn.lili.modules.goods.service; import cn.lili.modules.goods.entity.dos.CategorySpecification; -import cn.lili.modules.goods.entity.vos.CategorySpecificationVO; +import cn.lili.modules.goods.entity.dos.Specification; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -19,15 +19,8 @@ public interface CategorySpecificationService extends IService getCategorySpecList(String categoryId); + List getCategorySpecList(String categoryId); - /*** - * 根据分类id查询规格信息 - * - * @param categoryId 分类id - * @return 分类规格关联信息 - */ - List getCategorySpecList(String[] categoryId); /** * 通过分类ID删除关联规格 diff --git a/framework/src/main/java/cn/lili/modules/goods/service/SpecValuesService.java b/framework/src/main/java/cn/lili/modules/goods/service/SpecValuesService.java deleted file mode 100644 index c4947e5c..00000000 --- a/framework/src/main/java/cn/lili/modules/goods/service/SpecValuesService.java +++ /dev/null @@ -1,63 +0,0 @@ -package cn.lili.modules.goods.service; - -import cn.lili.common.vo.PageVO; -import cn.lili.modules.goods.entity.dos.SpecValues; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.service.IService; - -import java.util.List; - - -/** - * 规格项接口 - * - * @author pikachu - * @date 2020-02-18 15:18:56 - */ -public interface SpecValuesService extends IService { - - /** - * 保存规格值 - * - * @param specId 规格Id - * @param valueList 规格值集合 - */ - List saveSpecValue(String specId, String[] valueList); - - /** - * 保存规格值 - * - * @param specId 规格Id - * @param valueList 规格值集合 - */ - List addSpecValue(String specId, String[] valueList); - - /** - * 根据规格id查询规格值信息 - * - * @param specIds 规格值ids - * @return - */ - List getSpecValues(List specIds); - - /** - * 根据值获取规格值信息 - * 如果不存在则自动创建 - * - * @param specValue 规格值 - * @param specId 规格ID - * @return 规格值信息 - */ - SpecValues getSpecValues(String specValue, String specId); - - /** - * 分页获取规格值 - * - * @param specId 规格项ID - * @param specVal 规格值 - * @param pageVo 分页参数 - * @return 规格值列表 - */ - IPage queryByParams(String specId, String specVal, PageVO pageVo); - -} \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/goods/service/SpecificationService.java b/framework/src/main/java/cn/lili/modules/goods/service/SpecificationService.java index 53f3e120..b6e436a6 100644 --- a/framework/src/main/java/cn/lili/modules/goods/service/SpecificationService.java +++ b/framework/src/main/java/cn/lili/modules/goods/service/SpecificationService.java @@ -1,12 +1,7 @@ package cn.lili.modules.goods.service; -import cn.lili.common.vo.PageVO; import cn.lili.modules.goods.entity.dos.Specification; -import cn.lili.modules.goods.entity.dto.SpecificationSearchParams; -import cn.lili.modules.goods.entity.vos.GoodsSpecValueVO; -import cn.lili.modules.goods.entity.vos.SpecificationVO; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -19,64 +14,6 @@ import java.util.List; */ public interface SpecificationService extends IService { - /** - * 查询规格信息列表 - * - * @param specName 规格名 - * @return 规格列表 - */ - List getSpecList(String specName); - - /** - * 根据分类id获取规格信息 - * - * @param categoryId 分类id - * @return 商品规格值列表 - */ - List getGoodsSpecValue(String categoryId); - - /** - * 获取规格详情 - * - * @param id 规格ID - * @return 规格详情 - */ - Specification getSpecification(String id); - - /** - * 获取规格分页 - * - * @param searchParams 搜索参数 - * @param pageVo 分页参数 - * @return 规格分页 - */ - IPage getSpecificationPage(SpecificationSearchParams searchParams, PageVO pageVo); - - /** - * 获取规格分页 - * - * @param searchParams 搜索参数 - * @param pageVo 分页参数 - * @return 规格分页 - */ - IPage getSpecificationByPage(SpecificationSearchParams searchParams, PageVO pageVo); - - /** - * 添加规格 - * - * @param specificationVO 规格信息 - * @return 是否添加成功 - */ - Specification addSpecification(SpecificationVO specificationVO); - - /** - * 修改规格 - * - * @param specificationVO 规格信息 - * @return 是否修改成功 - */ - boolean updateSpecification(SpecificationVO specificationVO); - /** * 删除规格 * diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/CategorySpecificationServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/CategorySpecificationServiceImpl.java index 60405e67..5925c794 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/CategorySpecificationServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/CategorySpecificationServiceImpl.java @@ -1,17 +1,14 @@ package cn.lili.modules.goods.serviceimpl; import cn.lili.modules.goods.entity.dos.CategorySpecification; -import cn.lili.modules.goods.entity.vos.CategorySpecificationVO; +import cn.lili.modules.goods.entity.dos.Specification; import cn.lili.modules.goods.mapper.CategorySpecificationMapper; import cn.lili.modules.goods.service.CategorySpecificationService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; import java.util.List; /** @@ -25,17 +22,12 @@ import java.util.List; public class CategorySpecificationServiceImpl extends ServiceImpl implements CategorySpecificationService { @Override - public List getCategorySpecList(String categoryId) { + public List getCategorySpecList(String categoryId) { return this.baseMapper.getCategorySpecList(categoryId); } - @Override - public List getCategorySpecList(String[] categoryId) { - return this.list(new LambdaQueryWrapper().in(CategorySpecification::getCategoryId, Arrays.asList(categoryId))); - } - @Override public void deleteByCategoryId(String categoryId) { - this.baseMapper.delete(new LambdaQueryWrapper().eq(CategorySpecification::getCategoryId,categoryId)); + this.baseMapper.delete(new LambdaQueryWrapper().eq(CategorySpecification::getCategoryId, categoryId)); } } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java index 8a9e505f..99f46de6 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java @@ -12,12 +12,17 @@ import cn.lili.common.rocketmq.tags.GoodsTagsEnum; import cn.lili.common.security.context.UserContext; import cn.lili.common.utils.PageUtil; import cn.lili.config.rocketmq.RocketmqCustomProperties; -import cn.lili.modules.goods.entity.dos.*; +import cn.lili.modules.goods.entity.dos.Goods; +import cn.lili.modules.goods.entity.dos.GoodsParams; +import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dto.GoodsSearchParams; import cn.lili.modules.goods.entity.dto.GoodsSkuStockDTO; import cn.lili.modules.goods.entity.enums.GoodsAuthEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; -import cn.lili.modules.goods.entity.vos.*; +import cn.lili.modules.goods.entity.vos.GoodsSkuSpecVO; +import cn.lili.modules.goods.entity.vos.GoodsSkuVO; +import cn.lili.modules.goods.entity.vos.GoodsVO; +import cn.lili.modules.goods.entity.vos.SpecValueVO; import cn.lili.modules.goods.mapper.GoodsSkuMapper; import cn.lili.modules.goods.service.*; import cn.lili.modules.member.entity.dos.FootPrint; @@ -39,7 +44,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; -import java.util.stream.Collectors; /** * 商品sku业务层实现 @@ -63,9 +67,6 @@ public class GoodsSkuServiceImpl extends ServiceImpl i //规格 @Autowired private SpecificationService specificationService; - //规格项 - @Autowired - private SpecValuesService specValuesService; //缓存 @Autowired private StringRedisTemplate stringRedisTemplate; @@ -320,29 +321,29 @@ public class GoodsSkuServiceImpl extends ServiceImpl i JSONObject jsonObject = JSONUtil.parseObj(goodsSku.getSpecs()); List specValueVOS = new ArrayList<>(); List goodsGalleryList = new ArrayList<>(); - for (Map.Entry entry : jsonObject.entrySet()) { - SpecValueVO s = new SpecValueVO(); - if (entry.getKey().equals("images")) { - s.setSpecName(entry.getKey()); - if (entry.getValue().toString().contains("url")) { - List specImages = JSONUtil.toList(JSONUtil.parseArray(entry.getValue()), SpecValueVO.SpecImages.class); - s.setSpecImage(specImages); - goodsGalleryList = specImages.stream().map(SpecValueVO.SpecImages::getUrl).collect(Collectors.toList()); - } - } else { - SpecificationVO specificationVO = new SpecificationVO(); - specificationVO.setSpecName(entry.getKey()); - specificationVO.setStoreId(goodsSku.getStoreId()); - specificationVO.setCategoryPath(goodsSku.getCategoryPath()); - Specification specification = specificationService.addSpecification(specificationVO); - s.setSpecNameId(specification.getId()); - SpecValues specValues = specValuesService.getSpecValues(entry.getValue().toString(), specification.getId()); - s.setSpecValueId(specValues.getId()); - s.setSpecName(entry.getKey()); - s.setSpecValue(entry.getValue().toString()); - } - specValueVOS.add(s); - } +// for (Map.Entry entry : jsonObject.entrySet()) { +// SpecValueVO s = new SpecValueVO(); +// if (entry.getKey().equals("images")) { +// s.setSpecName(entry.getKey()); +// if (entry.getValue().toString().contains("url")) { +// List specImages = JSONUtil.toList(JSONUtil.parseArray(entry.getValue()), SpecValueVO.SpecImages.class); +// s.setSpecImage(specImages); +// goodsGalleryList = specImages.stream().map(SpecValueVO.SpecImages::getUrl).collect(Collectors.toList()); +// } +// } else { +// SpecificationVO specificationVO = new SpecificationVO(); +// specificationVO.setSpecName(entry.getKey()); +// specificationVO.setStoreId(goodsSku.getStoreId()); +// specificationVO.setCategoryPath(goodsSku.getCategoryPath()); +// Specification specification = specificationService.addSpecification(specificationVO); +// s.setSpecNameId(specification.getId()); +// SpecValues specValues = specValuesService.getSpecValues(entry.getValue().toString(), specification.getId()); +// s.setSpecValueId(specValues.getId()); +// s.setSpecName(entry.getKey()); +// s.setSpecValue(entry.getValue().toString()); +// } +// specValueVOS.add(s); +// } goodsSkuVO.setGoodsGalleryList(goodsGalleryList); goodsSkuVO.setSpecList(specValueVOS); return goodsSkuVO; @@ -619,20 +620,8 @@ public class GoodsSkuServiceImpl extends ServiceImpl i } else { //设置商品名称 goodsName.append(" ").append(m.getValue()); - //规格简短信息 simpleSpecs.append(" ").append(m.getValue()); - - //保存规格项 - SpecificationVO specificationVO = new SpecificationVO(m.getKey(), goods.getStoreId(), goods.getCategoryPath()); - Specification specification = specificationService.addSpecification(specificationVO); - - //保存规格值 - SpecValues specValues = specValuesService.getSpecValues(m.getValue().toString(), specification.getId()); - - //添加属性索引 - EsGoodsAttribute attribute = new EsGoodsAttribute(0, specification.getId(), m.getKey(), specValues.getId(), m.getValue().toString()); - attributes.add(attribute); } } } diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/SpecValuesServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/SpecValuesServiceImpl.java deleted file mode 100644 index 049aa874..00000000 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/SpecValuesServiceImpl.java +++ /dev/null @@ -1,113 +0,0 @@ -package cn.lili.modules.goods.serviceimpl; - -import cn.hutool.core.util.StrUtil; -import cn.lili.common.utils.PageUtil; -import cn.lili.common.vo.PageVO; -import cn.lili.modules.goods.entity.dos.SpecValues; -import cn.lili.modules.goods.entity.dos.Specification; -import cn.lili.modules.goods.mapper.SpecValuesMapper; -import cn.lili.modules.goods.service.SpecValuesService; -import cn.lili.modules.goods.service.SpecificationService; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.ArrayList; -import java.util.List; - -/** - * 规格项接口实现 - * - * @author pikachu - * @date 2020-02-18 16:18:56 - */ - -@Service -@Transactional -public class SpecValuesServiceImpl extends ServiceImpl implements SpecValuesService { - - //规格 - @Autowired - private SpecificationService specificationService; - - @Override - public List saveSpecValue(String specId, String[] valueList) { - //校验是否存在 - Specification specification = specificationService.getById(specId); - List res = new ArrayList<>(); - if (specification != null) { - //先删除原有规格值 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("spec_id", specId); - this.remove(queryWrapper); - //添加新的规格值 - for (String value : valueList) { - SpecValues specValues = new SpecValues(); - specValues.setSpecValue(value); - specValues.setSpecId(specification.getId()); - this.save(specValues); - res.add(specValues); - } - return res; - } - return res; - } - - @Override - public List addSpecValue(String specId, String[] valueList) { - List specValuesList = new ArrayList<>(); - for (String value : valueList) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("spec_id", specId); - queryWrapper.eq("spec_value", value); - if (this.getOne(queryWrapper) == null) { - SpecValues specValues = new SpecValues(); - specValues.setSpecValue(value); - specValues.setSpecId(specId); - this.save(specValues); - specValuesList.add(specValues); - } - } - return specValuesList; - } - - @Override - public List getSpecValues(List specIds) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(SpecValues::getSpecValue, specIds); - return this.list(queryWrapper); - } - - @Override - public SpecValues getSpecValues(String specValue, String specId) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SpecValues::getSpecValue, specValue); - queryWrapper.eq(SpecValues::getSpecId, specId); - - SpecValues specValues = this.getOne(queryWrapper); - if (specValues == null) { - specValues = new SpecValues(); - specValues.setSpecValue(specValue); - specValues.setSpecId(specId); - this.save(specValues); - } - return specValues; - } - - @Override - public IPage queryByParams(String specId, String specVal, PageVO pageVo) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (StrUtil.isNotEmpty(specId)) { - queryWrapper.eq(SpecValues::getSpecId, specId); - } - if (StrUtil.isNotEmpty(specVal)) { - queryWrapper.like(SpecValues::getSpecValue, specVal); - } - return this.page(PageUtil.initPage(pageVo), queryWrapper); - } - -} \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/SpecificationServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/SpecificationServiceImpl.java index cc99580b..15a132ce 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/SpecificationServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/SpecificationServiceImpl.java @@ -1,36 +1,22 @@ package cn.lili.modules.goods.serviceimpl; -import cn.hutool.core.text.CharSequenceUtil; -import cn.hutool.core.util.StrUtil; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; -import cn.lili.common.utils.PageUtil; -import cn.lili.common.utils.StringUtils; -import cn.lili.common.vo.PageVO; +import cn.lili.modules.goods.entity.dos.Category; import cn.lili.modules.goods.entity.dos.CategorySpecification; -import cn.lili.modules.goods.entity.dos.SpecValues; import cn.lili.modules.goods.entity.dos.Specification; -import cn.lili.modules.goods.entity.dto.SpecificationSearchParams; -import cn.lili.modules.goods.entity.vos.CategorySpecificationVO; -import cn.lili.modules.goods.entity.vos.GoodsSpecValueVO; -import cn.lili.modules.goods.entity.vos.SpecificationVO; import cn.lili.modules.goods.mapper.SpecificationMapper; import cn.lili.modules.goods.service.CategorySpecificationService; -import cn.lili.modules.goods.service.SpecValuesService; import cn.lili.modules.goods.service.SpecificationService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * 商品规格业务层实现 @@ -45,111 +31,11 @@ public class SpecificationServiceImpl extends ServiceImpl getSpecList(String specId) { - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq(StringUtils.isNotEmpty(specId), "s.spec_id", specId); - queryWrapper.orderByDesc("s.create_time"); - return this.baseMapper.findSpecList(queryWrapper); - } - - @Override - public List getGoodsSpecValue(String categoryId) { - List categorySpecificationVOS = categorySpecificationService.getCategorySpecList(categoryId); - Map map = new HashMap<>(); - if (!categorySpecificationVOS.isEmpty()) { - //循环组织查询规格值数据 - List valueId = new ArrayList<>(); - for (CategorySpecificationVO categorySpecification : categorySpecificationVOS) { - map.put(categorySpecification.getId(), categorySpecification.getName()); - valueId.add(categorySpecification.getId()); - } - //使用valueId去查询规格值 - List specValues = specValuesService.getSpecValues(valueId); - //循环组织数据 - List goodsSpecValueVOS = new ArrayList<>(); - for (Map.Entry m : map.entrySet()) { - GoodsSpecValueVO goodsSpecValueVO = new GoodsSpecValueVO(); - goodsSpecValueVO.setName(m.getValue().toString()); - List list = new ArrayList<>(); - for (SpecValues spec : specValues) { - if (spec.getSpecId().equals(m.getKey())) { - list.add(spec.getSpecValue()); - } - } - goodsSpecValueVO.setValue(list); - goodsSpecValueVOS.add(goodsSpecValueVO); - } - return goodsSpecValueVOS; - } - return new ArrayList<>(); - } - - @Override - public Specification getSpecification(String id) { - Specification specification = this.getById(id); - if (specification == null) { - throw new ServiceException("当前商品已下架"); - } - return specification; - } - - @Override - public IPage getSpecificationPage(SpecificationSearchParams searchParams, PageVO pageVo) { - - List specList = this.getSpecList(searchParams.getSpecId()); - IPage page = new Page<>(pageVo.getPageNumber(), pageVo.getPageSize(), specList.size()); - page.setRecords(PageUtil.listToPage(pageVo, specList)); - return page; - } - - @Override - public IPage getSpecificationByPage(SpecificationSearchParams searchParams, PageVO pageVo) { - List specIds = new ArrayList<>(); - if (StrUtil.isNotEmpty(searchParams.getCategoryPath())) { - String categoryPath = searchParams.getCategoryPath(); - List categorySpecList = categorySpecificationService.getCategorySpecList(categoryPath.split(",")); - categorySpecList.forEach(i -> specIds.add(i.getSpecificationId())); - } - QueryWrapper queryWrapper = searchParams.queryWrapper(); - queryWrapper.in("id", specIds); - return this.page(PageUtil.initPage(pageVo), queryWrapper); - } - - @Override - public Specification addSpecification(SpecificationVO specificationVO) { - Specification specification = this.getOne(new LambdaQueryWrapper().eq(Specification::getSpecName, specificationVO.getSpecName())); - if (specification == null) { - this.save(specificationVO); - specification = specificationVO; - } - - CategorySpecification categorySpecification = categorySpecificationService.getOne(new LambdaQueryWrapper().eq(CategorySpecification::getSpecificationId, specification.getId())); - if (categorySpecification == null) { - categorySpecification = new CategorySpecification(); - categorySpecification.setSpecificationId(specification.getId()); - String categoryPath = specificationVO.getCategoryPath(); - if (CharSequenceUtil.isNotEmpty(categoryPath)) { - categorySpecification.setCategoryId(categoryPath.substring(categoryPath.lastIndexOf(",") + 1)); - categorySpecificationService.save(categorySpecification); - } - } - if (CharSequenceUtil.isNotEmpty(specificationVO.getSpecValue())) { - specValuesService.saveSpecValue(specificationVO.getId(), new String[]{specificationVO.getSpecValue()}); - } - return specification; - } - - @Override - public boolean updateSpecification(SpecificationVO specificationVO) { - this.getSpecification(specificationVO.getId()); - return this.updateById(specificationVO); - } @Override public boolean deleteSpecification(List ids) { @@ -157,12 +43,23 @@ public class SpecificationServiceImpl extends ServiceImpl list = categorySpecificationService.list(new QueryWrapper().eq("specification_id", id)); if (!list.isEmpty()) { - throw new ServiceException(ResultCode.SPEC_DELETE_ERROR); + List categoryIds = new ArrayList<>(); + list.forEach(item -> { + categoryIds.add(item.getCategoryId()); + }); + //返回包含分类的信息 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + queryWrapper.in(Category::getId, categoryIds); + List categories = categoryService.list(queryWrapper); + StringBuffer stringBuffer = new StringBuffer("包含的分类有-"); + categories.stream().forEach(item -> { + stringBuffer.append(item.getName()); + stringBuffer.append(","); + }); + throw new ServiceException(ResultCode.SPEC_DELETE_ERROR, stringBuffer.toString()); } //删除规格 this.removeById(id); - //删除规格值 - specValuesService.remove(new QueryWrapper().eq("spec_id", id)); } return true; } diff --git a/manager-api/src/main/java/cn/lili/controller/goods/CategorySpecificationManagerController.java b/manager-api/src/main/java/cn/lili/controller/goods/CategorySpecificationManagerController.java index 920a6d7f..43993b99 100644 --- a/manager-api/src/main/java/cn/lili/controller/goods/CategorySpecificationManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/goods/CategorySpecificationManagerController.java @@ -3,8 +3,7 @@ package cn.lili.controller.goods; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.goods.entity.dos.CategorySpecification; -import cn.lili.modules.goods.entity.vos.CategorySpecificationVO; -import cn.lili.modules.goods.entity.vos.GoodsSpecValueVO; +import cn.lili.modules.goods.entity.dos.Specification; import cn.lili.modules.goods.service.CategorySpecificationService; import cn.lili.modules.goods.service.SpecificationService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -45,15 +44,15 @@ public class CategorySpecificationManagerController { @ApiOperation(value = "查询某分类下绑定的规格信息") @GetMapping(value = "/{categoryId}") @ApiImplicitParam(name = "categoryId", value = "分类id", required = true, dataType = "String", paramType = "path") - public List getCategorySpec(@PathVariable String categoryId) { + public List getCategorySpec(@PathVariable String categoryId) { return categorySpecificationService.getCategorySpecList(categoryId); } @ApiOperation(value = "查询某分类下绑定的规格信息,商品操作使用") @GetMapping(value = "/goods/{categoryId}") @ApiImplicitParam(name = "categoryId", value = "分类id", required = true, dataType = "String", paramType = "path") - public List getSpec(@PathVariable String categoryId) { - return specificationService.getGoodsSpecValue(categoryId); + public List getSpec(@PathVariable String categoryId) { + return specificationService.list(); } @@ -71,7 +70,7 @@ public class CategorySpecificationManagerController { if (categorySpecs != null && categorySpecs.length > 0) { List categorySpecifications = new ArrayList<>(); for (String categorySpec : categorySpecs) { - categorySpecifications.add( new CategorySpecification(categoryId, categorySpec)); + categorySpecifications.add(new CategorySpecification(categoryId, categorySpec)); } categorySpecificationService.saveBatch(categorySpecifications); } diff --git a/manager-api/src/main/java/cn/lili/controller/goods/SpecValuesManagerController.java b/manager-api/src/main/java/cn/lili/controller/goods/SpecValuesManagerController.java deleted file mode 100644 index e679064a..00000000 --- a/manager-api/src/main/java/cn/lili/controller/goods/SpecValuesManagerController.java +++ /dev/null @@ -1,54 +0,0 @@ -package cn.lili.controller.goods; - - -import cn.lili.common.enums.ResultUtil; -import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.goods.entity.dos.SpecValues; -import cn.lili.modules.goods.service.SpecValuesService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.validation.constraints.NotNull; -import java.util.List; - -/** - * 管理端,规格项管理接口 - * - * @author pikachu - * @date 2020-02-18 15:18:56 - */ -@RestController -@Api(tags = "管理端,规格项管理接口") -@RequestMapping("/manager/goods/specValues") -public class SpecValuesManagerController { - - @Autowired - private SpecValuesService specValuesService; - - @GetMapping(value = "/values/{id}") - @ApiImplicitParam(name = "id", value = "规格项ID", required = true, dataType = "String", paramType = "path") - @ApiOperation(value = "查询规格值列表") - public ResultMessage> list(@PathVariable("id") String id) { - return ResultUtil.data(specValuesService.query().eq("spec_id", id).list()); - } - - @ApiOperation(value = "保存规格值") - @ApiImplicitParams({ - @ApiImplicitParam(name = "specId", value = "商品规格ID", required = true, paramType = "path"), - @ApiImplicitParam(name = "specValue", value = "商品项", required = true, allowMultiple = true, paramType = "query") - }) - @PostMapping(value = "/save/{specId}") - public ResultMessage> saveSpecValue(@PathVariable String specId, - @NotNull(message = "至少添加一个规格值") @RequestParam String[] specValue) { - //重新添加 - List list = specValuesService.saveSpecValue(specId, specValue); - return ResultUtil.data(list); - - } - - -} diff --git a/manager-api/src/main/java/cn/lili/controller/goods/SpecificationManagerController.java b/manager-api/src/main/java/cn/lili/controller/goods/SpecificationManagerController.java index 71540729..e5c2dd7e 100644 --- a/manager-api/src/main/java/cn/lili/controller/goods/SpecificationManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/goods/SpecificationManagerController.java @@ -1,24 +1,21 @@ package cn.lili.controller.goods; -import cn.lili.common.enums.ResultCode; -import cn.lili.common.exception.ServiceException; import cn.lili.common.enums.ResultUtil; +import cn.lili.common.utils.PageUtil; +import cn.lili.common.utils.StringUtils; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.goods.entity.dos.Specification; -import cn.lili.modules.goods.entity.dto.SpecificationSearchParams; -import cn.lili.modules.goods.entity.vos.SpecificationVO; import cn.lili.modules.goods.service.SpecificationService; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; import java.util.List; @@ -36,54 +33,39 @@ public class SpecificationManagerController { @Autowired private SpecificationService specificationService; - @GetMapping(value = "/{id}") - @ApiImplicitParam(name = "id", value = "商品规格ID", required = true, dataType = "String", paramType = "path") - @ApiOperation(value = "通过id获取商品规格") - public ResultMessage get(@PathVariable String id) { - return ResultUtil.data(specificationService.getSpecification(id)); - } - @RequestMapping(value = "/all", method = RequestMethod.GET) + @GetMapping("/all") @ApiOperation(value = "获取所有可用规格") public List getAll() { - List list = specificationService.list(new QueryWrapper().eq("delete_flag", 0)); + List list = specificationService.list(); return list; } - - @GetMapping(value = "/page") - @ApiOperation(value = "分页获取") - public ResultMessage> getByPage(String specId, PageVO pageVo) { - SpecificationSearchParams searchParams = new SpecificationSearchParams(); - searchParams.setSpecId(specId); - return ResultUtil.data(specificationService.getSpecificationPage(searchParams, pageVo)); - } - - @PutMapping - @ApiOperation(value = "编辑规格") - public ResultMessage update(@Valid SpecificationVO parameters) { - if (parameters.getStoreId() == null) { - parameters.setStoreId("0"); - } - if (specificationService.updateSpecification(parameters)) { - return ResultUtil.data(parameters); - } - throw new ServiceException(ResultCode.SPEC_UPDATE_ERROR); + @GetMapping + @ApiOperation(value = "搜索规格") + public Page page(String specName, PageVO page) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.like(StringUtils.isNotEmpty(specName), Specification::getSpecName, specName); + lambdaQueryWrapper.orderByDesc(Specification::getCreateTime); + return specificationService.page(PageUtil.initPage(page), lambdaQueryWrapper); } @PostMapping - @ApiOperation(value = "添加规格") - public ResultMessage save(@Valid SpecificationVO parameters) { - if (parameters.getStoreId() == null) { - parameters.setStoreId("0"); - } - if (specificationService.addSpecification(parameters) != null) { - return ResultUtil.data(parameters); - } - throw new ServiceException(ResultCode.SPEC_SAVE_ERROR); + @ApiOperation(value = "保存规格") + public ResultMessage save(Specification specification) { + specificationService.save(specification); + return ResultUtil.success(); } - @DeleteMapping(value = "/{ids}") + @PutMapping("/{id}") + @ApiOperation(value = "更改规格") + public ResultMessage update(Specification specification, @PathVariable String id) { + specification.setId(id); + specificationService.saveOrUpdate(specification); + return ResultUtil.success(); + } + + @DeleteMapping("/{ids}") @ApiImplicitParam(name = "ids", value = "规格ID", required = true, dataType = "String", allowMultiple = true, paramType = "path") @ApiOperation(value = "批量删除") public ResultMessage delAllByIds(@PathVariable List ids) { diff --git a/seller-api/src/main/java/cn/lili/controller/goods/CategorySpecificationStoreController.java b/seller-api/src/main/java/cn/lili/controller/goods/CategorySpecificationStoreController.java index 142971d6..e4aaebe9 100644 --- a/seller-api/src/main/java/cn/lili/controller/goods/CategorySpecificationStoreController.java +++ b/seller-api/src/main/java/cn/lili/controller/goods/CategorySpecificationStoreController.java @@ -1,21 +1,16 @@ package cn.lili.controller.goods; -import cn.lili.common.enums.ResultCode; -import cn.lili.common.enums.ResultUtil; -import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.goods.entity.dos.CategorySpecification; -import cn.lili.modules.goods.entity.vos.CategorySpecificationVO; -import cn.lili.modules.goods.entity.vos.GoodsSpecValueVO; +import cn.lili.modules.goods.entity.dos.Specification; import cn.lili.modules.goods.service.CategorySpecificationService; -import cn.lili.modules.goods.service.SpecificationService; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -32,40 +27,14 @@ import java.util.List; public class CategorySpecificationStoreController { @Autowired private CategorySpecificationService categorySpecificationService; - @Autowired - private SpecificationService specificationService; @ApiOperation(value = "查询某分类下绑定的规格信息") @GetMapping(value = "/{category_id}") @ApiImplicitParam(name = "category_id", value = "分类id", required = true, dataType = "String", paramType = "path") - public List getCategorySpec(@PathVariable("category_id") String categoryId) { + public List getCategorySpec(@PathVariable("category_id") String categoryId) { return categorySpecificationService.getCategorySpecList(categoryId); } - @ApiOperation(value = "查询某分类下绑定的规格信息,商品操作使用") - @GetMapping(value = "/goods/{category_id}") - @ApiImplicitParam(name = "category_id", value = "分类id", required = true, dataType = "String", paramType = "path") - public List getSpec(@PathVariable("category_id") String categoryId) { - return specificationService.getGoodsSpecValue(categoryId); - } - - - @ApiOperation(value = "保存某分类下绑定的规格信息") - @PostMapping(value = "/{category_id}") - @ApiImplicitParams({ - @ApiImplicitParam(name = "category_id", value = "分类id", required = true, paramType = "path", dataType = "String"), - @ApiImplicitParam(name = "category_specs", value = "规格id数组", required = true, paramType = "query", dataType = "String[]") - }) - public ResultMessage saveCategoryBrand(@PathVariable("category_id") String categoryId, @RequestParam("category_specs") String[] categorySpecs) { - //删除分类规格绑定信息 - this.categorySpecificationService.remove(new QueryWrapper().eq("category_id", categoryId)); - //绑定规格信息 - for (String specId : categorySpecs) { - CategorySpecification categoryBrand = new CategorySpecification(categoryId, specId); - categorySpecificationService.save(categoryBrand); - } - return ResultUtil.success(); - } } diff --git a/seller-api/src/main/java/cn/lili/controller/goods/SpecValuesStoreController.java b/seller-api/src/main/java/cn/lili/controller/goods/SpecValuesStoreController.java deleted file mode 100644 index 75a30849..00000000 --- a/seller-api/src/main/java/cn/lili/controller/goods/SpecValuesStoreController.java +++ /dev/null @@ -1,54 +0,0 @@ -package cn.lili.controller.goods; - - -import cn.lili.common.enums.ResultUtil; -import cn.lili.common.vo.PageVO; -import cn.lili.common.vo.ResultMessage; -import cn.lili.modules.goods.entity.dos.SpecValues; -import cn.lili.modules.goods.service.SpecValuesService; -import com.baomidou.mybatisplus.core.metadata.IPage; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.validation.constraints.NotNull; -import java.util.List; - -/** - * 店铺端,规格项管理接口 - * - * @author pikachu - * @date 2020-02-18 15:18:56 - */ -@RestController -@Api(tags = "店铺端,规格项管理接口") -@RequestMapping("/store/goods/spec-values") -public class SpecValuesStoreController { - @Autowired - private SpecValuesService specValuesService; - - @GetMapping(value = "/values/{id}") - @ApiImplicitParam(name = "id", value = "规格项ID", required = true, dataType = "String", paramType = "path") - @ApiOperation(value = "查询规格值列表") - public ResultMessage> list(@PathVariable("id") String id, String specVal, PageVO pageVo) { - return ResultUtil.data(specValuesService.queryByParams(id, specVal, pageVo)); - } - - @ApiOperation(value = "保存规格值") - @ApiImplicitParams({ - @ApiImplicitParam(name = "id", value = "商品规格ID", required = true, paramType = "path"), - @ApiImplicitParam(name = "specValue", value = "商品项", required = true, allowMultiple = true, paramType = "query") - }) - @PostMapping(value = "/save/{id}") - public ResultMessage> saveSpecValue(@PathVariable("id") String specId, - @NotNull(message = "至少添加一个规格值") @RequestParam(value = "spec_value") String[] specValue) { - //重新添加 - List list = specValuesService.addSpecValue(specId, specValue); - return ResultUtil.data(list); - } - - -} diff --git a/seller-api/src/main/java/cn/lili/controller/goods/SpecificationStoreController.java b/seller-api/src/main/java/cn/lili/controller/goods/SpecificationStoreController.java index e15d1a7d..0a778cc2 100644 --- a/seller-api/src/main/java/cn/lili/controller/goods/SpecificationStoreController.java +++ b/seller-api/src/main/java/cn/lili/controller/goods/SpecificationStoreController.java @@ -1,22 +1,15 @@ package cn.lili.controller.goods; -import cn.lili.common.enums.ResultUtil; -import cn.lili.common.security.context.UserContext; -import cn.lili.common.vo.PageVO; -import cn.lili.common.vo.ResultMessage; import cn.lili.modules.goods.entity.dos.Specification; -import cn.lili.modules.goods.entity.dto.SpecificationSearchParams; -import cn.lili.modules.goods.entity.vos.SpecificationVO; -import cn.lili.modules.goods.service.SpecificationService; -import com.baomidou.mybatisplus.core.metadata.IPage; +import cn.lili.modules.goods.service.CategorySpecificationService; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; -import javax.validation.Valid; import java.util.List; @@ -27,35 +20,17 @@ import java.util.List; * @date 2020-02-18 15:18:56 */ @RestController -@Api(tags = "店铺端,规格管理接口") +@Api(tags = "店铺端,规格接口") @RequestMapping("/store/goods/spec") public class SpecificationStoreController { + @Autowired - private SpecificationService specificationService; + private CategorySpecificationService categorySpecificationService; - - @GetMapping(value = "/page") - @ApiOperation(value = "分页获取") - public ResultMessage> getByPage(SpecificationSearchParams searchParams, PageVO pageVo) { - searchParams.setDeleteFlag(false); - return ResultUtil.data(specificationService.getSpecificationByPage(searchParams, pageVo)); + @GetMapping(value = "/{categoryId}") + @ApiOperation(value = "获取分类规格") + public List getSpecifications(String categoryId) { + return categorySpecificationService.getCategorySpecList(categoryId); } - @PostMapping - @ApiOperation(value = "添加规格") - public ResultMessage save(@Valid SpecificationVO parameters) { - if (parameters.getStoreId() == null) { - parameters.setStoreId(UserContext.getCurrentUser().getId()); - } - specificationService.addSpecification(parameters); - return ResultUtil.data(parameters); - } - - @DeleteMapping(value = "/{ids}") - @ApiImplicitParam(name = "ids", value = "规格ID", required = true, dataType = "String", allowMultiple = true, paramType = "path") - @ApiOperation(value = "批量删除") - public ResultMessage delAllByIds(@PathVariable List ids) { - specificationService.deleteSpecification(ids); - return ResultUtil.success(); - } } From 8cecb69c012133c7bf313490f12c4e021c3f135f Mon Sep 17 00:00:00 2001 From: Chopper Date: Wed, 23 Jun 2021 16:47:05 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E8=BF=9B=E4=B8=80=E6=AD=A5=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GlobalControllerExceptionHandler.java | 15 +++++++++++++-- .../lili/common/exception/ServiceException.java | 11 ++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/framework/src/main/java/cn/lili/common/exception/GlobalControllerExceptionHandler.java b/framework/src/main/java/cn/lili/common/exception/GlobalControllerExceptionHandler.java index 09f4838f..0411f7e3 100644 --- a/framework/src/main/java/cn/lili/common/exception/GlobalControllerExceptionHandler.java +++ b/framework/src/main/java/cn/lili/common/exception/GlobalControllerExceptionHandler.java @@ -44,10 +44,21 @@ public class GlobalControllerExceptionHandler { //如果是自定义异常,则获取异常,返回自定义错误消息 if (e instanceof ServiceException) { - ResultCode resultCode = ((ServiceException) e).getResultCode(); + ServiceException serviceException = ((ServiceException) e); + ResultCode resultCode = serviceException.getResultCode(); + + Integer code = null; + String message = null; + if (resultCode != null) { - return ResultUtil.error(resultCode.code(), resultCode.message()); + code = resultCode.code(); + message = resultCode.message(); } + //如果有扩展消息,则输出异常中,跟随补充异常 + if (!serviceException.getMsg().equals(ServiceException.DEFAULT_MESSAGE)) { + message += ":" + serviceException.getMsg(); + } + return ResultUtil.error(code, message); } //默认错误消息 diff --git a/framework/src/main/java/cn/lili/common/exception/ServiceException.java b/framework/src/main/java/cn/lili/common/exception/ServiceException.java index bdf684b0..4f652afd 100644 --- a/framework/src/main/java/cn/lili/common/exception/ServiceException.java +++ b/framework/src/main/java/cn/lili/common/exception/ServiceException.java @@ -4,13 +4,19 @@ import cn.lili.common.enums.ResultCode; import lombok.Data; /** + * 全局业务异常类 + * * @author Chopper */ @Data public class ServiceException extends RuntimeException { - private String msg; + public static String DEFAULT_MESSAGE = "网络错误,请稍后重试!"; + //异常消息 + private String msg = DEFAULT_MESSAGE; + + //错误码 private ResultCode resultCode; public ServiceException(String msg) { @@ -19,8 +25,7 @@ public class ServiceException extends RuntimeException { } public ServiceException() { - super("网络错误,请稍后重试!"); - this.msg = "网络错误,请稍后重试!"; + super(); } public ServiceException(ResultCode resultCode) { From 8d5d9025507f4325eb4e715dc3bd534127b39993 Mon Sep 17 00:00:00 2001 From: Chopper Date: Wed, 23 Jun 2021 16:47:16 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=AB=AF=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E7=A0=81=E7=99=BB=E5=BD=95=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passport/AdminUserManagerController.java | 16 +++++++++++++--- .../passport/StorePassportController.java | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java b/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java index c6f25213..ccd1d8f5 100644 --- a/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java @@ -8,6 +8,8 @@ import cn.lili.common.security.context.UserContext; import cn.lili.common.token.Token; import cn.lili.common.utils.PageUtil; import cn.lili.common.utils.StringUtils; +import cn.lili.common.verification.enums.VerificationEnums; +import cn.lili.common.verification.service.VerificationService; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.SearchVO; @@ -49,11 +51,19 @@ public class AdminUserManagerController { @Autowired private DepartmentService departmentService; + @Autowired + private VerificationService verificationService; @GetMapping(value = "/login") @ApiOperation(value = "登录管理员") - public ResultMessage login(String username, String password) { - return ResultUtil.data(adminUserService.login(username, password)); + public ResultMessage login(@NotNull(message = "用户名不能为空") @RequestParam String username, + @NotNull(message = "密码不能为空") @RequestParam String password, + @RequestHeader String uuid) { + if (verificationService.check(uuid, VerificationEnums.LOGIN)) { + return ResultUtil.data(adminUserService.login(username, password)); + } else { + throw new ServiceException(ResultCode.VERIFICATION_ERROR); + } } @@ -152,7 +162,7 @@ public class AdminUserManagerController { } adminUserService.saveAdminUser(adminUser, roles); } catch (Exception e) { - log.error("添加用户错误",e); + log.error("添加用户错误", e); } return ResultUtil.success(); } diff --git a/seller-api/src/main/java/cn/lili/controller/passport/StorePassportController.java b/seller-api/src/main/java/cn/lili/controller/passport/StorePassportController.java index 52474ff5..d9c97762 100644 --- a/seller-api/src/main/java/cn/lili/controller/passport/StorePassportController.java +++ b/seller-api/src/main/java/cn/lili/controller/passport/StorePassportController.java @@ -1,7 +1,11 @@ package cn.lili.controller.passport; +import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultUtil; +import cn.lili.common.exception.ServiceException; +import cn.lili.common.verification.enums.VerificationEnums; +import cn.lili.common.verification.service.VerificationService; import cn.lili.common.vo.ResultMessage; import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.service.MemberService; @@ -32,6 +36,8 @@ public class StorePassportController { @Autowired private MemberService memberService; + @Autowired + private VerificationService verificationService; @ApiOperation(value = "登录接口") @ApiImplicitParams({ @@ -40,8 +46,12 @@ public class StorePassportController { }) @PostMapping("/userLogin") public ResultMessage userLogin(@NotNull(message = "用户名不能为空") @RequestParam String username, - @NotNull(message = "密码不能为空") @RequestParam String password) { - return ResultUtil.data(this.memberService.usernameStoreLogin(username, password)); + @NotNull(message = "密码不能为空") @RequestParam String password, @RequestHeader String uuid) { + if (verificationService.check(uuid, VerificationEnums.LOGIN)) { + return ResultUtil.data(this.memberService.usernameStoreLogin(username, password)); + } else { + throw new ServiceException(ResultCode.VERIFICATION_ERROR); + } } @ApiOperation(value = "修改密码")