| @@ -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='卡券'; | |||
| @@ -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; | |||
| } | |||
| @@ -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; | |||
| } | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -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); | |||
| } | |||
| @@ -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); | |||
| } | |||
| @@ -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); | |||
| } | |||
| @@ -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); | |||
| } | |||
| } | |||
| @@ -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` >= #{createDateBegin} | |||
| </if> | |||
| <if test=" null != createDateEnd"> | |||
| and `create_date` <= #{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> | |||
| @@ -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` >= #{createDateBegin} | |||
| </if> | |||
| <if test=" null != createDateEnd"> | |||
| and `create_date` <= #{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> | |||