Просмотр исходного кода

返现活动

release_toaliyun_real
winter 2 лет назад
Родитель
Сommit
953902f56f
12 измененных файлов: 518 добавлений и 0 удалений
  1. +30
    -0
      mallinkAdmin/src/main/resources/db/migration/V20240200001.sql
  2. +42
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCashBackActivity.java
  3. +41
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCashBackActivityItem.java
  4. +37
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityItemRule.java
  5. +37
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityItemStatus.java
  6. +36
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityStatus.java
  7. +15
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxCashBackActivityItemMapper.java
  8. +17
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxCashBackActivityMapper.java
  9. +43
    -0
      mallinkService/src/main/java/com/iformall/service/WxCashBackActivityService.java
  10. +60
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxCashBackActivityServiceImpl.java
  11. +71
    -0
      mallinkService/src/main/resources/mapper/WxCashBackActivityItemMapper.xml
  12. +89
    -0
      mallinkService/src/main/resources/mapper/WxCashBackActivityMapper.xml

+ 30
- 0
mallinkAdmin/src/main/resources/db/migration/V20240200001.sql Просмотреть файл

@@ -0,0 +1,30 @@
CREATE TABLE `wx_cash_back_activity` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户ID',
`parent_tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '父租户ID',
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名称',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
`status` smallint(2) NOT NULL DEFAULT '0' COMMENT '状态(0:未上架 1:已上架)',
`create_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`limit_money` int(11) NOT NULL COMMENT '最低订单金额',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='卡券';


CREATE TABLE `wx_cash_back_activity_item` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户ID',
`parent_tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '父租户ID',
`activity_id` bigint(20) NOT NULL COMMENT '活动id',
`name` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '奖项名称',
`money_rule` int(11) NOT NULL COMMENT '分担规则(0-商管 1-商户 2-分担)',
`create_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`total_back_rate` decimal(10,3) NOT NULL COMMENT '总返现比例',
`mall_back_rate` decimal(10,3) DEFAULT NULL COMMENT '商管返现比例',
`merchant_back_rate` decimal(10,3) DEFAULT NULL COMMENT '商户返现比例',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='卡券';


+ 42
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCashBackActivity.java Просмотреть файл

@@ -0,0 +1,42 @@
package com.iformall.domain.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.Date;
import java.util.List;

@TableName(value = "wx_cash_back_activity")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxCashBackActivity extends TenantEntity {

private Long id;

@io.swagger.annotations.ApiModelProperty(value = "EnumCashBackActivityStatus", name = "status")
private Integer status;
@TableField(exist = false)
private List<Integer> statusList;
@io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate")
private Date createDate;
@TableField(exist = false)
private Date createDateBegin;
@TableField(exist = false)
private Date createDateEnd;
@io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate")
private Date updateDate;
@io.swagger.annotations.ApiModelProperty(value = "名称", name = "name")
private String name;
@io.swagger.annotations.ApiModelProperty(value = "开始时间", name = "startTime")
private Date startTime;
@io.swagger.annotations.ApiModelProperty(value = "结束时间", name = "endTime")
private Date endTime;
@io.swagger.annotations.ApiModelProperty(value = "最低订单金额", name = "limitMoney")
private Integer limitMoney;
}

+ 41
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCashBackActivityItem.java Просмотреть файл

@@ -0,0 +1,41 @@
package com.iformall.domain.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.math.BigDecimal;
import java.util.Date;

@TableName(value = "wx_cash_back_activity_item")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxCashBackActivityItem extends TenantEntity {

private Long id;
@io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate")
private Date createDate;
@TableField(exist = false)
private Date createDateBegin;
@TableField(exist = false)
private Date createDateEnd;
@io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate")
private Date updateDate;
@io.swagger.annotations.ApiModelProperty(value = "活动编号", name = "activityId")
private Long activityId;
@io.swagger.annotations.ApiModelProperty(value = "名称", name = "name")
private String name;
@io.swagger.annotations.ApiModelProperty(value = "EnumCashBackActivityItemRule", name = "moneyRule")
private Integer moneyRule;
@io.swagger.annotations.ApiModelProperty(value = "总返现比例", name = "totalBackRate")
private BigDecimal totalBackRate;
@io.swagger.annotations.ApiModelProperty(value = "商管返现比例", name = "mallBackRate")
private BigDecimal mallBackRate;
@io.swagger.annotations.ApiModelProperty(value = "商户返现比例", name = "merchantBackRate")
private BigDecimal merchantBackRate;
}

+ 37
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityItemRule.java Просмотреть файл

@@ -0,0 +1,37 @@
package com.iformall.enums;


/**
* @author gongbiao
*/
public enum EnumCashBackActivityItemRule {

MALL_ONLY(0, "商管承担全部"),
MERCHANT_ONLY(1, "商户承担全部"),
SHARE(2, "商管商户分担");

public static EnumCashBackActivityItemRule getEnum(Integer code) {
for (EnumCashBackActivityItemRule value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumCashBackActivityItemRule(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 37
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityItemStatus.java Просмотреть файл

@@ -0,0 +1,37 @@
package com.iformall.enums;


/**
* @author gongbiao
*/
public enum EnumCashBackActivityItemStatus {

AUDTING(0, "审核中"),
AUDI_SUCCESS(1, "审批通过"),
AUDT_FAIL(2, "审批拒绝");

public static EnumCashBackActivityItemStatus getEnum(Integer code) {
for (EnumCashBackActivityItemStatus value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumCashBackActivityItemStatus(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 36
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityStatus.java Просмотреть файл

@@ -0,0 +1,36 @@
package com.iformall.enums;


/**
* @author gongbiao
*/
public enum EnumCashBackActivityStatus {

OFF_LINE(0, "未上线"),
ON_LINE(1, "已上线");

public static EnumCashBackActivityStatus getEnum(Integer code) {
for (EnumCashBackActivityStatus value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumCashBackActivityStatus(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 15
- 0
mallinkService/src/main/java/com/iformall/mapper/WxCashBackActivityItemMapper.java Просмотреть файл

@@ -0,0 +1,15 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxCashBackActivityItem;

import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface WxCashBackActivityItemMapper extends CommonMapper<WxCashBackActivityItem, Long> {

WxCashBackActivityItem selectById(@Param("id")Long id,@Param("tenantId")String tenantId);
List<WxCashBackActivityItem> findList(WxCashBackActivityItem wxCashBackActivity);
}

+ 17
- 0
mallinkService/src/main/java/com/iformall/mapper/WxCashBackActivityMapper.java Просмотреть файл

@@ -0,0 +1,17 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxCashBackActivity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface WxCashBackActivityMapper extends CommonMapper<WxCashBackActivity, Long> {

WxCashBackActivity selectById(@Param("id")Long id,@Param("tenantId")String tenantId);
List<WxCashBackActivity> findList(WxCashBackActivity wxCashBackActivity);
void updateStatus(WxCashBackActivity wxCashBackActivity);

}

+ 43
- 0
mallinkService/src/main/java/com/iformall/service/WxCashBackActivityService.java Просмотреть файл

@@ -0,0 +1,43 @@
package com.iformall.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxCashBackActivity;
import com.iformall.domain.po.WxCashBackActivityItem;

public interface WxCashBackActivityService {

/**
* 根据实体查询分页列表
*
* @param record
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<WxCashBackActivity> listActivityAsPage(WxCashBackActivity record, Integer pageIndex, Integer pageSize);
PageInfo<WxCashBackActivityItem> listActivityItemAsPage(WxCashBackActivityItem record, Integer pageIndex, Integer pageSize);
/**
* 根据Id获得实体
*
* @param id
* @return
*/
WxCashBackActivity getActivityById(Long id,String tenantId);
WxCashBackActivityItem getActivityItemById(Long id,String tenantId);
/**
*更新状态
*
* @param record
*/
void updateActivityStatus(WxCashBackActivity record);
List<WxCashBackActivityItem> getActivityItems(Long activityId,String tenantId);
}

+ 60
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxCashBackActivityServiceImpl.java Просмотреть файл

@@ -0,0 +1,60 @@
package com.iformall.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxCashBackActivity;
import com.iformall.domain.po.WxCashBackActivityItem;
import com.iformall.mapper.WxCashBackActivityItemMapper;
import com.iformall.mapper.WxCashBackActivityMapper;
import com.iformall.service.WxCashBackActivityService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;

@Service
public class WxCashBackActivityServiceImpl implements WxCashBackActivityService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
WxCashBackActivityMapper wxCashBackActivityMapper;
@Autowired
WxCashBackActivityItemMapper wxCashBackActivityItemMapper;

@Override
public PageInfo<WxCashBackActivity> listActivityAsPage(WxCashBackActivity record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCashBackActivityMapper.findList(record));
}
@Override
public PageInfo<WxCashBackActivityItem> listActivityItemAsPage(WxCashBackActivityItem record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCashBackActivityItemMapper.findList(record));
}

@Override
public WxCashBackActivity getActivityById(Long id,String tenantId) {
return wxCashBackActivityMapper.selectById(id,tenantId);
}
@Override
public WxCashBackActivityItem getActivityItemById(Long id,String tenantId) {
return wxCashBackActivityItemMapper.selectById(id,tenantId);
}

@Override
public void updateActivityStatus(WxCashBackActivity record) {
wxCashBackActivityMapper.updateStatus(record);
}
@Override
public List<WxCashBackActivityItem> getActivityItems(Long activityId,String tenantId) {
WxCashBackActivityItem ai = new WxCashBackActivityItem();
ai.setTenantId(tenantId);
ai.setActivityId(activityId);
return wxCashBackActivityItemMapper.findList(ai);
}

}

+ 71
- 0
mallinkService/src/main/resources/mapper/WxCashBackActivityItemMapper.xml Просмотреть файл

@@ -0,0 +1,71 @@
<?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.iformall.mapper.WxCashBackActivityItemMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxCashBackActivityItem">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId" />
<result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="create_date" jdbcType="TIMESTAMP" property="createDate" />
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate" />
<result column="activity_id" jdbcType="BIGINT" property="activityId" />
<result column="money_rule" jdbcType="INTEGER" property="moneyRule" />
<result column="total_back_rate" jdbcType="DECIMAL" property="totalBackRate" />
<result column="mall_back_rate" jdbcType="DECIMAL" property="mallBackRate" />
<result column="merchant_back_rate" jdbcType="DECIMAL" property="merchantBackRate" />
</resultMap>

<sql id="allColumns">
`id`,`tenant_id`,`parent_tenant_id`,`name`,`create_date`,`update_date`,`activity_id`,`money_rule`,
`total_back_rate`,`mall_back_rate`,`merchant_back_rate`
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1

<if test=" null != id ">
and `id` = #{id}
</if>

<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>
<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>
<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>

<if test=" null != name ">
and `name` like concat('%', #{name},'%')
</if>
<if test=" null != activityId ">
and `activity_id` = #{activityId}
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns"> order by ${sortColumns} </if>
</sql>

<select id="selectById" parameterType="java.util.HashMap" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_cash_back_activity_item where id = #{id} and tenant_id=#{tenantId}
</select>

<select id="findList" parameterType="com.iformall.domain.po.WxCashBackActivityItem" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_cash_back_activity_item
<include refid="dynamicWhereConditions" />
</select>

</mapper>

+ 89
- 0
mallinkService/src/main/resources/mapper/WxCashBackActivityMapper.xml Просмотреть файл

@@ -0,0 +1,89 @@
<?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.iformall.mapper.WxCashBackActivityMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxCashBackActivity">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId" />
<result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="create_date" jdbcType="TIMESTAMP" property="createDate" />
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate" />
<result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
<result column="end_time" jdbcType="TIMESTAMP" property="endTime" />
<result column="limit_money" jdbcType="INTEGER" property="limitMoney" />
</resultMap>

<sql id="allColumns">
`id`,`tenant_id`,`parent_tenant_id`,`status`,`name`,`create_date`,`update_date`,`start_time`,`end_time`,`limit_money`
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1

<if test=" null != id ">
and `id` = #{id}
</if>

<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>
<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>
<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>

<if test=" null != name ">
and `name` like concat('%', #{name},'%')
</if>
<if test=" null != status ">
and `status` = #{status}
</if>
<if test=" null != statusList ">
and status in
<foreach collection="statusList" index="index" item="statusItem" open="(" separator="," close=")">
#{statusItem}
</foreach>
</if>

<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns"> order by ${sortColumns} </if>
</sql>

<select id="selectById" parameterType="java.util.HashMap" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_cash_back_activity where id = #{id} and tenant_id=#{tenantId}
</select>

<select id="findList" parameterType="com.iformall.domain.po.WxCashBackActivity" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_cash_back_activity
<include refid="dynamicWhereConditions" />
</select>

<update id="updateStatus" parameterType="com.iformall.domain.po.WxCashBackActivity">
update wx_cash_back_activity
set `status` = #{status},
`update_date` = #{updateDate}
where id=#{id}
<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>
</update>

</mapper>

Загрузка…
Отмена
Сохранить