记得上下班打卡 | git大法好,push需谨慎

Commit 9e03110b authored by 张国柄's avatar 张国柄

+会员券、券规则生成

parent 02321bb7
package com.liquidnet.service.adam.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamMemberParam", description = "添加会员入参")
@Data
public class AdamMemberParam implements Serializable {
private static final long serialVersionUID = -7411934614249221021L;
@ApiModelProperty(position = 0, required = false, value = "会员ID[50]")
private String memberId;
@ApiModelProperty(position = 1, required = true, value = "会员名称[50]", example = "摩登天空会员卡")
private String name;
@ApiModelProperty(position = 2, required = true, value = "会员标题[50]", example = "摩登天空会员卡")
private String title;
@ApiModelProperty(position = 3, required = true, value = "会员副标题[50]", example = "摩登天空会员卡副标题")
private String subTitle;
@ApiModelProperty(position = 4, required = true, value = "icon图标[200]", example = "https://img.zhengzai.tv/files/2020/08/28/5f490418d30b4.png")
private String icon;
@ApiModelProperty(position = 5, required = true, value = "会员头像[200]", example = "https://img.zhengzai.tv/files/2020/08/31/5f4c75095e9bc.png")
private String avatar;
@ApiModelProperty(position = 6, required = true, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail;
@ApiModelProperty(position = 7, required = true, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....")
private String notes;
@ApiModelProperty(position = 8, required = true, value = "是否展示须知[[0-否,1-是]]", allowableValues = "0,1")
private Integer isNotice;
@ApiModelProperty(position = 9, required = true, value = "会员须知内容[200]", example = "会员须知细则1.xxxx\n2.xxxx")
private String noticeInfo;
@ApiModelProperty(position = 10, required = true, value = "会员须知标题[200]", example = "摩登天空会员须知")
private String noticeTitle;
@ApiModelProperty(position = 11, required = true, value = "是否需要答题[0-否,1-是]", allowableValues = "0,1")
private Integer needQuestion;
@ApiModelProperty(position = 12, required = true, value = "是否展示协议[0-否,1-是]", allowableValues = "0,1")
private Integer displayAgreement;
@ApiModelProperty(position = 13, required = true, value = "状态[1-NORMAL,2-INVALID]", example = "1")
private Integer state;
@ApiModelProperty(position = 14, required = true, value = "限购数量,0不限购[200]", example = "0")
private Integer limitation;
}
package com.liquidnet.service.adam.dto.param.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@ApiModel(value = "AdamMemberParam", description = "编辑会员入参")
@Data
public class AdamMemberParam implements Serializable {
private static final long serialVersionUID = -7411934614249221021L;
@ApiModelProperty(required = false, value = "会员ID[64]")
private String memberId;
@ApiModelProperty(required = false, value = "会员名称[80]", example = "摩登天空会员卡")
private String name;
@ApiModelProperty(required = true, value = "会员标题[100]", example = "摩登天空会员卡")
private String title;
@ApiModelProperty(required = true, value = "会员副标题[255]", example = "摩登天空会员卡副标题")
private String subTitle;
@ApiModelProperty(required = true, value = "icon图标[255]", example = "https://img.zhengzai.tv/files/2020/08/28/5f490418d30b4.png")
private String icon;
@ApiModelProperty(required = true, value = "会员头像[255]", example = "https://img.zhengzai.tv/files/2020/08/31/5f4c75095e9bc.png")
private String avatar;
@ApiModelProperty(required = true, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail;
@ApiModelProperty(required = true, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....")
private String notes;
@ApiModelProperty(required = true, value = "限购数量,0不限购[200]", example = "0")
private Integer limitation;
@ApiModelProperty(required = false, value = "限购开始时间[yyyy-MM-dd]", example = "2021-08-24")
private LocalDateTime limitStart;
@ApiModelProperty(required = false, value = "限购结束时间[yyyy-MM-dd]", example = "2021-09-24")
private LocalDateTime limitEnd;
@ApiModelProperty(required = true, value = "是否开售:1-开售|2-停售", example = "2021-09-24")
private Integer onsale;
}
package com.liquidnet.service.adam.dto.param.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@ApiModel(value = "AdamMembershipParam", description = "编辑会员入参")
@Data
public class AdamMembershipParam implements Serializable {
private static final long serialVersionUID = -7331274160877946420L;
@ApiModelProperty(required = true, value = "会员价格ID")
private String memberPriceId;
@ApiModelProperty(required = true, value = "原价")
private BigDecimal price;
@ApiModelProperty(required = true, value = "折扣价")
private BigDecimal priceFixed;
@ApiModelProperty(required = true, value = "特价:首次、首年优惠价")
private BigDecimal priceSpecial;
@ApiModelProperty(required = true, value = "有效天数")
private Integer days;
@ApiModelProperty(required = true, value = "权益ID[64]")
private String mrightsId;
@ApiModelProperty(required = true, value = "权益名称[50]")
private String title;
@ApiModelProperty(required = true, value = "权益名称[200]")
private String subTitle;
@ApiModelProperty(required = false, value = "标注[50]")
private String label;
@ApiModelProperty(required = true, value = "权益封面图片[255]")
private String cover;
@ApiModelProperty(required = false, value = "详情内容[50]")
private String detail;
@ApiModelProperty(required = true, value = "展示顺序[2]")
private Integer seqNo;
}
......@@ -10,26 +10,31 @@ import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "券发放管理")
......@@ -132,6 +137,22 @@ public class CandyMgtCoupon1AdminController extends BaseController {
initCoupon.setOperator(operator);
initCoupon.setCreatedAt(nowTime);
List<CandyCouponRuleBuildParam> couponRuleList = buildParam.getCouponRuleList();
List<CandyCouponRule> initCouponRuleList = new ArrayList<>();
if (!CollectionUtils.isEmpty(couponRuleList)) {
couponRuleList.forEach(r -> {
CandyCouponRule initCouponRule = new CandyCouponRule();
initCouponRule.setCruleId(IDGenerator.nextMilliId());
initCouponRule.setCouponId(initCoupon.getCouponId());
initCouponRule.setUseScope(r.getUseScope());
initCouponRule.setBusiName(r.getBusiName());
initCouponRule.setBusiId(r.getBusiId());
initCouponRule.setState(1);
initCouponRuleList.add(initCouponRule);
});
}
CandyMgtCoupon initMgtCoupon = new CandyMgtCoupon();
initMgtCoupon.setMcouponId(IDGenerator.nextMilliId());
initMgtCoupon.setCouponId(initCoupon.getCouponId());
......@@ -143,7 +164,7 @@ public class CandyMgtCoupon1AdminController extends BaseController {
initMgtCoupon.setOperator(operator);
initMgtCoupon.setCreatedAt(nowTime);
candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon);
candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon, initCouponRuleList);
return toAjax(true);
}
......
......@@ -10,10 +10,12 @@ import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -23,6 +25,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -30,6 +33,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "券发放管理")
......@@ -132,6 +136,22 @@ public class CandyMgtCoupon2AdminController extends BaseController {
initCoupon.setOperator(operator);
initCoupon.setCreatedAt(nowTime);
List<CandyCouponRuleBuildParam> couponRuleList = buildParam.getCouponRuleList();
List<CandyCouponRule> initCouponRuleList = new ArrayList<>();
if (!CollectionUtils.isEmpty(couponRuleList)) {
couponRuleList.forEach(r -> {
CandyCouponRule initCouponRule = new CandyCouponRule();
initCouponRule.setCruleId(IDGenerator.nextMilliId());
initCouponRule.setCouponId(initCoupon.getCouponId());
initCouponRule.setUseScope(r.getUseScope());
initCouponRule.setBusiName(r.getBusiName());
initCouponRule.setBusiId(r.getBusiId());
initCouponRule.setState(1);
initCouponRuleList.add(initCouponRule);
});
}
CandyMgtCoupon initMgtCoupon = new CandyMgtCoupon();
initMgtCoupon.setMcouponId(IDGenerator.nextMilliId());
initMgtCoupon.setCouponId(initCoupon.getCouponId());
......@@ -143,7 +163,7 @@ public class CandyMgtCoupon2AdminController extends BaseController {
initMgtCoupon.setOperator(operator);
initMgtCoupon.setCreatedAt(nowTime);
candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon);
candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon, initCouponRuleList);
return toAjax(true);
}
......
......@@ -10,10 +10,12 @@ import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -23,6 +25,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -30,6 +33,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "券发放管理")
......@@ -132,6 +136,22 @@ public class CandyMgtCoupon3AdminController extends BaseController {
initCoupon.setOperator(operator);
initCoupon.setCreatedAt(nowTime);
List<CandyCouponRuleBuildParam> couponRuleList = buildParam.getCouponRuleList();
List<CandyCouponRule> initCouponRuleList = new ArrayList<>();
if (!CollectionUtils.isEmpty(couponRuleList)) {
couponRuleList.forEach(r -> {
CandyCouponRule initCouponRule = new CandyCouponRule();
initCouponRule.setCruleId(IDGenerator.nextMilliId());
initCouponRule.setCouponId(initCoupon.getCouponId());
initCouponRule.setUseScope(r.getUseScope());
initCouponRule.setBusiName(r.getBusiName());
initCouponRule.setBusiId(r.getBusiId());
initCouponRule.setState(1);
initCouponRuleList.add(initCouponRule);
});
}
CandyMgtCoupon initMgtCoupon = new CandyMgtCoupon();
initMgtCoupon.setMcouponId(IDGenerator.nextMilliId());
initMgtCoupon.setCouponId(initCoupon.getCouponId());
......@@ -143,7 +163,7 @@ public class CandyMgtCoupon3AdminController extends BaseController {
initMgtCoupon.setOperator(operator);
initMgtCoupon.setCreatedAt(nowTime);
candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon);
candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon, initCouponRuleList);
return toAjax(true);
}
......
......@@ -10,10 +10,12 @@ import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -23,6 +25,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -30,6 +33,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "券发放管理")
......@@ -132,6 +136,22 @@ public class CandyMgtCoupon4AdminController extends BaseController {
initCoupon.setOperator(operator);
initCoupon.setCreatedAt(nowTime);
List<CandyCouponRuleBuildParam> couponRuleList = buildParam.getCouponRuleList();
List<CandyCouponRule> initCouponRuleList = new ArrayList<>();
if (!CollectionUtils.isEmpty(couponRuleList)) {
couponRuleList.forEach(r -> {
CandyCouponRule initCouponRule = new CandyCouponRule();
initCouponRule.setCruleId(IDGenerator.nextMilliId());
initCouponRule.setCouponId(initCoupon.getCouponId());
initCouponRule.setUseScope(r.getUseScope());
initCouponRule.setBusiName(r.getBusiName());
initCouponRule.setBusiId(r.getBusiId());
initCouponRule.setState(1);
initCouponRuleList.add(initCouponRule);
});
}
CandyMgtCoupon initMgtCoupon = new CandyMgtCoupon();
initMgtCoupon.setMcouponId(IDGenerator.nextMilliId());
initMgtCoupon.setCouponId(initCoupon.getCouponId());
......@@ -143,7 +163,7 @@ public class CandyMgtCoupon4AdminController extends BaseController {
initMgtCoupon.setOperator(operator);
initMgtCoupon.setCreatedAt(nowTime);
candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon);
candyMgtCouponAdminService.saveMgtCouponInfo(initCoupon, initMgtCoupon, initCouponRuleList);
return toAjax(true);
}
......
package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.param.admin.AdamMemberParam;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.base.ResponseDto;
/**
* 会员信息
......@@ -12,5 +10,5 @@ import com.liquidnet.service.base.ResponseDto;
public interface IAdamMemberAdminService extends IService<AdamMember> {
void add(AdamMemberParam parameter);
void edit(AdamMemberParam parameter);
boolean edit(AdamMemberParam parameter);
}
package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamMemberPriceParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.entity.AdamMemberRights;
public interface IAdamMemberRightsAdminService extends IService<AdamMemberRights> {
}
package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService;
import com.liquidnet.service.adam.entity.AdamMemberRights;
import com.liquidnet.service.adam.mapper.AdamMemberRightsMapper;
import org.springframework.stereotype.Service;
@Service
public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRightsMapper, AdamMemberRights> implements IAdamMemberRightsAdminService {
}
package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService;
......@@ -7,7 +8,7 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.dto.param.admin.AdamMemberParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.mapper.AdamMemberMapper;
......@@ -30,8 +31,8 @@ import java.util.List;
public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, AdamMember> implements IAdamMemberAdminService {
@Autowired
AdamMemberMapper adamMemberMapper;
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
......@@ -51,28 +52,22 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad
AdamMemberVo vo = AdamMemberVo.getNew().copy(adamMember);
adamMemberMapper.insert(adamMember);
mongoTemplate.insert(vo, AdamMemberVo.class.getSimpleName());
// mongoTemplate.insert(vo, AdamMemberVo.class.getSimpleName());
redisUtil.set(AdamRedisConst.INFO_MEMBER_CATEGORY.concat(vo.getMemberId()), vo);
}
@Override
public void edit(AdamMemberParam parameter) {
public boolean edit(AdamMemberParam parameter) {
AdamMember adamMember = new AdamMember();
BeanUtils.copyProperties(parameter, adamMember);
adamMember.setUpdatedAt(LocalDateTime.now());
AdamMemberVo vo = AdamMemberVo.getNew().copy(adamMember);
adamMemberMapper.update(adamMember, Wrappers.lambdaQuery(AdamMember.class).eq(AdamMember::getMemberId, parameter.getMemberId()));
if (2 == vo.getState()) {
mongoTemplate.remove(Query.query(Criteria.where("memberId").is(adamMember.getMemberId())), AdamMemberVo.class.getSimpleName());
redisUtil.del(AdamRedisConst.INFO_MEMBER_CATEGORY.concat(vo.getMemberId()));
} else {
mongoTemplate.updateFirst(
Query.query(Criteria.where("memberId").is(adamMember.getMemberId())),
Update.fromDocument(Document.parse(JsonUtils.toJson(adamMember))),
AdamMemberVo.class.getSimpleName()
);
LambdaQueryWrapper<AdamMember> updateMemberWrapper = Wrappers.lambdaQuery(AdamMember.class).eq(AdamMember::getMemberId, parameter.getMemberId());
if (adamMemberMapper.update(adamMember, updateMemberWrapper) > 0) {
redisUtil.set(AdamRedisConst.INFO_MEMBER_CATEGORY.concat(vo.getMemberId()), vo);
return true;
}
return false;
}
}
package com.liquidnet.client.admin.zhengzai.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.entity.CandyCouponCode;
import com.liquidnet.service.candy.entity.CandyCouponRule;
public interface ICandyCouponRuleAdminService extends IService<CandyCouponRule> {
}
......@@ -3,14 +3,18 @@ package com.liquidnet.client.admin.zhengzai.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import java.util.List;
public interface ICandyMgtCouponAdminService extends IService<CandyMgtCoupon> {
void saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon);
void saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList);
List<CandyMgtCouponInfoDto> listForMgtCouponInfoDto(CandyMgtCouponListParam listParam);
List<CandyMgtCouponMemberDto> listForMgtCouponMemberDto(List<String> mrightsIdList);
}
package com.liquidnet.client.admin.zhengzai.candy.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.mapper.CandyCouponRuleMapper;
import org.springframework.stereotype.Service;
@Service
public class CandyCouponRuleAdminServiceImpl extends ServiceImpl<CandyCouponRuleMapper, CandyCouponRule> implements ICandyCouponRuleAdminService {
}
package com.liquidnet.client.admin.zhengzai.candy.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import com.liquidnet.service.candy.mapper.CandyCouponMapper;
import com.liquidnet.service.candy.mapper.CandyMgtCouponMapper;
......@@ -23,13 +26,18 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
private CandyMgtCouponMapper candyMgtCouponMapper;
@Autowired
private CandyCouponMapper candyCouponMapper;
@Autowired
private ICandyCouponRuleAdminService candyCouponRuleAdminService;
@Override
@Transactional
public void saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon) {
public void saveMgtCouponInfo(CandyCoupon initCoupon, CandyMgtCoupon initMgtCoupon, List<CandyCouponRule> initCouponRuleList) {
int insert = candyCouponMapper.insert(initCoupon);
insert += candyMgtCouponMapper.insert(initMgtCoupon);
if (insert < 2) {
boolean saveBatch = candyCouponRuleAdminService.saveBatch(initCouponRuleList);
if (insert < 2 || !saveBatch) {
throw new LiquidnetServiceException();
}
}
......@@ -38,4 +46,9 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
public List<CandyMgtCouponInfoDto> listForMgtCouponInfoDto(CandyMgtCouponListParam listParam) {
return candyMgtCouponMapper.selectMultiForMgtCouponInfoDto(listParam);
}
@Override
public List<CandyMgtCouponMemberDto> listForMgtCouponMemberDto(List<String> mrightsIdList) {
return candyMgtCouponMapper.selectMultiForMgtCouponMemberDto(mrightsIdList);
}
}
......@@ -100,11 +100,31 @@ public class AdamMember implements Serializable {
*/
private Integer state;
/**
* 积分倍率X100
*/
private Integer integralRate;
/**
* 限购数量
*/
private Integer limitation;
/**
* 限购开始时间
*/
private LocalDateTime limitStart;
/**
* 限购结束时间
*/
private LocalDateTime limitEnd;
/**
* 是否开售:1-开售|2-停售
*/
private Integer onsale;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
......
......@@ -47,10 +47,15 @@ public class AdamMemberPrice implements Serializable {
private BigDecimal price;
/**
* 折扣价
* 购买价格
*/
private BigDecimal priceFixed;
/**
* 特价:首次、首年优惠价
*/
private BigDecimal priceSpecial;
/**
* 会员包有效天数
*/
......
package com.liquidnet.service.adam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 会员权益配置
* </p>
*
* @author liquidnet
* @since 2021-08-25
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class AdamMemberRights implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
private String mrightsId;
/**
* 会员类型id
*/
private String memberId;
/**
* 发放状态[0-INIT|1-NORMAL|2-INVALID]
*/
private Integer state;
/**
* 排列序号
*/
private Integer seqNo;
/**
* 权益标题
*/
private String title;
/**
* 副标题
*/
private String subTitle;
/**
* 标注
*/
private String label;
/**
* 图片标识
*/
private String cover;
/**
* 详情内容
*/
private String detail;
private String comment;
}
package com.liquidnet.service.adam.mapper;
import com.liquidnet.service.adam.entity.AdamMemberRights;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 会员权益配置 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-08-24
*/
public interface AdamMemberRightsMapper extends BaseMapper<AdamMemberRights> {
}
<?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.liquidnet.service.adam.mapper.AdamMemberRightsMapper">
</mapper>
package com.liquidnet.service.candy.dto.admin;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class CandyMgtCouponMemberDto implements Serializable {
private static final long serialVersionUID = -4682805967989324746L;
/* com.liquidnet.service.candy.entity.CandyCoupon */
//private String couponId;
//private Integer state;
private String title;
//private String label;
//private String notice;
//private Integer exclusive;
private Integer busiType;
private Integer couType;
//private Integer bindType;
//private BigDecimal discount;
private BigDecimal valFace;
private BigDecimal valOver;
private BigDecimal valMinus;
private Integer overlay;
//private Integer overlayLevel;
//private Integer validity;
//private Integer redeemValidity;
//private LocalDateTime redeemStart;
//private LocalDateTime redeemStop;
//private LocalDateTime effectAt;
//private LocalDateTime expireAt;
//private String operator;
//private LocalDateTime createdAt;
//private LocalDateTime updatedAt;
//private String comment;
/* com.liquidnet.service.candy.entity.CandyMgtCoupon */
private String mcouponId;
//private String couponId;
//private Integer state;
private Integer eventAmt;
//private Integer eventType;
//private String eventLimit;
//private LocalDateTime eventAt;
//private String operator;
//private LocalDateTime createdAt;
//private LocalDateTime updatedAt;
//private String comment;
}
......@@ -32,7 +32,7 @@ public class CandyMgtCoupon implements Serializable {
private String couponId;
/**
* 发放状态[0-未发放|1-已发放|2-无效|9-发放中]
* 发放状态[0-未发放|1-已发放|2-无效|9-发放中|10-会员礼包专用模版]
*/
private Integer state;
......
......@@ -3,7 +3,9 @@ package com.liquidnet.service.candy.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto;
import com.liquidnet.service.candy.entity.CandyMgtCoupon;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -26,4 +28,14 @@ public interface CandyMgtCouponMapper extends BaseMapper<CandyMgtCoupon> {
* @return List<CandyMgtCouponInfoDto>
*/
List<CandyMgtCouponInfoDto> selectMultiForMgtCouponInfoDto(CandyMgtCouponListParam listParam);
/**
* <p>
* 查取会员礼包券信息
* </p>
*
* @param mrightsIdList List<String>
* @return List<CandyMgtCouponMemberDto>
*/
List<CandyMgtCouponMemberDto> selectMultiForMgtCouponMemberDto(@Param("mrightsIdList") List<String> mrightsIdList);
}
......@@ -43,6 +43,47 @@
<!-- <result column="comment" jdbcType="VARCHAR" property="comment" />-->
</resultMap>
<resultMap id="Rst_MgtCouponMemberDto" type="com.liquidnet.service.candy.dto.admin.CandyMgtCouponMemberDto">
<!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId"/>-->
<!-- <result column="state" jdbcType="TINYINT" property="state" />-->
<result column="title" jdbcType="VARCHAR" property="title"/>
<!-- <result column="label" jdbcType="VARCHAR" property="label"/>-->
<!-- <result column="notice" jdbcType="VARCHAR" property="notice"/>-->
<!-- <result column="exclusive" jdbcType="SMALLINT" property="exclusive"/>-->
<result column="busi_type" jdbcType="SMALLINT" property="busiType"/>
<result column="cou_type" jdbcType="SMALLINT" property="couType"/>
<!-- <result column="bind_type" jdbcType="SMALLINT" property="bindType"/>-->
<!-- <result column="discount" jdbcType="DECIMAL" property="discount"/>-->
<result column="val_face" jdbcType="DECIMAL" property="valFace"/>
<result column="val_over" jdbcType="DECIMAL" property="valOver"/>
<result column="val_minus" jdbcType="DECIMAL" property="valMinus"/>
<result column="overlay" jdbcType="TINYINT" property="overlay"/>
<!-- <result column="overlay_level" jdbcType="TINYINT" property="overlayLevel"/>-->
<!-- <result column="validity" jdbcType="INTEGER" property="validity"/>-->
<!-- <result column="redeem_validity" jdbcType="INTEGER" property="redeemValidity"/>-->
<!-- <result column="redeem_start" jdbcType="TIMESTAMP" property="redeemStart"/>-->
<!-- <result column="redeem_stop" jdbcType="TIMESTAMP" property="redeemStop"/>-->
<!-- <result column="effect_at" jdbcType="TIMESTAMP" property="effectAt"/>-->
<!-- <result column="expire_at" jdbcType="TIMESTAMP" property="expireAt"/>-->
<!-- <result column="operator" jdbcType="VARCHAR" property="operator" />-->
<!-- <result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />-->
<!-- <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />-->
<!-- <result column="comment" jdbcType="VARCHAR" property="comment" />-->
<result column="mcoupon_id" jdbcType="VARCHAR" property="mcouponId"/>
<!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId" />-->
<!-- <result column="state" jdbcType="TINYINT" property="state"/>-->
<!-- <result column="bind_type" jdbcType="SMALLINT" property="bindType"/>-->
<result column="event_amt" jdbcType="INTEGER" property="eventAmt"/>
<!-- <result column="event_type" jdbcType="TINYINT" property="eventType"/>-->
<!-- <result column="event_limit" jdbcType="VARCHAR" property="eventLimit"/>-->
<!-- <result column="event_at" jdbcType="TIMESTAMP" property="eventAt"/>-->
<!-- <result column="operator" jdbcType="VARCHAR" property="operator"/>-->
<!-- <result column="created_at" jdbcType="TIMESTAMP" property="createdAt"/>-->
<!-- <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt"/>-->
<!-- <result column="comment" jdbcType="VARCHAR" property="comment" />-->
</resultMap>
<select id="selectMultiForMgtCouponInfoDto" parameterType="com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam" resultMap="Rst_MgtCouponInfoDto">
SELECT cc.coupon_id,
cc.title,
......@@ -94,4 +135,23 @@
ORDER BY cmc.created_at DESC
</select>
<select id="selectMultiForMgtCouponMemberDto" resultMap="Rst_MgtCouponMemberDto">
select cc.title,
cc.busi_type,
cc.cou_type,
cc.val_face,
cc.val_over,
cc.val_minus,
cc.overlay,
cmc.mcoupon_id,
cmc.event_amt
from candy_mgt_coupon cmc
left join candy_coupon cc on cmc.coupon_id = cc.coupon_id
where cmc.mcoupon_id in
<foreach collection="mrightsIdList" item="item" index="idx" open="(" close=")" separator=",">
${item}
</foreach>
and cmc.state = 10
and cc.state = 1
</select>
</mapper>
\ No newline at end of file
......@@ -206,7 +206,7 @@ drop table if exists adam_member;
create table adam_member
(
mid bigint unsigned auto_increment primary key,
member_id varchar(255) comment '会员id',
member_id varchar(64) comment '会员id',
name varchar(80),
title varchar(100),
sub_title varchar(255) NOT NULL DEFAULT '' COMMENT '副标题',
......@@ -263,8 +263,8 @@ create table adam_member_order
price decimal(8, 2) comment '原价',
price_paid decimal(8, 2) comment '实际支付',
member_name varchar(80),
member_id varchar(255) comment '会员id',
member_price_id varchar(255) comment '会员价格id',
member_id varchar(64) comment '会员id',
member_price_id varchar(64) comment '会员价格id',
days int default 0 comment '购买天数',
state tinyint comment '订单状态',
member_no varchar(20) comment '会员号',
......@@ -289,7 +289,7 @@ create table adam_user_member
(
mid bigint unsigned auto_increment primary key,
uid varchar(64) not null,
member_id varchar(255) comment '会员类型id',
member_id varchar(64) comment '会员类型id',
member_no varchar(20) not null,
state tinyint comment '1-NORMAL,2-INVALID',
expiry_at datetime(3) comment '到期日期',
......@@ -308,8 +308,8 @@ create table adam_member_code
mid bigint unsigned auto_increment primary key,
code varchar(20) comment '会员码',
type int default 0 comment '类型:1-购买,2-赠送(后台生成)',
member_id varchar(255) comment '会员ID',
member_price_id varchar(255) comment '会员价格ID',
member_id varchar(64) comment '会员ID',
member_price_id varchar(64) comment '会员价格ID',
member_no varchar(20) comment '预留会员号',
state tinyint comment '0-未用,1-已用,2-不可用',
created_at datetime(3),
......@@ -346,7 +346,7 @@ alter table adam_member add limit_end datetime(3) null comment '限购结束时
# 添加`是否开售`开关,新增开售开关字段
alter table adam_member add onsale tinyint default 0 null comment '是否开售:1-开售|2-停售' after limit_end;
# 添加`双倍积分`开关
alter table adam_member add integral_rate decimal(8, 6) default 0 null comment '积分倍率X100' after state;
alter table adam_member add integral_rate int default 0 null comment '积分倍率X100' after state;
# 添加会员价格字段
......@@ -392,11 +392,13 @@ create table adam_member_rights
(
mid bigint unsigned auto_increment primary key,
mrights_id varchar(64) not null,
member_id varchar(64) comment '会员类型id',
state tinyint comment '发放状态[0-INIT|1-NORMAL|2-INVALID]',
seq_no smallint comment '排列序号',
title varchar(50) not null comment '权益标题',
sub_title varchar(255) comment '副标题',
sub_title varchar(200) comment '副标题',
label varchar(50) comment '标注',
icon varchar(255) comment '图片标识',
cover varchar(255) comment '图片标识',
detail text comment '详情内容',
comment varchar(255)
) engine = InnoDB comment '会员权益配置';
......
......@@ -8,7 +8,7 @@ create table candy_mgt_coupon
mid bigint unsigned auto_increment primary key,
mcoupon_id varchar(64) not null,
coupon_id varchar(64) not null comment '~candy_coupon.coupon_id',
state tinyint comment '发放状态[0-未发放|1-已发放|2-无效|9-发放中]',
state tinyint comment '发放状态[0-未发放|1-已发放|2-无效|9-发放中|10-会员礼包专用模版]',
# bind_type smallint comment '领取方式[0-用户输入兑换|1-发放至用户]',
event_amt int comment '发放量',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment