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