13 changed files with 678 additions and 0 deletions
@ -0,0 +1,159 @@ |
|||||
|
package com.qs.serve.modules.tbs.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.CollectionUtil; |
||||
|
import com.qs.serve.common.util.PageUtil; |
||||
|
import com.qs.serve.common.util.CopierUtil; |
||||
|
import com.qs.serve.common.util.StringUtils; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplateRegion; |
||||
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateRegionService; |
||||
|
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.tbs.entity.so.TbsActivityTemplateSo; |
||||
|
import com.qs.serve.modules.tbs.entity.bo.TbsActivityTemplateBo; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate; |
||||
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateService; |
||||
|
|
||||
|
import javax.validation.Valid; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
/** |
||||
|
* 预算 活动模板 |
||||
|
* @author YenHex |
||||
|
* @since 2022-11-29 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@AllArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("tbs/activityTemplate") |
||||
|
public class TbsActivityTemplateController { |
||||
|
|
||||
|
private TbsActivityTemplateService tbsActivityTemplateService; |
||||
|
private TbsActivityTemplateRegionService tbsActivityTemplateRegionService; |
||||
|
|
||||
|
/** |
||||
|
* 列表 |
||||
|
* @param param |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("/list") |
||||
|
@PreAuthorize("hasRole('tbs:activityTemplate:query')") |
||||
|
public R<List<TbsActivityTemplate>> getList(TbsActivityTemplateSo param){ |
||||
|
TbsActivityTemplate entity = CopierUtil.copy(param,new TbsActivityTemplate()); |
||||
|
LambdaQueryWrapper<TbsActivityTemplate> lqw = new LambdaQueryWrapper<>(entity); |
||||
|
PageUtil.startPage(); |
||||
|
List<TbsActivityTemplate> list = tbsActivityTemplateService.list(lqw); |
||||
|
return R.ok(list); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 翻页 |
||||
|
* @param param |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("/page") |
||||
|
@PreAuthorize("hasRole('tbs:activityTemplate:query')") |
||||
|
public R<PageVo<TbsActivityTemplate>> getPage(TbsActivityTemplateSo param){ |
||||
|
TbsActivityTemplate entity = CopierUtil.copy(param,new TbsActivityTemplate()); |
||||
|
LambdaQueryWrapper<TbsActivityTemplate> lqw = new LambdaQueryWrapper<>(entity); |
||||
|
PageUtil.startPage(); |
||||
|
List<TbsActivityTemplate> list = tbsActivityTemplateService.list(lqw); |
||||
|
return R.byPageHelperList(list); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* ID查询 |
||||
|
* @param id |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("/getById/{id}") |
||||
|
@SysLog(module = SystemModule.Budget, title = "活动模板", biz = BizType.QUERY) |
||||
|
@PreAuthorize("hasRole('tbs:activityTemplate:query')") |
||||
|
public R<TbsActivityTemplate> getById(@PathVariable("id") String id){ |
||||
|
TbsActivityTemplate tbsActivityTemplate = tbsActivityTemplateService.getById(id); |
||||
|
LambdaQueryWrapper<TbsActivityTemplateRegion> lqw = new LambdaQueryWrapper<>(); |
||||
|
lqw.eq(TbsActivityTemplateRegion::getTemplateId,tbsActivityTemplate.getId()); |
||||
|
List<TbsActivityTemplateRegion> templateRegionList = tbsActivityTemplateRegionService.list(lqw); |
||||
|
Map<String,List<TbsActivityTemplateRegion>> templateRegionListMap = templateRegionList.stream().collect(Collectors.groupingBy(TbsActivityTemplateRegion::getType)); |
||||
|
tbsActivityTemplate.setSaleRegionList(templateRegionListMap.get("sale")); |
||||
|
tbsActivityTemplate.setBizRegionList(templateRegionListMap.get("biz")); |
||||
|
return R.ok(tbsActivityTemplate); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 更新 |
||||
|
* @param param |
||||
|
* @return |
||||
|
*/ |
||||
|
@PostMapping("/updateById") |
||||
|
@SysLog(module = SystemModule.Budget, title = "活动模板", biz = BizType.UPDATE) |
||||
|
@PreAuthorize("hasRole('tbs:activityTemplate:update')") |
||||
|
public R<?> updateById(@RequestBody @Valid TbsActivityTemplateBo param){ |
||||
|
if(param.getId()==null){ |
||||
|
return R.error("id is null"); |
||||
|
} |
||||
|
tbsActivityTemplateService.modify(param); |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增 |
||||
|
* @param param |
||||
|
* @return |
||||
|
*/ |
||||
|
@PostMapping("/save") |
||||
|
@SysLog(module = SystemModule.Budget, title = "活动模板", biz = BizType.INSERT) |
||||
|
@PreAuthorize("hasRole('tbs:activityTemplate:insert')") |
||||
|
public R<?> save(@RequestBody @Valid TbsActivityTemplateBo param){ |
||||
|
if(param.getId()!=null){ |
||||
|
return R.error("id is not null"); |
||||
|
} |
||||
|
tbsActivityTemplateService.modify(param); |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除 |
||||
|
* @param ids |
||||
|
* @return |
||||
|
*/ |
||||
|
@DeleteMapping("/deleteById/{ids}") |
||||
|
@SysLog(module = SystemModule.Budget, title = "活动模板", biz = BizType.DELETE) |
||||
|
@PreAuthorize("hasRole('tbs:activityTemplate:delete')") |
||||
|
public R<?> deleteById(@PathVariable("ids") String ids){ |
||||
|
List<Long> idsLong = StringUtils.splitIdLong(ids); |
||||
|
boolean result = tbsActivityTemplateService.removeByIds(idsLong); |
||||
|
return R.isTrue(result); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 通过供应商获取模板列表 |
||||
|
* @param id |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("/listBySupplier/{id}") |
||||
|
public R<List<TbsActivityTemplate>> listBySupplier(@PathVariable("id") String id){ |
||||
|
List<TbsActivityTemplateRegion> templateRegions = tbsActivityTemplateRegionService.getTemplateIds(id); |
||||
|
List<Long> templateIds = templateRegions.stream().map(TbsActivityTemplateRegion::getTemplateId) |
||||
|
.distinct().collect(Collectors.toList()); |
||||
|
if(CollectionUtil.isNotEmpty(templateIds)){ |
||||
|
return R.ok(); |
||||
|
} |
||||
|
List<TbsActivityTemplate> templates = tbsActivityTemplateService.listByIds(templateIds); |
||||
|
return R.ok(templates); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,104 @@ |
|||||
|
package com.qs.serve.modules.tbs.entity; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
import java.io.Serializable; |
||||
|
import java.math.BigDecimal; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.List; |
||||
|
|
||||
|
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 2022-11-29 |
||||
|
*/ |
||||
|
@Data |
||||
|
@TableName("tbs_activity_template") |
||||
|
public class TbsActivityTemplate implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** id */ |
||||
|
@TableId(type = IdType.AUTO) |
||||
|
private Long id; |
||||
|
|
||||
|
/** 供应商id */ |
||||
|
@NotNull(message = "供应商id不能为空") |
||||
|
private Long supplierId; |
||||
|
|
||||
|
/** 模板名称 */ |
||||
|
@NotBlank(message = "模板名称不能为空") |
||||
|
@Length(max = 30,message = "模板名称长度不能超过30字") |
||||
|
private String templateName; |
||||
|
|
||||
|
/** 模板状态 */ |
||||
|
@NotNull(message = "模板状态不能为空") |
||||
|
private Integer templateState; |
||||
|
|
||||
|
/** 模板值 */ |
||||
|
@NotBlank(message = "模板值不能为空") |
||||
|
@Length(max = 6000,message = "模板值长度不能超过6000字") |
||||
|
private String templateValue; |
||||
|
|
||||
|
/** 销售区域标识:0-全部可见;1-部分可见;2-全部不可见 */ |
||||
|
@NotNull(message = "销售区域标识:0-全部可见;1-部分可见;2-全部不可见不能为空") |
||||
|
private Integer saleRegionFlag; |
||||
|
|
||||
|
/** 行政区域标识:0-全部可见;1-部分可见;2-全部不可 */ |
||||
|
@NotNull(message = "行政区域标识:0-全部可见;1-部分可见;2-全部不可不能为空") |
||||
|
private Integer bizRegionFlag; |
||||
|
|
||||
|
/** 备注 */ |
||||
|
@Length(max = 255,message = "备注长度不能超过255字") |
||||
|
private String remark; |
||||
|
|
||||
|
/** 创建时间 */ |
||||
|
@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; |
||||
|
|
||||
|
/** 创建人 */ |
||||
|
@TableField(fill = FieldFill.INSERT) |
||||
|
private String createBy; |
||||
|
|
||||
|
/** 更新时间 */ |
||||
|
@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; |
||||
|
|
||||
|
/** 更新人 */ |
||||
|
@TableField(fill = FieldFill.UPDATE) |
||||
|
private String updateBy; |
||||
|
|
||||
|
/** 租户id */ |
||||
|
@JsonIgnore |
||||
|
@JsonProperty |
||||
|
private String tenantId; |
||||
|
|
||||
|
/** 删除标识 */ |
||||
|
@JsonIgnore |
||||
|
@JsonProperty |
||||
|
private Boolean delFlag; |
||||
|
|
||||
|
/** 销售区域 */ |
||||
|
@TableField(exist = false) |
||||
|
List<TbsActivityTemplateRegion> saleRegionList; |
||||
|
|
||||
|
/** 行政区域 */ |
||||
|
@TableField(exist = false) |
||||
|
List<TbsActivityTemplateRegion> bizRegionList; |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,87 @@ |
|||||
|
package com.qs.serve.modules.tbs.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 2022-11-29 |
||||
|
*/ |
||||
|
@Data |
||||
|
@TableName("tbs_activity_template_region") |
||||
|
public class TbsActivityTemplateRegion implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** id */ |
||||
|
@TableId(type = IdType.AUTO) |
||||
|
private Long id; |
||||
|
|
||||
|
/** 类型:sale、biz */ |
||||
|
@NotBlank(message = "类型:sale、biz不能为空") |
||||
|
private String type; |
||||
|
|
||||
|
/** 商品id */ |
||||
|
@NotNull(message = "商品id不能为空") |
||||
|
private Long templateId; |
||||
|
|
||||
|
/** 区域ID */ |
||||
|
@NotNull(message = "区域ID不能为空") |
||||
|
private String regionId; |
||||
|
|
||||
|
/** 区域名称 */ |
||||
|
@Length(max = 30,message = "区域名称长度不能超过30字") |
||||
|
private String regionName; |
||||
|
|
||||
|
/** 区域编码 */ |
||||
|
private String regionCode; |
||||
|
|
||||
|
/** 区域等级 */ |
||||
|
private Integer regionLevel; |
||||
|
|
||||
|
/** 创建时间 */ |
||||
|
@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; |
||||
|
|
||||
|
/** 创建人 */ |
||||
|
@TableField(fill = FieldFill.INSERT) |
||||
|
private String createBy; |
||||
|
|
||||
|
/** 更新时间 */ |
||||
|
@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; |
||||
|
|
||||
|
/** 更新人 */ |
||||
|
@TableField(fill = FieldFill.UPDATE) |
||||
|
private String updateBy; |
||||
|
|
||||
|
/** 租户id */ |
||||
|
@JsonIgnore |
||||
|
@JsonProperty |
||||
|
private String tenantId; |
||||
|
|
||||
|
/** 删除标识 */ |
||||
|
@JsonIgnore |
||||
|
@JsonProperty |
||||
|
private Boolean delFlag; |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,67 @@ |
|||||
|
package com.qs.serve.modules.tbs.entity.bo; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
import java.io.Serializable; |
||||
|
import java.math.BigDecimal; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.List; |
||||
|
|
||||
|
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; |
||||
|
|
||||
|
/** |
||||
|
* 活动模板 Bo |
||||
|
* @author YenHex |
||||
|
* @since 2022-11-29 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class TbsActivityTemplateBo implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** id */ |
||||
|
private Long id; |
||||
|
|
||||
|
/** 供应商id */ |
||||
|
@NotNull(message = "供应商id不能为空") |
||||
|
private Long supplierId; |
||||
|
|
||||
|
/** 模板名称 */ |
||||
|
@NotBlank(message = "模板名称不能为空") |
||||
|
@Length(max = 30,message = "模板名称长度不能超过30字") |
||||
|
private String templateName; |
||||
|
|
||||
|
/** 模板状态 */ |
||||
|
@NotNull(message = "模板状态不能为空") |
||||
|
private Integer templateState; |
||||
|
|
||||
|
/** 模板值 */ |
||||
|
@NotBlank(message = "模板值不能为空") |
||||
|
@Length(max = 6000,message = "模板值长度不能超过6000字") |
||||
|
private String templateValue; |
||||
|
|
||||
|
/** 备注 */ |
||||
|
@Length(max = 255,message = "备注长度不能超过255字") |
||||
|
private String remark; |
||||
|
|
||||
|
/** 销售区域标识:0-全部可见;1-部分可见;2-全部不可见 */ |
||||
|
private Integer saleRegionFlag; |
||||
|
|
||||
|
/** 行政区域标识:0-全部可见;1-部分可见;2-全部不可 */ |
||||
|
private Integer bizRegionFlag; |
||||
|
|
||||
|
/** 销售区域id列表 */ |
||||
|
private List<Long> saleRegionIds; |
||||
|
|
||||
|
/** 销售区域id列表 */ |
||||
|
private List<Long> bizRegionIds; |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,40 @@ |
|||||
|
package com.qs.serve.modules.tbs.entity.so; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
import java.io.Serializable; |
||||
|
import java.math.BigDecimal; |
||||
|
import java.time.LocalDateTime; |
||||
|
|
||||
|
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; |
||||
|
import java.util.List; |
||||
|
/** |
||||
|
* 活动模板 查询参数 |
||||
|
* @author YenHex |
||||
|
* @since 2022-11-29 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class TbsActivityTemplateSo implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** 供应商id */ |
||||
|
private Long supplierId; |
||||
|
|
||||
|
/** 模板名称 */ |
||||
|
private String templateName; |
||||
|
|
||||
|
/** 模板状态 */ |
||||
|
private Integer templateState; |
||||
|
|
||||
|
/** 备注 */ |
||||
|
private String remark; |
||||
|
} |
||||
|
|
@ -0,0 +1,14 @@ |
|||||
|
package com.qs.serve.modules.tbs.mapper; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate; |
||||
|
|
||||
|
/** |
||||
|
* 活动模板 Mapper |
||||
|
* @author YenHex |
||||
|
* @date 2022-11-29 |
||||
|
*/ |
||||
|
public interface TbsActivityTemplateMapper extends BaseMapper<TbsActivityTemplate> { |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,14 @@ |
|||||
|
package com.qs.serve.modules.tbs.mapper; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplateRegion; |
||||
|
|
||||
|
/** |
||||
|
* 活动模板区域 Mapper |
||||
|
* @author YenHex |
||||
|
* @date 2022-11-29 |
||||
|
*/ |
||||
|
public interface TbsActivityTemplateRegionMapper extends BaseMapper<TbsActivityTemplateRegion> { |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,18 @@ |
|||||
|
package com.qs.serve.modules.tbs.service; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplateRegion; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 活动模板区域 服务接口 |
||||
|
* @author YenHex |
||||
|
* @date 2022-11-29 |
||||
|
*/ |
||||
|
public interface TbsActivityTemplateRegionService extends IService<TbsActivityTemplateRegion> { |
||||
|
|
||||
|
List<TbsActivityTemplateRegion> getTemplateIds(String supplierId); |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,17 @@ |
|||||
|
package com.qs.serve.modules.tbs.service; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate; |
||||
|
import com.qs.serve.modules.tbs.entity.bo.TbsActivityTemplateBo; |
||||
|
|
||||
|
/** |
||||
|
* 活动模板 服务接口 |
||||
|
* @author YenHex |
||||
|
* @date 2022-11-29 |
||||
|
*/ |
||||
|
public interface TbsActivityTemplateService extends IService<TbsActivityTemplate> { |
||||
|
|
||||
|
void modify(TbsActivityTemplateBo templateBo); |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,67 @@ |
|||||
|
package com.qs.serve.modules.tbs.service.impl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
import com.qs.serve.common.util.CollectionUtil; |
||||
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
||||
|
import com.qs.serve.modules.bms.service.BmsSupplierService; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplateRegion; |
||||
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateRegionService; |
||||
|
import com.qs.serve.modules.tbs.mapper.TbsActivityTemplateRegionMapper; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
/** |
||||
|
* 活动模板区域 服务实现类 |
||||
|
* @author YenHex |
||||
|
* @since 2022-11-29 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@Service |
||||
|
@AllArgsConstructor |
||||
|
public class TbsActivityTemplateRegionServiceImpl extends ServiceImpl<TbsActivityTemplateRegionMapper,TbsActivityTemplateRegion> implements TbsActivityTemplateRegionService { |
||||
|
|
||||
|
private final BmsSupplierService supplierService; |
||||
|
|
||||
|
@Override |
||||
|
public List<TbsActivityTemplateRegion> getTemplateIds(String supplierId){ |
||||
|
List<String> saleRegionIds = new ArrayList<>(); |
||||
|
List<String> bizRegionIds = new ArrayList<>(); |
||||
|
BmsSupplier supplier = supplierService.getById(supplierId); |
||||
|
if(supplier.getRegionFirst()!=null){ saleRegionIds.add(supplier.getRegionFirst()); } |
||||
|
if(supplier.getRegionSecond()!=null){ saleRegionIds.add(supplier.getRegionSecond()); } |
||||
|
if(supplier.getRegionThird()!=null){ saleRegionIds.add(supplier.getRegionThird()); } |
||||
|
if(supplier.getRegionFourthly()!=null){ saleRegionIds.add(supplier.getRegionFourthly()); } |
||||
|
|
||||
|
if(supplier.getRegion2First()!=null){ bizRegionIds.add(supplier.getRegion2First()); } |
||||
|
if(supplier.getRegion2Second()!=null){ bizRegionIds.add(supplier.getRegion2Second()); } |
||||
|
if(supplier.getRegion2Third()!=null){ bizRegionIds.add(supplier.getRegion2Third()); } |
||||
|
if(supplier.getRegion2Fourthly()!=null){ bizRegionIds.add(supplier.getRegion2Fourthly()); } |
||||
|
|
||||
|
LambdaQueryWrapper<TbsActivityTemplateRegion> lqw = new LambdaQueryWrapper<>(); |
||||
|
if(CollectionUtil.isNotEmpty(saleRegionIds) && bizRegionIds.size()==0 ){ |
||||
|
lqw.eq(TbsActivityTemplateRegion::getType,"sale") |
||||
|
.in(TbsActivityTemplateRegion::getRegionId,saleRegionIds); |
||||
|
}else if(CollectionUtil.isNotEmpty(bizRegionIds) && saleRegionIds.size()==0 ){ |
||||
|
lqw.eq(TbsActivityTemplateRegion::getType,"biz") |
||||
|
.in(TbsActivityTemplateRegion::getRegionId,bizRegionIds); |
||||
|
}else if (CollectionUtil.isNotEmpty(saleRegionIds)&&CollectionUtil.isNotEmpty(bizRegionIds)){ |
||||
|
lqw.and( |
||||
|
a1->a1.eq(TbsActivityTemplateRegion::getType,"sale") |
||||
|
.in(TbsActivityTemplateRegion::getRegionId,saleRegionIds) |
||||
|
).or().and( |
||||
|
a1->a1.eq(TbsActivityTemplateRegion::getType,"biz") |
||||
|
.in(TbsActivityTemplateRegion::getRegionId,bizRegionIds) |
||||
|
); |
||||
|
}else { |
||||
|
return new ArrayList<>(); |
||||
|
} |
||||
|
return this.list(lqw); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,85 @@ |
|||||
|
package com.qs.serve.modules.tbs.service.impl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
import com.qs.serve.common.util.CollectionUtil; |
||||
|
import com.qs.serve.common.util.CopierUtil; |
||||
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
||||
|
import com.qs.serve.modules.bms.entity.BmsRegion2; |
||||
|
import com.qs.serve.modules.bms.service.BmsRegion2Service; |
||||
|
import com.qs.serve.modules.bms.service.BmsRegionService; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplateRegion; |
||||
|
import com.qs.serve.modules.tbs.entity.bo.TbsActivityTemplateBo; |
||||
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateRegionService; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate; |
||||
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateService; |
||||
|
import com.qs.serve.modules.tbs.mapper.TbsActivityTemplateMapper; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
/** |
||||
|
* 活动模板 服务实现类 |
||||
|
* @author YenHex |
||||
|
* @since 2022-11-29 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@Service |
||||
|
@AllArgsConstructor |
||||
|
public class TbsActivityTemplateServiceImpl extends ServiceImpl<TbsActivityTemplateMapper,TbsActivityTemplate> implements TbsActivityTemplateService { |
||||
|
|
||||
|
private final TbsActivityTemplateRegionService templateRegionService; |
||||
|
private final BmsRegionService saleRegionService; |
||||
|
private final BmsRegion2Service bizRegionService; |
||||
|
|
||||
|
@Override |
||||
|
public void modify(TbsActivityTemplateBo templateBo) { |
||||
|
TbsActivityTemplate template = CopierUtil.copy(templateBo,new TbsActivityTemplate()); |
||||
|
this.saveOrUpdate(template); |
||||
|
//移除历史
|
||||
|
LambdaQueryWrapper<TbsActivityTemplateRegion> rmRegion = new LambdaQueryWrapper<>(); |
||||
|
rmRegion.eq(TbsActivityTemplateRegion::getTemplateId,template.getId()); |
||||
|
templateRegionService.remove(rmRegion); |
||||
|
//保存区域
|
||||
|
List<TbsActivityTemplateRegion> templateRegionList = new ArrayList<>(); |
||||
|
if(templateBo.getSaleRegionFlag() != null && templateBo.getSaleRegionFlag().equals(1) |
||||
|
&& CollectionUtil.isNotEmpty(templateBo.getSaleRegionIds())){ |
||||
|
List<BmsRegion> saleRegionList = saleRegionService.listByIds(templateBo.getSaleRegionIds()); |
||||
|
List<TbsActivityTemplateRegion> templateRegions = saleRegionList.stream().map(reg->{ |
||||
|
TbsActivityTemplateRegion templateRegion = new TbsActivityTemplateRegion(); |
||||
|
templateRegion.setTemplateId(template.getId()); |
||||
|
templateRegion.setType("sale"); |
||||
|
templateRegion.setRegionId(reg.getId()); |
||||
|
templateRegion.setRegionId(reg.getName()); |
||||
|
templateRegion.setRegionCode(reg.getCode()); |
||||
|
templateRegion.setRegionLevel(reg.getLevel()); |
||||
|
return templateRegion; |
||||
|
}).collect(Collectors.toList()); |
||||
|
templateRegionList.addAll(templateRegions); |
||||
|
} |
||||
|
if(templateBo.getBizRegionFlag() != null && templateBo.getBizRegionFlag().equals(1) |
||||
|
&& CollectionUtil.isNotEmpty(templateBo.getBizRegionIds())){ |
||||
|
List<BmsRegion2> bizRegionList = bizRegionService.listByIds(templateBo.getBizRegionIds()); |
||||
|
List<TbsActivityTemplateRegion> templateRegions = bizRegionList.stream().map(reg->{ |
||||
|
TbsActivityTemplateRegion templateRegion = new TbsActivityTemplateRegion(); |
||||
|
templateRegion.setTemplateId(template.getId()); |
||||
|
templateRegion.setType("biz"); |
||||
|
templateRegion.setRegionId(reg.getId()); |
||||
|
templateRegion.setRegionName(reg.getName()); |
||||
|
templateRegion.setRegionCode(reg.getCode()); |
||||
|
templateRegion.setRegionLevel(reg.getLevel()); |
||||
|
return templateRegion; |
||||
|
}).collect(Collectors.toList()); |
||||
|
templateRegionList.addAll(templateRegions); |
||||
|
} |
||||
|
if(CollectionUtil.isNotEmpty(templateRegionList)){ |
||||
|
templateRegionService.saveBatch(templateRegionList); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
Loading…
Reference in new issue