商品信息回显--第一版
parent
8b4cb7038d
commit
02fe3d34af
|
@ -0,0 +1,18 @@
|
|||
package com.nuyu.product.constant;
|
||||
|
||||
/**
|
||||
* @Author: wangxinyuan
|
||||
* @Date: 2024/5/13 下午3:07
|
||||
*/
|
||||
public interface ProductConstant {
|
||||
|
||||
public static final String CACHE_PREFIX = "muyu:product:";
|
||||
|
||||
public static final int TTL = 1000 *60 *60 *24 *14 ;
|
||||
|
||||
public static final String STEP_ONE ="0";
|
||||
|
||||
public static final String STEP_TWO ="1";
|
||||
|
||||
public static final String STEP_THREE ="2";
|
||||
}
|
|
@ -9,6 +9,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
|
|||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
|
@ -28,6 +29,7 @@ public class MallProductInfo extends BaseEntity
|
|||
|
||||
/** ID */
|
||||
private Long id;
|
||||
@NotNull(message = "product is Not Null")
|
||||
|
||||
/** 商品名称 */
|
||||
@Excel(name = "商品名称")
|
||||
|
@ -98,6 +100,22 @@ public class MallProductInfo extends BaseEntity
|
|||
this.id = id;
|
||||
}
|
||||
|
||||
public Integer getPageSize() {
|
||||
return pageSize;
|
||||
}
|
||||
|
||||
public void setPageSize(Integer pageSize) {
|
||||
this.pageSize = pageSize;
|
||||
}
|
||||
|
||||
public Integer getPageNum() {
|
||||
return pageNum;
|
||||
}
|
||||
|
||||
public void setPageNum(Integer pageNum) {
|
||||
this.pageNum = pageNum;
|
||||
}
|
||||
|
||||
public Long getId()
|
||||
{
|
||||
return id;
|
||||
|
|
|
@ -71,7 +71,7 @@ public class MallProductInfoController extends BaseController
|
|||
@GetMapping(value = "/{id}")
|
||||
public Result getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return success(mallProductInfoService.selectMallProductInfoById(id));
|
||||
return success(mallProductInfoService.selectMallProductInfoAndSkuInfoById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -91,7 +91,7 @@ public class MallProductInfoController extends BaseController
|
|||
@RequiresPermissions("product:info:edit")
|
||||
@Log(title = "商品信息", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public Result edit(@RequestBody MallProductInfo mallProductInfo)
|
||||
public Result edit(@RequestBody MallProductInfoForm mallProductInfo)
|
||||
{
|
||||
return toAjax(mallProductInfoService.updateMallProductInfo(mallProductInfo));
|
||||
}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package com.muyu.product.mapper;
|
||||
|
||||
import com.nuyu.product.domain.MallProductInfo;
|
||||
import com.nuyu.product.req.MallProductInfoForm;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -64,4 +66,6 @@ public interface MallProductInfoMapper
|
|||
public int deleteMallProductInfoByIds(Long[] ids);
|
||||
|
||||
List<MallProductInfo> list(MallProductInfo mallProductInfo);
|
||||
|
||||
MallProductInfoForm selectMallProductInfoAndSkuInfoById(@Param("id") Long id);
|
||||
}
|
||||
|
|
|
@ -10,10 +10,12 @@ import com.muyu.common.core.utils.DateUtils;
|
|||
import com.muyu.common.security.utils.SecurityUtils;
|
||||
import com.muyu.product.service.MallProductInfoService;
|
||||
import com.muyu.product.service.MallProductSkuInfoService;
|
||||
import com.nuyu.product.constant.ProductConstant;
|
||||
import com.nuyu.product.domain.MallProductInfo;
|
||||
import com.nuyu.product.domain.MallProductSkuInfo;
|
||||
import com.nuyu.product.domain.MallProductTypeInfo;
|
||||
import com.nuyu.product.req.MallProductInfoForm;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import lombok.val;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
@ -29,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
* @author muyu
|
||||
* @date 2024-05-06
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class MallProductInfoServiceImpl implements MallProductInfoService
|
||||
{
|
||||
|
@ -81,35 +84,9 @@ public class MallProductInfoServiceImpl implements MallProductInfoService
|
|||
// 设置产品创建时间和更新时间
|
||||
mallProductInfo.setCreateTime(DateUtils.getNowDate());
|
||||
mallProductInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
|
||||
// 插入商城产品基本信息
|
||||
int num = mallProductInfoMapper.insertMallProductInfo(mallProductInfo);
|
||||
// 获取产品SKU信息列表
|
||||
List<MallProductSkuInfo>skuInfoList=mallProductInfo.getSkuInfoList();
|
||||
// 如果产品信息插入成功且SKU信息不为空,则进行SKU信息的插入
|
||||
if(num > 0 && CollectionUtils.isNotEmpty(skuInfoList)){
|
||||
// 准备插入的SKU信息列表
|
||||
Long productInfoId = mallProductInfo.getId();
|
||||
List<MallProductSkuInfo>mallProductSkuInfoList=new ArrayList<>();
|
||||
Date createTime = new Date();
|
||||
// 先删除该产品之前的SKU信息,准备插入新的SKU信息
|
||||
mallProductSkuInfoService.deleteMallProductSkuInfoId(productInfoId);
|
||||
|
||||
// 遍历SKU信息列表,复制属性并设置SKU信息的关联产品ID及其他默认值
|
||||
skuInfoList.stream().forEach(item ->{
|
||||
MallProductSkuInfo mallProductSkuInfo = new MallProductSkuInfo();
|
||||
BeanUtils.copyProperties(item,mallProductSkuInfo);
|
||||
mallProductSkuInfo.setProductId(productInfoId);
|
||||
mallProductSkuInfo.setImage("1");
|
||||
mallProductSkuInfo.setUpdateBy(String.valueOf(userId));
|
||||
mallProductSkuInfo.setCreateBy(String.valueOf(userId));
|
||||
mallProductSkuInfo.setCreateTime(createTime);
|
||||
mallProductSkuInfo.setUpdateTime(createTime);
|
||||
mallProductSkuInfoList.add(mallProductSkuInfo);
|
||||
});
|
||||
// 批量插入处理后的SKU信息
|
||||
mallProductSkuInfoService.insertMallProductSkuInfoList(mallProductSkuInfoList);
|
||||
}
|
||||
packageDataSeveOrUpdate(mallProductInfo,num,userId);
|
||||
return num;
|
||||
}
|
||||
|
||||
|
@ -119,13 +96,68 @@ public class MallProductInfoServiceImpl implements MallProductInfoService
|
|||
* @param mallProductInfo 商品信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public int updateMallProductInfo(MallProductInfo mallProductInfo)
|
||||
public int updateMallProductInfo(MallProductInfoForm mallProductInfo)
|
||||
{
|
||||
String step = mallProductInfo.getStep();
|
||||
log.info("参数{}",step);
|
||||
switch (step) {
|
||||
case ProductConstant.STEP_ONE:
|
||||
Long productInfoId = mallProductInfo.getId();
|
||||
mallProductInfo.setSkuInfoList(null);
|
||||
mallProductSkuInfoService.deleteMallProductSkuInfoId(productInfoId);
|
||||
break;
|
||||
case ProductConstant.STEP_THREE:
|
||||
mallProductInfo.setProductDesc("");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
Long userid = SecurityUtils.getLoginUser().getUserid();
|
||||
mallProductInfo.setCreateBy(String.valueOf(userid));
|
||||
Long loginUserId = SecurityUtils.getLoginUser().getUserid();
|
||||
mallProductInfo.setUpdateBy(String.valueOf(loginUserId));
|
||||
// 设置产品创建时间和更新时间
|
||||
mallProductInfo.setCreateTime(DateUtils.getNowDate());
|
||||
mallProductInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
return mallProductInfoMapper.updateMallProductInfo(mallProductInfo);
|
||||
mallProductInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
int num = mallProductInfoMapper.updateMallProductInfo(mallProductInfo);
|
||||
packageDataSeveOrUpdate(mallProductInfo,num,userid);
|
||||
return num;
|
||||
}
|
||||
|
||||
private void packageDataSeveOrUpdate(MallProductInfoForm mallProductInfo, int num, Long userid) {
|
||||
List<MallProductSkuInfo>skuInfoList=mallProductInfo.getSkuInfoList();
|
||||
// 如果产品信息插入成功且SKU信息不为空,则进行SKU信息的插入
|
||||
if(num > 0 && CollectionUtils.isNotEmpty(skuInfoList)){
|
||||
// 准备插入的SKU信息列表
|
||||
Long productInfoId = mallProductInfo.getId();
|
||||
List<MallProductSkuInfo>mallProductSkuInfoList=new ArrayList<>();
|
||||
Date createTime = new Date();
|
||||
// 先删除该产品之前的SKU信息,准备插入新的SKU信息
|
||||
mallProductSkuInfoService.deleteMallProductSkuInfoId(productInfoId);
|
||||
|
||||
// 遍历SKU信息列表,复制属性并设置SKU信息的关联产品ID及其他默认值
|
||||
skuInfoList.stream().forEach(item ->{
|
||||
MallProductSkuInfo mallProductSkuInfo = new MallProductSkuInfo();
|
||||
BeanUtils.copyProperties(item,mallProductSkuInfo);
|
||||
mallProductSkuInfo.setProductId(productInfoId);
|
||||
mallProductSkuInfo.setImage("1");
|
||||
mallProductSkuInfo.setUpdateBy(String.valueOf(userid));
|
||||
mallProductSkuInfo.setCreateBy(String.valueOf(userid));
|
||||
mallProductSkuInfo.setCreateTime(createTime);
|
||||
mallProductSkuInfo.setUpdateTime(createTime);
|
||||
mallProductSkuInfoList.add(mallProductSkuInfo);
|
||||
});
|
||||
// 批量插入处理后的SKU信息
|
||||
mallProductSkuInfoService.insertMallProductSkuInfoList(mallProductSkuInfoList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 批量删除商品信息
|
||||
*
|
||||
|
@ -157,4 +189,9 @@ public class MallProductInfoServiceImpl implements MallProductInfoService
|
|||
PageInfo<MallProductInfo> pageInfo = new PageInfo<>(products);
|
||||
return pageInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MallProductInfoForm selectMallProductInfoAndSkuInfoById(Long id) {
|
||||
return mallProductInfoMapper.selectMallProductInfoAndSkuInfoById(id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ public interface MallProductInfoService
|
|||
* @param mallProductInfo 商品信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateMallProductInfo(MallProductInfo mallProductInfo);
|
||||
public int updateMallProductInfo(MallProductInfoForm mallProductInfo);
|
||||
|
||||
/**
|
||||
* 批量删除商品信息
|
||||
|
@ -66,4 +66,5 @@ public interface MallProductInfoService
|
|||
//列表
|
||||
PageInfo<MallProductInfo> list(MallProductInfo mallProductRuleAttrInfo);
|
||||
|
||||
MallProductInfoForm selectMallProductInfoAndSkuInfoById(Long id);
|
||||
}
|
||||
|
|
|
@ -52,6 +52,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
<resultMap type="com.nuyu.product.req.MallProductInfoForm" id="MallProductInfoAndSkuInfoResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="name" column="name" />
|
||||
<result property="productDesc" column="product_desc" />
|
||||
<result property="type" column="type" />
|
||||
<result property="typeIds" column="type_ids" />
|
||||
<result property="img" column="img" />
|
||||
<result property="carouselImages" column="carousel_images" />
|
||||
<result property="commentCount" column="comment_count" />
|
||||
<result property="collectCount" column="collect_count" />
|
||||
<result property="brand" column="brand" />
|
||||
<result property="status" column="status" />
|
||||
<result property="unit" column="unit" />
|
||||
<result property="keywords" column="keywords" />
|
||||
<result property="ruleId" column="rule_id" />
|
||||
<result property="revision" column="revision" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="step" column="step" />
|
||||
<collection property="skuInfoList" ofType="com.nuyu.product.domain.MallProductSkuInfo"
|
||||
resultMap="com.muyu.product.mapper.MallProductSkuInfoMapper.MallProductSkuInfoResult">
|
||||
</collection>
|
||||
<!-- <collection property="skuInfoList" ofType="com.nuyu.product.domain.MallProductSkuInfo">-->
|
||||
<!-- <result property="productId" column="product_id" />-->
|
||||
<!-- <result property="sku" column="sku" />-->
|
||||
<!-- <result property="stock" column="stock" />-->
|
||||
<!-- <result property="price" column="price" />-->
|
||||
<!-- <result property="purchasePrice" column="purchase_price" />-->
|
||||
<!-- <result property="sellingPrice" column="selling_price" />-->
|
||||
<!-- <result property="image" column="image" />-->
|
||||
<!-- <result property="number" column="number" />-->
|
||||
<!-- <result property="weight" column="weight" />-->
|
||||
<!-- <result property="volume" column="volume" />-->
|
||||
<!-- <result property="revision" column="revision" />-->
|
||||
<!-- </collection>-->
|
||||
</resultMap>
|
||||
|
||||
<select id="selectMallProductInfoAndSkuInfoById" resultMap="MallProductInfoAndSkuInfoResult" parameterType="java.lang.Long">
|
||||
select * from mall_product_info mpi left join
|
||||
mall_product_sku_info mpsi on mpi.id = mpsi.product_id
|
||||
where mpi.id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertMallProductInfo" parameterType="com.nuyu.product.domain.MallProductInfo" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into mall_product_info
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
|
Loading…
Reference in New Issue