diff --git a/mallinkAdmin/src/main/resources/db/migration/V20240200001.sql b/mallinkAdmin/src/main/resources/db/migration/V20240200001.sql new file mode 100644 index 000000000..de6abc4d0 --- /dev/null +++ b/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='卡券'; + diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCashBackActivity.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCashBackActivity.java new file mode 100644 index 000000000..04f5f8bd6 --- /dev/null +++ b/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 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; + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCashBackActivityItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCashBackActivityItem.java new file mode 100644 index 000000000..be5fb079f --- /dev/null +++ b/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; + + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityItemRule.java b/mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityItemRule.java new file mode 100644 index 000000000..06f122ed6 --- /dev/null +++ b/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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityItemStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityItemStatus.java new file mode 100644 index 000000000..52de247b3 --- /dev/null +++ b/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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumCashBackActivityStatus.java new file mode 100644 index 000000000..d6522fff4 --- /dev/null +++ b/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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCashBackActivityItemMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCashBackActivityItemMapper.java new file mode 100644 index 000000000..75f7dc553 --- /dev/null +++ b/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 selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + List findList(WxCashBackActivityItem wxCashBackActivity); +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCashBackActivityMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCashBackActivityMapper.java new file mode 100644 index 000000000..d3946fcd4 --- /dev/null +++ b/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 selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + List findList(WxCashBackActivity wxCashBackActivity); + + void updateStatus(WxCashBackActivity wxCashBackActivity); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxCashBackActivityService.java b/mallinkService/src/main/java/com/iformall/service/WxCashBackActivityService.java new file mode 100644 index 000000000..8bd17bc77 --- /dev/null +++ b/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 listActivityAsPage(WxCashBackActivity record, Integer pageIndex, Integer pageSize); + + PageInfo 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 getActivityItems(Long activityId,String tenantId); + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCashBackActivityServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCashBackActivityServiceImpl.java new file mode 100644 index 000000000..5980c689c --- /dev/null +++ b/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 listActivityAsPage(WxCashBackActivity record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCashBackActivityMapper.findList(record)); + } + + @Override + public PageInfo 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 getActivityItems(Long activityId,String tenantId) { + WxCashBackActivityItem ai = new WxCashBackActivityItem(); + ai.setTenantId(tenantId); + ai.setActivityId(activityId); + return wxCashBackActivityItemMapper.findList(ai); + } + + +} diff --git a/mallinkService/src/main/resources/mapper/WxCashBackActivityItemMapper.xml b/mallinkService/src/main/resources/mapper/WxCashBackActivityItemMapper.xml new file mode 100644 index 000000000..312a66c17 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxCashBackActivityItemMapper.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`name`,`create_date`,`update_date`,`activity_id`,`money_rule`, + `total_back_rate`,`mall_back_rate`,`merchant_back_rate` + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `create_date` >= #{createDateBegin} + + + + and `create_date` <= #{createDateEnd} + + + + and `name` like concat('%', #{name},'%') + + + + and `activity_id` = #{activityId} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + \ No newline at end of file diff --git a/mallinkService/src/main/resources/mapper/WxCashBackActivityMapper.xml b/mallinkService/src/main/resources/mapper/WxCashBackActivityMapper.xml new file mode 100644 index 000000000..be37f575e --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxCashBackActivityMapper.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`status`,`name`,`create_date`,`update_date`,`start_time`,`end_time`,`limit_money` + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `create_date` >= #{createDateBegin} + + + + and `create_date` <= #{createDateEnd} + + + + and `name` like concat('%', #{name},'%') + + + + and `status` = #{status} + + + + and status in + + #{statusItem} + + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + update wx_cash_back_activity + set `status` = #{status}, + `update_date` = #{updateDate} + where id=#{id} + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + \ No newline at end of file