feat(memberCenter): 重构权益相关功能
parent
502fcb3072
commit
a74e6412e0
|
@ -3,26 +3,18 @@ package com.mcwl.web.controller.memberCenter;
|
|||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.mcwl.common.core.domain.R;
|
||||
import com.mcwl.memberCenter.domain.Benefit;
|
||||
import com.mcwl.memberCenter.domain.BenefitValue;
|
||||
import com.mcwl.memberCenter.domain.dto.BenefitDto;
|
||||
import com.mcwl.memberCenter.domain.dto.AddBenefitDto;
|
||||
import com.mcwl.memberCenter.domain.dto.EditBenefitDto;
|
||||
import com.mcwl.memberCenter.domain.vo.BenefitVo;
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
import com.mcwl.memberCenter.service.BenefitService;
|
||||
import com.mcwl.memberCenter.service.BenefitValueService;
|
||||
import com.mcwl.memberCenter.service.MemberBenefitService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/***
|
||||
* 权益
|
||||
|
@ -35,7 +27,6 @@ public class BenefitController {
|
|||
|
||||
private final BenefitService benefitService;
|
||||
|
||||
private final BenefitValueService benefitValueService;
|
||||
|
||||
/**
|
||||
* 权益列表
|
||||
|
@ -44,21 +35,8 @@ public class BenefitController {
|
|||
@ApiOperation(value = "权益列表")
|
||||
@GetMapping("list")
|
||||
public R<List<BenefitVo>> list() {
|
||||
List<Benefit> benefitList = benefitService.list();
|
||||
Map<Long, Double> benefitValueMap = benefitValueService.list()
|
||||
.stream()
|
||||
.collect(Collectors.toMap(BenefitValue::getId, BenefitValue::getBenefitValue));
|
||||
|
||||
List<BenefitVo> benefitVoList = new ArrayList<>();
|
||||
for (Benefit benefit : benefitList) {
|
||||
BenefitVo benefitVo = BeanUtil.copyProperties(benefit, BenefitVo.class);
|
||||
Double value = benefitValueMap.get(benefit.getBenefitDiscountId());
|
||||
benefitVo.setBenefitType(benefit.getBenefitType().getValue());
|
||||
benefitVo.setBenefitDiscount(value);
|
||||
benefitVoList.add(benefitVo);
|
||||
}
|
||||
|
||||
return R.ok(benefitVoList);
|
||||
return R.ok(benefitService.benefitList());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -67,53 +45,24 @@ public class BenefitController {
|
|||
// @PreAuthorize("@ss.hasPermi('system:benefit:add')")
|
||||
@ApiOperation(value = "添加权益")
|
||||
@PostMapping("add")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public R<Object> add(@RequestBody @Valid BenefitDto benefitDto) {
|
||||
Double value = benefitDto.getBenefitDiscount();
|
||||
BenefitValue benefitValue = new BenefitValue();
|
||||
benefitValue.setBenefitValue(value);
|
||||
benefitValueService.save(benefitValue);
|
||||
public R<Object> add(@RequestBody @Valid AddBenefitDto addBenefitDto) {
|
||||
|
||||
benefitDto.setId(null);
|
||||
Benefit benefit = BeanUtil.copyProperties(benefitDto, Benefit.class);
|
||||
benefit.setBenefitDiscountId(benefitValue.getId());
|
||||
benefitService.save(benefit);
|
||||
benefitService.addBenefit(addBenefitDto);
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 权益详情
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermi('system:benefit:query')")
|
||||
@ApiOperation(value = "权益详情")
|
||||
@GetMapping("detail")
|
||||
public R<BenefitVo> detail(Long id) {
|
||||
Benefit benefit = benefitService.getById(id);
|
||||
BenefitVo benefitVo = BeanUtil.copyProperties(benefit, BenefitVo.class);
|
||||
benefitVo.setBenefitType(benefit.getBenefitType().getValue());
|
||||
|
||||
BenefitValue benefitValue = benefitValueService.lambdaQuery().eq(BenefitValue::getId, benefit.getBenefitDiscountId()).one();
|
||||
benefitVo.setBenefitDiscount(benefitValue.getBenefitValue());
|
||||
|
||||
return R.ok(benefitVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改权益
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermi('system:benefit:edit')")
|
||||
@ApiOperation(value = "修改权益")
|
||||
@PostMapping("update")
|
||||
public R<Object> update(@RequestBody @Valid BenefitDto benefitDto) {
|
||||
public R<Object> update(@RequestBody @Valid EditBenefitDto editBenefitDto) {
|
||||
|
||||
Benefit benefit = BeanUtil.copyProperties(benefitDto, Benefit.class);
|
||||
Benefit benefit = BeanUtil.copyProperties(editBenefitDto, Benefit.class);
|
||||
benefitService.updateById(benefit);
|
||||
|
||||
BenefitValue benefitValue = benefitValueService.lambdaQuery().eq(BenefitValue::getId, benefit.getBenefitDiscountId()).one();
|
||||
benefitValue.setBenefitValue(benefitDto.getBenefitDiscount());
|
||||
benefitValueService.updateById(benefitValue);
|
||||
|
||||
|
||||
return R.ok();
|
||||
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
package com.mcwl.web.controller.memberCenter;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.mcwl.common.core.domain.R;
|
||||
import com.mcwl.memberCenter.domain.Benefit;
|
||||
import com.mcwl.memberCenter.domain.BenefitName;
|
||||
import com.mcwl.memberCenter.domain.dto.AddBenefitDto;
|
||||
import com.mcwl.memberCenter.domain.dto.AddBenefitNameDto;
|
||||
import com.mcwl.memberCenter.domain.dto.EditBenefitDto;
|
||||
import com.mcwl.memberCenter.domain.dto.EditBenefitNameDto;
|
||||
import com.mcwl.memberCenter.domain.vo.BenefitVo;
|
||||
import com.mcwl.memberCenter.service.BenefitNameService;
|
||||
import com.mcwl.memberCenter.service.BenefitService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/***
|
||||
* 权益名称
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("benefitName")
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "会员中心")
|
||||
public class BenefitNameController {
|
||||
|
||||
private final BenefitNameService benefitNameService;
|
||||
|
||||
|
||||
/**
|
||||
* 权益名称列表
|
||||
*/
|
||||
@ApiOperation(value = "权益名称列表")
|
||||
@GetMapping("list")
|
||||
public R<List<BenefitName>> list() {
|
||||
List<BenefitName> list = benefitNameService.list();
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "添加权益名称")
|
||||
@PostMapping("add")
|
||||
public R<Object> add(@RequestBody @Valid AddBenefitNameDto addBenefitDto) {
|
||||
BenefitName benefitName = BeanUtil.toBean(addBenefitDto, BenefitName.class);
|
||||
benefitNameService.save(benefitName);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改权益名称")
|
||||
@PostMapping("update")
|
||||
public R<Object> update(@RequestBody @Valid EditBenefitNameDto editBenefitNameDto) {
|
||||
BenefitName benefitName = BeanUtil.toBean(editBenefitNameDto, BenefitName.class);
|
||||
benefitNameService.updateById(benefitName);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "删除权益名称")
|
||||
@GetMapping("delete")
|
||||
public R<Object> delete(@Valid @NotNull(message = "id不能为空") Long id) {
|
||||
benefitNameService.removeById(id);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -18,9 +18,9 @@ public class Benefit extends BaseEntity {
|
|||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 权益名称
|
||||
* 权益名称Id
|
||||
*/
|
||||
private String benefitName;
|
||||
private String benefitNameId;
|
||||
/**
|
||||
* 权益描述
|
||||
*/
|
||||
|
@ -32,11 +32,11 @@ public class Benefit extends BaseEntity {
|
|||
/**
|
||||
* 权益折扣,当权益类型为折扣时,记录折扣具体数值
|
||||
*/
|
||||
private Long benefitDiscountId;
|
||||
private Double benefitDiscount;
|
||||
/**
|
||||
* 权益排序
|
||||
* 单位
|
||||
*/
|
||||
private Integer benefitOrder;
|
||||
private String benefitUnit;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -8,23 +8,23 @@ import lombok.Data;
|
|||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 权益值表
|
||||
* 权益表
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("mem_benefit_value")
|
||||
public class BenefitValue extends BaseEntity {
|
||||
@TableName("mem_benefit_name")
|
||||
public class BenefitName extends BaseEntity {
|
||||
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 会员权益值
|
||||
* 权益名称
|
||||
*/
|
||||
private Double benefitValue;
|
||||
private String benefitName;
|
||||
/**
|
||||
* 单位
|
||||
* 排序
|
||||
*/
|
||||
private String benefitUnit;
|
||||
private Integer benefitOrder;
|
||||
|
||||
|
||||
}
|
|
@ -1,13 +1,9 @@
|
|||
package com.mcwl.memberCenter.domain.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.mcwl.common.core.domain.BaseEntity;
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
@ -17,15 +13,13 @@ import javax.validation.constraints.NotNull;
|
|||
*/
|
||||
@Data
|
||||
@ApiModel(description = "权益")
|
||||
public class BenefitDto {
|
||||
|
||||
private Long id;
|
||||
public class AddBenefitDto {
|
||||
/**
|
||||
* 权益名称
|
||||
*/
|
||||
@ApiModelProperty(value = "权益名称", required = true)
|
||||
@NotBlank(message = "权益名称不能为空")
|
||||
private String benefitName;
|
||||
@ApiModelProperty(value = "权益名称id", required = true)
|
||||
@NotNull(message = "权益名称id不能为空")
|
||||
private Long benefitNameId;
|
||||
/**
|
||||
* 权益描述
|
||||
*/
|
||||
|
@ -44,10 +38,11 @@ public class BenefitDto {
|
|||
@NotNull(message = "权益折扣不能为空")
|
||||
private Double benefitDiscount;
|
||||
/**
|
||||
* 权益排序
|
||||
* 单位
|
||||
*/
|
||||
@ApiModelProperty(value = "权益排序")
|
||||
private Integer benefitOrder;
|
||||
@NotBlank(message = "单位不能为空")
|
||||
@ApiModelProperty(value = "单位")
|
||||
private String benefitUnit;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.mcwl.memberCenter.domain.dto;
|
||||
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 权益
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(description = "权益名称")
|
||||
public class AddBenefitNameDto {
|
||||
/**
|
||||
* 权益名称
|
||||
*/
|
||||
@ApiModelProperty(value = "权益名称", required = true)
|
||||
@NotNull(message = "权益名称不能为空")
|
||||
private String benefitName;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@NotBlank(message = "排序不能为空")
|
||||
@ApiModelProperty(value = "排序", required = true)
|
||||
private Integer benefitOrder;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.mcwl.memberCenter.domain.dto;
|
||||
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 权益
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(description = "权益")
|
||||
public class EditBenefitDto {
|
||||
/**
|
||||
* 权益id
|
||||
*/
|
||||
@ApiModelProperty(value = "权益id", required = true)
|
||||
@NotNull(message = "权益id不能为空")
|
||||
private Long id;
|
||||
/**
|
||||
* 权益描述
|
||||
*/
|
||||
@ApiModelProperty(value = "权益描述")
|
||||
private String benefitDesc;
|
||||
/**
|
||||
* 权益类型
|
||||
*/
|
||||
@ApiModelProperty(value = "权益类型", required = true)
|
||||
@NotNull(message = "权益类型不能为空")
|
||||
private MemberBenefitTypeEnum benefitType;
|
||||
/**
|
||||
* 权益折扣,当权益类型为折扣时,记录折扣具体数值
|
||||
*/
|
||||
@ApiModelProperty(value = "权益折扣,当权益类型为折扣时,记录折扣具体数值", required = true)
|
||||
@NotNull(message = "权益折扣不能为空")
|
||||
private Double benefitDiscount;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@NotBlank(message = "单位不能为空")
|
||||
@ApiModelProperty(value = "单位")
|
||||
private String benefitUnit;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.mcwl.memberCenter.domain.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 权益
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(description = "权益名称")
|
||||
public class EditBenefitNameDto {
|
||||
@ApiModelProperty(value = "id", required = true)
|
||||
@NotNull(message = "id不能为空")
|
||||
private Long id;
|
||||
/**
|
||||
* 权益名称
|
||||
*/
|
||||
@ApiModelProperty(value = "权益名称", required = true)
|
||||
@NotNull(message = "权益名称不能为空")
|
||||
private String benefitName;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@NotBlank(message = "排序不能为空")
|
||||
@ApiModelProperty(value = "排序", required = true)
|
||||
private Integer benefitOrder;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package com.mcwl.memberCenter.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 权益详情vo
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "权益详情vo")
|
||||
public class BenefitInfoVo {
|
||||
|
||||
private Long id;
|
||||
/**
|
||||
* 权益描述
|
||||
*/
|
||||
@ApiModelProperty(value = "权益描述")
|
||||
private String benefitDesc;
|
||||
/**
|
||||
* 权益类型
|
||||
*/
|
||||
@ApiModelProperty(value = "权益类型")
|
||||
private String benefitType;
|
||||
/**
|
||||
* 权益折扣,当权益类型为折扣时,记录折扣具体数值
|
||||
*/
|
||||
@ApiModelProperty(value = "权益折扣,当权益类型为折扣时,记录折扣具体数值")
|
||||
private Double benefitDiscount;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@ApiModelProperty(value = "单位")
|
||||
private String benefitUnit;
|
||||
|
||||
|
||||
}
|
|
@ -4,36 +4,35 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
|||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.mcwl.common.core.domain.BaseEntity;
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 权益vo
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "权益列表")
|
||||
public class BenefitVo {
|
||||
|
||||
private Long id;
|
||||
/**
|
||||
* 权益名称
|
||||
*/
|
||||
@ApiModelProperty(value = "权益名称")
|
||||
private String benefitName;
|
||||
/**
|
||||
* 权益描述
|
||||
*/
|
||||
private String benefitDesc;
|
||||
/**
|
||||
* 权益类型
|
||||
*/
|
||||
private String benefitType;
|
||||
/**
|
||||
* 权益折扣,当权益类型为折扣时,记录折扣具体数值
|
||||
*/
|
||||
private Double benefitDiscount;
|
||||
/**
|
||||
* 权益排序
|
||||
*/
|
||||
@ApiModelProperty(value = "权益排序")
|
||||
private Integer benefitOrder;
|
||||
|
||||
@ApiModelProperty(value = "权益详情")
|
||||
private List<BenefitInfoVo> benefitInfoList = new ArrayList<>();
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ package com.mcwl.memberCenter.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mcwl.memberCenter.domain.Benefit;
|
||||
import com.mcwl.memberCenter.domain.BenefitValue;
|
||||
import com.mcwl.memberCenter.domain.BenefitName;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
|
@ -12,6 +12,6 @@ import java.util.List;
|
|||
* 权益 Mapper
|
||||
*/
|
||||
@Mapper
|
||||
public interface BenefitValueMapper extends BaseMapper<BenefitValue> {
|
||||
public interface BenefitNameMapper extends BaseMapper<BenefitName> {
|
||||
|
||||
}
|
|
@ -2,11 +2,11 @@ package com.mcwl.memberCenter.service;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mcwl.memberCenter.domain.Benefit;
|
||||
import com.mcwl.memberCenter.domain.BenefitValue;
|
||||
import com.mcwl.memberCenter.domain.BenefitName;
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface BenefitValueService extends IService<BenefitValue> {
|
||||
public interface BenefitNameService extends IService<BenefitName> {
|
||||
|
||||
}
|
|
@ -2,6 +2,8 @@ package com.mcwl.memberCenter.service;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mcwl.memberCenter.domain.Benefit;
|
||||
import com.mcwl.memberCenter.domain.dto.AddBenefitDto;
|
||||
import com.mcwl.memberCenter.domain.vo.BenefitVo;
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -17,4 +19,8 @@ public interface BenefitService extends IService<Benefit> {
|
|||
List<Benefit> getNotBenefitList(Long memberLevelId);
|
||||
|
||||
Benefit getBenefitByType(Long memberLevelId, MemberBenefitTypeEnum memberBenefitTypeEnum);
|
||||
|
||||
void addBenefit(AddBenefitDto addBenefitDto);
|
||||
|
||||
List<BenefitVo> benefitList();
|
||||
}
|
||||
|
|
|
@ -2,12 +2,12 @@ package com.mcwl.memberCenter.service.impl;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mcwl.memberCenter.domain.Benefit;
|
||||
import com.mcwl.memberCenter.domain.BenefitValue;
|
||||
import com.mcwl.memberCenter.domain.BenefitName;
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
import com.mcwl.memberCenter.mapper.BenefitMapper;
|
||||
import com.mcwl.memberCenter.mapper.BenefitValueMapper;
|
||||
import com.mcwl.memberCenter.mapper.BenefitNameMapper;
|
||||
import com.mcwl.memberCenter.service.BenefitNameService;
|
||||
import com.mcwl.memberCenter.service.BenefitService;
|
||||
import com.mcwl.memberCenter.service.BenefitValueService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
@ -15,6 +15,8 @@ import java.util.List;
|
|||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class BenefitValueServiceImpl extends ServiceImpl<BenefitValueMapper, BenefitValue> implements BenefitValueService {
|
||||
public class BenefitNameServiceImpl extends ServiceImpl<BenefitNameMapper, BenefitName> implements BenefitNameService {
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,28 +1,29 @@
|
|||
package com.mcwl.memberCenter.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mcwl.memberCenter.domain.Benefit;
|
||||
import com.mcwl.memberCenter.domain.MemberBenefit;
|
||||
import com.mcwl.memberCenter.domain.MemberLevel;
|
||||
import com.mcwl.memberCenter.domain.vo.MemberBenefitVO;
|
||||
import com.mcwl.memberCenter.domain.BenefitName;
|
||||
import com.mcwl.memberCenter.domain.dto.AddBenefitDto;
|
||||
import com.mcwl.memberCenter.domain.vo.BenefitInfoVo;
|
||||
import com.mcwl.memberCenter.domain.vo.BenefitVo;
|
||||
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
|
||||
import com.mcwl.memberCenter.mapper.BenefitMapper;
|
||||
import com.mcwl.memberCenter.mapper.MemberBenefitMapper;
|
||||
import com.mcwl.memberCenter.service.BenefitNameService;
|
||||
import com.mcwl.memberCenter.service.BenefitService;
|
||||
import com.mcwl.memberCenter.service.MemberBenefitService;
|
||||
import com.mcwl.memberCenter.service.MemberLevelService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class BenefitServiceImpl extends ServiceImpl<BenefitMapper, Benefit> implements BenefitService {
|
||||
|
||||
private final BenefitNameService benefitNameService;
|
||||
|
||||
@Override
|
||||
public List<Benefit> getBenefitList() {
|
||||
return baseMapper.getBenefitList();
|
||||
|
@ -42,4 +43,39 @@ public class BenefitServiceImpl extends ServiceImpl<BenefitMapper, Benefit> impl
|
|||
public Benefit getBenefitByType(Long memberLevelId, MemberBenefitTypeEnum memberBenefitTypeEnum) {
|
||||
return baseMapper.getBenefitByType(memberLevelId, memberBenefitTypeEnum.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addBenefit(AddBenefitDto addBenefitDto) {
|
||||
|
||||
Benefit benefit = BeanUtil.toBean(addBenefitDto, Benefit.class);
|
||||
|
||||
baseMapper.insert(benefit);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BenefitVo> benefitList() {
|
||||
|
||||
List<BenefitVo> benefitVoList = new ArrayList<>();
|
||||
|
||||
List<BenefitName> benefitNameList = benefitNameService.list();
|
||||
|
||||
for (BenefitName benefitName : benefitNameList) {
|
||||
|
||||
BenefitVo benefitVo = BeanUtil.toBean(benefitName, BenefitVo.class);
|
||||
|
||||
List<BenefitInfoVo> benefitInfoVoList = new ArrayList<>();
|
||||
List<Benefit> benefitList = baseMapper.selectList(new LambdaQueryWrapper<Benefit>()
|
||||
.eq(Benefit::getBenefitNameId, benefitName.getId()));
|
||||
for (Benefit benefit : benefitList) {
|
||||
BenefitInfoVo benefitInfoVo1 = BeanUtil.copyProperties(benefit, BenefitInfoVo.class);
|
||||
benefitInfoVo1.setBenefitType(benefit.getBenefitType().getValue());
|
||||
benefitInfoVoList.add(benefitInfoVo1);
|
||||
}
|
||||
benefitVo.setBenefitInfoList(benefitInfoVoList);
|
||||
|
||||
benefitVoList.add(benefitVo);
|
||||
}
|
||||
return benefitVoList;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ public class MemberBenefitServiceImpl extends ServiceImpl<MemberBenefitMapper, M
|
|||
benefitList.addAll(notBenefitList);
|
||||
|
||||
// 排序
|
||||
benefitList.sort(Comparator.comparingInt(Benefit::getBenefitOrder));
|
||||
// benefitList.sort(Comparator.comparingInt(Benefit::getCreateTime));
|
||||
|
||||
memberBenefitVO.setMemberBenefitList(benefitList);
|
||||
memberBenefitVOList.add(memberBenefitVO);
|
||||
|
|
|
@ -48,8 +48,6 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||
|
||||
private final BenefitService benefitService;
|
||||
|
||||
private final BenefitValueService benefitValueService;
|
||||
|
||||
private final RechargeRecordService rechargeRecordService;
|
||||
|
||||
private static final Map<Long, MemberLevel> memberLevelMap = new HashMap<>();
|
||||
|
@ -110,8 +108,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
|||
// 设置积分
|
||||
Benefit benefit = benefitService.getBenefitByType(memberLevelId, MemberBenefitTypeEnum.POINTS);
|
||||
if (Objects.nonNull(benefit)) {
|
||||
BenefitValue benefitValue = benefitValueService.lambdaQuery().eq(BenefitValue::getId, benefit.getBenefitDiscountId()).one();
|
||||
Double points = benefitValue.getBenefitValue();
|
||||
Double points = benefit.getBenefitDiscount();
|
||||
// 根据活动id查询活动类型,如果为积分,则积分加成
|
||||
if (promotionId != null) {
|
||||
Promotion promotion = promotionMapper.selectById(promotionId);
|
||||
|
|
|
@ -33,8 +33,6 @@ public class UserMemberTask {
|
|||
|
||||
private final BenefitService benefitService;
|
||||
|
||||
private final BenefitValueService benefitValueService;
|
||||
|
||||
private final PromotionService promotionService;
|
||||
|
||||
private final MemberPromotionService memberPromotionService;
|
||||
|
@ -175,10 +173,6 @@ public class UserMemberTask {
|
|||
*/
|
||||
public Double getPointsByMemberLevelId(Long memberLevelId) {
|
||||
|
||||
Map<Long, Double> benefitValueMap = benefitValueService.list()
|
||||
.stream()
|
||||
.collect(Collectors.toMap(BenefitValue::getId, BenefitValue::getBenefitValue));
|
||||
|
||||
// 根据会员等级id获取会员权益
|
||||
List<MemberBenefit> memberBenefitList = memberBenefitService.lambdaQuery()
|
||||
.eq(MemberBenefit::getMemberLevelId, memberLevelId)
|
||||
|
@ -195,7 +189,7 @@ public class UserMemberTask {
|
|||
.list();
|
||||
for (Benefit benefit : benefitList) {
|
||||
if (benefit.getBenefitType().getValue().equals(MemberBenefitTypeEnum.POINTS.getValue())) {
|
||||
return benefitValueMap.getOrDefault(benefit.getBenefitDiscountId(), 0.0);
|
||||
return benefit.getBenefitDiscount();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,33 +5,33 @@
|
|||
<mapper namespace="com.mcwl.memberCenter.mapper.BenefitMapper">
|
||||
|
||||
<select id="getBenefitList" resultType="com.mcwl.memberCenter.domain.Benefit">
|
||||
select id, benefit_name, benefit_desc, benefit_discount_id, benefit_order
|
||||
select id, benefit_name_id, benefit_desc, benefit_type, benefit_discount, benefit_unit
|
||||
from mem_benefit
|
||||
where del_flag = '0'
|
||||
order by benefit_order
|
||||
order by create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getBenefitListByMemberLevelId" resultType="com.mcwl.memberCenter.domain.Benefit">
|
||||
select b.id, benefit_name, benefit_desc, benefit_discount_id, benefit_order
|
||||
select b.id, benefit_name_id, benefit_desc, benefit_type, benefit_discount, benefit_unit
|
||||
from mem_benefit b
|
||||
left join mem_member_benefit mb on b.id = mb.benefit_id
|
||||
where mb.member_level_id = #{memberLevelId}
|
||||
and b.del_flag = '0'
|
||||
and mb.del_flag = '0'
|
||||
order by b.benefit_order
|
||||
order by b.create_time desc
|
||||
</select>
|
||||
<select id="getNotBenefitList" resultType="com.mcwl.memberCenter.domain.Benefit">
|
||||
select benefit_name, benefit_desc, benefit_order
|
||||
select b.id, benefit_name_id, benefit_desc, benefit_type, benefit_discount, benefit_unit
|
||||
from mem_benefit b
|
||||
where b.id not in (select mb.benefit_id
|
||||
from mem_member_benefit mb
|
||||
where mb.member_level_id = #{memberLevelId}
|
||||
and mb.del_flag = '0')
|
||||
and b.del_flag = '0'
|
||||
order by b.benefit_order
|
||||
order by b.create_time desc
|
||||
</select>
|
||||
<select id="getBenefitByType" resultType="com.mcwl.memberCenter.domain.Benefit">
|
||||
select mb.id, benefit_name, benefit_desc, benefit_type, benefit_discount_id, benefit_order
|
||||
select mb.id, benefit_name_id, benefit_desc, benefit_type, benefit_discount, benefit_unit
|
||||
from mem_benefit mb
|
||||
left join mem_member_benefit mmb on mb.id = mmb.benefit_id
|
||||
where mb.del_flag = '0'
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<?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.mcwl.memberCenter.mapper.BenefitNameMapper">
|
||||
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue