Parcourir la source

//OfflineActivity

release_toaliyun_real
xiaohu il y a 1 an
Parent
révision
0c628f3114
23 fichiers modifiés avec 350 ajouts et 96 suppressions
  1. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java
  2. +18
    -4
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivitySettlementController.java
  3. +29
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java
  5. +25
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java
  6. +15
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java
  7. +3
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java
  8. +4
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java
  9. +2
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java
  10. +1
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java
  11. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java
  12. +4
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java
  13. +1
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java
  14. +9
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java
  15. +13
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java
  16. +2
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java
  17. +47
    -10
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java
  18. +49
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java
  19. +28
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml
  20. +53
    -38
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml
  21. +2
    -2
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml
  22. +1
    -1
      mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml
  23. +39
    -30
      mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml

+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java Voir le fichier

@@ -58,7 +58,7 @@ public class WxOfflineActivityGrantController extends BaseController {
@ApiOperation("参加活动用户订单列表") @ApiOperation("参加活动用户订单列表")
@GetMapping("recordList") @GetMapping("recordList")
@ApiImplicitParams({}) @ApiImplicitParams({})
public ResultData list(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) {
public ResultData recordList(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) {
if(wxOfflineActivityRecord.getActivityId() == null){ if(wxOfflineActivityRecord.getActivityId() == null){
return new ResultData(Result.ERROR,"请选择活动"); return new ResultData(Result.ERROR,"请选择活动");
} }


+ 18
- 4
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivitySettlementController.java Voir le fichier

@@ -4,13 +4,11 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.Result; import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.WxOfflineActivity;
import com.iformall.domain.po.WxOfflineActivityGrantAward;
import com.iformall.domain.po.WxOfflineActivityGrantSettlement;
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.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.OfflineActivitySettlement; import com.iformall.domain.vo.OfflineActivitySettlement;
import com.iformall.exception.MallinkException;
import com.iformall.service.WxOfflineActivityGrantAwardService; import com.iformall.service.WxOfflineActivityGrantAwardService;
import com.iformall.service.WxOfflineActivityGrantSettlementService; import com.iformall.service.WxOfflineActivityGrantSettlementService;
import com.iformall.service.WxOfflineActivityRecordService; import com.iformall.service.WxOfflineActivityRecordService;
@@ -24,6 +22,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;


@@ -117,4 +117,18 @@ public class WxOfflineActivitySettlementController extends BaseController {
return new ResultData(recordList); return new ResultData(recordList);
} }


@ApiOperation("单个活动单个门店结算记录导出")
@GetMapping("/merchantSettlementExport")
public void exportData(@ModelAttribute WxOfflineActivityGrantSettlement grantSettlement, HttpServletRequest request, HttpServletResponse response) {
if(grantSettlement.getActivityId() == null){
throw new MallinkException(Result.ERROR,"请选择活动");
}
if(grantSettlement.getMerchantId() == null){
throw new MallinkException(Result.ERROR,"请选择门店");
}
TenantEntity tenantInfo = getTenantInfo();
grantSettlement.updateTenantInfo(tenantInfo);
wxOfflineActivityGrantSettlementService.exportData(request,response,grantSettlement);
}

} }

+ 29
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java Voir le fichier

@@ -85,12 +85,40 @@ public class WxOfflineActivity extends TenantEntity {
@TableField(exist = false) @TableField(exist = false)
private Integer validStatus; private Integer validStatus;


/**
* 参与订单数量
*/
@TableField(exist = false)
private Integer recordCount;
/**
* 参与待审核订单数量
*/
@TableField(exist = false)
private Integer waitRecordCount;
/**
* 参与已审核订单数量
*/
@TableField(exist = false)
private Integer successRecordCount;


/** /**
* 参与订单数
* 参与商户数量
*/
@TableField(exist = false)
private Integer mershantCount;

/**
* 发放商户数量
*/ */
@TableField(exist = false) @TableField(exist = false)
private Integer grantMershantCount; private Integer grantMershantCount;

/**
* 发放奖项数量
*/
@TableField(exist = false)
private Integer grantItemCount;

/** /**
* 发放订单数 * 发放订单数
*/ */


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java Voir le fichier

@@ -85,6 +85,8 @@ public class WxOfflineActivityGrantAward extends TenantEntity{
*/ */
@TableField(value = "create_by") @TableField(value = "create_by")
private Long createBy; private Long createBy;
@TableField(exist = false)
private List<Long> createByIds;


/** /**
* 创建时间 * 创建时间


+ 25
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java Voir le fichier

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


import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@@ -39,6 +40,7 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
/** /**
* 订单编号 * 订单编号
*/ */
@Excel(name = "订单号", width = 20, orderNum = "1")
@TableField(value = "order_no") @TableField(value = "order_no")
private String orderNo; private String orderNo;


@@ -47,6 +49,12 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
*/ */
@TableField(value = "order_money") @TableField(value = "order_money")
private Integer orderMoney; private Integer orderMoney;
@Excel(name = "订单金额(元)", width = 20, orderNum = "3")
@TableField(exist = false)
private String orderMoneyStr;
public String getOrderMoneyStr() {
return orderMoney != null ? new BigDecimal(orderMoney).divide(new BigDecimal(100)).toPlainString(): orderMoneyStr;
}


/** /**
* 商户id * 商户id
@@ -111,22 +119,39 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
*/ */
@TableField(value = "real_grant_price") @TableField(value = "real_grant_price")
private Integer realGrantPrice; private Integer realGrantPrice;
@TableField(exist = false)
@Excel(name = "发放价值(元)", width = 20, orderNum = "4")
private String realGrantPriceStr;
public String getRealGrantPriceStr() {
return realGrantPrice != null ? new BigDecimal(realGrantPrice).divide(new BigDecimal(100)).toPlainString(): realGrantPriceStr;
}


/** /**
* 实际商管承担总金额 * 实际商管承担总金额
*/ */
@TableField(value = "real_mall_share_price") @TableField(value = "real_mall_share_price")
private Integer realMallSharePrice; private Integer realMallSharePrice;
@Excel(name = "商管承担金额(元)", width = 20, orderNum = "5")
private String realMallSharePriceStr;
public String getRealMallSharePriceStr() {
return realMallSharePrice != null ? new BigDecimal(realMallSharePrice).divide(new BigDecimal(100)).toPlainString(): realMallSharePriceStr;
}


/** /**
* 实际商户承担总金额 * 实际商户承担总金额
*/ */
@TableField(value = "real_merchant_share_price") @TableField(value = "real_merchant_share_price")
private Integer realMerchantSharePrice; private Integer realMerchantSharePrice;
@Excel(name = "商户承担金额(元)", width = 20, orderNum = "6")
private String realMerchantSharePriceStr;
public String getRealMerchantSharePriceStr() {
return realMerchantSharePrice != null ? new BigDecimal(realMerchantSharePrice).divide(new BigDecimal(100)).toPlainString(): realMerchantSharePriceStr;
}


/** /**
* 创建时间 * 创建时间
*/ */
@Excel(name = "发放时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "2")
@TableField(value = "create_date") @TableField(value = "create_date")
private Date createDate; private Date createDate;




+ 15
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java Voir le fichier

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


import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@@ -33,6 +34,7 @@ public class WxOfflineActivityRecord extends TenantEntity {
/** /**
* 订单号 * 订单号
*/ */
@Excel(name = "订单号", width = 20, orderNum = "1")
@TableField(value = "order_no") @TableField(value = "order_no")
private String orderNo; private String orderNo;


@@ -41,10 +43,17 @@ public class WxOfflineActivityRecord extends TenantEntity {
*/ */
@TableField(value = "order_money") @TableField(value = "order_money")
private Integer orderMoney; private Integer orderMoney;
@Excel(name = "订单金额(元)", width = 20, orderNum = "7")
@TableField(exist = false)
private String orderMoneyStr;
public String getOrderMoneyStr() {
return orderMoney != null ? new BigDecimal(orderMoney).divide(new BigDecimal(100)).toPlainString(): orderMoneyStr;
}


/** /**
* 客户姓名 * 客户姓名
*/ */
@Excel(name = "客户姓名", width = 20, orderNum = "3")
@TableField(value = "cus_name") @TableField(value = "cus_name")
private String cusName; private String cusName;


@@ -57,12 +66,14 @@ public class WxOfflineActivityRecord extends TenantEntity {
/** /**
* 客户电话 * 客户电话
*/ */
@Excel(name = "客户电话", width = 20, orderNum = "4")
@TableField(value = "cus_phone") @TableField(value = "cus_phone")
private String cusPhone; private String cusPhone;


/** /**
* 客户地址 * 客户地址
*/ */
@Excel(name = "客户地址", width = 20, orderNum = "5")
@TableField(value = "cus_address") @TableField(value = "cus_address")
private String cusAddress; private String cusAddress;


@@ -102,6 +113,7 @@ public class WxOfflineActivityRecord extends TenantEntity {
@TableField(value = "merchant_id") @TableField(value = "merchant_id")
private Long merchantId; private Long merchantId;


@Excel(name = "商户名称", width = 20, orderNum = "6")
@TableField(exist = false) @TableField(exist = false)
private String merchantName; private String merchantName;


@@ -116,6 +128,7 @@ public class WxOfflineActivityRecord extends TenantEntity {
/** /**
* 创建时间 * 创建时间
*/ */
@Excel(name = "提交时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "2")
@TableField(value = "create_date") @TableField(value = "create_date")
private Date createDate; private Date createDate;


@@ -139,6 +152,7 @@ public class WxOfflineActivityRecord extends TenantEntity {
/** /**
* 审批状态 * 审批状态
*/ */
@Excel(name = "审核状态", width = 20, orderNum = "8", replace = {"审核中_0", "已审批_1", "已驳回_2", "已发奖_10"})
@TableField(value = "audit_status") @TableField(value = "audit_status")
private Integer auditStatus; private Integer auditStatus;


@@ -163,7 +177,7 @@ public class WxOfflineActivityRecord extends TenantEntity {
private Date auditTimeEnd; private Date auditTimeEnd;


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


+ 3
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java Voir le fichier

@@ -3,6 +3,8 @@ package com.iformall.mapper;
import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxOfflineActivityGrantAward; import com.iformall.domain.po.WxOfflineActivityGrantAward;


import java.util.List;

/** /**
* @author xiaohu * @author xiaohu
* @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Mapper * @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Mapper
@@ -13,6 +15,7 @@ public interface WxOfflineActivityGrantAwardMapper extends CommonMapper<WxOfflin


Integer getCusCount(WxOfflineActivityGrantAward grantAwardQ); Integer getCusCount(WxOfflineActivityGrantAward grantAwardQ);


List<Long> getRecordIdList(WxOfflineActivityGrantAward grantAwardQ);
} }






+ 4
- 1
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java Voir le fichier

@@ -3,6 +3,7 @@ package com.iformall.mapper;
import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxOfflineActivityGrantItem; import com.iformall.domain.po.WxOfflineActivityGrantItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;


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


@@ -14,7 +15,9 @@ import java.util.List;
*/ */
public interface WxOfflineActivityGrantItemMapper extends CommonMapper<WxOfflineActivityGrantItem, Long> { public interface WxOfflineActivityGrantItemMapper extends CommonMapper<WxOfflineActivityGrantItem, Long> {


void insertList(List<WxOfflineActivityGrantItem> rantItemList);
void insertList(@Param("grantItemList")List<WxOfflineActivityGrantItem> grantItemList);

Integer getSumAwardCount(WxOfflineActivityGrantItem grantItemQ);
} }






+ 2
- 1
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java Voir le fichier

@@ -5,6 +5,7 @@ import com.iformall.domain.po.WxOfflineActivityGrantSettlement;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.OfflineActivitySettlement; import com.iformall.domain.vo.OfflineActivitySettlement;
import com.iformall.domain.vo.OfflineActivitySettlementStatistics; import com.iformall.domain.vo.OfflineActivitySettlementStatistics;
import org.apache.ibatis.annotations.Param;


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


@@ -16,7 +17,7 @@ import java.util.List;
*/ */
public interface WxOfflineActivityGrantSettlementMapper extends CommonMapper<WxOfflineActivityGrantSettlement, Long> { public interface WxOfflineActivityGrantSettlementMapper extends CommonMapper<WxOfflineActivityGrantSettlement, Long> {


void insertList(List<WxOfflineActivityGrantSettlement> settlementList);
void insertList(@Param("settlementList")List<WxOfflineActivityGrantSettlement> settlementList);


OfflineActivitySettlementStatistics settlementStatistics(WxOfflineActivityGrantSettlement settlement); OfflineActivitySettlementStatistics settlementStatistics(WxOfflineActivityGrantSettlement settlement);




+ 1
- 1
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordGrantMapper.java Voir le fichier

@@ -17,7 +17,7 @@ public interface WxOfflineActivityRecordGrantMapper extends CommonMapper<WxOffli


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


void insertList(List<WxOfflineActivityRecordGrant> recordGrantList);
void insertList(@Param("recordGrantList")List<WxOfflineActivityRecordGrant> recordGrantList);
} }






+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java Voir le fichier

@@ -27,6 +27,8 @@ public interface WxOfflineActivityRecordMapper extends CommonMapper<WxOfflineAct
WxOfflineActivityRecord selectLimitOne(WxOfflineActivityRecord wxOfflineActivityRecord); WxOfflineActivityRecord selectLimitOne(WxOfflineActivityRecord wxOfflineActivityRecord);


Integer getCount(WxOfflineActivityRecord recordQ); Integer getCount(WxOfflineActivityRecord recordQ);

Integer getMerchantCount(WxOfflineActivityRecord recordQ);
} }






+ 4
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java Voir le fichier

@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.OfflineActivitySettlement; import com.iformall.domain.vo.OfflineActivitySettlement;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;


@@ -27,4 +29,6 @@ public interface WxOfflineActivityGrantSettlementService {
List<OfflineActivitySettlement> getActivitySettlement(WxOfflineActivityGrantSettlement grantSettlement); List<OfflineActivitySettlement> getActivitySettlement(WxOfflineActivityGrantSettlement grantSettlement);


List<WxOfflineActivityGrantSettlement> findList(WxOfflineActivityGrantSettlement grantSettlement); List<WxOfflineActivityGrantSettlement> findList(WxOfflineActivityGrantSettlement grantSettlement);

void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityGrantSettlement grantSettlement);
} }

+ 1
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java Voir le fichier

@@ -52,6 +52,7 @@ public class WxOfflineActivityAwardsItemServiceImpl implements WxOfflineActivity
awaItem.setGrade(-1); awaItem.setGrade(-1);
awaItem.setMinAmount(0); awaItem.setMinAmount(0);
awaItem.setMaxAmount(-1); awaItem.setMaxAmount(-1);
awaItem.setPrice(0);
} }
if(awaItem.getCreateDate() == null){ if(awaItem.getCreateDate() == null){
awaItem.setCreateDate(activityItem.getUpdateDate()); awaItem.setCreateDate(activityItem.getUpdateDate());


+ 9
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java Voir le fichier

@@ -195,6 +195,9 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
if(record.getCreateDate().before(activity.getStartTime()) || record.getCreateDate().after(activity.getEndTime())){ if(record.getCreateDate().before(activity.getStartTime()) || record.getCreateDate().after(activity.getEndTime())){
throw new MallinkException(Result.ERROR, "请检查活动时间"); throw new MallinkException(Result.ERROR, "请检查活动时间");
} }
if(wxOfflineActivityRecordGrantMapper.selectGrantCount(activity.getTenantId(),activity.getId(),record.getId()) > 0){
throw new MallinkException(Result.ERROR, "请检查订单是否已参与活动");
}
} }
wxOfflineActivityGrantAward.setRecordList(wxOfflineActivityRecords); wxOfflineActivityGrantAward.setRecordList(wxOfflineActivityRecords);
wxOfflineActivityGrantAward.setActivityName(activity.getName()); wxOfflineActivityGrantAward.setActivityName(activity.getName());
@@ -209,6 +212,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(activity.getId(), activity.getTenantId()); List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(activity.getId(), activity.getTenantId());
Map<Long, WxOfflineActivityItem> activityItemMap = activityItemList.stream().collect(Collectors.toMap(WxOfflineActivityItem::getId, Function.identity())); Map<Long, WxOfflineActivityItem> activityItemMap = activityItemList.stream().collect(Collectors.toMap(WxOfflineActivityItem::getId, Function.identity()));


int i = 0;
for (WxOfflineActivityItem grantActivityItem : wxOfflineActivityGrantAward.getActivityItemList()) { for (WxOfflineActivityItem grantActivityItem : wxOfflineActivityGrantAward.getActivityItemList()) {
if(grantActivityItem.getId() == null){ if(grantActivityItem.getId() == null){
throw new MallinkException(Result.ERROR, "请检查活动项参数"); throw new MallinkException(Result.ERROR, "请检查活动项参数");
@@ -220,11 +224,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
List<WxOfflineActivityGrantItem> activityGrantItemList = grantActivityItem.getActivityGrantItemList(); List<WxOfflineActivityGrantItem> activityGrantItemList = grantActivityItem.getActivityGrantItemList();
if(activityGrantItemList == null || activityGrantItemList.isEmpty()){ if(activityGrantItemList == null || activityGrantItemList.isEmpty()){
continue; continue;
// throw new MallinkException(Result.ERROR, "请检查活动奖项参数");
} }


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


for (WxOfflineActivityGrantItem grantGrantItem : activityGrantItemList) { for (WxOfflineActivityGrantItem grantGrantItem : activityGrantItemList) {
i++;
if(grantGrantItem.getAwardCount() == null){ if(grantGrantItem.getAwardCount() == null){
grantGrantItem.setAwardCount(1); grantGrantItem.setAwardCount(1);
} }
@@ -296,6 +302,9 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
} }


} }
if(i == 0){
throw new MallinkException(Result.ERROR, "请检查是否有活动奖项");
}
} }


private void handlerGrantItem(WxOfflineActivityGrantItem grantGrantItem,WxOfflineActivity activity,WxOfflineActivityItem activityItem,WxOfflineActivityAwardsItem awardsItem){ private void handlerGrantItem(WxOfflineActivityGrantItem grantGrantItem,WxOfflineActivity activity,WxOfflineActivityItem activityItem,WxOfflineActivityAwardsItem awardsItem){


+ 13
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java Voir le fichier

@@ -13,6 +13,7 @@ import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.enums.EnumYesOrNo; import com.iformall.enums.EnumYesOrNo;
import com.iformall.mapper.WxMerchantMapper; import com.iformall.mapper.WxMerchantMapper;
import com.iformall.mapper.WxOfflineActivityMapper; import com.iformall.mapper.WxOfflineActivityMapper;
import com.iformall.service.ExcelService;
import com.iformall.service.WxMerchantService; import com.iformall.service.WxMerchantService;
import com.iformall.service.WxOfflineActivityGrantSettlementService; import com.iformall.service.WxOfflineActivityGrantSettlementService;
import com.iformall.mapper.WxOfflineActivityGrantSettlementMapper; import com.iformall.mapper.WxOfflineActivityGrantSettlementMapper;
@@ -20,6 +21,8 @@ import com.iformall.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.NumberFormat; import java.text.NumberFormat;
@@ -45,6 +48,9 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
@Autowired @Autowired
WxMerchantService wxMerchantService; WxMerchantService wxMerchantService;


@Autowired
ExcelService excelService;

@Override @Override
public void settlement(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) { public void settlement(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) {
List<WxOfflineActivityGrantSettlement> settlementList = new ArrayList<>(); List<WxOfflineActivityGrantSettlement> settlementList = new ArrayList<>();
@@ -209,6 +215,7 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
if(new Date().before(activity.getStartTime())){ if(new Date().before(activity.getStartTime())){
activity.setStatus(EnumOfflineActivityStatus.EXPIRE.getCode()); activity.setStatus(EnumOfflineActivityStatus.EXPIRE.getCode());
} }

//获取结算相关 //获取结算相关
WxOfflineActivityGrantSettlement settlement = new WxOfflineActivityGrantSettlement(); WxOfflineActivityGrantSettlement settlement = new WxOfflineActivityGrantSettlement();
settlement.updateTenantInfo(activity); settlement.updateTenantInfo(activity);
@@ -256,6 +263,12 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
public List<WxOfflineActivityGrantSettlement> findList(WxOfflineActivityGrantSettlement grantSettlement) { public List<WxOfflineActivityGrantSettlement> findList(WxOfflineActivityGrantSettlement grantSettlement) {
return wxOfflineActivityGrantSettlementMapper.findList(grantSettlement); return wxOfflineActivityGrantSettlementMapper.findList(grantSettlement);
} }

@Override
public void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityGrantSettlement grantSettlement) {
List<WxOfflineActivityGrantSettlement> list = wxOfflineActivityGrantSettlementMapper.findList(grantSettlement);
excelService.exportExcel(list, null, "活动商户结算", WxOfflineActivityGrantSettlement.class, "活动商户结算.xlsx", response, false);
}
} }






+ 2
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordGrantServiceImpl.java Voir le fichier

@@ -31,6 +31,8 @@ public class WxOfflineActivityRecordGrantServiceImpl implements WxOfflineActivit
recordGrant.setActivityId(wxOfflineActivityGrantAward.getActivityId()); recordGrant.setActivityId(wxOfflineActivityGrantAward.getActivityId());
recordGrant.setRecordId(recordId); recordGrant.setRecordId(recordId);
recordGrant.setGrantId(wxOfflineActivityGrantAward.getId()); recordGrant.setGrantId(wxOfflineActivityGrantAward.getId());

recordGrantList.add(recordGrant);
}); });


wxOfflineActivityRecordGrantMapper.insertList(recordGrantList); wxOfflineActivityRecordGrantMapper.insertList(recordGrantList);


+ 47
- 10
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java Voir le fichier

@@ -4,13 +4,13 @@ import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.WxOfflineActivityGrantAward;
import com.iformall.domain.po.WxOfflineActivityRecord;
import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.OfflineActivityRecordStatistics; import com.iformall.domain.vo.OfflineActivityRecordStatistics;
import com.iformall.enums.EnumOfflineActivityRecordStatus; import com.iformall.enums.EnumOfflineActivityRecordStatus;
import com.iformall.mapper.WxMerchantMapper; import com.iformall.mapper.WxMerchantMapper;
import com.iformall.mapper.WxOfflineActivityGrantAwardMapper;
import com.iformall.service.MallUserInfoService;
import com.iformall.service.WxMerchantService; import com.iformall.service.WxMerchantService;
import com.iformall.service.WxOfflineActivityRecordService; import com.iformall.service.WxOfflineActivityRecordService;
import com.iformall.mapper.WxOfflineActivityRecordMapper; import com.iformall.mapper.WxOfflineActivityRecordMapper;
@@ -32,10 +32,15 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco
@Autowired @Autowired
private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper;


@Autowired
WxOfflineActivityGrantAwardMapper wxOfflineActivityGrantAwardMapper;

@Autowired @Autowired
WxMerchantMapper wxMerchantMapper; WxMerchantMapper wxMerchantMapper;
@Autowired @Autowired
WxMerchantService wxMerchantService; WxMerchantService wxMerchantService;
@Autowired
MallUserInfoService mallUserInfoService;


@Override @Override
public PageInfo<WxOfflineActivityRecord> listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize) { public PageInfo<WxOfflineActivityRecord> listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize) {
@@ -58,16 +63,48 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco
record.setMerchantIdList(mids); record.setMerchantIdList(mids);
} }
} }
//发奖处理(多对多关系)
WxOfflineActivityGrantAward awardQ = null;
if(StringUtils.isNotBlank(record.getSendByName())){
MallUserInfo userInfo = new MallUserInfo();
userInfo.updateTenantInfo(record);
userInfo.setUsername(record.getSendByName());
List<Long> mids = mallUserInfoService.getUserIdList(userInfo);
if (null == mids || mids.size() <= 0 ) {
record.setId(-1L);
}else {
awardQ = new WxOfflineActivityGrantAward();
awardQ.updateTenantInfo(record);
awardQ.setCreateByIds(mids);
}
}
if(record.getSendTimeBegin() != null || record.getSendTimeEnd() != null){
if(awardQ == null){
awardQ = new WxOfflineActivityGrantAward();
awardQ.updateTenantInfo(record);
awardQ.setCreateDateBegin(record.getSendTimeBegin());
awardQ.setCreateDateEnd(record.getSendTimeEnd());
}
}
if(awardQ != null){
List<Long> rids = wxOfflineActivityGrantAwardMapper.getRecordIdList(awardQ);
if (null == rids || rids.size() <= 0 ) {
record.setId(-1L);
}else{
record.setIds(rids);
}
}
} }


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




+ 49
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java Voir le fichier

@@ -3,13 +3,15 @@ package com.iformall.service.impl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxOfflineActivity;
import com.iformall.domain.po.WxOfflineActivityItem;
import com.iformall.domain.po.WxOfflineActivityMerchant;
import com.iformall.domain.po.WxRaffleActivity;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.OfflineActivityRecordStatistics;
import com.iformall.enums.EnumOfflineActivityMerchantType; import com.iformall.enums.EnumOfflineActivityMerchantType;
import com.iformall.enums.EnumOfflineActivityRecordStatus;
import com.iformall.enums.EnumOfflineActivityStatus; import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.enums.EnumYesOrNo; import com.iformall.enums.EnumYesOrNo;
import com.iformall.mapper.WxOfflineActivityGrantItemMapper;
import com.iformall.mapper.WxOfflineActivityMerchantMapper;
import com.iformall.mapper.WxOfflineActivityRecordMapper;
import com.iformall.service.WxOfflineActivityItemService; import com.iformall.service.WxOfflineActivityItemService;
import com.iformall.service.WxOfflineActivityMerchantService; import com.iformall.service.WxOfflineActivityMerchantService;
import com.iformall.service.WxOfflineActivityService; import com.iformall.service.WxOfflineActivityService;
@@ -19,7 +21,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;


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


/** /**
* @author xiaohu * @author xiaohu
@@ -35,7 +39,13 @@ public class WxOfflineActivityServiceImpl implements WxOfflineActivityService{
@Autowired @Autowired
WxOfflineActivityItemService wxOfflineActivityItemService; WxOfflineActivityItemService wxOfflineActivityItemService;
@Autowired @Autowired
WxOfflineActivityMerchantMapper wxOfflineActivityMerchantMapper;
@Autowired
WxOfflineActivityMerchantService wxOfflineActivityMerchantService; WxOfflineActivityMerchantService wxOfflineActivityMerchantService;
@Autowired
WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper;
@Autowired
WxOfflineActivityGrantItemMapper wxOfflineActivityGrantItemMapper;


@Override @Override
public PageInfo<WxOfflineActivity> listAsPage(WxOfflineActivity record, Integer pageIndex, Integer pageSize) { public PageInfo<WxOfflineActivity> listAsPage(WxOfflineActivity record, Integer pageIndex, Integer pageSize) {
@@ -66,7 +76,41 @@ public class WxOfflineActivityServiceImpl implements WxOfflineActivityService{
if(now.before(activity.getStartTime())){ if(now.before(activity.getStartTime())){
activity.setStatus(EnumOfflineActivityStatus.EXPIRE.getCode()); activity.setStatus(EnumOfflineActivityStatus.EXPIRE.getCode());
} }
//获取发奖订单数
//参与订单数
WxOfflineActivityRecord wxOfflineActivityRecord = new WxOfflineActivityRecord();
wxOfflineActivityRecord.updateTenantInfo(activity);
wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime());
wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime());
if(EnumOfflineActivityMerchantType.ADD.getCode().equals(activity.getAllMerchant())){
List<Long> merchantIds = wxOfflineActivityMerchantMapper.getMerchantIdList(activity.getId(), activity.getTenantId());
wxOfflineActivityRecord.setMerchantIdList(merchantIds);
}else if(EnumOfflineActivityMerchantType.UN_ADD.getCode().equals(activity.getAllMerchant())){
List<Long> merchantIds = wxOfflineActivityMerchantMapper.getMerchantIdList(activity.getId(), activity.getTenantId());
wxOfflineActivityRecord.setNotMerchantIdList(merchantIds);
}
List<OfflineActivityRecordStatistics> auditStatusStatistics = wxOfflineActivityRecordMapper.auditStatusStatistics(wxOfflineActivityRecord);
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();
}
}
activity.setRecordCount(audting+audi_success+audt_fail);
activity.setWaitRecordCount(audting);
activity.setSuccessRecordCount(audi_success);

//参与商户数
activity.setMershantCount(wxOfflineActivityRecordMapper.getMerchantCount(wxOfflineActivityRecord));

//发放奖项数量
WxOfflineActivityGrantItem grantItemQ = new WxOfflineActivityGrantItem();
grantItemQ.updateTenantInfo(activity);
grantItemQ.setActivityId(activity.getId());
activity.setGrantItemCount(wxOfflineActivityGrantItemMapper.getSumAwardCount(grantItemQ));


} }
} }


+ 28
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml Voir le fichier

@@ -52,4 +52,32 @@
and `create_date` &lt;= #{createDateEnd} and `create_date` &lt;= #{createDateEnd}
</if> </if>
</select> </select>


<select id="getRecordIdList" parameterType="com.iformall.domain.po.WxOfflineActivityGrantAward" resultType="Long">
SELECT DISTINCT rg.record_id
FROM wx_offline_activity_grant_award ga
left join wx_offline_activity_record_grant rg
where 1 = 1
<if test=" null != tenantId and '' != tenantId">
and ga.`tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and ga.`parent_tenant_id` = #{parentTenantId}
</if>

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

<if test=" null != createDateEnd">
and ga.`create_date` &lt;= #{createDateEnd}
</if>
<if test=" null != createByIds ">
and ga.create_by in
<foreach collection="createByIds" index="index" item="sendItem" open="(" separator="," close=")">
#{sendItem}
</foreach>
</if>
</select>
</mapper> </mapper>

+ 53
- 38
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml Voir le fichier

@@ -5,54 +5,54 @@
<mapper namespace="com.iformall.mapper.WxOfflineActivityGrantItemMapper"> <mapper namespace="com.iformall.mapper.WxOfflineActivityGrantItemMapper">


<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityGrantItem"> <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="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"/>
<result property="moneyRule" column="money_rule" jdbcType="SMALLINT"/>
<result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/>
<result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
<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="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"/>
<result property="moneyRule" column="money_rule" jdbcType="SMALLINT"/>
<result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/>
<result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>


<sql id="allColumns"> <sql id="allColumns">
id,tenant_id,parent_tenant_id,
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,merchant_share_rate,
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, grant_id,activity_id,activity_name,
activity_item_id,activity_item_name,activity_item_type, activity_item_id,activity_item_name,activity_item_type,
award_itam_id,award_name,award_grade, award_itam_id,award_name,award_grade,
award_min_amount,award_max_amount,awards_item_rule,cash_back_ratio, award_min_amount,award_max_amount,awards_item_rule,cash_back_ratio,
award_price,award_count,money_rule, award_price,award_count,money_rule,
mall_share_rate,merchant_share_rate, mall_share_rate,merchant_share_rate,
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`,`merchant_share_rate`,
`create_date`,`update_date`)
create_date,update_date)
values values
<foreach collection="addList" item="item" index="index" separator=",">
<foreach collection="grantItemList" item="item" index="index" separator=",">
(#{item.id,jdbcType=BIGINT},#{item.tenantId,jdbcType=VARCHAR},#{item.parentTenantId,jdbcType=VARCHAR}, (#{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.grantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityName,jdbcType=VARCHAR},
#{item.activityItemId,jdbcType=BIGINT},#{item.activityItemName,jdbcType=VARCHAR},#{item.activityItemType,jdbcType=INTEGER}, #{item.activityItemId,jdbcType=BIGINT},#{item.activityItemName,jdbcType=VARCHAR},#{item.activityItemType,jdbcType=INTEGER},
@@ -63,4 +63,19 @@
#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP})
</foreach> </foreach>
</insert> </insert>

<select id="getSumAwardCount" parameterType="com.iformall.domain.po.WxOfflineActivityGrantItem" resultType="Integer">
SELECT COUNT(1) FROM wx_offline_activity_grant_item
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 != activityId ">
and activity_id = #{activityId}
</if>
</select>

</mapper> </mapper>

+ 2
- 2
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml Voir le fichier

@@ -111,7 +111,7 @@
real_grant_price,real_mall_share_price,real_merchant_share_price, real_grant_price,real_mall_share_price,real_merchant_share_price,
create_date,update_date) create_date,update_date)
values values
<foreach collection="addList" item="item" index="index" separator=",">
<foreach collection="settlementList" item="item" index="index" separator=",">
(#{item.id,jdbcType=BIGINT},#{item.tenantId,jdbcType=VARCHAR},#{item.parentTenantId,jdbcType=VARCHAR}, (#{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.recordId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},#{item.orderMoney,jdbcType=INTEGER},
#{item.merchantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityItemId,jdbcType=BIGINT}, #{item.merchantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityItemId,jdbcType=BIGINT},
@@ -155,7 +155,7 @@
<select id="getActivitySettlement" parameterType="com.iformall.domain.po.WxOfflineActivityGrantSettlement" resultType="com.iformall.domain.vo.OfflineActivitySettlement"> <select id="getActivitySettlement" parameterType="com.iformall.domain.po.WxOfflineActivityGrantSettlement" resultType="com.iformall.domain.vo.OfflineActivitySettlement">
SELECT merchant_id as 'merchantId', SELECT merchant_id as 'merchantId',
activity_id as 'activityId', activity_id as 'activityId',
count(DISTINCT record_id) as 'recordCount',
count(record_id) as 'recordCount',
IFNULL(sum(order_money),0) as 'sumOrderMoney', IFNULL(sum(order_money),0) as 'sumOrderMoney',
IFNULL(sum(real_grant_price),0) as 'sumGrantPrice', IFNULL(sum(real_grant_price),0) as 'sumGrantPrice',
IFNULL(sum(real_mall_share_price),0) as 'sumMallPrice', IFNULL(sum(real_mall_share_price),0) as 'sumMallPrice',


+ 1
- 1
mallinkService/src/main/resources/mapper/WxOfflineActivityRecordGrantMapper.xml Voir le fichier

@@ -27,7 +27,7 @@
insert into wx_offline_activity_record_grant insert into wx_offline_activity_record_grant
(`tenant_id`,`parent_tenant_id`,`activity_id`,`record_id`,`grant_id`) (`tenant_id`,`parent_tenant_id`,`activity_id`,`record_id`,`grant_id`)
values values
<foreach collection="addList" item="item" index="index" separator=",">
<foreach collection="recordGrantList" item="item" index="index" separator=",">
(#{item.tenantId,jdbcType=VARCHAR}, (#{item.tenantId,jdbcType=VARCHAR},
#{item.parentTenantId,jdbcType=VARCHAR}, #{item.parentTenantId,jdbcType=VARCHAR},
#{item.activityId,jdbcType=BIGINT}, #{item.activityId,jdbcType=BIGINT},


+ 39
- 30
mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml Voir le fichier

@@ -136,35 +136,7 @@
count(1) as 'count', count(1) as 'count',
IFNULL(sum(order_money),0) as 'sumMoney' IFNULL(sum(order_money),0) as 'sumMoney'
FROM wx_offline_activity_record 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>

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

<include refid="statisticsWhereConditions" />
GROUP BY audit_status GROUP BY audit_status
</select> </select>


@@ -203,6 +175,15 @@


<select id="getCount" parameterType="com.iformall.domain.po.WxOfflineActivityRecord" resultType="Integer"> <select id="getCount" parameterType="com.iformall.domain.po.WxOfflineActivityRecord" resultType="Integer">
SELECT COUNT(1) FROM wx_offline_activity_record SELECT COUNT(1) FROM wx_offline_activity_record
<include refid="statisticsWhereConditions" />
</select>

<select id="getMerchantCount" parameterType="com.iformall.domain.po.WxOfflineActivityRecord" resultType="Integer">
SELECT COUNT(distinct merchant_id) FROM wx_offline_activity_record
<include refid="statisticsWhereConditions" />
</select>

<sql id="statisticsWhereConditions">
where 1 = 1 where 1 = 1
<if test=" null != tenantId and '' != tenantId"> <if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId} and `tenant_id` = #{tenantId}
@@ -210,6 +191,15 @@
<if test=" null != parentTenantId and '' != parentTenantId"> <if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId} and `parent_tenant_id` = #{parentTenantId}
</if> </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"> <if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin} and `create_date` &gt;= #{createDateBegin}
@@ -218,6 +208,25 @@
<if test=" null != createDateEnd"> <if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd} and `create_date` &lt;= #{createDateEnd}
</if> </if>
</select>

<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 != notMerchantIdList ">
and merchant_id not in
<foreach collection="notMerchantIdList" index="index" item="midItem" open="(" separator="," close=")">
#{midItem}
</foreach>
</if>

</sql>


</mapper> </mapper>

Chargement…
Annuler
Enregistrer