From 1ca3637cc1aae06b5a8f4a3f1754264c50f0795f Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Wed, 7 Aug 2024 20:21:52 +0800 Subject: [PATCH] //OfflineActivity --- .../market/WxOfflineActivityController.java | 133 ++++++++++++++++++ .../iformall/domain/po/WxOfflineActivity.java | 88 ++++++++++++ .../po/WxOfflineActivityAwardsItem.java | 95 +++++++++++++ .../domain/po/WxOfflineActivityItem.java | 86 +++++++++++ .../domain/po/WxOfflineActivityMerchant.java | 62 ++++++++ .../EnumOfflineActivityAwardsMoneyRule.java | 37 +++++ .../enums/EnumOfflineActivityAwardsRule.java | 37 +++++ .../EnumOfflineActivityMerchantType.java | 38 +++++ .../enums/EnumOfflineActivityStatus.java | 38 +++++ .../enums/EnumOfflineActivityType.java | 38 +++++ .../WxOfflineActivityAwardsItemMapper.java | 28 ++++ .../mapper/WxOfflineActivityItemMapper.java | 28 ++++ .../mapper/WxOfflineActivityMapper.java | 28 ++++ .../WxOfflineActivityMerchantMapper.java | 30 ++++ .../WxOfflineActivityAwardsItemService.java | 19 +++ .../service/WxOfflineActivityItemService.java | 18 +++ .../WxOfflineActivityMerchantService.java | 19 +++ .../service/WxOfflineActivityService.java | 28 ++++ ...xOfflineActivityAwardsItemServiceImpl.java | 74 ++++++++++ .../WxOfflineActivityItemServiceImpl.java | 85 +++++++++++ .../WxOfflineActivityMerchantServiceImpl.java | 81 +++++++++++ .../impl/WxOfflineActivityServiceImpl.java | 117 +++++++++++++++ .../WxOfflineActivityAwardsItemMapper.xml | 81 +++++++++++ .../mapper/WxOfflineActivityItemMapper.xml | 79 +++++++++++ .../mapper/WxOfflineActivityMapper.xml | 107 ++++++++++++++ .../WxOfflineActivityMerchantMapper.xml | 84 +++++++++++ 26 files changed, 1558 insertions(+) create mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityMerchant.java create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsMoneyRule.java create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsRule.java create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityMerchantType.java create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityStatus.java create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityType.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityAwardsItemMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityItemMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMerchantMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxOfflineActivityAwardsItemService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxOfflineActivityMerchantService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityMerchantServiceImpl.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityMapper.xml create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityMerchantMapper.xml diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java new file mode 100644 index 000000000..a9fa6ada6 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java @@ -0,0 +1,133 @@ +package com.iformall.controller.market; + +import com.github.pagehelper.PageInfo; +import com.iformall.annotation.ApiVersion; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.constant.SwaggerConstant; +import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.*; +import com.iformall.domain.po.base.BaseEntity.SortField; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.*; +import com.iformall.service.*; +import com.iformall.utils.DateUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.math.BigDecimal; +import java.util.*; + +/** + * @author alascor + * + */ +@RestController +@RequestMapping("/offline") +@Api(description = "线下活动相关接口") +public class WxOfflineActivityController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxOfflineActivityService wxOfflineActivityService; + + @ApiOperation("分页列表接口") + @GetMapping("list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData list(@ModelAttribute WxOfflineActivity wxOfflineActivity, Integer pageNum, Integer pageSize) { + if (null == wxOfflineActivity) wxOfflineActivity = new WxOfflineActivity(); + TenantEntity tenantInfo = getTenantInfo(); + wxOfflineActivity.updateTenantInfo(tenantInfo); + wxOfflineActivity.setSortColumns(SortField.CreateDate_DESC); + final PageInfo page = wxOfflineActivityService.listAsPage(wxOfflineActivity, pageNum, pageSize); + + return new ResultData(page); + } + + + @ApiOperation("新增修改接口") + @PostMapping("saveOrUpdate") + public ResultData saveOrUpdate(@RequestBody WxOfflineActivity wxOfflineActivity) { + TenantEntity tenantEntity = getTenantInfo(); + wxOfflineActivity.updateTenantInfo(tenantEntity); + if(wxOfflineActivity.getActivityItemList() == null || wxOfflineActivity.getActivityItemList().size() == 0){ + return new ResultData(Result.ERROR,"活动项不能为空"); + } + if(wxOfflineActivity.getAllMerchant() == null){ + return new ResultData(Result.ERROR,"活动商户不能为空"); + } + for (WxOfflineActivityItem activityItem:wxOfflineActivity.getActivityItemList()){ + if(activityItem.getActivityAwardsItemList() == null || activityItem.getActivityAwardsItemList().size() == 0){ + return new ResultData(Result.ERROR,"活动["+activityItem.getName()+"]奖项不能为空"); + } + for (WxOfflineActivityAwardsItem activityAwardsItem :activityItem.getActivityAwardsItemList()){ + if(EnumOfflineActivityAwardsMoneyRule.MALL_ONLY.getCode().equals(activityAwardsItem.getMoneyRule())){ + activityAwardsItem.setMallShareRate(new BigDecimal(100)); + activityAwardsItem.setMerchantShareRate(new BigDecimal(0)); + } + else if (EnumOfflineActivityAwardsMoneyRule.MERCHANT_ONLY.getCode().equals(activityAwardsItem.getMoneyRule())){ + activityAwardsItem.setMallShareRate(new BigDecimal(0)); + activityAwardsItem.setMerchantShareRate(new BigDecimal(100)); + } + else if (EnumOfflineActivityAwardsMoneyRule.SHARE.getCode().equals(activityAwardsItem.getMoneyRule())) { + if (activityAwardsItem.getMallShareRate().add(activityAwardsItem.getMerchantShareRate()).intValue() != 100) { + return new ResultData(Result.ERROR,"分担规则下,商户和商管的比例总和需要为100%"); + } + } + + } + } + if(EnumOfflineActivityMerchantType.ADD.getCode().equals(wxOfflineActivity.getAllMerchant())){ + if(wxOfflineActivity.getActivityMerchantList() == null || wxOfflineActivity.getActivityMerchantList().size() == 0){ + return new ResultData(Result.ERROR,"活动参加商户不能为空"); + } + } + else if (EnumOfflineActivityMerchantType.UN_ADD.getCode().equals(wxOfflineActivity.getAllMerchant())) { + if(wxOfflineActivity.getActivityMerchantList() == null || wxOfflineActivity.getActivityMerchantList().size() == 0){ + return new ResultData(Result.ERROR,"活动不参加商户不能为空"); + } + } + wxOfflineActivityService.saveOrUpdate(wxOfflineActivity); + return new ResultData(wxOfflineActivity); + } + + @ApiOperation("上架") + @PostMapping("online") + public ResultData online(@RequestBody WxOfflineActivity wxOfflineActivity) { + TenantEntity tenantEntity = getTenantInfo(); + wxOfflineActivity.updateTenantInfo(tenantEntity); + wxOfflineActivity.setStatus(EnumOfflineActivityStatus.ON_LINE.getCode()); + wxOfflineActivityService.updateStatus(wxOfflineActivity); + return new ResultData(); + } + + @ApiOperation("下架") + @PostMapping("offline") + public ResultData offline(@RequestBody WxOfflineActivity wxOfflineActivity) { + TenantEntity tenantEntity = getTenantInfo(); + wxOfflineActivity.updateTenantInfo(tenantEntity); + wxOfflineActivity.setStatus(EnumOfflineActivityStatus.OFF_LINE.getCode()); + wxOfflineActivityService.updateStatus(wxOfflineActivity); + return new ResultData(); + } + + @ApiOperation("查询详情") + @GetMapping("getInfoById") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) + public ResultData getInfoById(Long id) { + TenantEntity tenantInfo = getTenantInfo(); + WxOfflineActivity activity = wxOfflineActivityService.getInfoById(id, tenantInfo.getTenantId()); + return new ResultData(activity); + } + + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java new file mode 100644 index 000000000..d6353184f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java @@ -0,0 +1,88 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; +import java.util.List; + +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 线下活动 + * @TableName wx_offline_activity + */ +@TableName(value ="wx_offline_activity") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivity extends TenantEntity { + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 活动名称 + */ + @TableField(value = "name") + private String name; + + /** + * 开始时间 + */ + @TableField(value = "start_time") + private Date startTime; + + /** + * 结束时间 + */ + @TableField(value = "end_time") + private Date endTime; + + /** + * 状态(0:未上架 1:已上架) + */ + @TableField(value = "status") + private Integer status; + + /** + * 创建时间 + */ + @TableField(value = "create_date") + private Date createDate; + + /** + * 更新时间 + */ + @TableField(value = "update_date") + private Date updateDate; + + /** + * 是否全部商户 + */ + @TableField(value = "all_merchant") + private Integer allMerchant; + + @TableField(exist = false) + private List activityItemList; + + @TableField(exist = false) + private List activityMerchantList; + + @TableField(exist = false) + private Date begin; + @TableField(exist = false) + private Date end; + + /** + * 是否过期 + */ + @TableField(exist = false) + private Integer validStatus; + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java new file mode 100644 index 000000000..5f798ade9 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java @@ -0,0 +1,95 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.math.BigDecimal; +import java.util.Date; + +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 线下活动奖项 + * @TableName wx_offline_activity_awards_item + */ +@TableName(value ="wx_offline_activity_awards_item") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivityAwardsItem extends TenantEntity { + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 活动项id + */ + @TableField(value = "activity_item_id") + private Long activityItemId; + + /** + * 奖项名称 + */ + @TableField(value = "name") + private String name; + + /** + * 奖项等级 + */ + @TableField(value = "grade") + private Integer grade; + + /** + * 限制最小金额 + */ + @TableField(value = "min_amount") + private Integer minAmount; + + /** + * 限制最大金额 + */ + @TableField(value = "max_amount") + private Integer maxAmount; + + /** + * 奖项价值 + */ + @TableField(value = "price") + private Integer price; + + /** + * 分担规则(0-商管 1-商户 2-分担) + */ + @TableField(value = "money_rule") + private Integer moneyRule; + + /** + * 商管分担比例 + */ + @TableField(value = "mall_share_rate") + private BigDecimal mallShareRate; + + /** + * 商户分担比例 + */ + @TableField(value = "merchant_share_rate") + private BigDecimal merchantShareRate; + + /** + * 创建时间 + */ + @TableField(value = "create_date") + private Date createDate; + + /** + * 更新时间 + */ + @TableField(value = "update_date") + private Date updateDate; + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java new file mode 100644 index 000000000..12b81a1bd --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java @@ -0,0 +1,86 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; +import java.util.List; + +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 线下活动项目 + * @TableName wx_offline_activity_item + */ +@TableName(value ="wx_offline_activity_item") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivityItem extends TenantEntity { + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 活动id + */ + @TableField(value = "activity_id") + private Long activityId; + + /** + * 活动项类型 + */ + @TableField(value = "type") + private Integer type; + + /** + * 活动项名称 + */ + @TableField(value = "name") + private String name; + + /** + * 参与金额 + */ + @TableField(value = "limit_money") + private Integer limitMoney; + + /** + * 奖项单价 + */ + @TableField(value = "awards_item_price") + private Integer awardsItemPrice; + + /** + * 奖项总数量 + */ + @TableField(value = "awards_item_count") + private Integer awardsItemCount; + + /** + * 奖项计算规则(0代表无规则) + */ + @TableField(value = "awards_item_rule") + private Integer awardsItemRule; + + /** + * 创建时间 + */ + @TableField(value = "create_date") + private Date createDate; + + /** + * 更新时间 + */ + @TableField(value = "update_date") + private Date updateDate; + + @TableField(exist = false) + private List activityAwardsItemList; + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityMerchant.java new file mode 100644 index 000000000..5ecf592ae --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityMerchant.java @@ -0,0 +1,62 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; + +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 线下活动商户 + * @TableName wx_offline_activity_merchant + */ +@TableName(value ="wx_offline_activity_merchant") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivityMerchant extends TenantEntity { + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 活动编号 + */ + @TableField(value = "activity_id") + private Long activityId; + + /** + * 商户编号 + */ + @TableField(value = "merchant_id") + private Long merchantId; + + /** + * + */ + @TableField(value = "whether_in") + private Integer whetherIn; + + + /** + * 创建时间 + */ + @TableField(value = "create_date") + private Date createDate; + + /** + * 更新时间 + */ + @TableField(value = "update_date") + private Date updateDate; + + @TableField(exist = false) + private WxMerchant merchant; + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsMoneyRule.java b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsMoneyRule.java new file mode 100644 index 000000000..3bee1a91d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsMoneyRule.java @@ -0,0 +1,37 @@ +package com.iformall.enums; + +/** + * @author gongbiao + */ +public enum EnumOfflineActivityAwardsMoneyRule { + + MALL_ONLY(0, "商管承担全部"), + MERCHANT_ONLY(1, "商户承担全部"), + SHARE(2, "商管商户分担"); + + public static EnumOfflineActivityAwardsMoneyRule getEnum(Integer code) { + for (EnumOfflineActivityAwardsMoneyRule value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumOfflineActivityAwardsMoneyRule(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/EnumOfflineActivityAwardsRule.java b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsRule.java new file mode 100644 index 000000000..54d12d581 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsRule.java @@ -0,0 +1,37 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ +public enum EnumOfflineActivityAwardsRule { + + YUAN(1, "四舍五入(元)"), + FEN(2, "四舍五入(分)"), + ; + + public static EnumOfflineActivityAwardsRule getEnum(Integer code) { + for (EnumOfflineActivityAwardsRule value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumOfflineActivityAwardsRule(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/EnumOfflineActivityMerchantType.java b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityMerchantType.java new file mode 100644 index 000000000..1c937d5ea --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityMerchantType.java @@ -0,0 +1,38 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ +public enum EnumOfflineActivityMerchantType { + + ALL(0, "全部商户"), + ADD(1, "参加商户"), + UN_ADD(2, "不参加商户") + ; + + public static EnumOfflineActivityMerchantType getEnum(Integer code) { + for (EnumOfflineActivityMerchantType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumOfflineActivityMerchantType(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/EnumOfflineActivityStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityStatus.java new file mode 100644 index 000000000..1aac7fb23 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityStatus.java @@ -0,0 +1,38 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ +public enum EnumOfflineActivityStatus { + + OFF_LINE(0, "未上架"), + ON_LINE(1, "已上架"), + EXPIRE(2, "已过期") + ; + + public static EnumOfflineActivityStatus getEnum(Integer code) { + for (EnumOfflineActivityStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumOfflineActivityStatus(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/EnumOfflineActivityType.java b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityType.java new file mode 100644 index 000000000..b42d5bd9c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityType.java @@ -0,0 +1,38 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ +public enum EnumOfflineActivityType { + + LOTTERY_DRAW(1, "抽奖活动"), + GIFT(2, "满额赠礼"), + CASHBACK(3, "返现活动") + ; + + public static EnumOfflineActivityType getEnum(Integer code) { + for (EnumOfflineActivityType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumOfflineActivityType(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/WxOfflineActivityAwardsItemMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityAwardsItemMapper.java new file mode 100644 index 000000000..117a5559c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityAwardsItemMapper.java @@ -0,0 +1,28 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityAwardsItem; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_awards_item(线下活动奖项)】的数据库操作Mapper +* @createDate 2024-08-06 13:20:56 +* @Entity com.iformall.domain.po.WxOfflineActivityAwardsItem +*/ +public interface WxOfflineActivityAwardsItemMapper extends CommonMapper { + + WxOfflineActivityAwardsItem selectById(@Param("id")Long id, @Param("tenantId")String tenantId); + + List findList(WxOfflineActivityAwardsItem wxOfflineActivityAwardsItem); + + Integer itemCount(WxOfflineActivityAwardsItem wxOfflineActivityAwardsItem); + + void delete(WxOfflineActivityAwardsItem wxOfflineActivityAwardsItem); +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityItemMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityItemMapper.java new file mode 100644 index 000000000..077d55007 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityItemMapper.java @@ -0,0 +1,28 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityItem; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_item(线下活动项目)】的数据库操作Mapper +* @createDate 2024-08-06 13:20:56 +* @Entity com.iformall.domain.po.WxOfflineActivityItem +*/ +public interface WxOfflineActivityItemMapper extends CommonMapper { + + WxOfflineActivityItem selectById(@Param("id")Long id, @Param("tenantId")String tenantId); + + List findList(WxOfflineActivityItem wxOfflineActivityItem); + + List findIds(WxOfflineActivityItem wxOfflineActivityItem); + + void delete(WxOfflineActivityItem wxOfflineActivityItem); +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMapper.java new file mode 100644 index 000000000..3ea3df513 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMapper.java @@ -0,0 +1,28 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivity; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity(线下活动)】的数据库操作Mapper +* @createDate 2024-08-06 13:20:56 +* @Entity com.iformall.domain.po.WxOfflineActivity +*/ +public interface WxOfflineActivityMapper extends CommonMapper { + + WxOfflineActivity selectById(@Param("id")Long id, @Param("tenantId")String tenantId); + + List findList(WxOfflineActivity wxOfflineActivity); + + void updateStatus(WxOfflineActivity wxOfflineActivity); + + List findIds(WxOfflineActivity wxOfflineActivity); +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMerchantMapper.java new file mode 100644 index 000000000..a9dde663f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMerchantMapper.java @@ -0,0 +1,30 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityMerchant; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_merchant(线下活动商户)】的数据库操作Mapper +* @createDate 2024-08-06 13:20:56 +* @Entity com.iformall.domain.po.WxOfflineActivityMerchant +*/ +public interface WxOfflineActivityMerchantMapper extends CommonMapper { + + WxOfflineActivityMerchant selectById(@Param("id")Long id, @Param("tenantId")String tenantId); + + List findList(WxOfflineActivityMerchant wxOfflineActivityMerchant); + + void delete(WxOfflineActivityMerchant wxOfflineActivityMerchant); + + int merchantCount(WxOfflineActivityMerchant wxOfflineActivityMerchant); + + List findActivityIdList(@Param("merchantId")Long merchantId,@Param("tenantId")String tenantId); +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityAwardsItemService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityAwardsItemService.java new file mode 100644 index 000000000..9e5dbc3b5 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityAwardsItemService.java @@ -0,0 +1,19 @@ +package com.iformall.service; + +import com.iformall.domain.po.WxOfflineActivityAwardsItem; +import com.baomidou.mybatisplus.extension.service.IService; +import com.iformall.domain.po.WxOfflineActivityItem; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_awards_item(线下活动奖项)】的数据库操作Service +* @createDate 2024-08-06 13:20:56 +*/ +public interface WxOfflineActivityAwardsItemService { + + void saveOrUpdateFromActivityItem(WxOfflineActivityItem activityItem, List activityAwardsItemList); + + List getActivityAwardsItemList(Long activityItemId, String tenantId); +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java new file mode 100644 index 000000000..162f950fe --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java @@ -0,0 +1,18 @@ +package com.iformall.service; + +import com.iformall.domain.po.WxOfflineActivity; +import com.iformall.domain.po.WxOfflineActivityItem; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_item(线下活动项目)】的数据库操作Service +* @createDate 2024-08-06 13:20:56 +*/ +public interface WxOfflineActivityItemService { + + void saveOrUpdateFromActivity(WxOfflineActivity wxOfflineActivity, List activityItemList); + + List getActivityItemList(Long activityId, String tenantId); +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityMerchantService.java new file mode 100644 index 000000000..1cdc03a97 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityMerchantService.java @@ -0,0 +1,19 @@ +package com.iformall.service; + + +import com.iformall.domain.po.WxOfflineActivity; +import com.iformall.domain.po.WxOfflineActivityMerchant; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_merchant(线下活动商户)】的数据库操作Service +* @createDate 2024-08-06 13:20:56 +*/ +public interface WxOfflineActivityMerchantService { + + void saveOrUpdateFromActivity(WxOfflineActivity wxOfflineActivity, List activityMerchantList); + + List getActivityMerchantList(Long activityId, String tenantId); +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java new file mode 100644 index 000000000..9dbdf9bb8 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java @@ -0,0 +1,28 @@ +package com.iformall.service; + +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.WxOfflineActivity; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity(线下活动)】的数据库操作Service +* @createDate 2024-08-06 13:20:56 +*/ +public interface WxOfflineActivityService{ + + /** + * 根据实体查询分页列表 + * + * @param record + * @param pageIndex + * @param pageSize + * @return + */ + PageInfo listAsPage(WxOfflineActivity record, Integer pageIndex, Integer pageSize); + + void saveOrUpdate(WxOfflineActivity wxOfflineActivity); + + void updateStatus(WxOfflineActivity wxOfflineActivity); + + WxOfflineActivity getInfoById(Long id, String tenantId); +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java new file mode 100644 index 000000000..16ba07063 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java @@ -0,0 +1,74 @@ +package com.iformall.service.impl; + +import com.iformall.common.IdWorker; +import com.iformall.domain.po.WxOfflineActivityAwardsItem; +import com.iformall.domain.po.WxOfflineActivityItem; +import com.iformall.enums.EnumOfflineActivityType; +import com.iformall.service.WxOfflineActivityAwardsItemService; +import com.iformall.mapper.WxOfflineActivityAwardsItemMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_awards_item(线下活动奖项)】的数据库操作Service实现 +* @createDate 2024-08-06 13:20:56 +*/ +@Service +public class WxOfflineActivityAwardsItemServiceImpl implements WxOfflineActivityAwardsItemService{ + + @Autowired + WxOfflineActivityAwardsItemMapper wxOfflineActivityAwardsItemMapper; + + @Override + public void saveOrUpdateFromActivityItem(WxOfflineActivityItem activityItem, List activityAwardsItemList) { + WxOfflineActivityAwardsItem activityAwardsItemDel = new WxOfflineActivityAwardsItem(); + activityAwardsItemDel.updateTenantInfo(activityItem); + activityAwardsItemDel.setActivityItemId(activityItem.getId()); + wxOfflineActivityAwardsItemMapper.delete(activityAwardsItemDel); + + for (WxOfflineActivityAwardsItem awaItem : activityAwardsItemList) { + if(awaItem.getId() == null){ + final IdWorker idWorker = IdWorker.get(); + awaItem.setId(idWorker.nextId()); + } + awaItem.updateTenantInfo(activityItem); + awaItem.setActivityItemId(activityItem.getId()); + + if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ + awaItem.setGrade(-1); + awaItem.setMinAmount(0); + awaItem.setMaxAmount(-1); + } + else if (EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())) { + + } + else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { + awaItem.setGrade(-1); + awaItem.setMinAmount(0); + awaItem.setMaxAmount(-1); + } + if(awaItem.getCreateDate() == null){ + awaItem.setCreateDate(activityItem.getUpdateDate()); + } + awaItem.setUpdateDate(activityItem.getUpdateDate()); + wxOfflineActivityAwardsItemMapper.insert(awaItem); + } + } + + @Override + public List getActivityAwardsItemList(Long activityItemId, String tenantId) { + WxOfflineActivityAwardsItem activityAwardsItemQuery = new WxOfflineActivityAwardsItem(); + activityAwardsItemQuery.setActivityItemId(activityItemId); + activityAwardsItemQuery.setTenantId(tenantId); + List activityAwardsItemList = wxOfflineActivityAwardsItemMapper.findList(activityAwardsItemQuery); + return activityAwardsItemList; + } +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java new file mode 100644 index 000000000..8581143bf --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java @@ -0,0 +1,85 @@ +package com.iformall.service.impl; + +import com.iformall.common.IdWorker; +import com.iformall.domain.po.WxOfflineActivity; +import com.iformall.domain.po.WxOfflineActivityAwardsItem; +import com.iformall.domain.po.WxOfflineActivityItem; +import com.iformall.enums.EnumOfflineActivityType; +import com.iformall.service.WxOfflineActivityAwardsItemService; +import com.iformall.service.WxOfflineActivityItemService; +import com.iformall.mapper.WxOfflineActivityItemMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_item(线下活动项目)】的数据库操作Service实现 +* @createDate 2024-08-06 13:20:56 +*/ +@Service +public class WxOfflineActivityItemServiceImpl implements WxOfflineActivityItemService{ + + @Autowired + WxOfflineActivityItemMapper wxOfflineActivityItemMapper; + + @Autowired + WxOfflineActivityAwardsItemService wxOfflineActivityAwardsItemService; + + @Override + public void saveOrUpdateFromActivity(WxOfflineActivity wxOfflineActivity, List activityItemList) { + WxOfflineActivityItem activityItemDel = new WxOfflineActivityItem(); + activityItemDel.updateTenantInfo(wxOfflineActivity); + activityItemDel.setActivityId(wxOfflineActivity.getId()); + wxOfflineActivityItemMapper.delete(activityItemDel); + + for (WxOfflineActivityItem activityItem : activityItemList) { + if(activityItem.getId() == null){ + final IdWorker idWorker = IdWorker.get(); + activityItem.setId(idWorker.nextId()); + } + + activityItem.updateTenantInfo(wxOfflineActivity); + activityItem.setActivityId(wxOfflineActivity.getId()); + if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ + activityItem.setAwardsItemRule(0); + } + else if (EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())) { + activityItem.setLimitMoney(0); + activityItem.setAwardsItemPrice(0); + activityItem.setAwardsItemRule(0); + } + else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { + activityItem.setAwardsItemPrice(0); + activityItem.setAwardsItemCount(0); + } + if(activityItem.getCreateDate() == null){ + activityItem.setCreateDate(wxOfflineActivity.getUpdateDate()); + } + activityItem.setUpdateDate(wxOfflineActivity.getUpdateDate()); + wxOfflineActivityItemMapper.insert(activityItem); + + //处理奖项 + wxOfflineActivityAwardsItemService.saveOrUpdateFromActivityItem(activityItem,activityItem.getActivityAwardsItemList()); + } + } + + @Override + public List getActivityItemList(Long activityId, String tenantId) { + WxOfflineActivityItem activityItemQuery = new WxOfflineActivityItem(); + activityItemQuery.setActivityId(activityId); + activityItemQuery.setTenantId(tenantId); + List itemList = wxOfflineActivityItemMapper.findList(activityItemQuery); + for (WxOfflineActivityItem item : itemList) { + List activityAwardsItemList = wxOfflineActivityAwardsItemService.getActivityAwardsItemList(item.getId(),tenantId); + item.setActivityAwardsItemList(activityAwardsItemList); + } + return itemList; + } +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityMerchantServiceImpl.java new file mode 100644 index 000000000..6c3bee21d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityMerchantServiceImpl.java @@ -0,0 +1,81 @@ +package com.iformall.service.impl; + +import com.iformall.common.IdWorker; +import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.po.WxOfflineActivity; +import com.iformall.domain.po.WxOfflineActivityMerchant; +import com.iformall.enums.EnumOfflineActivityMerchantType; +import com.iformall.enums.EnumYesOrNo; +import com.iformall.service.WxMerchantService; +import com.iformall.service.WxOfflineActivityMerchantService; +import com.iformall.mapper.WxOfflineActivityMerchantMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_merchant(线下活动商户)】的数据库操作Service实现 +* @createDate 2024-08-06 13:20:56 +*/ +@Service +public class WxOfflineActivityMerchantServiceImpl implements WxOfflineActivityMerchantService{ + + @Autowired + private WxOfflineActivityMerchantMapper wxOfflineActivityMerchantMapper; + + @Autowired + WxMerchantService wxMerchantService; + + @Override + public void saveOrUpdateFromActivity(WxOfflineActivity wxOfflineActivity, List activityMerchantList) { + WxOfflineActivityMerchant activityMerchantDel = new WxOfflineActivityMerchant(); + activityMerchantDel.updateTenantInfo(wxOfflineActivity); + activityMerchantDel.setActivityId(wxOfflineActivity.getId()); + wxOfflineActivityMerchantMapper.delete(activityMerchantDel); + + if(EnumOfflineActivityMerchantType.ALL.getCode().equals(wxOfflineActivity.getAllMerchant())){ + return; + } + for (WxOfflineActivityMerchant wxOfflineActivityMerchant : activityMerchantList) { + if(wxOfflineActivityMerchant.getId() == null){ + final IdWorker idWorker = IdWorker.get(); + wxOfflineActivityMerchant.setId(idWorker.nextId()); + } + + wxOfflineActivityMerchant.updateTenantInfo(wxOfflineActivity); + wxOfflineActivityMerchant.setActivityId(wxOfflineActivity.getId()); + if(EnumOfflineActivityMerchantType.ADD.getCode().equals(wxOfflineActivity.getAllMerchant())){ + wxOfflineActivityMerchant.setWhetherIn(EnumYesOrNo.YES.getCode()); + } + else if (EnumOfflineActivityMerchantType.UN_ADD.getCode().equals(wxOfflineActivity.getAllMerchant())) { + wxOfflineActivityMerchant.setWhetherIn(EnumYesOrNo.NO.getCode()); + } + wxOfflineActivityMerchantMapper.insert(wxOfflineActivityMerchant); + } + } + + @Override + public List getActivityMerchantList(Long activityId, String tenantId) { + WxOfflineActivityMerchant activityMerchantQuery = new WxOfflineActivityMerchant(); + activityMerchantQuery.setActivityId(activityId); + activityMerchantQuery.setTenantId(tenantId); + List activityMerchantList = wxOfflineActivityMerchantMapper.findList(activityMerchantQuery); + + WxMerchant merchantQ = new WxMerchant(); + merchantQ.setTenantId(tenantId); + Map merchantMap = wxMerchantService.findMerchantMap(merchantQ); + + for (WxOfflineActivityMerchant wxOfflineActivityMerchant : activityMerchantList) { + wxOfflineActivityMerchant.setMerchant(merchantMap.get(wxOfflineActivityMerchant.getMerchantId())); + } + return activityMerchantList; + } +} + + + + diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java new file mode 100644 index 000000000..83b600a09 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java @@ -0,0 +1,117 @@ +package com.iformall.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.iformall.common.IdWorker; +import com.iformall.domain.po.WxOfflineActivity; +import com.iformall.domain.po.WxOfflineActivityItem; +import com.iformall.domain.po.WxOfflineActivityMerchant; +import com.iformall.domain.po.WxRaffleActivity; +import com.iformall.enums.EnumOfflineActivityMerchantType; +import com.iformall.enums.EnumOfflineActivityStatus; +import com.iformall.enums.EnumYesOrNo; +import com.iformall.service.WxOfflineActivityItemService; +import com.iformall.service.WxOfflineActivityMerchantService; +import com.iformall.service.WxOfflineActivityService; +import com.iformall.mapper.WxOfflineActivityMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity(线下活动)】的数据库操作Service实现 +* @createDate 2024-08-06 13:20:56 +*/ +@Service +public class WxOfflineActivityServiceImpl implements WxOfflineActivityService{ + + @Autowired + WxOfflineActivityMapper wxOfflineActivityMapper; + + @Autowired + WxOfflineActivityItemService wxOfflineActivityItemService; + @Autowired + WxOfflineActivityMerchantService wxOfflineActivityMerchantService; + + @Override + public PageInfo listAsPage(WxOfflineActivity record, Integer pageIndex, Integer pageSize) { + handlerQuery(record); + PageInfo activityPageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOfflineActivityMapper.findList(record)); + handlerReturnList(activityPageInfo.getList()); + return activityPageInfo; + } + + private void handlerQuery(WxOfflineActivity record) { + if (null != record.getStatus()) { + //已上架 + if(EnumOfflineActivityStatus.ON_LINE.getCode().equals(record.getStatus())){ + record.setValidStatus(EnumYesOrNo.NO.getCode()); + } + //已过期 + else if(EnumOfflineActivityStatus.EXPIRE.getCode().equals(record.getStatus())){ + record.setStatus(null); + record.setValidStatus(EnumYesOrNo.YES.getCode()); + } + } + } + + private void handlerReturnList(List list) { + if (null != list && !list.isEmpty()) { + Date now = new Date(); + for (WxOfflineActivity activity : list) { + if(now.before(activity.getEndTime())){ + activity.setStatus(EnumOfflineActivityStatus.EXPIRE.getCode()); + } + //获取发奖订单数 + + } + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveOrUpdate(WxOfflineActivity wxOfflineActivity) { + Date now = new Date(); + if(wxOfflineActivity.getId() == null){ + final IdWorker idWorker = IdWorker.get(); + wxOfflineActivity.setId(idWorker.nextId()); + wxOfflineActivity.setCreateDate(now); + wxOfflineActivity.setCreateDate(now); + wxOfflineActivity.setStatus(EnumOfflineActivityStatus.OFF_LINE.getCode()); + wxOfflineActivityMapper.insert(wxOfflineActivity); + } + else{ + wxOfflineActivity.setUpdateDate(now); + wxOfflineActivityMapper.updateStatus(wxOfflineActivity); + } + //处理活动项 + wxOfflineActivityItemService.saveOrUpdateFromActivity(wxOfflineActivity,wxOfflineActivity.getActivityItemList()); + //处理活动商户 + wxOfflineActivityMerchantService.saveOrUpdateFromActivity(wxOfflineActivity,wxOfflineActivity.getActivityMerchantList()); + } + + @Override + public void updateStatus(WxOfflineActivity wxOfflineActivity) { + wxOfflineActivityMapper.updateStatus(wxOfflineActivity); + } + + @Override + public WxOfflineActivity getInfoById(Long id, String tenantId) { + WxOfflineActivity wxOfflineActivity = wxOfflineActivityMapper.selectById(id, tenantId); + List activityItemList = wxOfflineActivityItemService.getActivityItemList(wxOfflineActivity.getId(),tenantId); + wxOfflineActivity.setActivityItemList(activityItemList); + if(!EnumOfflineActivityMerchantType.ALL.getCode().equals(wxOfflineActivity.getAllMerchant())){ + List activityMerchantList = wxOfflineActivityMerchantService.getActivityMerchantList(wxOfflineActivity.getId(),tenantId); + wxOfflineActivity.setActivityMerchantList(activityMerchantList); + } + return wxOfflineActivity; + } +} + + + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml new file mode 100644 index 000000000..d27452476 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + activity_item_id,`name`,grade, + min_amount,max_amount,price, + money_rule,mall_share_rate,merchant_share_rate, + create_date,update_date + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `activity_item_id` = #{activityItemId} + + + + and `name` like concat('%', #{name},'%') + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + delete from wx_offline_activity_awards_item + + + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml new file mode 100644 index 000000000..8ee759c51 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + activity_id,`type`,`name`, + limit_money,awards_item_price,awards_item_count, + awards_item_rule,create_date,update_date + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `activity_id` = #{activityId} + + + + and `name` like concat('%', #{name},'%') + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + delete from wx_offline_activity_item + + + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityMapper.xml new file mode 100644 index 000000000..235ea3f2d --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityMapper.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + `name`,start_time,end_time, + status,create_date,update_date, + all_merchant + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `start_time` >= #{begin} + + + + and `end_time` <= #{end} + + + + and `all_merchant` = #{allMerchant} + + + + + and end_time >= now() + + + + + and end_time <= now() + + + + and `name` like concat('%', #{name},'%') + + + + and `status` = #{status} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + update wx_offline_activity + set `status` = #{status}, + `update_date` = #{updateDate} + where id=#{id} + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityMerchantMapper.xml new file mode 100644 index 000000000..81138e986 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityMerchantMapper.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + activity_id,merchant_id,whether_in,create_date, + update_date + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `activity_id` = #{activityId} + + + + and `merchant_id` = #{merchantId} + + + + and `whether_in` = #{whetherIn} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + delete from wx_offline_activity_merchant + where `activity_id` = #{activityId} + + and `merchant_id` = #{merchantId} + + + + + + +