Browse Source

//OfflineActivity

release_toaliyun_real
xiaohu 1 year ago
parent
commit
1ca3637cc1
26 changed files with 1558 additions and 0 deletions
  1. +133
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java
  2. +88
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java
  3. +95
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java
  4. +86
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java
  5. +62
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityMerchant.java
  6. +37
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsMoneyRule.java
  7. +37
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsRule.java
  8. +38
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityMerchantType.java
  9. +38
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityStatus.java
  10. +38
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityType.java
  11. +28
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityAwardsItemMapper.java
  12. +28
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityItemMapper.java
  13. +28
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMapper.java
  14. +30
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMerchantMapper.java
  15. +19
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityAwardsItemService.java
  16. +18
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java
  17. +19
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityMerchantService.java
  18. +28
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java
  19. +74
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java
  20. +85
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java
  21. +81
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityMerchantServiceImpl.java
  22. +117
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java
  23. +81
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml
  24. +79
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml
  25. +107
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityMapper.xml
  26. +84
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityMerchantMapper.xml

+ 133
- 0
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java View File

@@ -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<WxOfflineActivity> 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);
}


}

+ 88
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java View File

@@ -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<WxOfflineActivityItem> activityItemList;

@TableField(exist = false)
private List<WxOfflineActivityMerchant> activityMerchantList;

@TableField(exist = false)
private Date begin;
@TableField(exist = false)
private Date end;

/**
* 是否过期
*/
@TableField(exist = false)
private Integer validStatus;

}

+ 95
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java View File

@@ -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;

}

+ 86
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java View File

@@ -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<WxOfflineActivityAwardsItem> activityAwardsItemList;

}

+ 62
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityMerchant.java View File

@@ -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;

}

+ 37
- 0
mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsMoneyRule.java View File

@@ -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;
}
}

+ 37
- 0
mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityAwardsRule.java View File

@@ -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;
}
}

+ 38
- 0
mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityMerchantType.java View File

@@ -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;
}
}

+ 38
- 0
mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityStatus.java View File

@@ -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;
}
}

+ 38
- 0
mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityType.java View File

@@ -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;
}
}

+ 28
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityAwardsItemMapper.java View File

@@ -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, Long> {

WxOfflineActivityAwardsItem selectById(@Param("id")Long id, @Param("tenantId")String tenantId);

List<WxOfflineActivityAwardsItem> findList(WxOfflineActivityAwardsItem wxOfflineActivityAwardsItem);

Integer itemCount(WxOfflineActivityAwardsItem wxOfflineActivityAwardsItem);

void delete(WxOfflineActivityAwardsItem wxOfflineActivityAwardsItem);
}





+ 28
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityItemMapper.java View File

@@ -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, Long> {

WxOfflineActivityItem selectById(@Param("id")Long id, @Param("tenantId")String tenantId);

List<WxOfflineActivityItem> findList(WxOfflineActivityItem wxOfflineActivityItem);

List<Long> findIds(WxOfflineActivityItem wxOfflineActivityItem);

void delete(WxOfflineActivityItem wxOfflineActivityItem);
}





+ 28
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMapper.java View File

@@ -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, Long> {

WxOfflineActivity selectById(@Param("id")Long id, @Param("tenantId")String tenantId);

List<WxOfflineActivity> findList(WxOfflineActivity wxOfflineActivity);

void updateStatus(WxOfflineActivity wxOfflineActivity);

List<Long> findIds(WxOfflineActivity wxOfflineActivity);
}





+ 30
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityMerchantMapper.java View File

@@ -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, Long> {

WxOfflineActivityMerchant selectById(@Param("id")Long id, @Param("tenantId")String tenantId);

List<WxOfflineActivityMerchant> findList(WxOfflineActivityMerchant wxOfflineActivityMerchant);

void delete(WxOfflineActivityMerchant wxOfflineActivityMerchant);

int merchantCount(WxOfflineActivityMerchant wxOfflineActivityMerchant);

List<Long> findActivityIdList(@Param("merchantId")Long merchantId,@Param("tenantId")String tenantId);
}





+ 19
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityAwardsItemService.java View File

@@ -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<WxOfflineActivityAwardsItem> activityAwardsItemList);

List<WxOfflineActivityAwardsItem> getActivityAwardsItemList(Long activityItemId, String tenantId);
}

+ 18
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityItemService.java View File

@@ -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<WxOfflineActivityItem> activityItemList);

List<WxOfflineActivityItem> getActivityItemList(Long activityId, String tenantId);
}

+ 19
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityMerchantService.java View File

@@ -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<WxOfflineActivityMerchant> activityMerchantList);

List<WxOfflineActivityMerchant> getActivityMerchantList(Long activityId, String tenantId);
}

+ 28
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityService.java View File

@@ -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<WxOfflineActivity> listAsPage(WxOfflineActivity record, Integer pageIndex, Integer pageSize);

void saveOrUpdate(WxOfflineActivity wxOfflineActivity);

void updateStatus(WxOfflineActivity wxOfflineActivity);

WxOfflineActivity getInfoById(Long id, String tenantId);
}

+ 74
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java View File

@@ -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<WxOfflineActivityAwardsItem> 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<WxOfflineActivityAwardsItem> getActivityAwardsItemList(Long activityItemId, String tenantId) {
WxOfflineActivityAwardsItem activityAwardsItemQuery = new WxOfflineActivityAwardsItem();
activityAwardsItemQuery.setActivityItemId(activityItemId);
activityAwardsItemQuery.setTenantId(tenantId);
List<WxOfflineActivityAwardsItem> activityAwardsItemList = wxOfflineActivityAwardsItemMapper.findList(activityAwardsItemQuery);
return activityAwardsItemList;
}
}





+ 85
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java View File

@@ -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<WxOfflineActivityItem> 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<WxOfflineActivityItem> getActivityItemList(Long activityId, String tenantId) {
WxOfflineActivityItem activityItemQuery = new WxOfflineActivityItem();
activityItemQuery.setActivityId(activityId);
activityItemQuery.setTenantId(tenantId);
List<WxOfflineActivityItem> itemList = wxOfflineActivityItemMapper.findList(activityItemQuery);
for (WxOfflineActivityItem item : itemList) {
List<WxOfflineActivityAwardsItem> activityAwardsItemList = wxOfflineActivityAwardsItemService.getActivityAwardsItemList(item.getId(),tenantId);
item.setActivityAwardsItemList(activityAwardsItemList);
}
return itemList;
}
}





+ 81
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityMerchantServiceImpl.java View File

@@ -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<WxOfflineActivityMerchant> 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<WxOfflineActivityMerchant> getActivityMerchantList(Long activityId, String tenantId) {
WxOfflineActivityMerchant activityMerchantQuery = new WxOfflineActivityMerchant();
activityMerchantQuery.setActivityId(activityId);
activityMerchantQuery.setTenantId(tenantId);
List<WxOfflineActivityMerchant> activityMerchantList = wxOfflineActivityMerchantMapper.findList(activityMerchantQuery);

WxMerchant merchantQ = new WxMerchant();
merchantQ.setTenantId(tenantId);
Map<Long, WxMerchant> merchantMap = wxMerchantService.findMerchantMap(merchantQ);

for (WxOfflineActivityMerchant wxOfflineActivityMerchant : activityMerchantList) {
wxOfflineActivityMerchant.setMerchant(merchantMap.get(wxOfflineActivityMerchant.getMerchantId()));
}
return activityMerchantList;
}
}





+ 117
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java View File

@@ -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<WxOfflineActivity> listAsPage(WxOfflineActivity record, Integer pageIndex, Integer pageSize) {
handlerQuery(record);
PageInfo<WxOfflineActivity> 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<WxOfflineActivity> 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<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(wxOfflineActivity.getId(),tenantId);
wxOfflineActivity.setActivityItemList(activityItemList);
if(!EnumOfflineActivityMerchantType.ALL.getCode().equals(wxOfflineActivity.getAllMerchant())){
List<WxOfflineActivityMerchant> activityMerchantList = wxOfflineActivityMerchantService.getActivityMerchantList(wxOfflineActivity.getId(),tenantId);
wxOfflineActivity.setActivityMerchantList(activityMerchantList);
}
return wxOfflineActivity;
}
}





+ 81
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml View File

@@ -0,0 +1,81 @@
<?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.WxOfflineActivityAwardsItemMapper">

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityAwardsItem">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="grade" column="grade" jdbcType="INTEGER"/>
<result property="minAmount" column="min_amount" jdbcType="INTEGER"/>
<result property="maxAmount" column="max_amount" jdbcType="INTEGER"/>
<result property="price" column="price" jdbcType="INTEGER"/>
<result property="moneyRule" column="money_rule" jdbcType="INTEGER"/>
<result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/>
<result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
</resultMap>

<sql id="allColumns">
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
</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 != activityItemId ">
and `activity_item_id` = #{activityItemId}
</if>

<if test=" null != name ">
and `name` like concat('%', #{name},'%')
</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_offline_activity_awards_item where id = #{id} and tenant_id=#{tenantId}
</select>

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

<select id="itemCount" parameterType="com.iformall.domain.po.WxOfflineActivityAwardsItem" resultType="Integer">
select count(1) from wx_offline_activity_awards_item where `activity_item_id` = #{activityItemId} and tenant_id=#{tenantId}
</select>

<delete id="delete" parameterType="com.iformall.domain.po.WxOfflineActivityAwardsItem">
delete from wx_offline_activity_awards_item
<include refid="dynamicWhereConditions" />
</delete>

</mapper>

+ 79
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml View File

@@ -0,0 +1,79 @@
<?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.WxOfflineActivityItemMapper">

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityItem">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="type" column="type" jdbcType="SMALLINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="limitMoney" column="limit_money" jdbcType="INTEGER"/>
<result property="awardsItemPrice" column="awards_item_price" jdbcType="INTEGER"/>
<result property="awardsItemCount" column="awards_item_count" jdbcType="INTEGER"/>
<result property="awardsItemRule" column="awards_item_rule" jdbcType="INTEGER"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
</resultMap>

<sql id="allColumns">
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
</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 != activityId ">
and `activity_id` = #{activityId}
</if>

<if test=" null != name and name != '' ">
and `name` like concat('%', #{name},'%')
</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_offline_activity_item where id = #{id} and tenant_id=#{tenantId}
</select>

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

<select id="findIds" parameterType="com.iformall.domain.po.WxOfflineActivityItem" resultType="Long">
select id from wx_offline_activity_item
<include refid="dynamicWhereConditions" />
</select>

<delete id="delete" parameterType="com.iformall.domain.po.WxOfflineActivityItem">
delete from wx_offline_activity_item
<include refid="dynamicWhereConditions" />
</delete>

</mapper>

+ 107
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityMapper.xml View File

@@ -0,0 +1,107 @@
<?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.WxOfflineActivityMapper">

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivity">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>
<result property="endTime" column="end_time" jdbcType="TIMESTAMP"/>
<result property="status" column="status" jdbcType="SMALLINT"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
<result property="allMerchant" column="all_merchant" jdbcType="SMALLINT"/>
</resultMap>

<sql id="allColumns">
id,tenant_id,parent_tenant_id,
`name`,start_time,end_time,
status,create_date,update_date,
all_merchant
</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 != begin">
and `start_time` &gt;= #{begin}
</if>

<if test=" null != end">
and `end_time` &lt;= #{end}
</if>

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

<!-- 未过期 -->
<if test=" 0 == validStatus">
and end_time &gt;= now()
</if>

<!-- 已过期 -->
<if test=" 1 == validStatus">
and end_time &lt;= now()
</if>

<if test=" null != name and name != '' ">
and `name` like concat('%', #{name},'%')
</if>

<if test=" null != status ">
and `status` = #{status}
</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_offline_activity where id = #{id} and tenant_id=#{tenantId}
</select>

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

<select id="findIds" parameterType="com.iformall.domain.po.WxOfflineActivity" resultType="Long">
select id from wx_offline_activity
<include refid="dynamicWhereConditions" />
</select>

<update id="updateStatus" parameterType="com.iformall.domain.po.WxOfflineActivity">
update wx_offline_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>

+ 84
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityMerchantMapper.xml View File

@@ -0,0 +1,84 @@
<?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.WxOfflineActivityMerchantMapper">

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityMerchant">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="merchantId" column="merchant_id" jdbcType="BIGINT"/>
<result property="whetherIn" column="whether_in" jdbcType="SMALLINT"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
</resultMap>

<sql id="allColumns">
id,tenant_id,parent_tenant_id,
activity_id,merchant_id,whether_in,create_date,
update_date
</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 != activityId ">
and `activity_id` = #{activityId}
</if>

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

<if test=" null != whetherIn ">
and `whether_in` = #{whetherIn}
</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_offline_activity_merchant where id = #{id} and tenant_id=#{tenantId}
</select>

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

<delete id="delete" parameterType="com.iformall.domain.po.WxOfflineActivityMerchant">
delete from wx_offline_activity_merchant
where `activity_id` = #{activityId}
<if test=" null != merchantId ">
and `merchant_id` = #{merchantId}
</if>
</delete>

<select id="merchantCount" parameterType="com.iformall.domain.po.WxOfflineActivityMerchant" resultType="Integer">
select count(1) from wx_offline_activity_merchant
<include refid="dynamicWhereConditions" />
</select>

<select id="findActivityIdList" parameterType="java.util.HashMap" resultType="Long">
select activity_id from wx_offline_activity_merchant where merchant_id = #{merchantId} and tenant_id=#{tenantId}
</select>
</mapper>

Loading…
Cancel
Save