## 提货赠送修改结构

This commit is contained in:
zhangheng 2025-10-16 09:31:16 +08:00
parent ecce752ada
commit 19cb52a506
11 changed files with 259 additions and 57 deletions

View File

@ -0,0 +1,20 @@
package com.hzs.activity.declaration.controller.manage;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author bd
* @since 2025-10-16
*/
@RestController
@RequestMapping("/com.hzs.common.domain/ac-declaration-gift-detail")
public class AcDeclarationGiftDetailController {
}

View File

@ -0,0 +1,16 @@
package com.hzs.activity.declaration.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.activity.declaration.vo.AcDeclarationGiftDetail;
/**
* <p>
* Mapper 接口
* </p>
*
* @author bd
* @since 2025-10-16
*/
public interface AcDeclarationGiftDetailMapper extends BaseMapper<AcDeclarationGiftDetail> {
}

View File

@ -8,6 +8,8 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ -20,30 +22,13 @@ public class AcDeclarationConfigParam {
private Integer registerAuthority;
/**
* 产品主键
* 产品信息
*/
private Integer pkProduct;
/**
* 产品规格逗号分隔
*/
private String specsName;
/**
* 产品规格id逗号分隔
*/
private String specsNameId;
/**
* 数量
*/
private Long quantity;
private List<AcDeclarationProductParam> acDeclarationProductParamList;
/**
* 指定等级
*/
private Integer specifyLevel;
}

View File

@ -45,5 +45,4 @@ public class AcDeclarationParam {
*/
private List<AcDeclarationConfigParam> acDeclarationConfigParams;
}

View File

@ -0,0 +1,31 @@
package com.hzs.activity.declaration.param;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AcDeclarationProductParam {
/**
* 产品主键
*/
private Integer pkProduct;
/**
* 产品规格逗号分隔
*/
private String specsName;
/**
* 产品规格id逗号分隔
*/
private String specsNameId;
/**
* 数量
*/
private Long quantity;
}

View File

@ -0,0 +1,16 @@
package com.hzs.activity.declaration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.activity.declaration.vo.AcDeclarationGiftDetail;
/**
* <p>
* 服务类
* </p>
*
* @author bd
* @since 2025-10-16
*/
public interface IAcDeclarationGiftDetailService extends IService<AcDeclarationGiftDetail> {
}

View File

@ -15,13 +15,17 @@ import com.hzs.activity.declaration.mapper.AcDeclarationGiftConfigMapper;
import com.hzs.activity.declaration.param.AcDeclarationConfigParam;
import com.hzs.activity.declaration.param.AcDeclarationDetailParam;
import com.hzs.activity.declaration.param.AcDeclarationParam;
import com.hzs.activity.declaration.param.AcDeclarationProductParam;
import com.hzs.activity.declaration.service.IAcDeclarationGiftConfigService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.activity.declaration.service.IAcDeclarationGiftDetailService;
import com.hzs.activity.declaration.vo.AcDeclarationGiftConfig;
import com.hzs.activity.declaration.vo.AcDeclarationGiftDetail;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.enums.EActType;
import com.hzs.common.core.enums.EApprovalBusiness;
import com.hzs.common.core.enums.EControlType;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.activity.base.AcBaseConfig;
import com.hzs.common.domain.activity.base.AcGoalMemberConfig;
@ -35,7 +39,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -57,7 +64,7 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio
private IAcBaseConfigService baseConfigService;
@Autowired
private IAcGoalMemberConfigService iAcGoalMemberConfigService;
private IAcDeclarationGiftDetailService iAcDeclarationGiftDetailService;
@Override
public AjaxResult getDetail(Integer pkId) {
@ -67,14 +74,20 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio
List<AcDeclarationGiftConfig> list = baseMapper.selectList(new LambdaQueryWrapper<AcDeclarationGiftConfig>()
.eq(AcDeclarationGiftConfig::getPkBaseId,pkId)
.eq(AcDeclarationGiftConfig::getDelFlag,0));
List<AcDeclarationConfigParam> collect = list.stream()
.map(i -> BeanUtil.copyProperties(i, AcDeclarationConfigParam.class))
ArrayList<AcDeclarationConfigParam> acDeclarationConfigParams = new ArrayList<>();
list.forEach(item->{
AcDeclarationConfigParam acDeclarationConfigParam = BeanUtil.copyProperties(item, AcDeclarationConfigParam.class);
List<AcDeclarationGiftDetail> declarationGiftDetails = iAcDeclarationGiftDetailService.list(new LambdaQueryWrapper<AcDeclarationGiftDetail>()
.eq(AcDeclarationGiftDetail::getPkRuleId, item.getPkId())
.eq(AcDeclarationGiftDetail::getDelFlag, 0));
List<AcDeclarationProductParam> declarationConfigParams = declarationGiftDetails.stream()
.map(i -> BeanUtil.copyProperties(i, AcDeclarationProductParam.class))
.collect(Collectors.toList());
acDeclarationConfigParam.setAcDeclarationProductParamList(declarationConfigParams);
acDeclarationConfigParams.add(acDeclarationConfigParam);
});
List<AcGoalMemberConfig> goalMemberConfigList = iAcGoalMemberConfigService.list(new LambdaQueryWrapper<AcGoalMemberConfig>()
.eq(AcGoalMemberConfig::getPkBaseId, baseConfig.getPkId()));
activityParam.setAcDeclarationConfigParams(collect);
activityParam.setGoalMemberConfigList(goalMemberConfigList);
activityParam.setAcDeclarationConfigParams(acDeclarationConfigParams);
activityParam.setPkBaseId(baseConfig.getPkId());
return AjaxResult.success(activityParam);
}
@ -135,9 +148,12 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio
private void removeDeclarationConfig(Long pkId) {
// 删除活动基本配置
baseConfigService.removeById(pkId);
// 删除加购活动配置
// 删除报单赠送
baseMapper.delete(new LambdaQueryWrapper<AcDeclarationGiftConfig>()
.eq(AcDeclarationGiftConfig::getPkBaseId, pkId));
// 删除报单赠送详情配置
iAcDeclarationGiftDetailService.remove(new LambdaQueryWrapper<AcDeclarationGiftDetail>()
.eq(AcDeclarationGiftDetail::getPkBaseId, pkId));
}
private void updateDeclarationConfig(ActivityParam activityParam, List<AcDeclarationConfigParam> acDeclarationConfigParams) {
@ -151,6 +167,9 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio
// 删除活动配置
baseMapper.delete(new LambdaQueryWrapper<AcDeclarationGiftConfig>()
.eq(AcDeclarationGiftConfig::getPkBaseId, pkId));
// 删除活动详情配置
iAcDeclarationGiftDetailService.remove(new LambdaQueryWrapper<AcDeclarationGiftDetail>()
.eq(AcDeclarationGiftDetail::getPkBaseId, pkId));
// 添加加购活动配置
saveDeclarationConfig(acDeclarationConfigParams,baseConfig);
}
@ -162,10 +181,6 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio
AcDeclarationGiftConfig build = AcDeclarationGiftConfig.builder()
.pkBaseId(acBaseConfig.getPkId())
.registerAuthority(item.getRegisterAuthority())
.pkProduct(item.getPkProduct())
.specsName(item.getSpecsName())
.specsNameId(item.getSpecsNameId())
.quantity(item.getQuantity())
.specifyLevel(item.getSpecifyLevel())
.build();
build.setPkCountry(acBaseConfig.getPkCountry());
@ -173,6 +188,24 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio
build.setPkCreator(acBaseConfig.getPkCreator());
build.setDelFlag(0);
baseMapper.insert(build);
item.getAcDeclarationProductParamList().forEach(item1 -> {
if (item1 != null) {
AcDeclarationGiftDetail acDeclarationGiftDetail = AcDeclarationGiftDetail.builder()
.pkBaseId(acBaseConfig.getPkId())
.pkRuleId(build.getPkId())
.pkProduct(item1.getPkProduct())
.specsName(item1.getSpecsName())
.specsNameId(item1.getSpecsNameId())
.quantity(item1.getQuantity())
.build();
acDeclarationGiftDetail.setPkCountry(acBaseConfig.getPkCountry());
acDeclarationGiftDetail.setCreationTime(acBaseConfig.getCreationTime());
acDeclarationGiftDetail.setPkCreator(acBaseConfig.getPkCreator());
acDeclarationGiftDetail.setDelFlag(0);
iAcDeclarationGiftDetailService.save(acDeclarationGiftDetail);
}
});
}
});
}

View File

@ -0,0 +1,20 @@
package com.hzs.activity.declaration.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.activity.declaration.mapper.AcDeclarationGiftDetailMapper;
import com.hzs.activity.declaration.service.IAcDeclarationGiftDetailService;
import com.hzs.activity.declaration.vo.AcDeclarationGiftDetail;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author bd
* @since 2025-10-16
*/
@Service
public class AcDeclarationGiftDetailServiceImpl extends ServiceImpl<AcDeclarationGiftDetailMapper, AcDeclarationGiftDetail> implements IAcDeclarationGiftDetailService {
}

View File

@ -44,30 +44,6 @@ public class AcDeclarationGiftConfig extends BaseEntity {
@TableField("REGISTER_AUTHORITY")
private Integer registerAuthority;
/**
* 产品主键
*/
@TableField("PK_PRODUCT")
private Integer pkProduct;
/**
* 产品规格逗号分隔
*/
@TableField("SPECS_NAME")
private String specsName;
/**
* 产品规格id逗号分隔
*/
@TableField("SPECS_NAME_ID")
private String specsNameId;
/**
* 数量
*/
@TableField("QUANTITY")
private Long quantity;
/**
* 指定等级
*/

View File

@ -0,0 +1,74 @@
package com.hzs.activity.declaration.vo;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author bd
* @since 2025-10-16
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("AC_DECLARATION_GIFT_DETAIL")
@KeySequence("AC_DECLARATION_GIFT_DETAIL_SEQ")
@Builder
public class AcDeclarationGiftDetail extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId("PK_ID")
private Long pkId;
/**
* 活动规则主键
*/
@TableField("PK_RULE_ID")
private Long pkRuleId;
/**
* 活动基本规则主键
*/
@TableField("PK_BASE_ID")
private Long pkBaseId;
/**
* 产品主键
*/
@TableField("PK_PRODUCT")
private Integer pkProduct;
/**
* 产品规格逗号分隔
*/
@TableField("SPECS_NAME")
private String specsName;
/**
* 产品规格id逗号分隔
*/
@TableField("SPECS_NAME_ID")
private String specsNameId;
/**
* 数量
*/
@TableField("QUANTITY")
private Long quantity;
}

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.activity.declaration.mapper.AcDeclarationGiftDetailMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.activity.declaration.vo.AcDeclarationGiftDetail">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="PK_RULE_ID" property="pkRuleId" />
<result column="PK_PRODUCT" property="pkProduct" />
<result column="SPECS_NAME" property="specsName" />
<result column="SPECS_NAME_ID" property="specsNameId" />
<result column="QUANTITY" property="quantity" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
DEL_FLAG,
CREATION_TIME,
PK_CREATOR,
MODIFIED_TIME,
PK_MODIFIED,
PK_COUNTRY,
PK_ID, PK_RULE_ID, PK_PRODUCT, SPECS_NAME, SPECS_NAME_ID, QUANTITY
</sql>
</mapper>