电子券

This commit is contained in:
sxu 2025-05-19 18:45:50 +08:00
parent 7e322b15db
commit 1f45bc1ec6
10 changed files with 268 additions and 9 deletions

View File

@ -0,0 +1,29 @@
package com.bonus.canteen.core.marketing.coupon.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bonus.canteen.core.marketing.coupon.model.MktCouponTmplBack;
import com.bonus.canteen.core.marketing.coupon.vo.MktCouponTmplBackVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface MktCouponTmplBackMapper extends BaseMapper<MktCouponTmplBack> {
@Select({"SELECT back_id, coupon_name, coupon_amount,company_name FROM mkt_coupon_tmpl_back WHERE back_id = #{backId} ORDER BY id DESC limit 1"})
MktCouponTmplBack getTmplBackIdByBackId(Long backId);
@Select({"SELECT back_id, coupon_name, coupon_amount FROM mkt_coupon_tmpl_back WHERE coupon_name = #{couponName} AND coupon_type = #{couponType} ORDER BY id DESC limit 1"})
MktCouponTmplBack getTmplBackByCouponName(@Param("couponName") String couponName, @Param("couponType") Integer couponType);
@Select({"SELECT tmpl_id FROM mkt_coupon_tmpl_back WHERE back_id = #{backId}"})
Long getTmplIdByBackId(Long backId);
@Select({"SELECT coupon_name FROM mkt_coupon_tmpl_back WHERE back_id = #{backId}"})
String getCouponNameByBackId(Long backId);
List<MktCouponTmplBackVO> listBackVO(@Param("backId") Long backId, @Param("couponType") Integer couponType);
List<Long> getBackIdsByTmplId(Long tmplId);
}

View File

@ -0,0 +1,116 @@
package com.bonus.canteen.core.marketing.coupon.model;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@TableName("mkt_coupon_tmpl_back")
@ApiModel("餐券模板备份记录表")
public class MktCouponTmplBack extends Model<MktCouponTmplBack> {
@TableId
@ApiModelProperty("主键自增")
private Long id;
@ApiModelProperty("餐券模板备份id")
private Long backId;
@ApiModelProperty("餐券模板id")
private Long tmplId;
@ApiModelProperty("餐券类型")
private Integer couponType;
@ApiModelProperty("单位名称")
private String companyName;
@ApiModelProperty("餐券名称")
private String couponName;
@ApiModelProperty("餐券金额")
private BigDecimal couponAmount;
@TableField(
value = "crby",
fill = FieldFill.INSERT
)
@ApiModelProperty("创建人")
private String crby;
@ApiModelProperty("创建时间")
private LocalDateTime crtime;
public Long getId() {
return this.id;
}
public Long getBackId() {
return this.backId;
}
public Long getTmplId() {
return this.tmplId;
}
public Integer getCouponType() {
return this.couponType;
}
public String getCompanyName() {
return this.companyName;
}
public String getCouponName() {
return this.couponName;
}
public BigDecimal getCouponAmount() {
return this.couponAmount;
}
public String getCrby() {
return this.crby;
}
public LocalDateTime getCrtime() {
return this.crtime;
}
public void setId(final Long id) {
this.id = id;
}
public void setBackId(final Long backId) {
this.backId = backId;
}
public void setTmplId(final Long tmplId) {
this.tmplId = tmplId;
}
public void setCouponType(final Integer couponType) {
this.couponType = couponType;
}
public void setCompanyName(final String companyName) {
this.companyName = companyName;
}
public void setCouponName(final String couponName) {
this.couponName = couponName;
}
public void setCouponAmount(final BigDecimal couponAmount) {
this.couponAmount = couponAmount;
}
public void setCrby(final String crby) {
this.crby = crby;
}
public void setCrtime(final LocalDateTime crtime) {
this.crtime = crtime;
}
public String toString() {
Long var10000 = this.getId();
return "MktCouponTmplBack(id=" + var10000 + ", backId=" + this.getBackId() + ", tmplId=" + this.getTmplId() + ", couponType=" + this.getCouponType() + ", companyName=" + this.getCompanyName() + ", couponName=" + this.getCouponName() + ", couponAmount=" + String.valueOf(this.getCouponAmount()) + ", crby=" + this.getCrby() + ", crtime=" + String.valueOf(this.getCrtime()) + ")";
}
}

View File

@ -7,10 +7,8 @@ import com.bonus.canteen.core.marketing.coupon.model.MktCouponPayModel;
import com.bonus.canteen.core.marketing.coupon.param.MktCouponMobileUsableParam; import com.bonus.canteen.core.marketing.coupon.param.MktCouponMobileUsableParam;
import com.bonus.canteen.core.marketing.coupon.vo.MktCouponMobileUsableVO; import com.bonus.canteen.core.marketing.coupon.vo.MktCouponMobileUsableVO;
import com.bonus.canteen.core.marketing.dto.GroupCuponDto; import com.bonus.canteen.core.marketing.dto.GroupCuponDto;
import com.bonus.canteen.core.marketing.vo.MktGroupVo; import com.bonus.canteen.core.marketing.coupon.vo.MktGroupVo;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List; import java.util.List;
public interface MktCouponService extends IService<MktCoupon> { public interface MktCouponService extends IService<MktCoupon> {

View File

@ -0,0 +1,14 @@
package com.bonus.canteen.core.marketing.coupon.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bonus.canteen.core.marketing.coupon.constants.MktCouponTypeEnum;
import com.bonus.canteen.core.marketing.coupon.model.MktCouponTmplBack;
import com.bonus.canteen.core.marketing.coupon.vo.MktCouponTmplBackVO;
import java.util.List;
public interface MktCouponTmplBackService extends IService<MktCouponTmplBack> {
MktCouponTmplBackVO getBackRelationName(Long backId, MktCouponTypeEnum couponTypeEnum);
List<Long> getBackIdsByTmplId(Long tmplId);
}

View File

@ -7,10 +7,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bonus.canteen.core.marketing.coupon.dto.GroupByCouponStateDto; import com.bonus.canteen.core.marketing.coupon.dto.GroupByCouponStateDto;
import com.bonus.canteen.core.marketing.coupon.service.MktCouponTmplBackService;
import com.bonus.canteen.core.marketing.dto.GroupCuponDto; import com.bonus.canteen.core.marketing.dto.GroupCuponDto;
import com.bonus.canteen.core.marketing.vo.MktCouponMobileVO; import com.bonus.canteen.core.marketing.coupon.vo.MktCouponMobileVO;
import com.bonus.canteen.core.marketing.vo.MktCouponTmplBackVO; import com.bonus.canteen.core.marketing.coupon.vo.MktCouponTmplBackVO;
import com.bonus.canteen.core.marketing.vo.MktGroupVo; import com.bonus.canteen.core.marketing.coupon.vo.MktGroupVo;
import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.exception.ServiceException;
import com.bonus.canteen.core.allocation.canteen.mapper.AllocCanteenMapper; import com.bonus.canteen.core.allocation.canteen.mapper.AllocCanteenMapper;
import com.bonus.canteen.core.marketing.coupon.constants.MktCouponStateEnum; import com.bonus.canteen.core.marketing.coupon.constants.MktCouponStateEnum;
@ -40,6 +41,9 @@ import java.util.*;
@Service @Service
public class MktCouponServiceImpl extends ServiceImpl<MktCouponMapper, MktCoupon> implements MktCouponService { public class MktCouponServiceImpl extends ServiceImpl<MktCouponMapper, MktCoupon> implements MktCouponService {
private static final Logger log = LoggerFactory.getLogger(MktCouponServiceImpl.class); private static final Logger log = LoggerFactory.getLogger(MktCouponServiceImpl.class);
@Autowired
@Lazy
private MktCouponTmplBackService mktCouponTmplBackService;
@Resource @Resource
private MktCouponTmplDetlBackMapper mktCouponTmplDetlBackMapper; private MktCouponTmplDetlBackMapper mktCouponTmplDetlBackMapper;
@Autowired @Autowired

View File

@ -0,0 +1,72 @@
package com.bonus.canteen.core.marketing.coupon.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource;
import com.bonus.canteen.core.marketing.coupon.constants.MktCouponTypeEnum;
import com.bonus.canteen.core.marketing.coupon.mapper.MktCouponTmplBackMapper;
import com.bonus.canteen.core.marketing.coupon.model.MktCouponTmplBack;
import com.bonus.canteen.core.marketing.coupon.service.MktCouponTmplBackService;
import com.bonus.canteen.core.marketing.coupon.vo.MktCouponTmplBackVO;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@Service
public class MktCouponTmplBackServiceImpl extends ServiceImpl<MktCouponTmplBackMapper, MktCouponTmplBack> implements MktCouponTmplBackService {
@Resource
private AllocCanteenApi canteenAccessApi;
@Resource
private AllocStallApi shopstallAccessApi;
@Resource
private AllocMealtimeApi mealtimeAccessApi;
public MktCouponTmplBackVO getBackRelationName(Long backId, MktCouponTypeEnum couponTypeEnum) {
List<MktCouponTmplBackVO> tmplBackVOList = ((MktCouponTmplBackMapper)this.baseMapper).listBackVO(backId, couponTypeEnum.getKey());
MktCouponTmplBackVO resultVO = new MktCouponTmplBackVO();
Set<Long> canteenIdSet = new HashSet();
Set<Long> shopstallIdSet = new HashSet();
Set<Long> intervalIdSet = new HashSet();
BeanUtils.copyProperties(tmplBackVOList.get(0), resultVO);
Iterator var8 = tmplBackVOList.iterator();
while(var8.hasNext()) {
MktCouponTmplBackVO tmplBackVO = (MktCouponTmplBackVO)var8.next();
if (ObjectUtil.isNotNull(tmplBackVO.getCanteenId())) {
canteenIdSet.add(tmplBackVO.getCanteenId());
}
if (ObjectUtil.isNotNull(tmplBackVO.getShopstallId())) {
shopstallIdSet.add(tmplBackVO.getShopstallId());
}
if (ObjectUtil.isNotNull(tmplBackVO.getIntervalId())) {
intervalIdSet.add(tmplBackVO.getIntervalId());
}
}
if (CollUtil.isNotEmpty(canteenIdSet)) {
resultVO.setCanteenNameStr(this.canteenAccessApi.getCanteenNameByIdSet(canteenIdSet));
}
if (CollUtil.isNotEmpty(shopstallIdSet)) {
resultVO.setShopstallNameStr(this.shopstallAccessApi.getStallNameByIdSet(shopstallIdSet));
}
if (CollUtil.isNotEmpty(intervalIdSet)) {
resultVO.setIntervalNameStr(this.mealtimeAccessApi.getMealtimeNameByTypeSet(intervalIdSet));
}
return resultVO;
}
public List<Long> getBackIdsByTmplId(Long tmplId) {
return ((MktCouponTmplBackMapper)this.baseMapper).getBackIdsByTmplId(tmplId);
}
}

View File

@ -1,4 +1,4 @@
package com.bonus.canteen.core.marketing.vo; package com.bonus.canteen.core.marketing.coupon.vo;
import com.bonus.canteen.core.common.utils.SysUtil; import com.bonus.canteen.core.common.utils.SysUtil;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;

View File

@ -1,4 +1,4 @@
package com.bonus.canteen.core.marketing.vo; package com.bonus.canteen.core.marketing.coupon.vo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;

View File

@ -1,7 +1,8 @@
package com.bonus.canteen.core.marketing.vo; package com.bonus.canteen.core.marketing.coupon.vo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bonus.canteen.core.marketing.coupon.dto.GroupByCouponStateDto; import com.bonus.canteen.core.marketing.coupon.dto.GroupByCouponStateDto;
import com.bonus.canteen.core.marketing.coupon.vo.MktCouponMobileVO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;

View File

@ -0,0 +1,25 @@
<?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.bonus.canteen.core.marketing.coupon.mapper.MktCouponTmplBackMapper" >
<!-- 查询餐券模板备份 -->
<select id="listBackVO" resultType="com.bonus.canteen.core.marketing.coupon.vo.MktCouponTmplBackVO">
SELECT
t1.back_id, t1.company_name, t1.coupon_name, t1.coupon_amount,t1.tmpl_id,
t2.canteen_id, t2.shopstall_id, t2.interval_id
FROM
mkt_coupon_tmpl_back t1 LEFT JOIN mkt_coupon_tmpl_detl_back t2 ON t1.back_id = t2.back_id
WHERE
t1.coupon_type = #{couponType}
AND t1.back_id = #{backId}
</select>
<select id="getBackIdsByTmplId" resultType="java.lang.Long">
SELECT
back_id
FROM
mkt_coupon_tmpl_back
WHERE
tmpl_id = #{tmplId}
</select>
</mapper>