Browse Source

//OfflineActivity

release_toaliyun_real
xiaohu 1 year ago
parent
commit
fc05608e70
30 changed files with 1747 additions and 0 deletions
  1. +75
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java
  2. +94
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java
  3. +90
    -0
      mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java
  4. +113
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java
  5. +157
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java
  6. +133
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java
  7. +164
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java
  8. +41
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecordGrant.java
  9. +15
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java
  10. +38
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumOfflineActivityRecordStatus.java
  11. +19
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java
  12. +19
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java
  13. +19
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java
  14. +22
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java
  15. +30
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java
  16. +20
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java
  17. +13
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantItemService.java
  18. +13
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java
  19. +13
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordGrantService.java
  20. +28
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordService.java
  21. +119
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java
  22. +21
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java
  23. +21
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java
  24. +21
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java
  25. +120
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java
  26. +35
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml
  27. +44
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml
  28. +39
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml
  29. +26
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml
  30. +185
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml

+ 75
- 0
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java View File

@@ -0,0 +1,75 @@
package com.iformall.controller.market;

import com.github.pagehelper.PageInfo;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.WxOfflineActivityRecord;
import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumOfflineActivityRecordStatus;
import com.iformall.service.WxOfflineActivityGrantAwardService;
import com.iformall.service.WxOfflineActivityRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
* @author alascor
*
*/
@RestController
@RequestMapping("/offlineGrant")
@Api(description = "线下活动登记相关接口")
public class WxOfflineActivityGrantController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private WxOfflineActivityGrantAwardService wxOfflineActivityGrantAwardService;

@ApiOperation("参加活动用户订单统计")
@GetMapping("recordStatistics")
public ResultData statisticsCount(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) {
if(wxOfflineActivityRecord.getActivityId() == null){
return new ResultData(Result.ERROR,"请选择活动");
}
if(StringUtil.isBlank(wxOfflineActivityRecord.getCusPhone())){
return new ResultData(Result.ERROR,"请输入用户手机号");
}

TenantEntity tenantInfo = getTenantInfo();
wxOfflineActivityRecord.updateTenantInfo(tenantInfo);
Map<String,Object> statisticsMap = wxOfflineActivityGrantAwardService.getRecordStatistics(wxOfflineActivityRecord.getActivityId(),wxOfflineActivityRecord);
return new ResultData(statisticsMap);
}

@ApiOperation("参加活动用户订单列表")
@GetMapping("recordList")
@ApiImplicitParams({})
public ResultData list(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) {
if(wxOfflineActivityRecord.getActivityId() == null){
return new ResultData(Result.ERROR,"请选择活动");
}
if(StringUtil.isBlank(wxOfflineActivityRecord.getCusPhone())){
return new ResultData(Result.ERROR,"请输入用户手机号");
}

TenantEntity tenantInfo = getTenantInfo();
wxOfflineActivityRecord.updateTenantInfo(tenantInfo);
wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC);
List<WxOfflineActivityRecord> recordList = wxOfflineActivityGrantAwardService.getRecordList(wxOfflineActivityRecord.getActivityId(),wxOfflineActivityRecord);

return new ResultData(recordList);
}


}

+ 94
- 0
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java View File

@@ -0,0 +1,94 @@
package com.iformall.controller.market;

import com.github.pagehelper.PageInfo;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.WxOfflineActivity;
import com.iformall.domain.po.WxOfflineActivityAwardsItem;
import com.iformall.domain.po.WxOfflineActivityItem;
import com.iformall.domain.po.WxOfflineActivityRecord;
import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule;
import com.iformall.enums.EnumOfflineActivityMerchantType;
import com.iformall.enums.EnumOfflineActivityRecordStatus;
import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.service.WxOfflineActivityRecordService;
import com.iformall.service.WxOfflineActivityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil;
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;

/**
* @author alascor
*
*/
@RestController
@RequestMapping("/offlineRecord")
@Api(description = "线下活动登记相关接口")
public class WxOfflineActivityRecordController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private WxOfflineActivityRecordService wxOfflineActivityRecordService;

@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 WxOfflineActivityRecord wxOfflineActivityRecord, Integer pageNum, Integer pageSize) {
if (null == wxOfflineActivityRecord) wxOfflineActivityRecord = new WxOfflineActivityRecord();
TenantEntity tenantInfo = getTenantInfo();
wxOfflineActivityRecord.updateTenantInfo(tenantInfo);
wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC);
final PageInfo<WxOfflineActivityRecord> page = wxOfflineActivityRecordService.listAsPage(wxOfflineActivityRecord, pageNum, pageSize);

return new ResultData(page);
}
@ApiOperation("审核通过")
@PostMapping("audiPass")
public ResultData audiPass(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) {
TenantEntity tenantEntity = getTenantInfo();
wxOfflineActivityRecord.updateTenantInfo(tenantEntity);
wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode());
wxOfflineActivityRecordService.auditRecord(wxOfflineActivityRecord,getUserId());
return new ResultData();
}
@ApiOperation("审核驳回")
@PostMapping("audtFail")
public ResultData audtFail(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) {

if(StringUtil.isBlank(wxOfflineActivityRecord.getAuditRemark())){
return new ResultData(Result.ERROR,"驳回意见不能为空");
}
TenantEntity tenantEntity = getTenantInfo();
wxOfflineActivityRecord.updateTenantInfo(tenantEntity);
wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode());
wxOfflineActivityRecordService.auditRecord(wxOfflineActivityRecord,getUserId());
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();
WxOfflineActivityRecord record = wxOfflineActivityRecordService.getInfoById(id, tenantInfo.getTenantId());
return new ResultData(record);
}


}

+ 90
- 0
mallinkBApi/src/main/java/com/iformall/controller/WxOfflineActivityRecordController.java View File

@@ -0,0 +1,90 @@
package com.iformall.controller;

import com.github.pagehelper.PageInfo;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxOfflineActivityRecord;
import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
* @author alascor
*
*/
@RestController
@RequestMapping("/api/offlineRecord")
@Api(description = "线下活动登记相关接口")
public class WxOfflineActivityRecordController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private WxOfflineActivityRecordService wxOfflineActivityRecordService;
@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 WxOfflineActivityRecord wxOfflineActivityRecord, Integer pageNum, Integer pageSize) {
if (null == wxOfflineActivityRecord) wxOfflineActivityRecord = new WxOfflineActivityRecord();
TenantEntity tenantInfo = getTenantInfo();
wxOfflineActivityRecord.updateTenantInfo(tenantInfo);
wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC);
wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId());
final PageInfo<WxOfflineActivityRecord> page = wxOfflineActivityRecordService.listAsPage(wxOfflineActivityRecord, pageNum, pageSize);
return new ResultData(page);
}

@ApiOperation("新增修改接口")
@PostMapping("saveOrUpdate")
public ResultData saveOrUpdate(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) {
if(StringUtil.isBlank(wxOfflineActivityRecord.getCusPhone())){
return new ResultData(Result.ERROR,"客户手机号不能为空");
}
if (null == wxOfflineActivityRecord.getOrderMoney() ) {
return new ResultData(Result.ERROR,"订单金额不能为空");
}
TenantEntity tenantEntity = getTenantInfo();
wxOfflineActivityRecord.updateTenantInfo(tenantEntity);
wxOfflineActivityRecord.setCreateBy(getMerchantBUserId());
wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId());
wxOfflineActivityRecordService.saveOrUpdate(wxOfflineActivityRecord);
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();
WxOfflineActivityRecord activity = wxOfflineActivityRecordService.getById(id, tenantInfo.getTenantId());
return new ResultData(activity);
}
@ApiOperation("查询当前信息统计")
@GetMapping("statistics")
public ResultData statisticsCount(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) {
TenantEntity tenantInfo = getTenantInfo();
wxOfflineActivityRecord.updateTenantInfo(tenantInfo);
wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId());
Map<String,Integer> statisticsMap = wxOfflineActivityRecordService.getStatistics(wxOfflineActivityRecord);
return new ResultData(statisticsMap);
}

}

+ 113
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java View File

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

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
* 线下活动发放奖励
* @TableName wx_offline_activity_grant_award
*/
@TableName(value ="wx_offline_activity_grant_award")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxOfflineActivityGrantAward extends TenantEntity{
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;

/**
* 活动ID
*/
@TableField(value = "activity_id")
private Long activityId;

/**
* 订单总金额
*/
@TableField(value = "order_money_sum")
private Integer orderMoneySum;

/**
* 订单数量
*/
@TableField(value = "order_count")
private Integer orderCount;

/**
* 客户姓名
*/
@TableField(value = "cus_name")
private String cusName;

/**
* 客户电话
*/
@TableField(value = "cus_phone")
private String cusPhone;

/**
* 实际领奖人
*/
@TableField(value = "real_name")
private String realName;

/**
* 实际领奖人身份证号
*/
@TableField(value = "real_card")
private String realCard;

/**
* 签名图片
*/
@TableField(value = "sign_img")
private String signImg;

/**
*
*/
@TableField(value = "create_by")
private Long createBy;

/**
* 创建时间
*/
@TableField(value = "create_date")
private Date createDate;

/**
* 更新时间
*/
@TableField(value = "update_date")
private Date updateDate;

/**
* 抽奖券编码
*/
@TableField(value = "lottery_num")
private Object lotteryNum;

/**
* 抽奖券数量
*/
@TableField(value = "lottery_count")
private Integer lotteryCount;

/**
* 周年庆抽奖编码
*/
@TableField(value = "anniversary_lottery_num")
private Object anniversaryLotteryNum;
}

+ 157
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java View File

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

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
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_grant_item
*/
@TableName(value ="wx_offline_activity_grant_item")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxOfflineActivityGrantItem extends TenantEntity {
/**
*
*/
@TableId(value = "id")
private Long id;

/**
* 发放id
*/
@TableField(value = "grant_id")
private Long grantId;

/**
* 活动id
*/
@TableField(value = "activity_id")
private Long activityId;

/**
* 活动名称
*/
@TableField(value = "activity_name")
private String activityName;

/**
* 活动项id
*/
@TableField(value = "activity_item_id")
private Long activityItemId;

/**
* 活动项名称
*/
@TableField(value = "activity_item_name")
private Integer activityItemName;

/**
* 活动项类型
*/
@TableField(value = "activity_item_type")
private Integer activityItemType;

/**
* 奖项id
*/
@TableField(value = "award_itam_id")
private Long awardItamId;

/**
* 奖项名称
*/
@TableField(value = "award_name")
private String awardName;

/**
* 奖项等级
*/
@TableField(value = "award_grade")
private Integer awardGrade;

/**
* 奖项限制最小金额
*/
@TableField(value = "award_min_amount")
private Integer awardMinAmount;

/**
* 奖项限制最大金额
*/
@TableField(value = "award_max_amount")
private Integer awardMaxAmount;

/**
* 返现比例
*/
@TableField(value = "cash_back_ratio")
private BigDecimal cashBackRatio;

/**
* 奖项价值
*/
@TableField(value = "award_price")
private Integer awardPrice;

/**
* 奖项数量
*/
@TableField(value = "award_count")
private Integer awardCount;

/**
* 分担规则(0-商管 1-商户 2-分担)
*/
@TableField(value = "money_rule")
private Integer moneyRule;

/**
* 商管分担比例
*/
@TableField(value = "mall_share_rate")
private BigDecimal mallShareRate;

/**
*
*/
@TableField(value = "mall_share_price")
private Integer mallSharePrice;

/**
* 商户分担比例
*/
@TableField(value = "merchant_share_rate")
private BigDecimal merchantShareRate;

/**
*
*/
@TableField(value = "merchant_share_price")
private Integer merchantSharePrice;

/**
* 创建时间
*/
@TableField(value = "create_date")
private Date createDate;

/**
* 更新时间
*/
@TableField(value = "update_date")
private Date updateDate;

}

+ 133
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java View File

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

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
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_grant_settlement
*/
@TableName(value ="wx_offline_activity_grant_settlement")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxOfflineActivityGrantSettlement extends TenantEntity {

/**
*
*/
@TableId(value = "id")
private Long id;

/**
* 参与记录id
*/
@TableField(value = "record_id")
private Long recordId;

/**
* 订单编号
*/
@TableField(value = "order_no")
private String orderNo;

/**
* 订单金额
*/
@TableField(value = "order_money")
private Integer orderMoney;

/**
* 商户id
*/
@TableField(value = "merchant_id")
private Long merchantId;

/**
* 活动id
*/
@TableField(value = "activity_id")
private Long activityId;

/**
* 活动项id
*/
@TableField(value = "activity_item_id")
private Long activityItemId;

/**
* 奖项id
*/
@TableField(value = "award_itam_id")
private Long awardItamId;

/**
* 发放id
*/
@TableField(value = "grant_id")
private Long grantId;

/**
* 发放总价值
*/
@TableField(value = "grant_price")
private Integer grantPrice;

/**
* 商管承担总金额
*/
@TableField(value = "mall_share_price")
private Integer mallSharePrice;

/**
* 商户承担总金额
*/
@TableField(value = "merchant_share_price")
private Integer merchantSharePrice;

/**
* 订单占比
*/
@TableField(value = "order_ratio")
private BigDecimal orderRatio;

/**
* 实际发放总价值
*/
@TableField(value = "real_grant_price")
private Integer realGrantPrice;

/**
* 实际商管承担总金额
*/
@TableField(value = "real_mall_share_price")
private BigDecimal realMallSharePrice;

/**
* 实际商户承担总金额
*/
@TableField(value = "real_merchant_share_price")
private BigDecimal realMerchantSharePrice;

/**
* 创建时间
*/
@TableField(value = "create_date")
private Date createDate;

/**
* 更新时间
*/
@TableField(value = "update_date")
private Date updateDate;
}

+ 164
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java View File

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

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
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_record
*/
@TableName(value ="wx_offline_activity_record")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxOfflineActivityRecord extends TenantEntity {

/**
* 主键ID
*/
@TableId(value = "id")
private Long id;

/**
* 订单号
*/
@TableField(value = "order_no")
private String orderNo;

/**
* 订单金额
*/
@TableField(value = "order_money")
private Integer orderMoney;

/**
* 客户姓名
*/
@TableField(value = "cus_name")
private String cusName;

/**
*
*/
@TableField(value = "real_cus_name")
private String realCusName;

/**
* 客户电话
*/
@TableField(value = "cus_phone")
private String cusPhone;

/**
* 客户地址
*/
@TableField(value = "cus_address")
private String cusAddress;

/**
* 身份证号
*/
@TableField(value = "cus_card")
private String cusCard;

/**
* 抽奖券编码
*/
@TableField(value = "lottery_num")
private String lotteryNum;

/**
* 抽奖券数量
*/
@TableField(value = "lottery_count")
private Integer lotteryCount;

/**
* 周年庆抽奖编码
*/
@TableField(value = "anniversary_lottery_num")
private String anniversaryLotteryNum;

/**
*
*/
@TableField(value = "create_by")
private Long createBy;

/**
* 商户编号
*/
@TableField(value = "merchant_id")
private Long merchantId;

@TableField(exist = false)
private String merchantName;

@TableField(exist = false)
private List<Long> merchantIdList;

@TableField(value = "business_id")
private Integer businessId;

/**
* 创建时间
*/
@TableField(value = "create_date")
private Date createDate;

@TableField(exist = false)
private Date createDateBegin;
@TableField(exist = false)
private Date createDateEnd;

/**
* 更新时间
*/
@TableField(value = "update_date")
private Date updateDate;

/**
* 审批意见
*/
@TableField(value = "audit_remark")
private String auditRemark;

/**
* 审批状态
*/
@TableField(value = "audit_status")
private Integer auditStatus;

/**
* 审核人
*/
@TableField(value = "audit_by")
private Long auditBy;

@TableField(exist = false)
private String auditByName;

/**
* 审核时间
*/
@TableField(value = "audit_time")
private Date auditTime;

@TableField(exist = false)
private Date auditTimeBegin;
@TableField(exist = false)
private Date auditTimeEnd;

@TableField(exist = false)
private Long activityId;
}

+ 41
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecordGrant.java View File

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

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;

import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
* 线下活动参与登记与发放关联表
* @TableName wx_offline_activity_record_grant
*/
@TableName(value ="wx_offline_activity_record_grant")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class WxOfflineActivityRecordGrant extends TenantEntity {

/**
* 活动id
*/
@TableField(value = "activity_id")
private Long activityId;

/**
* 参与记录id
*/
@TableField(value = "record_id")
private Long recordId;

/**
* 发放id
*/
@TableField(value = "grant_id")
private Long grantId;
}

+ 15
- 0
mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java View File

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

import lombok.Data;

import java.io.Serializable;

@Data
public class OfflineActivityRecordStatistics implements Serializable {

private static final long serialVersionUID = 1L;

private Integer auditStatus;
private Integer count;
private Integer sumMoney;
}

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

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


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

AUDTING(0, "审核中"),
AUDI_SUCCESS(1, "审批通过"),
AUDT_FAIL(2, "审批拒绝"),
IS_GRANT(10, "已发奖"),;

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

private Integer code;
private String message;

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

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 19
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java View File

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

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxOfflineActivityGrantAward;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Mapper
* @createDate 2024-08-09 00:13:44
* @Entity com.iformall.domain.po.WxOfflineActivityGrantAward
*/
public interface WxOfflineActivityGrantAwardMapper extends CommonMapper<WxOfflineActivityGrantAward, Long> {

}





+ 19
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java View File

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

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxOfflineActivityGrantItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_item(线下活动发放奖励)】的数据库操作Mapper
* @createDate 2024-08-09 00:13:44
* @Entity com.iformall.domain.po.WxOfflineActivityGrantItem
*/
public interface WxOfflineActivityGrantItemMapper extends CommonMapper<WxOfflineActivityGrantItem, Long> {

}





+ 19
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java View File

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

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxOfflineActivityGrantSettlement;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_settlement(线下活动发放奖励结算)】的数据库操作Mapper
* @createDate 2024-08-09 00:13:44
* @Entity com.iformall.domain.po.WxOfflineActivityGrantSettlement
*/
public interface WxOfflineActivityGrantSettlementMapper extends CommonMapper<WxOfflineActivityGrantSettlement, Long> {

}





+ 22
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java View File

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

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxOfflineActivityRecordGrant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_record_grant(线下活动参与登记与发放关联表)】的数据库操作Mapper
* @createDate 2024-08-09 00:13:44
* @Entity com.iformall.domain.po.WxOfflineActivityRecordGrant
*/
public interface WxOfflineActivityRecordGrantMapper extends CommonMapper<WxOfflineActivityRecordGrant, Long> {

Integer selectGrantCount(@Param("tenantId")String tenantId, @Param("activityId")Long activityId, @Param("recordId")Long recordId);

}





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

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

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxOfflineActivityRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.OfflineActivityRecordStatistics;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_record(线下活动参与登记)】的数据库操作Mapper
* @createDate 2024-08-09 00:13:44
* @Entity com.iformall.domain.po.WxOfflineActivityRecord
*/
public interface WxOfflineActivityRecordMapper extends CommonMapper<WxOfflineActivityRecord, Long> {

List<WxOfflineActivityRecord> findList(WxOfflineActivityRecord record);

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

List<OfflineActivityRecordStatistics> auditStatusStatistics(WxOfflineActivityRecord wxOfflineActivityRecord);

void updateAuditStatus(WxOfflineActivityRecord record);
}





+ 20
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java View File

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

import com.iformall.domain.po.WxOfflineActivityGrantAward;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.WxOfflineActivityRecord;

import java.util.List;
import java.util.Map;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Service
* @createDate 2024-08-09 00:13:44
*/
public interface WxOfflineActivityGrantAwardService {

Map<String, Object> getRecordStatistics(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord);

List<WxOfflineActivityRecord> getRecordList(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord);
}

+ 13
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantItemService.java View File

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

import com.iformall.domain.po.WxOfflineActivityGrantItem;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_item(线下活动发放奖励)】的数据库操作Service
* @createDate 2024-08-09 00:13:44
*/
public interface WxOfflineActivityGrantItemService {

}

+ 13
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java View File

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

import com.iformall.domain.po.WxOfflineActivityGrantSettlement;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_settlement(线下活动发放奖励结算)】的数据库操作Service
* @createDate 2024-08-09 00:13:44
*/
public interface WxOfflineActivityGrantSettlementService {

}

+ 13
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordGrantService.java View File

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

import com.iformall.domain.po.WxOfflineActivityRecordGrant;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_record_grant(线下活动参与登记与发放关联表)】的数据库操作Service
* @createDate 2024-08-09 00:13:44
*/
public interface WxOfflineActivityRecordGrantService{

}

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

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

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxOfflineActivityRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.WxRaffleActivityRecord;

import java.util.Map;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_record(线下活动参与登记)】的数据库操作Service
* @createDate 2024-08-09 00:13:44
*/
public interface WxOfflineActivityRecordService {

PageInfo<WxOfflineActivityRecord> listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize);

void saveOrUpdate(WxOfflineActivityRecord wxOfflineActivityRecord);

WxOfflineActivityRecord getById(Long id, String tenantId);
WxOfflineActivityRecord getInfoById(Long id, String tenantId);

Map<String, Integer> getStatistics(WxOfflineActivityRecord wxOfflineActivityRecord);

void auditRecord(WxOfflineActivityRecord wxOfflineActivityRecord, Long userId);

}

+ 119
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java View File

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

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.OfflineActivityRecordStatistics;
import com.iformall.enums.EnumOfflineActivityRecordStatus;
import com.iformall.mapper.WxOfflineActivityMapper;
import com.iformall.mapper.WxOfflineActivityRecordGrantMapper;
import com.iformall.mapper.WxOfflineActivityRecordMapper;
import com.iformall.service.MallUserInfoService;
import com.iformall.service.WxMerchantService;
import com.iformall.service.WxOfflineActivityGrantAwardService;
import com.iformall.mapper.WxOfflineActivityGrantAwardMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Service实现
* @createDate 2024-08-09 00:13:44
*/
@Service
public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivityGrantAwardService{

@Autowired
private WxOfflineActivityGrantAwardMapper wxOfflineActivityGrantAwardMapper;

@Autowired
WxOfflineActivityMapper wxOfflineActivityMapper;

@Autowired
WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper;

@Autowired
WxOfflineActivityRecordGrantMapper wxOfflineActivityRecordGrantMapper;

@Autowired
WxMerchantService wxMerchantService;
@Autowired
MallUserInfoService mallUserInfoService;

@Override
public Map<String, Object> getRecordStatistics(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord) {
WxOfflineActivity activity = wxOfflineActivityMapper.selectById(activityId, wxOfflineActivityRecord.getTenantId());
if (activity == null) {
return Collections.emptyMap();
}
wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime());
wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime());
List<OfflineActivityRecordStatistics> recordStatistics = wxOfflineActivityRecordMapper.auditStatusStatistics(wxOfflineActivityRecord);

Map<String, Object> result = new HashMap<>();
Integer audting = 0, audi_success = 0, audt_fail = 0,sum_success = 0, sum_fail = 0;
for(OfflineActivityRecordStatistics statistics : recordStatistics){
if(EnumOfflineActivityRecordStatus.AUDTING.getCode().equals(statistics.getAuditStatus())){
audting = statistics.getCount();
} else if (EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(statistics.getAuditStatus())) {
audi_success = statistics.getCount();
sum_success = statistics.getSumMoney();
} else if (EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(statistics.getAuditStatus())) {
audt_fail = statistics.getCount();
}
}
result.put("audting",audting);
result.put("audi_success",audi_success);
result.put("sum_success",sum_success);
result.put("audt_fail",audt_fail);
result.put("sum_count",audting+audi_success+audt_fail);
return result;
}

@Override
public List<WxOfflineActivityRecord> getRecordList(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord) {
WxOfflineActivity activity = wxOfflineActivityMapper.selectById(activityId, wxOfflineActivityRecord.getTenantId());
if (activity == null) {
return Collections.emptyList();
}
wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime());
wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime());
List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordMapper.findList(wxOfflineActivityRecord);
handleRecordList(wxOfflineActivityRecord,activity,recordList);
return recordList;
}

private void handleRecordList(TenantEntity tenantEntity, WxOfflineActivity activity, List<WxOfflineActivityRecord> recordList) {
if (recordList == null || recordList.isEmpty()) {
return;
}
WxMerchant merchantQ = new WxMerchant();
merchantQ.updateTenantInfo(tenantEntity);
Map<Long, String> idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ);
MallUserInfo userInfoQ = new MallUserInfo();
userInfoQ.updateTenantInfo(tenantEntity);
Map<Long, MallUserInfo> userMap = mallUserInfoService.getUserMap(userInfoQ);

for (WxOfflineActivityRecord record : recordList) {
record.setMerchantName(idAndNamesMap.get(record.getMerchantId()));
if(record.getAuditBy() != null){
record.setAuditByName(userMap.get(record.getAuditBy()).getName());
}
//判断订单是否发奖
Integer grantCount = wxOfflineActivityRecordGrantMapper.selectGrantCount(tenantEntity.getTenantId(),activity.getId(),record.getId());
if(grantCount >= 1){
record.setAuditStatus(EnumOfflineActivityRecordStatus.IS_GRANT.getCode());
}

}
}
}





+ 21
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java View File

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

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.domain.po.WxOfflineActivityGrantItem;
import com.iformall.service.WxOfflineActivityGrantItemService;
import com.iformall.mapper.WxOfflineActivityGrantItemMapper;
import org.springframework.stereotype.Service;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_item(线下活动发放奖励)】的数据库操作Service实现
* @createDate 2024-08-09 00:13:44
*/
@Service
public class WxOfflineActivityGrantItemServiceImpl implements WxOfflineActivityGrantItemService{

}





+ 21
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java View File

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

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.domain.po.WxOfflineActivityGrantSettlement;
import com.iformall.service.WxOfflineActivityGrantSettlementService;
import com.iformall.mapper.WxOfflineActivityGrantSettlementMapper;
import org.springframework.stereotype.Service;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_settlement(线下活动发放奖励结算)】的数据库操作Service实现
* @createDate 2024-08-09 00:13:44
*/
@Service
public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineActivityGrantSettlementService{

}





+ 21
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java View File

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

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.domain.po.WxOfflineActivityRecordGrant;
import com.iformall.service.WxOfflineActivityRecordGrantService;
import com.iformall.mapper.WxOfflineActivityRecordGrantMapper;
import org.springframework.stereotype.Service;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_record_grant(线下活动参与登记与发放关联表)】的数据库操作Service实现
* @createDate 2024-08-09 00:13:44
*/
@Service
public class WxOfflineActivityRecordGrantServiceImpl implements WxOfflineActivityRecordGrantService{

}





+ 120
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java View File

@@ -0,0 +1,120 @@
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.WxMerchant;
import com.iformall.domain.po.WxOfflineActivityRecord;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.OfflineActivityRecordStatistics;
import com.iformall.enums.EnumOfflineActivityRecordStatus;
import com.iformall.service.WxMerchantService;
import com.iformall.service.WxOfflineActivityRecordService;
import com.iformall.mapper.WxOfflineActivityRecordMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_record(线下活动参与登记)】的数据库操作Service实现
* @createDate 2024-08-09 00:13:44
*/
@Service
public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityRecordService{

@Autowired
private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper;

@Autowired
WxMerchantService wxMerchantService;

@Override
public PageInfo<WxOfflineActivityRecord> listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize) {
PageInfo<WxOfflineActivityRecord> recordPageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxOfflineActivityRecordMapper.findList(record));
handlerRecordList(record,recordPageInfo.getList());
return recordPageInfo;
}

private void handlerRecordList(TenantEntity tenantEntity,List<WxOfflineActivityRecord> recordList) {
if (recordList != null && recordList.size() > 0) {
WxMerchant merchantQ = new WxMerchant();
merchantQ.updateTenantInfo(tenantEntity);
Map<Long, String> idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ);
for (WxOfflineActivityRecord record : recordList) {
record.setMerchantName(idAndNamesMap.get(record.getMerchantId()));
}
}
}

@Override
public void saveOrUpdate(WxOfflineActivityRecord wxOfflineActivityRecord) {
if(wxOfflineActivityRecord.getMerchantId() != null){
WxMerchant merchant = wxMerchantService.selectById(wxOfflineActivityRecord.getMerchantId());
wxOfflineActivityRecord.setBusinessId(merchant.getBusinessId());
}
Date now = new Date();
if(wxOfflineActivityRecord.getId() == null){
final IdWorker idWorker = IdWorker.get();
wxOfflineActivityRecord.setId(idWorker.nextId());
wxOfflineActivityRecord.setCreateDate(now);
wxOfflineActivityRecord.setUpdateDate(now);
wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode());
wxOfflineActivityRecordMapper.insert(wxOfflineActivityRecord);
}
else{
wxOfflineActivityRecord.setUpdateDate(now);
wxOfflineActivityRecordMapper.updateById(wxOfflineActivityRecord);
}
}

@Override
public WxOfflineActivityRecord getById(Long id, String tenantId) {
return wxOfflineActivityRecordMapper.selectById(id,tenantId);
}

@Override
public WxOfflineActivityRecord getInfoById(Long id, String tenantId) {
WxOfflineActivityRecord record = wxOfflineActivityRecordMapper.selectById(id, tenantId);
if(record != null){
WxMerchant merchant = wxMerchantService.selectById(record.getMerchantId());
record.setMerchantName(merchant.getName());
}
return record;
}

@Override
public Map<String, Integer> getStatistics(WxOfflineActivityRecord wxOfflineActivityRecord) {
List<OfflineActivityRecordStatistics> auditStatusStatistics = wxOfflineActivityRecordMapper.auditStatusStatistics(wxOfflineActivityRecord);
Map<String, Integer> result = new HashMap<>();
Integer audting = 0, audi_success = 0, audt_fail = 0;
for(OfflineActivityRecordStatistics statistics : auditStatusStatistics){
if(EnumOfflineActivityRecordStatus.AUDTING.getCode().equals(statistics.getAuditStatus())){
audting = statistics.getCount();
} else if (EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(statistics.getAuditStatus())) {
audi_success = statistics.getCount();
} else if (EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(statistics.getAuditStatus())) {
audt_fail = statistics.getCount();
}
}
result.put("audting",audting);
result.put("audi_success",audi_success);
result.put("audt_fail",audt_fail);
result.put("sum_count",audting+audi_success+audt_fail);
return result;
}

@Override
public void auditRecord(WxOfflineActivityRecord record, Long userId) {
Date now = new Date();
record.setUpdateDate(now);
record.setAuditTime(now);
record.setAuditBy(userId);
wxOfflineActivityRecordMapper.updateAuditStatus(record);
}
}





+ 35
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml View File

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

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityGrantAward">
<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="orderMoneySum" column="order_money_sum" jdbcType="INTEGER"/>
<result property="orderCount" column="order_count" jdbcType="INTEGER"/>
<result property="cusName" column="cus_name" jdbcType="VARCHAR"/>
<result property="cusPhone" column="cus_phone" jdbcType="VARCHAR"/>
<result property="realName" column="real_name" jdbcType="VARCHAR"/>
<result property="realCard" column="real_card" jdbcType="VARCHAR"/>
<result property="signImg" column="sign_img" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="BIGINT"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
<result property="lotteryNum" column="lottery_num" jdbcType="OTHER"/>
<result property="lotteryCount" column="lottery_count" jdbcType="INTEGER"/>
<result property="anniversaryLotteryNum" column="anniversary_lottery_num" jdbcType="OTHER"/>
</resultMap>

<sql id="allColumns">
id,tenant_id,parent_tenant_id,
activity_id,order_money_sum,order_count,
cus_name,cus_phone,real_name,
real_card,sign_img,create_by,
create_date,update_date,lottery_num,
lottery_count,anniversary_lottery_num
</sql>
</mapper>

+ 44
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml View File

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

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityGrantItem">
<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="grantId" column="grant_id" jdbcType="BIGINT"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="activityName" column="activity_name" jdbcType="VARCHAR"/>
<result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/>
<result property="activityItemName" column="activity_item_name" jdbcType="INTEGER"/>
<result property="activityItemType" column="activity_item_type" jdbcType="SMALLINT"/>
<result property="awardItamId" column="award_itam_id" jdbcType="BIGINT"/>
<result property="awardName" column="award_name" jdbcType="VARCHAR"/>
<result property="awardGrade" column="award_grade" jdbcType="INTEGER"/>
<result property="awardMinAmount" column="award_min_amount" jdbcType="INTEGER"/>
<result property="awardMaxAmount" column="award_max_amount" jdbcType="INTEGER"/>
<result property="cashBackRatio" column="cash_back_ratio" jdbcType="DECIMAL"/>
<result property="awardPrice" column="award_price" jdbcType="INTEGER"/>
<result property="awardCount" column="award_count" jdbcType="INTEGER"/>
<result property="moneyRule" column="money_rule" jdbcType="SMALLINT"/>
<result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/>
<result property="mallSharePrice" column="mall_share_price" jdbcType="INTEGER"/>
<result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/>
<result property="merchantSharePrice" column="merchant_share_price" 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,
grant_id,activity_id,activity_name,
activity_item_id,activity_item_name,activity_item_type,
award_itam_id,award_name,award_grade,
award_min_amount,award_max_amount,cash_back_ratio,
award_price,award_count,money_rule,
mall_share_rate,mall_share_price,merchant_share_rate,
merchant_share_price,create_date,update_date
</sql>
</mapper>

+ 39
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml View File

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

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityGrantSettlement">
<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="recordId" column="record_id" jdbcType="BIGINT"/>
<result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
<result property="orderMoney" column="order_money" jdbcType="INTEGER"/>
<result property="merchantId" column="merchant_id" jdbcType="BIGINT"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/>
<result property="awardItamId" column="award_itam_id" jdbcType="BIGINT"/>
<result property="grantId" column="grant_id" jdbcType="BIGINT"/>
<result property="grantPrice" column="grant_price" jdbcType="INTEGER"/>
<result property="mallSharePrice" column="mall_share_price" jdbcType="INTEGER"/>
<result property="merchantSharePrice" column="merchant_share_price" jdbcType="INTEGER"/>
<result property="orderRatio" column="order_ratio" jdbcType="DECIMAL"/>
<result property="realGrantPrice" column="real_grant_price" jdbcType="INTEGER"/>
<result property="realMallSharePrice" column="real_mall_share_price" jdbcType="DECIMAL"/>
<result property="realMerchantSharePrice" column="real_merchant_share_price" 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,
record_id,order_no,order_money,
merchant_id,activity_id,activity_item_id,
award_itam_id,grant_id,grant_price,
mall_share_price,merchant_share_price,order_ratio,
real_grant_price,real_mall_share_price,real_merchant_share_price,
create_date,update_date
</sql>
</mapper>

+ 26
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml View File

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

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityRecordGrant">
<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="recordId" column="record_id" jdbcType="BIGINT"/>
<result property="grantId" column="grant_id" jdbcType="BIGINT"/>
</resultMap>

<sql id="allColumns">
tenant_id,parent_tenant_id,activity_id,
record_id,grant_id
</sql>


<select id="selectGrantCount" parameterType="java.util.HashMap" resultType="java.lang.Integer">
select COUNT(1) from wx_offline_activity_record_grant
where activity_id = #{activityId} and record_id = #{recordId} and tenant_id=#{tenantId}
</select>

</mapper>

+ 185
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml View File

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

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityRecord">
<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="orderNo" column="order_no" jdbcType="VARCHAR"/>
<result property="orderMoney" column="order_money" jdbcType="INTEGER"/>
<result property="cusName" column="cus_name" jdbcType="VARCHAR"/>
<result property="realCusName" column="real_cus_name" jdbcType="VARCHAR"/>
<result property="cusPhone" column="cus_phone" jdbcType="VARCHAR"/>
<result property="cusAddress" column="cus_address" jdbcType="VARCHAR"/>
<result property="cusCard" column="cus_card" jdbcType="VARCHAR"/>
<result property="lotteryNum" column="lottery_num" jdbcType="VARCHAR"/>
<result property="lotteryCount" column="lottery_count" jdbcType="INTEGER"/>
<result property="anniversaryLotteryNum" column="anniversary_lottery_num" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="BIGINT"/>
<result property="merchantId" column="merchant_id" jdbcType="BIGINT"/>
<result property="businessId" column="business_id" jdbcType="INTEGER"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
<result property="auditRemark" column="audit_remark" jdbcType="VARCHAR"/>
<result property="auditStatus" column="audit_status" jdbcType="INTEGER"/>
<result property="auditBy" column="audit_by" jdbcType="BIGINT"/>
<result property="auditTime" column="audit_time" jdbcType="TIMESTAMP"/>
</resultMap>

<sql id="allColumns">
id,tenant_id,parent_tenant_id,
order_no,order_money,cus_name,
real_cus_name,cus_phone,cus_address,
cus_card,lottery_num,lottery_count,
anniversary_lottery_num,create_by,merchant_id,business_id,
create_date,update_date,audit_remark,
audit_status,audit_by,audit_time
</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 != merchantId ">
and `merchant_id` = #{merchantId}
</if>
<if test=" null != businessId ">
and `business_id` = #{businessId}
</if>

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

<if test=" null != cusPhone and cusPhone != '' ">
and `cus_phone` = #{cusPhone}
</if>

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


<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

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

<if test=" null != auditTimeBegin">
and `audit_time` &gt;= #{auditTimeBegin}
</if>

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

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

<if test=" null != merchantIdList ">
and merchant_id in
<foreach collection="merchantIdList" index="index" item="midItem" open="(" separator="," close=")">
#{midItem}
</foreach>
</if>

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


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

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

<select id="auditStatusStatistics" parameterType="com.iformall.domain.po.WxOfflineActivityRecord" resultType="com.iformall.domain.vo.OfflineActivityRecordStatistics">
SELECT audit_status as 'auditStatus',
count(1) as 'count',sum(order_money) as 'sumMoney'
FROM wx_offline_activity_record
where 1 = 1
<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 != merchantId ">
and `merchant_id` = #{merchantId}
</if>
<if test=" null != businessId ">
and `business_id` = #{businessId}
</if>
<if test=" null != cusPhone and cusPhone != '' ">
and `cus_phone` = #{cusPhone}
</if>

<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

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

GROUP BY audit_status
</select>

<update id="updateAuditStatus" parameterType="com.iformall.domain.po.WxOfflineActivityRecord">
update wx_offline_activity_record
set `audit_status` = #{auditStatus},

<if test=" null != lotteryNum and '' != lotteryNum">
`lottery_num` = #{lotteryNum},
</if>
<if test=" null != lotteryCount and '' != lotteryCount">
`lottery_Count` = #{lotteryCount},
</if>
<if test=" null != anniversaryLotteryNum and '' != anniversaryLotteryNum">
`anniversary_lottery_num` = #{anniversaryLotteryNum},
</if>

<if test=" null != auditRemark and '' != auditRemark">
`audit_remark` = #{auditRemark},
</if>
<if test=" null != auditTime">
`audit_time` = #{auditTime},
</if>
<if test=" null != auditBy">
`audit_by` = #{auditBy},
</if>
`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>

Loading…
Cancel
Save