Przeglądaj źródła

//OfflineActivity

release_toaliyun_real
xiaohu 1 rok temu
rodzic
commit
eb929e6597
24 zmienionych plików z 524 dodań i 34 usunięć
  1. +23
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java
  2. +15
    -2
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java
  3. +7
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java
  4. +9
    -2
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java
  5. +10
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java
  6. +12
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java
  7. +3
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java
  8. +3
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java
  9. +3
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java
  10. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java
  11. +2
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java
  12. +2
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantItemService.java
  13. +2
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java
  14. +2
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordGrantService.java
  15. +215
    -19
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java
  16. +51
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java
  17. +64
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java
  18. +2
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java
  19. +21
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java
  20. +2
    -2
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml
  21. +25
    -1
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml
  22. +25
    -3
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml
  23. +13
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml
  24. +11
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml

+ 23
- 1
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java Wyświetl plik

@@ -4,9 +4,11 @@ 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.*;
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.service.WxOfflineActivityGrantAwardService;
import com.iformall.service.WxOfflineActivityRecordService;
@@ -20,6 +22,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@@ -71,5 +74,24 @@ public class WxOfflineActivityGrantController extends BaseController {
return new ResultData(recordList);
}

@ApiOperation("活动发放")
@PostMapping("grantAward")
public ResultData grantAward(@RequestBody WxOfflineActivityGrantAward wxOfflineActivityGrantAward) {
if(wxOfflineActivityGrantAward.getActivityId() == null){
return new ResultData(Result.ERROR,"活动ID未空");
}
if(wxOfflineActivityGrantAward.getRecordIds() == null || wxOfflineActivityGrantAward.getRecordIds().isEmpty()){
return new ResultData(Result.ERROR,"请选择订单");
}
if(StringUtil.isBlank(wxOfflineActivityGrantAward.getSignImg())){
return new ResultData(Result.ERROR,"签名为空");
}
TenantEntity tenantEntity = getTenantInfo();
wxOfflineActivityGrantAward.updateTenantInfo(tenantEntity);
wxOfflineActivityGrantAward.setCreateBy(getUserId());
wxOfflineActivityGrantAwardService.grantAward(wxOfflineActivityGrantAward);
return new ResultData();
}


}

+ 15
- 2
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java Wyświetl plik

@@ -7,6 +7,8 @@ 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;
@@ -33,6 +35,9 @@ public class WxOfflineActivityGrantAward extends TenantEntity{
@TableField(value = "activity_id")
private Long activityId;

@TableField(exist = false)
private String activityName;

/**
* 订单总金额
*/
@@ -97,7 +102,7 @@ public class WxOfflineActivityGrantAward extends TenantEntity{
* 抽奖券编码
*/
@TableField(value = "lottery_num")
private Object lotteryNum;
private String lotteryNum;

/**
* 抽奖券数量
@@ -109,5 +114,13 @@ public class WxOfflineActivityGrantAward extends TenantEntity{
* 周年庆抽奖编码
*/
@TableField(value = "anniversary_lottery_num")
private Object anniversaryLotteryNum;
private String anniversaryLotteryNum;

@TableField(exist = false)
private List<Long> recordIds;
@TableField(exist = false)
private List<WxOfflineActivityRecord> recordList;

@TableField(exist = false)
private List<WxOfflineActivityItem> activityItemList;
}

+ 7
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java Wyświetl plik

@@ -56,7 +56,7 @@ public class WxOfflineActivityGrantItem extends TenantEntity {
* 活动项名称
*/
@TableField(value = "activity_item_name")
private Integer activityItemName;
private String activityItemName;

/**
* 活动项类型
@@ -94,6 +94,12 @@ public class WxOfflineActivityGrantItem extends TenantEntity {
@TableField(value = "award_max_amount")
private Integer awardMaxAmount;

/**
* 奖项计算规则
*/
@TableField(value = "awards_item_rule")
private Integer awardsItemRule;

/**
* 返现比例
*/


+ 9
- 2
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java Wyświetl plik

@@ -77,6 +77,13 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
@TableField(value = "grant_id")
private Long grantId;


/**
* 发放订单总金额
*/
@TableField(value = "grant_money")
private Integer grantMoney;

/**
* 发放总价值
*/
@@ -111,13 +118,13 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
* 实际商管承担总金额
*/
@TableField(value = "real_mall_share_price")
private BigDecimal realMallSharePrice;
private Integer realMallSharePrice;

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

/**
* 创建时间


+ 10
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java Wyświetl plik

@@ -51,7 +51,7 @@ public class WxOfflineActivityItem extends TenantEntity {
private Integer limitMoney;

/**
* 奖项
* 奖项价值(用来计算奖券数量)
*/
@TableField(value = "awards_item_price")
private Integer awardsItemPrice;
@@ -86,7 +86,16 @@ public class WxOfflineActivityItem extends TenantEntity {
@TableField(value = "update_date")
private Date updateDate;

/**
* 奖项集合
*/
@TableField(exist = false)
private List<WxOfflineActivityAwardsItem> activityAwardsItemList;

/**
* 发放奖项
*/
@TableField(exist = false)
private List<WxOfflineActivityGrantItem> activityGrantItemList;

}

+ 12
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java Wyświetl plik

@@ -5,6 +5,7 @@ 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 java.util.List;

@@ -159,6 +160,17 @@ public class WxOfflineActivityRecord extends TenantEntity {
@TableField(exist = false)
private Date auditTimeEnd;

@TableField(exist = false)
private Long sendByName;
@TableField(exist = false)
private Date sendTimeBegin;
@TableField(exist = false)
private Date sendTimeEnd;

@TableField(exist = false)
private Long activityId;

@TableField(exist = false)
private BigDecimal orderRatio;

}

+ 3
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java Wyświetl plik

@@ -4,6 +4,8 @@ import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxOfflineActivityGrantItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_item(线下活动发放奖励)】的数据库操作Mapper
@@ -12,6 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface WxOfflineActivityGrantItemMapper extends CommonMapper<WxOfflineActivityGrantItem, Long> {

void insertList(List<WxOfflineActivityGrantItem> rantItemList);
}




+ 3
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java Wyświetl plik

@@ -4,6 +4,8 @@ import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxOfflineActivityGrantSettlement;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_settlement(线下活动发放奖励结算)】的数据库操作Mapper
@@ -12,6 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface WxOfflineActivityGrantSettlementMapper extends CommonMapper<WxOfflineActivityGrantSettlement, Long> {

void insertList(List<WxOfflineActivityGrantSettlement> settlementList);
}




+ 3
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java Wyświetl plik

@@ -5,6 +5,8 @@ import com.iformall.domain.po.WxOfflineActivityRecordGrant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_record_grant(线下活动参与登记与发放关联表)】的数据库操作Mapper
@@ -15,6 +17,7 @@ public interface WxOfflineActivityRecordGrantMapper extends CommonMapper<WxOffli

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

void insertList(List<WxOfflineActivityRecordGrant> recordGrantList);
}




+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java Wyświetl plik

@@ -23,6 +23,8 @@ public interface WxOfflineActivityRecordMapper extends CommonMapper<WxOfflineAct
List<OfflineActivityRecordStatistics> auditStatusStatistics(WxOfflineActivityRecord wxOfflineActivityRecord);

void updateAuditStatus(WxOfflineActivityRecord record);

WxOfflineActivityRecord selectLimitOne(WxOfflineActivityRecord wxOfflineActivityRecord);
}




+ 2
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java Wyświetl plik

@@ -17,4 +17,6 @@ public interface WxOfflineActivityGrantAwardService {
Map<String, Object> getRecordStatistics(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord);

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

void grantAward(WxOfflineActivityGrantAward wxOfflineActivityGrantAward);
}

+ 2
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantItemService.java Wyświetl plik

@@ -1,5 +1,6 @@
package com.iformall.service;

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

@@ -10,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface WxOfflineActivityGrantItemService {

void insertFromGrantAward(WxOfflineActivityGrantAward wxOfflineActivityGrantAward);
}

+ 2
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java Wyświetl plik

@@ -1,5 +1,6 @@
package com.iformall.service;

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

@@ -10,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface WxOfflineActivityGrantSettlementService {

void settlement(WxOfflineActivityGrantAward wxOfflineActivityGrantAward);
}

+ 2
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordGrantService.java Wyświetl plik

@@ -1,5 +1,6 @@
package com.iformall.service;

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

@@ -10,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface WxOfflineActivityRecordGrantService{

void insertFromGrantAward(WxOfflineActivityGrantAward wxOfflineActivityGrantAward);
}

+ 215
- 19
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java Wyświetl plik

@@ -1,24 +1,29 @@
package com.iformall.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.OfflineActivityRecordStatistics;
import com.iformall.enums.EnumOfflineActivityAwardsRule;
import com.iformall.enums.EnumOfflineActivityRecordStatus;
import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.enums.EnumOfflineActivityType;
import com.iformall.exception.MallinkException;
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.service.*;
import com.iformall.mapper.WxOfflineActivityGrantAwardMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
* @author xiaohu
@@ -40,6 +45,18 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
@Autowired
WxOfflineActivityRecordGrantMapper wxOfflineActivityRecordGrantMapper;

@Autowired
WxOfflineActivityGrantItemService wxOfflineActivityGrantItemService;

@Autowired
WxOfflineActivityRecordGrantService wxOfflineActivityRecordGrantService;

@Autowired
WxOfflineActivityItemService wxOfflineActivityItemService;

@Autowired
WxOfflineActivityGrantSettlementService wxOfflineActivityGrantSettlementService;

@Autowired
WxMerchantService wxMerchantService;
@Autowired
@@ -53,20 +70,30 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
}
wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime());
wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime());
List<OfflineActivityRecordStatistics> recordStatistics = wxOfflineActivityRecordMapper.auditStatusStatistics(wxOfflineActivityRecord);

WxOfflineActivityRecord limitOne = wxOfflineActivityRecordMapper.selectLimitOne(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();
if (limitOne == null) {
result.put("cus_name","查无此人");
result.put("cus_phone",wxOfflineActivityRecord.getCusPhone());
}else{
result.put("cus_name",limitOne.getCusName());
result.put("cus_phone",limitOne.getCusPhone());

List<OfflineActivityRecordStatistics> recordStatistics = wxOfflineActivityRecordMapper.auditStatusStatistics(wxOfflineActivityRecord);

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);
@@ -84,11 +111,11 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime());
wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime());
List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordMapper.findList(wxOfflineActivityRecord);
handleRecordList(wxOfflineActivityRecord,activity,recordList);
handlerRecordList(wxOfflineActivityRecord,activity,recordList);
return recordList;
}

private void handleRecordList(TenantEntity tenantEntity, WxOfflineActivity activity, List<WxOfflineActivityRecord> recordList) {
private void handlerRecordList(TenantEntity tenantEntity, WxOfflineActivity activity, List<WxOfflineActivityRecord> recordList) {
if (recordList == null || recordList.isEmpty()) {
return;
}
@@ -112,6 +139,175 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity

}
}

@Override
@Transactional(rollbackFor = Exception.class)
public void grantAward(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) {

WxOfflineActivity activity = wxOfflineActivityMapper.selectById(wxOfflineActivityGrantAward.getActivityId(), wxOfflineActivityGrantAward.getTenantId());
if(activity == null){
throw new MallinkException(Result.ERROR, "未查询到活动");
}
if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(activity.getStatus())){
throw new MallinkException(Result.ERROR, "请检查活动状态");
}

handlerGrantData(activity,wxOfflineActivityGrantAward);
Date now = new Date();
final IdWorker idWorker = IdWorker.get();
wxOfflineActivityGrantAward.setId(idWorker.nextId());
wxOfflineActivityGrantAward.setCreateDate(now);
wxOfflineActivityGrantAward.setUpdateDate(now);
wxOfflineActivityGrantAwardMapper.insert(wxOfflineActivityGrantAward);

wxOfflineActivityRecordGrantService.insertFromGrantAward(wxOfflineActivityGrantAward);

//处理奖项
handlerGrantItem(activity,wxOfflineActivityGrantAward);
wxOfflineActivityGrantItemService.insertFromGrantAward(wxOfflineActivityGrantAward);

//结算
wxOfflineActivityGrantSettlementService.settlement(wxOfflineActivityGrantAward);
}

private void handlerGrantData(WxOfflineActivity activity,WxOfflineActivityGrantAward wxOfflineActivityGrantAward){

List<WxOfflineActivityRecord> wxOfflineActivityRecords = wxOfflineActivityRecordMapper.selectBatchIds(wxOfflineActivityGrantAward.getRecordIds());
if (wxOfflineActivityRecords == null || wxOfflineActivityRecords.isEmpty()) {
throw new MallinkException(Result.ERROR, "未查询到活动订单");
}
if(wxOfflineActivityRecords.stream().map(WxOfflineActivityRecord::getCusPhone).distinct().count() != 1){
throw new MallinkException(Result.ERROR, "请检查活动订单用户是否为同一人");
}
for (WxOfflineActivityRecord record : wxOfflineActivityRecords) {
if(!EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(record.getAuditStatus())){
throw new MallinkException(Result.ERROR, "请检查活动订单审核状态");
}
if(record.getCreateDate().before(activity.getStartTime()) || record.getCreateDate().after(activity.getEndTime())){
throw new MallinkException(Result.ERROR, "请检查活动时间");
}
}
wxOfflineActivityGrantAward.setRecordList(wxOfflineActivityRecords);
wxOfflineActivityGrantAward.setActivityName(activity.getName());
wxOfflineActivityGrantAward.setCusName(wxOfflineActivityRecords.get(0).getCusName());
wxOfflineActivityGrantAward.setCusPhone(wxOfflineActivityRecords.get(0).getCusPhone());
wxOfflineActivityGrantAward.setOrderCount(wxOfflineActivityRecords.size());
wxOfflineActivityGrantAward.setOrderMoneySum(wxOfflineActivityRecords.stream().mapToInt(WxOfflineActivityRecord::getOrderMoney).sum());
}

private void handlerGrantItem(WxOfflineActivity activity, WxOfflineActivityGrantAward wxOfflineActivityGrantAward){

List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(activity.getId(), activity.getTenantId());
Map<Long, WxOfflineActivityItem> activityItemMap = activityItemList.stream().collect(Collectors.toMap(WxOfflineActivityItem::getId, Function.identity()));

for (WxOfflineActivityItem grantActivityItem : wxOfflineActivityGrantAward.getActivityItemList()) {
if(grantActivityItem.getId() == null){
throw new MallinkException(Result.ERROR, "请检查活动项参数");
}
WxOfflineActivityItem activityItem = activityItemMap.get(grantActivityItem.getId());
if(activityItem == null){
throw new MallinkException(Result.ERROR, "请检查活动项参数");
}
List<WxOfflineActivityGrantItem> activityGrantItemList = grantActivityItem.getActivityGrantItemList();
if(activityGrantItemList == null || activityGrantItemList.isEmpty()){
continue;
}

Map<Long, WxOfflineActivityAwardsItem> awardsItemMap = activityItem.getActivityAwardsItemList().stream().collect(Collectors.toMap(WxOfflineActivityAwardsItem::getId, Function.identity()));

for (WxOfflineActivityGrantItem grantGrantItem : activityGrantItemList) {
if(grantGrantItem.getAwardCount() == null){
grantGrantItem.setAwardCount(1);
}
}

if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){

if(wxOfflineActivityGrantAward.getOrderMoneySum() < activityItem.getLimitMoney()){
throw new MallinkException(Result.ERROR, "活动项"+activityItem.getName()+"金额不满足");
}
//奖项限制数量
int limitCount = wxOfflineActivityGrantAward.getOrderMoneySum() / activityItem.getAwardsItemPrice();
if(activityItem.getAwardsItemLimit() < limitCount){
limitCount = activityItem.getAwardsItemLimit();
}
if(activityGrantItemList.stream().mapToInt(WxOfflineActivityGrantItem::getAwardCount).sum()>limitCount){
throw new MallinkException(Result.ERROR, "活动项"+activityItem.getName()+"奖券超过限制");
}


for (WxOfflineActivityGrantItem grantGrantItem : activityGrantItemList) {
if(grantGrantItem.getAwardItamId() == null){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数");
}
WxOfflineActivityAwardsItem awardsItem = awardsItemMap.get(grantGrantItem.getAwardItamId());
if(awardsItem == null){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数");
}

handlerGrantItem(grantGrantItem,activity,activityItem,awardsItem);
}

}
else if(EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())){
if(activityGrantItemList.size() != 1){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数");
}
WxOfflineActivityGrantItem grantGrantItem = activityGrantItemList.get(0);
if(grantGrantItem.getAwardItamId() == null){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数");
}
WxOfflineActivityAwardsItem awardsItem = awardsItemMap.get(grantGrantItem.getAwardItamId());
if(awardsItem == null){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数");
}
if(wxOfflineActivityGrantAward.getOrderMoneySum() > awardsItem.getMaxAmount()
|| wxOfflineActivityGrantAward.getOrderMoneySum() < awardsItem.getMinAmount()){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数(金额不在范围类)");
}

handlerGrantItem(grantGrantItem,activity,activityItem,awardsItem);

}
else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) {
if(activityGrantItemList.size() != 1){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数");
}
WxOfflineActivityGrantItem grantGrantItem = activityGrantItemList.get(0);
if(grantGrantItem.getAwardItamId() == null){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数");
}
WxOfflineActivityAwardsItem awardsItem = awardsItemMap.get(grantGrantItem.getAwardItamId());
if(awardsItem == null){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数");
}

handlerGrantItem(grantGrantItem,activity,activityItem,awardsItem);

}

}
}

private void handlerGrantItem(WxOfflineActivityGrantItem grantGrantItem,WxOfflineActivity activity,WxOfflineActivityItem activityItem,WxOfflineActivityAwardsItem awardsItem){
// grantGrantItem.setGrantId(wxOfflineActivityGrantAward.getId());
grantGrantItem.setActivityId(activity.getId());
grantGrantItem.setActivityName(activity.getName());
grantGrantItem.setActivityItemId(activityItem.getId());
grantGrantItem.setActivityItemName(activityItem.getName());
grantGrantItem.setActivityItemType(activityItem.getType());
grantGrantItem.setAwardItamId(awardsItem.getId());
grantGrantItem.setAwardName(awardsItem.getName());
grantGrantItem.setAwardGrade(awardsItem.getGrade());
grantGrantItem.setAwardMinAmount(awardsItem.getMinAmount());
grantGrantItem.setAwardMaxAmount(awardsItem.getMaxAmount());
grantGrantItem.setAwardsItemRule(activityItem.getAwardsItemRule());
grantGrantItem.setCashBackRatio(awardsItem.getCashBackRatio());
grantGrantItem.setAwardPrice(awardsItem.getPrice()*grantGrantItem.getAwardCount());
grantGrantItem.setMoneyRule(awardsItem.getMoneyRule());
grantGrantItem.setMallShareRate(awardsItem.getMallShareRate());
grantGrantItem.setMerchantShareRate(awardsItem.getMerchantShareRate());
}
}




+ 51
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java Wyświetl plik

@@ -1,11 +1,23 @@
package com.iformall.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxOfflineActivityGrantAward;
import com.iformall.domain.po.WxOfflineActivityGrantItem;
import com.iformall.domain.po.WxOfflineActivityItem;
import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule;
import com.iformall.enums.EnumOfflineActivityAwardsRule;
import com.iformall.enums.EnumOfflineActivityType;
import com.iformall.service.WxOfflineActivityGrantItemService;
import com.iformall.mapper.WxOfflineActivityGrantItemMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_item(线下活动发放奖励)】的数据库操作Service实现
@@ -14,6 +26,45 @@ import org.springframework.stereotype.Service;
@Service
public class WxOfflineActivityGrantItemServiceImpl implements WxOfflineActivityGrantItemService{

@Autowired
private WxOfflineActivityGrantItemMapper wxOfflineActivityGrantItemMapper;

@Override
public void insertFromGrantAward(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) {
List<WxOfflineActivityGrantItem> rantItemList = new ArrayList<>();
final IdWorker idWorker = IdWorker.get();
Date now = new Date();
for (WxOfflineActivityItem activityItem : wxOfflineActivityGrantAward.getActivityItemList()) {
if(activityItem.getActivityGrantItemList() == null){
continue;
}
for (WxOfflineActivityGrantItem grantGrantItem : activityItem.getActivityGrantItemList()) {
grantGrantItem.setGrantId(wxOfflineActivityGrantAward.getId());
grantGrantItem.setId(idWorker.nextId());
grantGrantItem.updateTenantInfo(wxOfflineActivityGrantAward);
grantGrantItem.setCreateDate(now);
grantGrantItem.setUpdateDate(now);
if(EnumOfflineActivityType.CASHBACK.getCode().equals(grantGrantItem.getActivityItemType())){
BigDecimal awardPrice = new BigDecimal(wxOfflineActivityGrantAward.getOrderMoneySum()).multiply(grantGrantItem.getCashBackRatio());
if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(grantGrantItem.getAwardsItemRule())){
grantGrantItem.setAwardPrice(awardPrice.setScale(0, BigDecimal.ROUND_HALF_UP).intValue());
} else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(grantGrantItem.getAwardsItemRule())) {
int awardPriceYuan = awardPrice.divide(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
grantGrantItem.setAwardPrice(awardPriceYuan*100);
}else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(grantGrantItem.getAwardsItemRule())){
int awardPriceTen = awardPrice.divide(new BigDecimal(1000)).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
grantGrantItem.setAwardPrice(awardPriceTen*1000);
}
}
grantGrantItem.setMallSharePrice(new BigDecimal(grantGrantItem.getAwardPrice()).multiply(grantGrantItem.getMallShareRate()).setScale(0, BigDecimal.ROUND_HALF_UP).intValue());
grantGrantItem.setMerchantSharePrice(grantGrantItem.getAwardPrice() - grantGrantItem.getMallSharePrice());
rantItemList.add(grantGrantItem);
}
}
wxOfflineActivityGrantItemMapper.insertList(rantItemList);

}

}




+ 64
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java Wyświetl plik

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

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.domain.po.WxOfflineActivityGrantSettlement;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.*;
import com.iformall.service.WxOfflineActivityGrantSettlementService;
import com.iformall.mapper.WxOfflineActivityGrantSettlementMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_grant_settlement(线下活动发放奖励结算)】的数据库操作Service实现
@@ -14,6 +24,59 @@ import org.springframework.stereotype.Service;
@Service
public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineActivityGrantSettlementService{

@Autowired
private WxOfflineActivityGrantSettlementMapper wxOfflineActivityGrantSettlementMapper;

@Override
public void settlement(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) {
List<WxOfflineActivityGrantSettlement> settlementList = new ArrayList<>();
final IdWorker idWorker = IdWorker.get();
Date now = new Date();
//获取订单占比(占比最少的订单用减法,尽量减少误差)
List<WxOfflineActivityRecord> recordDescList = wxOfflineActivityGrantAward.getRecordList().stream().sorted(Comparator.comparingInt(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList());
int size = recordDescList.size() - 1;
BigDecimal lastRatio = BigDecimal.ONE;
for(int i=0; i<size; i++){
WxOfflineActivityRecord record = recordDescList.get(i);
BigDecimal orderRatio = new BigDecimal(record.getOrderMoney()).divide(new BigDecimal(wxOfflineActivityGrantAward.getOrderMoneySum()), 2, RoundingMode.HALF_UP);
record.setOrderRatio(orderRatio);
lastRatio = lastRatio.subtract(orderRatio);
}
recordDescList.get(size).setOrderRatio(lastRatio);

for (WxOfflineActivityItem activityItem : wxOfflineActivityGrantAward.getActivityItemList()) {
if(activityItem.getActivityGrantItemList() == null){
continue;
}
for (WxOfflineActivityGrantItem wxOfflineActivityGrantItem : activityItem.getActivityGrantItemList()) {
for (WxOfflineActivityRecord record : recordDescList){
WxOfflineActivityGrantSettlement settlement = new WxOfflineActivityGrantSettlement();
settlement.setId(idWorker.nextId());
settlement.updateTenantInfo(wxOfflineActivityGrantItem);

settlement.setRecordId(record.getId());
settlement.setOrderNo(record.getOrderNo());
settlement.setOrderMoney(record.getOrderMoney());
settlement.setMerchantId(record.getMerchantId());

settlement.setActivityId(wxOfflineActivityGrantItem.getActivityId());
settlement.setActivityItemId(wxOfflineActivityGrantItem.getActivityItemId());
settlement.setAwardItamId(wxOfflineActivityGrantItem.getAwardItamId());
settlement.setGrantId(wxOfflineActivityGrantItem.getGrantId());
settlement.setGrantMoney(wxOfflineActivityGrantAward.getOrderMoneySum());
settlement.setGrantPrice(wxOfflineActivityGrantItem.getAwardPrice());
settlement.setMallSharePrice(wxOfflineActivityGrantItem.getMallSharePrice());
settlement.setMerchantSharePrice(wxOfflineActivityGrantItem.getMerchantSharePrice());
//todo

settlementList.add(settlement);
}
}
}

wxOfflineActivityGrantSettlementMapper.insertList(settlementList);
}
}




+ 2
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java Wyświetl plik

@@ -36,9 +36,10 @@ public class WxOfflineActivityItemServiceImpl implements WxOfflineActivityItemSe
activityItemDel.setActivityId(wxOfflineActivity.getId());
wxOfflineActivityItemMapper.delete(activityItemDel);

final IdWorker idWorker = IdWorker.get();

for (WxOfflineActivityItem activityItem : activityItemList) {
if(activityItem.getId() == null){
final IdWorker idWorker = IdWorker.get();
activityItem.setId(idWorker.nextId());
}



+ 21
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java Wyświetl plik

@@ -1,11 +1,16 @@
package com.iformall.service.impl;

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

import java.util.ArrayList;
import java.util.List;

/**
* @author xiaohu
* @description 针对表【wx_offline_activity_record_grant(线下活动参与登记与发放关联表)】的数据库操作Service实现
@@ -14,6 +19,22 @@ import org.springframework.stereotype.Service;
@Service
public class WxOfflineActivityRecordGrantServiceImpl implements WxOfflineActivityRecordGrantService{

@Autowired
private WxOfflineActivityRecordGrantMapper wxOfflineActivityRecordGrantMapper;

@Override
public void insertFromGrantAward(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) {
List<WxOfflineActivityRecordGrant> recordGrantList = new ArrayList<>();
wxOfflineActivityGrantAward.getRecordIds().forEach(recordId ->{
WxOfflineActivityRecordGrant recordGrant = new WxOfflineActivityRecordGrant();
recordGrant.updateTenantInfo(wxOfflineActivityGrantAward);
recordGrant.setActivityId(wxOfflineActivityGrantAward.getActivityId());
recordGrant.setRecordId(recordId);
recordGrant.setGrantId(wxOfflineActivityGrantAward.getId());
});

wxOfflineActivityRecordGrantMapper.insertList(recordGrantList);
}
}




+ 2
- 2
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml Wyświetl plik

@@ -19,9 +19,9 @@
<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="lotteryNum" column="lottery_num" jdbcType="VARCHAR"/>
<result property="lotteryCount" column="lottery_count" jdbcType="INTEGER"/>
<result property="anniversaryLotteryNum" column="anniversary_lottery_num" jdbcType="OTHER"/>
<result property="anniversaryLotteryNum" column="anniversary_lottery_num" jdbcType="VARCHAR"/>
</resultMap>

<sql id="allColumns">


+ 25
- 1
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml Wyświetl plik

@@ -19,6 +19,7 @@
<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="awardsItemRule" column="awards_item_rule" 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"/>
@@ -36,9 +37,32 @@
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_min_amount,award_max_amount,awards_item_rule,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>

<insert id="insertList" parameterType="java.util.List">
insert into wx_offline_activity_grant_item
(`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`,`awards_item_rule`,`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`)
values
<foreach collection="addList" item="item" index="index" separator=",">
(#{item.id,jdbcType=BIGINT},#{item.tenantId,jdbcType=VARCHAR},#{item.parentTenantId,jdbcType=VARCHAR},
#{item.grantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityName,jdbcType=VARCHAR},
#{item.activityItemId,jdbcType=BIGINT},#{item.activityItemName,jdbcType=VARCHAR},#{item.activityItemType,jdbcType=INTEGER},
#{item.awardItamId,jdbcType=BIGINT},#{item.awardName,jdbcType=VARCHAR},#{item.awardGrade,jdbcType=INTEGER},
#{item.awardMinAmount,jdbcType=INTEGER},#{item.awardMaxAmount,jdbcType=INTEGER},#{item.awardsItemRule,jdbcType=INTEGER},#{item.cashBackRatio,jdbcType=DECIMAL},
#{item.awardPrice,jdbcType=INTEGER},#{item.awardCount,jdbcType=INTEGER},#{item.moneyRule,jdbcType=INTEGER},
#{item.mallShareRate,jdbcType=DECIMAL},#{item.mallSharePrice,jdbcType=INTEGER},#{item.merchantShareRate,jdbcType=DECIMAL},
#{item.merchantSharePrice,jdbcType=INTEGER},#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP})
</foreach>
</insert>
</mapper>

+ 25
- 3
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml Wyświetl plik

@@ -16,13 +16,14 @@
<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="grantMoney" column="grant_money" jdbcType="INTEGER"/>
<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="realMallSharePrice" column="real_mall_share_price" jdbcType="INTEGER"/>
<result property="realMerchantSharePrice" column="real_merchant_share_price" jdbcType="INTEGER"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
</resultMap>
@@ -31,9 +32,30 @@
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,
award_itam_id,grant_id,grant_money,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>

<insert id="insertList" parameterType="java.util.List">
insert into wx_offline_activity_grant_item
(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_money,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)
values
<foreach collection="addList" item="item" index="index" separator=",">
(#{item.id,jdbcType=BIGINT},#{item.tenantId,jdbcType=VARCHAR},#{item.parentTenantId,jdbcType=VARCHAR},
#{item.recordId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},#{item.orderMoney,jdbcType=INTEGER},
#{item.merchantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityItemId,jdbcType=BIGINT},
#{item.awardItamId,jdbcType=BIGINT},#{item.grantId,jdbcType=BIGINT},#{item.grantMoney,jdbcType=INTEGER},#{item.grantPrice,jdbcType=INTEGER},
#{item.mallSharePrice,jdbcType=INTEGER},#{item.merchantSharePrice,jdbcType=INTEGER},#{item.orderRatio,jdbcType=DECIMAL},
#{item.realGrantPrice,jdbcType=INTEGER},#{item.realMallSharePrice,jdbcType=INTEGER},#{item.realMerchantSharePrice,jdbcType=INTEGER},
#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP})
</foreach>
</insert>
</mapper>

+ 13
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml Wyświetl plik

@@ -23,4 +23,17 @@
where activity_id = #{activityId} and record_id = #{recordId} and tenant_id=#{tenantId}
</select>

<insert id="insertList" parameterType="java.util.List">
insert into wx_offline_activity_record_grant
(`tenant_id`,`parent_tenant_id`,`activity_id`,`record_id`,`grant_id`)
values
<foreach collection="addList" item="item" index="index" separator=",">
(#{item.tenantId,jdbcType=VARCHAR},
#{item.parentTenantId,jdbcType=VARCHAR},
#{item.activityId,jdbcType=BIGINT},
#{item.recordId,jdbcType=BIGINT},
#{item.grantId,jdbcType=BIGINT})
</foreach>
</insert>

</mapper>

+ 11
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml Wyświetl plik

@@ -113,6 +113,13 @@
<include refid="dynamicWhereConditions" />
</select>


<select id="selectLimitOne" parameterType="com.iformall.domain.po.WxOfflineActivityRecord" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_offline_activity_record
<include refid="dynamicWhereConditions" />
limit 1
</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>
@@ -146,6 +153,10 @@
and `create_date` &lt;= #{createDateEnd}
</if>

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

GROUP BY audit_status
</select>



Ładowanie…
Anuluj
Zapisz