Просмотр исходного кода

Merge branch 'release_toaliyun_real_offline_activity' of https://git.malls.iformall.com/server/formallProject into release_toaliyun_real_offline_activity

release_toaliyun_real
winter 1 год назад
Родитель
Сommit
10f8824b76
29 измененных файлов: 373 добавлений и 120 удалений
  1. +18
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java
  2. +0
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java
  3. +4
    -2
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java
  4. +3
    -3
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java
  5. +4
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java
  6. +3
    -3
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java
  7. +10
    -27
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java
  8. +4
    -2
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java
  9. +2
    -7
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java
  10. +2
    -1
      mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java
  11. +5
    -4
      mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java
  12. +4
    -3
      mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlementStatistics.java
  13. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java
  14. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java
  15. +4
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java
  16. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java
  17. +5
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java
  18. +177
    -16
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java
  19. +6
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java
  20. +22
    -12
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java
  21. +4
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java
  22. +3
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java
  23. +14
    -0
      mallinkService/src/main/java/com/iformall/utils/DownFileUtil.java
  24. +3
    -3
      mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml
  25. +41
    -1
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml
  26. +6
    -6
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml
  27. +8
    -8
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml
  28. +2
    -2
      mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml
  29. +14
    -1
      mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml

+ 18
- 1
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityController.java Просмотреть файл

@@ -10,17 +10,21 @@ 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.enums.*; import com.iformall.enums.*;
import com.iformall.exception.MallinkException;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.utils.DateUtils; import com.iformall.utils.DateUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; 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.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;


@@ -37,6 +41,9 @@ public class WxOfflineActivityController extends BaseController {
@Autowired @Autowired
private WxOfflineActivityService wxOfflineActivityService; private WxOfflineActivityService wxOfflineActivityService;


@Autowired
private WxOfflineActivityGrantAwardService wxOfflineActivityGrantAwardService;

@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@GetMapping("list") @GetMapping("list")
@ApiImplicitParams({ @ApiImplicitParams({
@@ -52,7 +59,6 @@ public class WxOfflineActivityController extends BaseController {
return new ResultData(page); return new ResultData(page);
} }
@ApiOperation("新增修改接口") @ApiOperation("新增修改接口")
@PostMapping("saveOrUpdate") @PostMapping("saveOrUpdate")
public ResultData saveOrUpdate(@RequestBody WxOfflineActivity wxOfflineActivity) { public ResultData saveOrUpdate(@RequestBody WxOfflineActivity wxOfflineActivity) {
@@ -129,5 +135,16 @@ public class WxOfflineActivityController extends BaseController {
return new ResultData(activity); return new ResultData(activity);
} }


@ApiOperation("活动奖品发放明细导出")
@GetMapping("/grantExport")
public void grantExport(@ModelAttribute WxOfflineActivity wxOfflineActivity, HttpServletRequest request, HttpServletResponse response) {
if(wxOfflineActivity.getId() == null){
throw new MallinkException(Result.ERROR,"ID 为空");
}

TenantEntity tenantInfo = getTenantInfo();
wxOfflineActivity.updateTenantInfo(tenantInfo);
wxOfflineActivityGrantAwardService.activityGrantExport(request,response,wxOfflineActivity);
}


} }

+ 0
- 2
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java Просмотреть файл

@@ -63,8 +63,6 @@ public class WxOfflineActivityRecordController extends BaseController {
return new ResultData(waitAudiCount); return new ResultData(waitAudiCount);
} }




@ApiOperation("导出") @ApiOperation("导出")
@GetMapping("/export") @GetMapping("/export")
public void export(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord, HttpServletRequest request, HttpServletResponse response) { public void export(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord, HttpServletRequest request, HttpServletResponse response) {


+ 4
- 2
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivity.java Просмотреть файл

@@ -3,6 +3,8 @@ package com.iformall.domain.po;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;

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


@@ -128,10 +130,10 @@ public class WxOfflineActivity extends TenantEntity {
* 发放总额 * 发放总额
*/ */
@TableField(exist = false) @TableField(exist = false)
private Integer grantPrice;
private BigDecimal grantPrice;
/** /**
* 商户结算总额 * 商户结算总额
*/ */
@TableField(exist = false) @TableField(exist = false)
private Integer merchantSettlmentPrice;
private BigDecimal merchantSettlmentPrice;
} }

+ 3
- 3
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java Просмотреть файл

@@ -48,13 +48,13 @@ public class WxOfflineActivityAwardsItem extends TenantEntity {
* 限制最小金额 * 限制最小金额
*/ */
@TableField(value = "min_amount") @TableField(value = "min_amount")
private Integer minAmount;
private BigDecimal minAmount;


/** /**
* 限制最大金额 * 限制最大金额
*/ */
@TableField(value = "max_amount") @TableField(value = "max_amount")
private Integer maxAmount;
private BigDecimal maxAmount;


/** /**
* 返现比例(与奖项价值2选1) * 返现比例(与奖项价值2选1)
@@ -66,7 +66,7 @@ public class WxOfflineActivityAwardsItem extends TenantEntity {
* 奖项价值 * 奖项价值
*/ */
@TableField(value = "price") @TableField(value = "price")
private Integer price;
private BigDecimal price;


/** /**
* 分担规则(0-商管 1-商户 2-分担) * 分担规则(0-商管 1-商户 2-分担)


+ 4
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java Просмотреть файл

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;


import java.util.List; import java.util.List;
@@ -42,7 +43,7 @@ public class WxOfflineActivityGrantAward extends TenantEntity{
* 订单总金额 * 订单总金额
*/ */
@TableField(value = "order_money_sum") @TableField(value = "order_money_sum")
private Integer orderMoneySum;
private BigDecimal orderMoneySum;


/** /**
* 订单数量 * 订单数量
@@ -86,6 +87,8 @@ public class WxOfflineActivityGrantAward extends TenantEntity{
@TableField(value = "create_by") @TableField(value = "create_by")
private Long createBy; private Long createBy;
@TableField(exist = false) @TableField(exist = false)
private List<Long> createByName;
@TableField(exist = false)
private List<Long> createByIds; private List<Long> createByIds;


/** /**


+ 3
- 3
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java Просмотреть файл

@@ -86,13 +86,13 @@ public class WxOfflineActivityGrantItem extends TenantEntity {
* 奖项限制最小金额 * 奖项限制最小金额
*/ */
@TableField(value = "award_min_amount") @TableField(value = "award_min_amount")
private Integer awardMinAmount;
private BigDecimal awardMinAmount;


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


/** /**
* 奖项计算规则 * 奖项计算规则
@@ -110,7 +110,7 @@ public class WxOfflineActivityGrantItem extends TenantEntity {
* 奖项价值 * 奖项价值
*/ */
@TableField(value = "award_price") @TableField(value = "award_price")
private Integer awardPrice;
private BigDecimal awardPrice;


/** /**
* 奖项数量 * 奖项数量


+ 10
- 27
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java Просмотреть файл

@@ -47,14 +47,9 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
/** /**
* 订单金额 * 订单金额
*/ */
@TableField(value = "order_money")
private Integer orderMoney;
@Excel(name = "订单金额(元)", width = 20, orderNum = "3") @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;
}
@TableField(value = "order_money")
private BigDecimal orderMoney;


/** /**
* 商户id * 商户id
@@ -94,7 +89,7 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
* 发放总价值 * 发放总价值
*/ */
@TableField(value = "grant_price") @TableField(value = "grant_price")
private Integer grantPrice;
private BigDecimal grantPrice;


/** /**
* 商管承担z占比 * 商管承担z占比
@@ -117,36 +112,23 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
/** /**
* 实际发放总价值 * 实际发放总价值
*/ */
@TableField(value = "real_grant_price")
private Integer realGrantPrice;
@TableField(exist = false)
@Excel(name = "发放价值(元)", width = 20, orderNum = "4") @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_grant_price")
private BigDecimal realGrantPrice;


/** /**
* 实际商管承担总金额 * 实际商管承担总金额
*/ */
@TableField(value = "real_mall_share_price")
private Integer realMallSharePrice;
@Excel(name = "商管承担金额(元)", width = 20, orderNum = "5") @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_mall_share_price")
private BigDecimal realMallSharePrice;


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


/** /**
* 创建时间 * 创建时间
@@ -165,4 +147,5 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
*/ */
@TableField(value = "update_date") @TableField(value = "update_date")
private Date updateDate; private Date updateDate;

} }

+ 4
- 2
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java Просмотреть файл

@@ -3,6 +3,8 @@ package com.iformall.domain.po;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;

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


@@ -48,13 +50,13 @@ public class WxOfflineActivityItem extends TenantEntity {
* 参与金额 * 参与金额
*/ */
@TableField(value = "limit_money") @TableField(value = "limit_money")
private Integer limitMoney;
private BigDecimal limitMoney;


/** /**
* 奖项价值(用来计算奖券数量) * 奖项价值(用来计算奖券数量)
*/ */
@TableField(value = "awards_item_price") @TableField(value = "awards_item_price")
private Integer awardsItemPrice;
private BigDecimal awardsItemPrice;


/** /**
* 奖项数量限制(为0时无限制) * 奖项数量限制(为0时无限制)


+ 2
- 7
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java Просмотреть файл

@@ -43,14 +43,9 @@ public class WxOfflineActivityRecord extends TenantEntity {
/** /**
* 订单金额 * 订单金额
*/ */
@TableField(value = "order_money")
private Integer orderMoney;
@Excel(name = "订单金额(元)", width = 20, orderNum = "7") @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;
}
@TableField(value = "order_money")
private BigDecimal orderMoney;


/** /**
* 客户姓名 * 客户姓名


+ 2
- 1
mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivityRecordStatistics.java Просмотреть файл

@@ -3,6 +3,7 @@ package com.iformall.domain.vo;
import lombok.Data; import lombok.Data;


import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;


@Data @Data
public class OfflineActivityRecordStatistics implements Serializable { public class OfflineActivityRecordStatistics implements Serializable {
@@ -11,5 +12,5 @@ public class OfflineActivityRecordStatistics implements Serializable {


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

+ 5
- 4
mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java Просмотреть файл

@@ -4,6 +4,7 @@ import com.iformall.domain.po.base.TenantEntity;
import lombok.Data; import lombok.Data;


import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List; import java.util.List;


@Data @Data
@@ -14,8 +15,8 @@ public class OfflineActivitySettlement extends TenantEntity {
private String merchantName; private String merchantName;


private Integer recordCount; private Integer recordCount;
private Integer sumOrderMoney;
private Integer sumGrantPrice;
private Integer sumMallPrice;
private Integer sumMerchantPrice;
private BigDecimal sumOrderMoney;
private BigDecimal sumGrantPrice;
private BigDecimal sumMallPrice;
private BigDecimal sumMerchantPrice;
} }

+ 4
- 3
mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlementStatistics.java Просмотреть файл

@@ -3,15 +3,16 @@ package com.iformall.domain.vo;
import lombok.Data; import lombok.Data;


import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;


@Data @Data
public class OfflineActivitySettlementStatistics implements Serializable { public class OfflineActivitySettlementStatistics implements Serializable {


private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;


private Integer sumGrantPrice;
private BigDecimal sumGrantPrice;
private Integer recordCount; private Integer recordCount;
private Integer merchantCount; private Integer merchantCount;
private Integer sumMallPrice;
private Integer sumMerchantPrice;
private BigDecimal sumMallPrice;
private BigDecimal sumMerchantPrice;
} }

+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java Просмотреть файл

@@ -19,6 +19,8 @@ public interface WxOfflineActivityGrantAwardMapper extends CommonMapper<WxOfflin
List<Long> getRecordIdList(WxOfflineActivityGrantAward grantAwardQ); List<Long> getRecordIdList(WxOfflineActivityGrantAward grantAwardQ);


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

List<WxOfflineActivityGrantAward> findList(WxOfflineActivityGrantAward grantAwardQ);
} }






+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityRecordMapper.java Просмотреть файл

@@ -29,6 +29,8 @@ public interface WxOfflineActivityRecordMapper extends CommonMapper<WxOfflineAct
Integer getCount(WxOfflineActivityRecord recordQ); Integer getCount(WxOfflineActivityRecord recordQ);


Integer getMerchantCount(WxOfflineActivityRecord recordQ); Integer getMerchantCount(WxOfflineActivityRecord recordQ);

List<WxOfflineActivityRecord> findGrantList(@Param("grantId")Long grantId, @Param("tenantId")String tenantId);
} }






+ 4
- 0
mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java Просмотреть файл

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


import com.iformall.domain.po.WxOfflineActivity;
import com.iformall.domain.po.WxOfflineActivityGrantAward; import com.iformall.domain.po.WxOfflineActivityGrantAward;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.WxOfflineActivityRecord; import com.iformall.domain.po.WxOfflineActivityRecord;
@@ -7,6 +8,7 @@ import com.iformall.domain.po.base.TenantEntity;


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


@@ -30,4 +32,6 @@ public interface WxOfflineActivityGrantAwardService {
void recordExport(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityRecord wxOfflineActivityRecord); void recordExport(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityRecord wxOfflineActivityRecord);


WxOfflineActivityGrantAward grantAwardDetail(WxOfflineActivityGrantAward wxOfflineActivityGrantAward); WxOfflineActivityGrantAward grantAwardDetail(WxOfflineActivityGrantAward wxOfflineActivityGrantAward);

void activityGrantExport(HttpServletRequest request, HttpServletResponse response, WxOfflineActivity wxOfflineActivity);
} }

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java Просмотреть файл

@@ -451,7 +451,7 @@ public class WxGameServiceImpl implements WxGameService {
List<Object> couponIdsList = wxGame.getCouponIdsList(); List<Object> couponIdsList = wxGame.getCouponIdsList();
int x = (int)(Math.random()*100+1); int x = (int)(Math.random()*100+1);
int y = 0; int y = 0;
if(couponIdsList != null || couponIdsList.size() > 0){
if(couponIdsList != null && !couponIdsList.isEmpty()){
for (Object a:couponIdsList) { for (Object a:couponIdsList) {
int weight = 0; int weight = 0;
if(a instanceof WxCouponChannelVo){ if(a instanceof WxCouponChannelVo){


+ 5
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityAwardsItemServiceImpl.java Просмотреть файл

@@ -42,17 +42,17 @@ public class WxOfflineActivityAwardsItemServiceImpl implements WxOfflineActivity
if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){
awaItem.setCashBackRatio(BigDecimal.ZERO); awaItem.setCashBackRatio(BigDecimal.ZERO);
awaItem.setGrade(-1); awaItem.setGrade(-1);
awaItem.setMinAmount(0);
awaItem.setMaxAmount(-1);
awaItem.setMinAmount(null);
awaItem.setMaxAmount(null);
} }
else if (EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())) { else if (EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())) {
awaItem.setCashBackRatio(BigDecimal.ZERO); awaItem.setCashBackRatio(BigDecimal.ZERO);
} }
else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) {
awaItem.setGrade(-1); awaItem.setGrade(-1);
awaItem.setMinAmount(0);
awaItem.setMaxAmount(-1);
awaItem.setPrice(0);
awaItem.setMinAmount(null);
awaItem.setMaxAmount(null);
awaItem.setPrice(BigDecimal.ZERO);
} }
if(awaItem.getCreateDate() == null){ if(awaItem.getCreateDate() == null){
awaItem.setCreateDate(activityItem.getUpdateDate()); awaItem.setCreateDate(activityItem.getUpdateDate());


+ 177
- 16
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java Просмотреть файл

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


import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.afterturn.easypoi.excel.entity.vo.BaseEntityTypeConstants;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,6 +15,7 @@ import com.iformall.exception.MallinkException;
import com.iformall.mapper.*; import com.iformall.mapper.*;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.utils.DateUtils; import com.iformall.utils.DateUtils;
import com.iformall.utils.DownFileUtil;
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 org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -20,6 +23,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
@@ -60,6 +65,9 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
@Autowired @Autowired
WxOfflineActivityItemService wxOfflineActivityItemService; WxOfflineActivityItemService wxOfflineActivityItemService;


@Autowired
WxOfflineActivityService wxOfflineActivityService;

@Autowired @Autowired
WxOfflineActivityGrantSettlementService wxOfflineActivityGrantSettlementService; WxOfflineActivityGrantSettlementService wxOfflineActivityGrantSettlementService;


@@ -77,7 +85,8 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
handlerRecordQuery(wxOfflineActivityRecord); handlerRecordQuery(wxOfflineActivityRecord);
WxOfflineActivityRecord limitOne = wxOfflineActivityRecordMapper.selectLimitOne(wxOfflineActivityRecord); WxOfflineActivityRecord limitOne = wxOfflineActivityRecordMapper.selectLimitOne(wxOfflineActivityRecord);
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
Integer audting = 0, audi_success = 0, audt_fail = 0,sum_success = 0, sum_fail = 0;
Integer audting = 0, audi_success = 0, audt_fail = 0;
BigDecimal sum_success = BigDecimal.ZERO, sum_fail = BigDecimal.ZERO;
if (limitOne == null) { if (limitOne == null) {
result.put("cus_name","查无此人"); result.put("cus_name","查无此人");
result.put("cus_phone",wxOfflineActivityRecord.getCusPhone()); result.put("cus_phone",wxOfflineActivityRecord.getCusPhone());
@@ -176,15 +185,15 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
for(WxOfflineActivityItem activityItem : wxOfflineActivityGrantAward.getActivityItemList()){ for(WxOfflineActivityItem activityItem : wxOfflineActivityGrantAward.getActivityItemList()){
if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){


if(wxOfflineActivityGrantAward.getOrderMoneySum() < activityItem.getLimitMoney()){
if(wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(activityItem.getLimitMoney()) < 0){
activityItem.setIsMeet(false); activityItem.setIsMeet(false);
continue; continue;
} }
activityItem.setIsMeet(true); activityItem.setIsMeet(true);
//奖项限制数量 //奖项限制数量
int limitCount = 0; int limitCount = 0;
if(activityItem.getAwardsItemPrice() != null || activityItem.getAwardsItemPrice() > 0){
limitCount = wxOfflineActivityGrantAward.getOrderMoneySum() / activityItem.getAwardsItemPrice();
if(activityItem.getAwardsItemPrice() != null && activityItem.getAwardsItemPrice().compareTo(BigDecimal.ZERO) > 0){
limitCount = wxOfflineActivityGrantAward.getOrderMoneySum().divide(activityItem.getAwardsItemPrice(),0,BigDecimal.ROUND_HALF_DOWN).intValue();
} }
if(activityItem.getAwardsItemLimit() != null && activityItem.getAwardsItemLimit() > 0 if(activityItem.getAwardsItemLimit() != null && activityItem.getAwardsItemLimit() > 0
&& activityItem.getAwardsItemLimit() < limitCount){ && activityItem.getAwardsItemLimit() < limitCount){
@@ -193,11 +202,11 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
activityItem.setRealAwardsItemLimit(limitCount); activityItem.setRealAwardsItemLimit(limitCount);
} }
else if(EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())){ else if(EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())){
List<WxOfflineActivityAwardsItem> sortAwardsItemList = activityItem.getActivityAwardsItemList().stream().sorted(Comparator.comparingInt(WxOfflineActivityAwardsItem::getMinAmount)).collect(Collectors.toList());
List<WxOfflineActivityAwardsItem> sortAwardsItemList = activityItem.getActivityAwardsItemList().stream().sorted(Comparator.comparing(WxOfflineActivityAwardsItem::getMinAmount)).collect(Collectors.toList());
WxOfflineActivityAwardsItem grantAwardsItem = null; WxOfflineActivityAwardsItem grantAwardsItem = null;
for(WxOfflineActivityAwardsItem awardsItem : sortAwardsItemList){ for(WxOfflineActivityAwardsItem awardsItem : sortAwardsItemList){
if(wxOfflineActivityGrantAward.getOrderMoneySum() > awardsItem.getMinAmount()
&& wxOfflineActivityGrantAward.getOrderMoneySum() < awardsItem.getMaxAmount()){
if((awardsItem.getMinAmount() == null || wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMinAmount()) >= 0)
&& (awardsItem.getMaxAmount() == null || wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMaxAmount()) <= 0)){
grantAwardsItem = awardsItem; grantAwardsItem = awardsItem;
} }
} }
@@ -273,7 +282,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
throw new MallinkException(Result.ERROR, "请检查活动订单用户是否为同一人"); throw new MallinkException(Result.ERROR, "请检查活动订单用户是否为同一人");
} }


Integer orderMoneySum = 0;
BigDecimal orderMoneySum = BigDecimal.ZERO;
List<String> lotteryNumList = new ArrayList<>(); List<String> lotteryNumList = new ArrayList<>();
List<String> anniversaryLotteryNumList = new ArrayList<>(); List<String> anniversaryLotteryNumList = new ArrayList<>();
for (WxOfflineActivityRecord record : wxOfflineActivityRecords) { for (WxOfflineActivityRecord record : wxOfflineActivityRecords) {
@@ -287,7 +296,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
throw new MallinkException(Result.ERROR, "请检查订单是否已参与活动"); throw new MallinkException(Result.ERROR, "请检查订单是否已参与活动");
} }


orderMoneySum += record.getOrderMoney();
orderMoneySum = orderMoneySum.add(record.getOrderMoney());
if(record.getLotteryNumList() != null && !record.getLotteryNumList().isEmpty()){ if(record.getLotteryNumList() != null && !record.getLotteryNumList().isEmpty()){
lotteryNumList.addAll(record.getLotteryNumList()); lotteryNumList.addAll(record.getLotteryNumList());
} }
@@ -340,13 +349,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity


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


if(wxOfflineActivityGrantAward.getOrderMoneySum() < activityItem.getLimitMoney()){
if(wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(activityItem.getLimitMoney()) < 0){
throw new MallinkException(Result.ERROR, "活动项"+activityItem.getName()+"金额不满足"); throw new MallinkException(Result.ERROR, "活动项"+activityItem.getName()+"金额不满足");
} }
//奖项限制数量 //奖项限制数量
int limitCount = 0; int limitCount = 0;
if(activityItem.getAwardsItemPrice() != null || activityItem.getAwardsItemPrice() > 0){
limitCount = wxOfflineActivityGrantAward.getOrderMoneySum() / activityItem.getAwardsItemPrice();
if(activityItem.getAwardsItemPrice() != null && activityItem.getAwardsItemPrice().compareTo(BigDecimal.ZERO) > 0){
limitCount = wxOfflineActivityGrantAward.getOrderMoneySum().divide(activityItem.getAwardsItemPrice(),0,BigDecimal.ROUND_HALF_DOWN).intValue();
} }
if(activityItem.getAwardsItemLimit() != null && activityItem.getAwardsItemLimit() > 0 if(activityItem.getAwardsItemLimit() != null && activityItem.getAwardsItemLimit() > 0
&& activityItem.getAwardsItemLimit() < limitCount){ && activityItem.getAwardsItemLimit() < limitCount){
@@ -382,8 +391,8 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
if(awardsItem == null){ if(awardsItem == null){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数"); throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数");
} }
if(wxOfflineActivityGrantAward.getOrderMoneySum() > awardsItem.getMaxAmount()
|| wxOfflineActivityGrantAward.getOrderMoneySum() < awardsItem.getMinAmount()){
if((awardsItem.getMinAmount() != null && wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMinAmount()) < 0)
|| (awardsItem.getMaxAmount() != null && wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMaxAmount()) > 0)){
throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数(金额不在范围类)"); throw new MallinkException(Result.ERROR, "请检查活动"+activityItem.getName()+"奖项参数(金额不在范围类)");
} }


@@ -406,7 +415,6 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
handlerGrantItem(grantGrantItem,activity,activityItem,awardsItem); handlerGrantItem(grantGrantItem,activity,activityItem,awardsItem);


} }

} }
if(i == 0){ if(i == 0){
throw new MallinkException(Result.ERROR, "请检查是否有活动奖项"); throw new MallinkException(Result.ERROR, "请检查是否有活动奖项");
@@ -427,7 +435,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
grantGrantItem.setAwardMaxAmount(awardsItem.getMaxAmount()); grantGrantItem.setAwardMaxAmount(awardsItem.getMaxAmount());
grantGrantItem.setAwardsItemRule(activityItem.getAwardsItemRule()); grantGrantItem.setAwardsItemRule(activityItem.getAwardsItemRule());
grantGrantItem.setCashBackRatio(awardsItem.getCashBackRatio()); grantGrantItem.setCashBackRatio(awardsItem.getCashBackRatio());
grantGrantItem.setAwardPrice(awardsItem.getPrice()*grantGrantItem.getAwardCount());
grantGrantItem.setAwardPrice(awardsItem.getPrice().multiply(new BigDecimal(grantGrantItem.getAwardCount())).setScale(2, BigDecimal.ROUND_HALF_UP));
grantGrantItem.setMoneyRule(awardsItem.getMoneyRule()); grantGrantItem.setMoneyRule(awardsItem.getMoneyRule());
grantGrantItem.setMallShareRate(awardsItem.getMallShareRate()); grantGrantItem.setMallShareRate(awardsItem.getMallShareRate());
grantGrantItem.setMerchantShareRate(awardsItem.getMerchantShareRate()); grantGrantItem.setMerchantShareRate(awardsItem.getMerchantShareRate());
@@ -519,6 +527,159 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
return grantAward; return grantAward;
} }


@Override
public void activityGrantExport(HttpServletRequest request, HttpServletResponse response, WxOfflineActivity wxOfflineActivity) {
WxOfflineActivity activity = wxOfflineActivityService.getInfoById(wxOfflineActivity.getId(), wxOfflineActivity.getTenantId());
if(activity == null){
throw new MallinkException(Result.ERROR, "未查询到活动");
}
List<ExcelExportEntity> headList = getActivityGrantExportHead(activity);

List<Map<String,Object>> activityGrantObjectList = new ArrayList<>();

WxOfflineActivityGrantAward grantAwardQ = new WxOfflineActivityGrantAward();
grantAwardQ.updateTenantInfo(wxOfflineActivity);
grantAwardQ.setActivityId(wxOfflineActivity.getId());
List<WxOfflineActivityGrantAward> grantAwardList = wxOfflineActivityGrantAwardMapper.findList(grantAwardQ);
if(grantAwardList != null){
WxMerchant merchantQ = new WxMerchant();
merchantQ.updateTenantInfo(wxOfflineActivity);
Map<Long, String> merchantMap = wxMerchantService.getIdAndNamesMap(merchantQ);

MallUserInfo userInfoQ = new MallUserInfo();
userInfoQ.updateTenantInfo(wxOfflineActivity);
Map<Long, MallUserInfo> userMap = mallUserInfoService.getUserMap(userInfoQ);
//
WxOfflineActivityGrantItem grantItemQ = new WxOfflineActivityGrantItem();
grantItemQ.updateTenantInfo(wxOfflineActivity);
grantItemQ.setActivityId(wxOfflineActivity.getId());
List<WxOfflineActivityGrantItem> grantItem = wxOfflineActivityGrantItemMapper.findList(grantItemQ);
Map<Long, List<WxOfflineActivityGrantItem>> grantItemMap = grantItem.stream().collect(Collectors.groupingBy(WxOfflineActivityGrantItem::getGrantId));
for (WxOfflineActivityGrantAward grantAward : grantAwardList) {
List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordMapper.findGrantList(grantAward.getId(),grantAward.getTenantId());
List<WxOfflineActivityGrantItem> grantItemList = grantItemMap.get(grantAward.getId());
Map<String,Object> activityGrantObject = new HashMap<>();
activityGrantObject.put("activityName",activity.getName());
List<String> merchantOrder = new ArrayList<>();
for (WxOfflineActivityRecord record : recordList) {
merchantOrder.add(record.getOrderNo()+"["+merchantMap.get(record.getMerchantId())+"]");
}
activityGrantObject.put("merchantOrder",merchantOrder.stream().collect(Collectors.joining(";")));
activityGrantObject.put("orderMoneySum",grantAward.getOrderMoneySum());
activityGrantObject.put("cusName",grantAward.getCusName());
activityGrantObject.put("cusPhone",grantAward.getCusPhone());
activityGrantObject.put("realName",grantAward.getRealName());
activityGrantObject.put("realCard",grantAward.getRealCard());
activityGrantObject.put("createByName",grantAward.getCreateBy()!=null?userMap.get(grantAward.getCreateBy()).getName():"");
activityGrantObject.put("createDate",DateUtils.date2String(grantAward.getCreateDate()));
Map<Long, List<WxOfflineActivityGrantItem>> granActivityItemMap = grantItemList.stream().collect(Collectors.groupingBy(WxOfflineActivityGrantItem::getActivityItemId));
for (WxOfflineActivityItem activityItem : activity.getActivityItemList()) {
List<WxOfflineActivityGrantItem> granActivityItemList = granActivityItemMap.get(activityItem.getId());
if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){
Map<Long, WxOfflineActivityGrantItem> granAwardItamMap = new HashMap<>();
if(granActivityItemList != null && !granActivityItemList.isEmpty()){
granAwardItamMap = granActivityItemList.stream().collect(Collectors.toMap(WxOfflineActivityGrantItem::getAwardItamId, Function.identity()));
}
for (WxOfflineActivityAwardsItem awardsItem : activityItem.getActivityAwardsItemList()) {
WxOfflineActivityGrantItem grantAwardsItem = granAwardItamMap.get(awardsItem.getId());
if(grantAwardsItem != null){
activityGrantObject.put(String.valueOf(activityItem.getId())+String.valueOf(awardsItem.getId()),grantAwardsItem.getAwardCount());
} else {
activityGrantObject.put(String.valueOf(activityItem.getId())+String.valueOf(awardsItem.getId()),0);
}
}
}else if(EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())){
if(granActivityItemList != null && !granActivityItemList.isEmpty()){
activityGrantObject.put(String.valueOf(activityItem.getId()),granActivityItemList.get(0).getAwardName());
}
}else if(EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())){
if(granActivityItemList != null && !granActivityItemList.isEmpty()){
activityGrantObject.put("r"+String.valueOf(activityItem.getId()),granActivityItemList.get(0).getCashBackRatio().toString()+"%");
activityGrantObject.put("p"+String.valueOf(activityItem.getId()),granActivityItemList.get(0).getAwardPrice());
}else{
activityGrantObject.put("r"+String.valueOf(activityItem.getId()),"%");
activityGrantObject.put("p"+String.valueOf(activityItem.getId()),0);
}
}
}
activityGrantObject.put("lotteryNum",grantAward.getLotteryNum());
activityGrantObject.put("lotteryCount",grantAward.getLotteryCount());
activityGrantObject.put("anniversaryLotteryNum",grantAward.getAnniversaryLotteryNum());
// if(StringUtils.isNotBlank(grantAward.getSignImg())){
// try{
// activityGrantObject.put("signImg",DownFileUtil.url2byte(grantAward.getSignImg()));
// }catch (Exception e){}
// }
activityGrantObjectList.add(activityGrantObject);
}
}

excelService.exportExcel(headList, activityGrantObjectList, null, "活动奖品发放明细", "活动奖品发放明细.xlsx",true, response);
}

private List<ExcelExportEntity> getActivityGrantExportHead(WxOfflineActivity activity){
List<ExcelExportEntity> headList = new ArrayList<>();
ExcelExportEntity entity1 = new ExcelExportEntity("活动名称","activityName",20);
headList.add(entity1);
ExcelExportEntity entity2 = new ExcelExportEntity("订单[门店]","merchantOrder",20);
headList.add(entity2);
ExcelExportEntity entity3 = new ExcelExportEntity("订单总金额","orderMoneySum",20);
headList.add(entity3);
ExcelExportEntity entity4 = new ExcelExportEntity("客户姓名","cusName",20);
headList.add(entity4);
ExcelExportEntity entity5 = new ExcelExportEntity("客户电话","cusPhone",20);
headList.add(entity5);
ExcelExportEntity entity6 = new ExcelExportEntity("实际领奖人","realName",20);
headList.add(entity6);
ExcelExportEntity entity7 = new ExcelExportEntity("实际领奖人身份证号","realCard",20);
headList.add(entity7);
ExcelExportEntity entity8 = new ExcelExportEntity("发奖人","createByName",20);
headList.add(entity8);
ExcelExportEntity entity9 = new ExcelExportEntity("发奖时间","createDate",20);
headList.add(entity9);

for (WxOfflineActivityItem activityItem : activity.getActivityItemList()) {
//抽奖活动
//【活动项名称】【奖项名称】数量
if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){
for (WxOfflineActivityAwardsItem awardsItem : activityItem.getActivityAwardsItemList()) {
ExcelExportEntity entity10 = new ExcelExportEntity("【"+activityItem.getName()+"】【"+awardsItem.getName()+"】数量",
String.valueOf(activityItem.getId())+String.valueOf(awardsItem.getId()),20);
headList.add(entity10);
}
}
//满额赠礼活动
//【活动项名称】奖项
else if (EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())) {
ExcelExportEntity entity11 = new ExcelExportEntity("【"+activityItem.getName()+"】奖项",
String.valueOf(activityItem.getId()),20);
headList.add(entity11);
}
//返现活动
//【活动项名称】返现比例
//【活动项名称】返现金额
else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) {
ExcelExportEntity entity12 = new ExcelExportEntity("【"+activityItem.getName()+"】返现比例",
"r"+String.valueOf(activityItem.getId()),20);
headList.add(entity12);
ExcelExportEntity entity13 = new ExcelExportEntity("【"+activityItem.getName()+"】返现金额",
"p"+String.valueOf(activityItem.getId()),20);
headList.add(entity13);
}
}
ExcelExportEntity entity14 = new ExcelExportEntity("抽奖券编码","lotteryNum",20);
headList.add(entity14);
ExcelExportEntity entity15 = new ExcelExportEntity("抽奖券数量","lotteryCount",20);
headList.add(entity15);
ExcelExportEntity entity16 = new ExcelExportEntity("周年庆抽奖编码","anniversaryLotteryNum",20);
headList.add(entity16);
ExcelExportEntity entity17 = new ExcelExportEntity("签名图片","signImg",20);
// entity17.setType(BaseEntityTypeConstants.IMAGE_TYPE);
headList.add(entity17);

return headList;
}

} }






+ 6
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java Просмотреть файл

@@ -45,16 +45,16 @@ public class WxOfflineActivityGrantItemServiceImpl implements WxOfflineActivityG
grantGrantItem.setCreateDate(now); grantGrantItem.setCreateDate(now);
grantGrantItem.setUpdateDate(now); grantGrantItem.setUpdateDate(now);
if(EnumOfflineActivityType.CASHBACK.getCode().equals(grantGrantItem.getActivityItemType())){ if(EnumOfflineActivityType.CASHBACK.getCode().equals(grantGrantItem.getActivityItemType())){
BigDecimal awardPrice = new BigDecimal(wxOfflineActivityGrantAward.getOrderMoneySum())
BigDecimal awardPrice = wxOfflineActivityGrantAward.getOrderMoneySum()
.multiply(grantGrantItem.getCashBackRatio().divide(new BigDecimal(100))); .multiply(grantGrantItem.getCashBackRatio().divide(new BigDecimal(100)));
if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(grantGrantItem.getAwardsItemRule())){ if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(grantGrantItem.getAwardsItemRule())){
grantGrantItem.setAwardPrice(awardPrice.setScale(0, BigDecimal.ROUND_HALF_UP).intValue());
grantGrantItem.setAwardPrice(awardPrice.setScale(0, BigDecimal.ROUND_HALF_UP));
} else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(grantGrantItem.getAwardsItemRule())) { } 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);
BigDecimal awardPriceYuan = awardPrice.divide(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP);
grantGrantItem.setAwardPrice(awardPriceYuan.multiply(new BigDecimal(100)));
}else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(grantGrantItem.getAwardsItemRule())){ }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);
BigDecimal awardPriceTen = awardPrice.divide(new BigDecimal(1000)).setScale(0, BigDecimal.ROUND_HALF_UP);
grantGrantItem.setAwardPrice(awardPriceTen.multiply(new BigDecimal(1000)));
} }
} }
rantItemList.add(grantGrantItem); rantItemList.add(grantGrantItem);


+ 22
- 12
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java Просмотреть файл

@@ -56,13 +56,13 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Date now = new Date(); Date now = new Date();
//获取订单占比(占比最少的订单用减法,尽量减少误差) //获取订单占比(占比最少的订单用减法,尽量减少误差)
List<WxOfflineActivityRecord> recordDescList = wxOfflineActivityGrantAward.getRecordList().stream().sorted(Comparator.comparingInt(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList());
List<WxOfflineActivityRecord> recordDescList = wxOfflineActivityGrantAward.getRecordList().stream().sorted(Comparator.comparing(WxOfflineActivityRecord::getOrderMoney).reversed()).collect(Collectors.toList());
int size = recordDescList.size() - 1; int size = recordDescList.size() - 1;
BigDecimal lastRatio = new BigDecimal(100); BigDecimal lastRatio = new BigDecimal(100);
for(int i=0; i<size; i++){ for(int i=0; i<size; i++){
WxOfflineActivityRecord record = recordDescList.get(i); WxOfflineActivityRecord record = recordDescList.get(i);
BigDecimal orderRatio = new BigDecimal(record.getOrderMoney())
.divide(new BigDecimal(wxOfflineActivityGrantAward.getOrderMoneySum()))
BigDecimal orderRatio = record.getOrderMoney()
.divide(wxOfflineActivityGrantAward.getOrderMoneySum())
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(2, RoundingMode.HALF_UP); .setScale(2, RoundingMode.HALF_UP);
record.setOrderRatio(orderRatio); record.setOrderRatio(orderRatio);
@@ -101,24 +101,24 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
} }
//计算订单分担金额,(占比最少的订单用减法,尽量减少误差) //计算订单分担金额,(占比最少的订单用减法,尽量减少误差)
int itemSize = itemSettlementList.size() - 1; int itemSize = itemSettlementList.size() - 1;
Integer lastGrantPrice = wxOfflineActivityGrantItem.getAwardPrice();
BigDecimal lastGrantPrice = wxOfflineActivityGrantItem.getAwardPrice();
for (int i = 0; i < itemSize; i++) { for (int i = 0; i < itemSize; i++) {
WxOfflineActivityGrantSettlement settlement = itemSettlementList.get(i); WxOfflineActivityGrantSettlement settlement = itemSettlementList.get(i);
int realGrantPrice = new BigDecimal(wxOfflineActivityGrantItem.getAwardPrice()).multiply(settlement.getOrderRatio()).setScale(0, RoundingMode.HALF_UP).intValue();
BigDecimal realGrantPrice = wxOfflineActivityGrantItem.getAwardPrice().multiply(settlement.getOrderRatio().divide(new BigDecimal(100))).setScale(0, RoundingMode.HALF_UP);
settlement.setRealGrantPrice(realGrantPrice); settlement.setRealGrantPrice(realGrantPrice);
settlement.setRealMallSharePrice(new BigDecimal(settlement.getRealGrantPrice())
settlement.setRealMallSharePrice(settlement.getRealGrantPrice()
.multiply(settlement.getMallShareRate().divide(new BigDecimal(100))) .multiply(settlement.getMallShareRate().divide(new BigDecimal(100)))
.setScale(0, RoundingMode.HALF_UP).intValue());
settlement.setRealMerchantSharePrice(settlement.getRealGrantPrice() - settlement.getRealMallSharePrice());
.setScale(0, RoundingMode.HALF_UP));
settlement.setRealMerchantSharePrice(settlement.getRealGrantPrice().subtract(settlement.getRealMallSharePrice()));


lastGrantPrice = lastGrantPrice - realGrantPrice;
lastGrantPrice = lastGrantPrice.subtract(realGrantPrice);
} }
WxOfflineActivityGrantSettlement lastSettlement = itemSettlementList.get(itemSize); WxOfflineActivityGrantSettlement lastSettlement = itemSettlementList.get(itemSize);
lastSettlement.setRealGrantPrice(lastGrantPrice); lastSettlement.setRealGrantPrice(lastGrantPrice);
lastSettlement.setRealMallSharePrice(new BigDecimal(lastSettlement.getRealGrantPrice())
lastSettlement.setRealMallSharePrice(lastSettlement.getRealGrantPrice()
.multiply(lastSettlement.getMallShareRate().divide(new BigDecimal(100))) .multiply(lastSettlement.getMallShareRate().divide(new BigDecimal(100)))
.setScale(0, RoundingMode.HALF_UP).intValue());
lastSettlement.setRealMerchantSharePrice(lastSettlement.getRealGrantPrice() - lastSettlement.getRealMallSharePrice());
.setScale(0, RoundingMode.HALF_UP));
lastSettlement.setRealMerchantSharePrice(lastSettlement.getRealGrantPrice().subtract(lastSettlement.getRealMallSharePrice()));


settlementList.addAll(itemSettlementList); settlementList.addAll(itemSettlementList);
@@ -178,6 +178,16 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct
} }




private String getPercentage(BigDecimal yes, BigDecimal yesYes){

String percentage = "--";
if(yes.compareTo(BigDecimal.ZERO) > 0){
BigDecimal count = yes.subtract(yesYes);
percentage = count.divide(yesYes,2,BigDecimal.ROUND_HALF_UP).toString();
}
return percentage;
}

private String getPercentage(Integer yes, Integer yesYes){ private String getPercentage(Integer yes, Integer yesYes){
NumberFormat nf = NumberFormat.getPercentInstance(); NumberFormat nf = NumberFormat.getPercentInstance();
nf.setMinimumFractionDigits(2); nf.setMinimumFractionDigits(2);


+ 4
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityItemServiceImpl.java Просмотреть файл

@@ -12,6 +12,7 @@ import com.iformall.mapper.WxOfflineActivityItemMapper;
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 java.math.BigDecimal;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;


@@ -49,12 +50,12 @@ public class WxOfflineActivityItemServiceImpl implements WxOfflineActivityItemSe
activityItem.setAwardsItemRule(EnumOfflineActivityAwardsRule.DEF.getCode()); activityItem.setAwardsItemRule(EnumOfflineActivityAwardsRule.DEF.getCode());
} }
else if (EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())) { else if (EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())) {
activityItem.setLimitMoney(0);
activityItem.setAwardsItemPrice(0);
activityItem.setLimitMoney(BigDecimal.ZERO);
activityItem.setAwardsItemPrice(BigDecimal.ZERO);
activityItem.setAwardsItemRule(EnumOfflineActivityAwardsRule.DEF.getCode()); activityItem.setAwardsItemRule(EnumOfflineActivityAwardsRule.DEF.getCode());
} }
else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) {
activityItem.setAwardsItemPrice(0);
activityItem.setAwardsItemPrice(BigDecimal.ZERO);
activityItem.setAwardsItemCount(0); activityItem.setAwardsItemCount(0);
} }
if(activityItem.getCreateDate() == null){ if(activityItem.getCreateDate() == null){


+ 3
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java Просмотреть файл

@@ -146,6 +146,9 @@ public class WxOfflineActivityServiceImpl implements WxOfflineActivityService{
@Override @Override
public WxOfflineActivity getInfoById(Long id, String tenantId) { public WxOfflineActivity getInfoById(Long id, String tenantId) {
WxOfflineActivity wxOfflineActivity = wxOfflineActivityMapper.selectById(id, tenantId); WxOfflineActivity wxOfflineActivity = wxOfflineActivityMapper.selectById(id, tenantId);
if (wxOfflineActivity == null) {
return null;
}
List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(wxOfflineActivity.getId(),tenantId); List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(wxOfflineActivity.getId(),tenantId);
wxOfflineActivity.setActivityItemList(activityItemList); wxOfflineActivity.setActivityItemList(activityItemList);
if(!EnumOfflineActivityMerchantType.ALL.getCode().equals(wxOfflineActivity.getAllMerchant())){ if(!EnumOfflineActivityMerchantType.ALL.getCode().equals(wxOfflineActivity.getAllMerchant())){


+ 14
- 0
mallinkService/src/main/java/com/iformall/utils/DownFileUtil.java Просмотреть файл

@@ -82,4 +82,18 @@ public class DownFileUtil {
return bos.toByteArray(); return bos.toByteArray();
} }


public static byte[] url2byte(String urlStr) throws IOException {
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//设置超时间为3秒
conn.setConnectTimeout(3 * 1000);
//防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

//得到输入流
InputStream inputStream = conn.getInputStream();
//获取自己数组
return readInputStream(inputStream);
}

} }

+ 3
- 3
mallinkService/src/main/resources/mapper/WxOfflineActivityAwardsItemMapper.xml Просмотреть файл

@@ -11,10 +11,10 @@
<result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/> <result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/> <result property="name" column="name" jdbcType="VARCHAR"/>
<result property="grade" column="grade" jdbcType="INTEGER"/> <result property="grade" column="grade" jdbcType="INTEGER"/>
<result property="minAmount" column="min_amount" jdbcType="INTEGER"/>
<result property="maxAmount" column="max_amount" jdbcType="INTEGER"/>
<result property="minAmount" column="min_amount" jdbcType="DECIMAL"/>
<result property="maxAmount" column="max_amount" jdbcType="DECIMAL"/>
<result property="cashBackRatio" column="cash_back_ratio" jdbcType="DECIMAL"/> <result property="cashBackRatio" column="cash_back_ratio" jdbcType="DECIMAL"/>
<result property="price" column="price" jdbcType="INTEGER"/>
<result property="price" column="price" jdbcType="DECIMAL"/>
<result property="moneyRule" column="money_rule" jdbcType="SMALLINT"/> <result property="moneyRule" column="money_rule" jdbcType="SMALLINT"/>
<result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/> <result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/>
<result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/> <result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/>


+ 41
- 1
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml Просмотреть файл

@@ -9,7 +9,7 @@
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/> <result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="orderMoneySum" column="order_money_sum" jdbcType="INTEGER"/>
<result property="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/>
<result property="orderCount" column="order_count" jdbcType="INTEGER"/> <result property="orderCount" column="order_count" jdbcType="INTEGER"/>
<result property="cusName" column="cus_name" jdbcType="VARCHAR"/> <result property="cusName" column="cus_name" jdbcType="VARCHAR"/>
<result property="cusPhone" column="cus_phone" jdbcType="VARCHAR"/> <result property="cusPhone" column="cus_phone" jdbcType="VARCHAR"/>
@@ -33,6 +33,46 @@
lottery_count,anniversary_lottery_num lottery_count,anniversary_lottery_num
</sql> </sql>


<sql id="dynamicWhereConditions">
where 1 = 1

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

<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>

<if test=" null != activityId">
and `activity_id` = #{activityId}
</if>

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

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

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

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



<select id="getCusCount" parameterType="com.iformall.domain.po.WxOfflineActivityGrantAward" resultType="Integer"> <select id="getCusCount" parameterType="com.iformall.domain.po.WxOfflineActivityGrantAward" resultType="Integer">
SELECT COUNT(DISTINCT cus_phone) FROM wx_offline_activity_grant_award SELECT COUNT(DISTINCT cus_phone) FROM wx_offline_activity_grant_award


+ 6
- 6
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml Просмотреть файл

@@ -17,11 +17,11 @@
<result property="awardItamId" column="award_itam_id" jdbcType="BIGINT"/> <result property="awardItamId" column="award_itam_id" jdbcType="BIGINT"/>
<result property="awardName" column="award_name" jdbcType="VARCHAR"/> <result property="awardName" column="award_name" jdbcType="VARCHAR"/>
<result property="awardGrade" column="award_grade" jdbcType="INTEGER"/> <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="awardMinAmount" column="award_min_amount" jdbcType="DECIMAL"/>
<result property="awardMaxAmount" column="award_max_amount" jdbcType="DECIMAL"/>
<result property="awardsItemRule" column="awards_item_rule" jdbcType="INTEGER"/> <result property="awardsItemRule" column="awards_item_rule" jdbcType="INTEGER"/>
<result property="cashBackRatio" column="cash_back_ratio" jdbcType="DECIMAL"/> <result property="cashBackRatio" column="cash_back_ratio" jdbcType="DECIMAL"/>
<result property="awardPrice" column="award_price" jdbcType="INTEGER"/>
<result property="awardPrice" column="award_price" jdbcType="DECIMAL"/>
<result property="awardCount" column="award_count" jdbcType="INTEGER"/> <result property="awardCount" column="award_count" jdbcType="INTEGER"/>
<result property="moneyRule" column="money_rule" jdbcType="SMALLINT"/> <result property="moneyRule" column="money_rule" jdbcType="SMALLINT"/>
<result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/> <result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/>
@@ -60,7 +60,7 @@
</if> </if>


<if test=" null != activityId"> <if test=" null != activityId">
and `activityId` = #{activityId}
and `activity_id` = #{activityId}
</if> </if>
<if test=" null != activityItemId"> <if test=" null != activityItemId">
and `activity_item_id` = #{activityItemId} and `activity_item_id` = #{activityItemId}
@@ -99,8 +99,8 @@
#{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},
#{item.awardItamId,jdbcType=BIGINT},#{item.awardName,jdbcType=VARCHAR},#{item.awardGrade,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.awardMinAmount,jdbcType=DECIMAL},#{item.awardMaxAmount,jdbcType=DECIMAL},#{item.awardsItemRule,jdbcType=INTEGER},#{item.cashBackRatio,jdbcType=DECIMAL},
#{item.awardPrice,jdbcType=DECIMAL},#{item.awardCount,jdbcType=INTEGER},#{item.moneyRule,jdbcType=INTEGER},
#{item.mallShareRate,jdbcType=DECIMAL},#{item.merchantShareRate,jdbcType=DECIMAL}, #{item.mallShareRate,jdbcType=DECIMAL},#{item.merchantShareRate,jdbcType=DECIMAL},
#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP})
</foreach> </foreach>


+ 8
- 8
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml Просмотреть файл

@@ -10,19 +10,19 @@
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="recordId" column="record_id" jdbcType="BIGINT"/> <result property="recordId" column="record_id" jdbcType="BIGINT"/>
<result property="orderNo" column="order_no" jdbcType="VARCHAR"/> <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
<result property="orderMoney" column="order_money" jdbcType="INTEGER"/>
<result property="orderMoney" column="order_money" jdbcType="DECIMAL"/>
<result property="merchantId" column="merchant_id" jdbcType="BIGINT"/> <result property="merchantId" column="merchant_id" jdbcType="BIGINT"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/> <result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/> <result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/>
<result property="awardItamId" column="award_itam_id" jdbcType="BIGINT"/> <result property="awardItamId" column="award_itam_id" jdbcType="BIGINT"/>
<result property="grantId" column="grant_id" jdbcType="BIGINT"/> <result property="grantId" column="grant_id" jdbcType="BIGINT"/>
<result property="grantPrice" column="grant_price" jdbcType="INTEGER"/>
<result property="grantPrice" column="grant_price" jdbcType="DECIMAL"/>
<result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/> <result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/>
<result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/> <result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/>
<result property="orderRatio" column="order_ratio" jdbcType="DECIMAL"/> <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="INTEGER"/>
<result property="realMerchantSharePrice" column="real_merchant_share_price" jdbcType="INTEGER"/>
<result property="realGrantPrice" column="real_grant_price" jdbcType="DECIMAL"/>
<result property="realMallSharePrice" column="real_mall_share_price" jdbcType="DECIMAL"/>
<result property="realMerchantSharePrice" column="real_merchant_share_price" jdbcType="DECIMAL"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/> <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/> <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
@@ -113,11 +113,11 @@
values values
<foreach collection="settlementList" 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=DECIMAL},
#{item.merchantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityItemId,jdbcType=BIGINT}, #{item.merchantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityItemId,jdbcType=BIGINT},
#{item.awardItamId,jdbcType=BIGINT},#{item.grantId,jdbcType=BIGINT},#{item.grantPrice,jdbcType=INTEGER},
#{item.awardItamId,jdbcType=BIGINT},#{item.grantId,jdbcType=BIGINT},#{item.grantPrice,jdbcType=DECIMAL},
#{item.mallShareRate,jdbcType=DECIMAL},#{item.merchantShareRate,jdbcType=DECIMAL},#{item.orderRatio,jdbcType=DECIMAL}, #{item.mallShareRate,jdbcType=DECIMAL},#{item.merchantShareRate,jdbcType=DECIMAL},#{item.orderRatio,jdbcType=DECIMAL},
#{item.realGrantPrice,jdbcType=INTEGER},#{item.realMallSharePrice,jdbcType=INTEGER},#{item.realMerchantSharePrice,jdbcType=INTEGER},
#{item.realGrantPrice,jdbcType=DECIMAL},#{item.realMallSharePrice,jdbcType=DECIMAL},#{item.realMerchantSharePrice,jdbcType=DECIMAL},
#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP})
</foreach> </foreach>
</insert> </insert>


+ 2
- 2
mallinkService/src/main/resources/mapper/WxOfflineActivityItemMapper.xml Просмотреть файл

@@ -11,8 +11,8 @@
<result property="activityId" column="activity_id" jdbcType="BIGINT"/> <result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="type" column="type" jdbcType="SMALLINT"/> <result property="type" column="type" jdbcType="SMALLINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/> <result property="name" column="name" jdbcType="VARCHAR"/>
<result property="limitMoney" column="limit_money" jdbcType="INTEGER"/>
<result property="awardsItemPrice" column="awards_item_price" jdbcType="INTEGER"/>
<result property="limitMoney" column="limit_money" jdbcType="DECIMAL"/>
<result property="awardsItemPrice" column="awards_item_price" jdbcType="DECIMAL"/>
<result property="awardsItemLimit" column="awards_item_limit" jdbcType="INTEGER"/> <result property="awardsItemLimit" column="awards_item_limit" jdbcType="INTEGER"/>
<result property="awardsItemCount" column="awards_item_count" jdbcType="INTEGER"/> <result property="awardsItemCount" column="awards_item_count" jdbcType="INTEGER"/>
<result property="awardsItemRule" column="awards_item_rule" jdbcType="SMALLINT"/> <result property="awardsItemRule" column="awards_item_rule" jdbcType="SMALLINT"/>


+ 14
- 1
mallinkService/src/main/resources/mapper/WxOfflineActivityRecordMapper.xml Просмотреть файл

@@ -9,7 +9,7 @@
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="orderNo" column="order_no" jdbcType="VARCHAR"/> <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
<result property="orderMoney" column="order_money" jdbcType="INTEGER"/>
<result property="orderMoney" column="order_money" jdbcType="DECIMAL"/>
<result property="cusName" column="cus_name" jdbcType="VARCHAR"/> <result property="cusName" column="cus_name" jdbcType="VARCHAR"/>
<result property="realCusName" column="real_cus_name" jdbcType="VARCHAR"/> <result property="realCusName" column="real_cus_name" jdbcType="VARCHAR"/>
<result property="cusPhone" column="cus_phone" jdbcType="VARCHAR"/> <result property="cusPhone" column="cus_phone" jdbcType="VARCHAR"/>
@@ -229,4 +229,17 @@


</sql> </sql>


<select id="findGrantList" parameterType="java.util.HashMap" resultMap="BaseResultMap">
select r.id,r.tenant_id,r.parent_tenant_id,
r.order_no,r.order_money,r.cus_name,
r.real_cus_name,r.cus_phone,r.cus_address,
r.cus_card,r.lottery_num,r.lottery_count,
r.anniversary_lottery_num,r.create_by,r.merchant_id,r.business_id,
r.create_date,r.update_date,r.audit_remark,
r.audit_status,r.audit_by,audit_time
from wx_offline_activity_record_grant rg
left join wx_offline_activity_record r on rg.record_id = r.id
where rg.grant_id = #{grantId} and rg.tenant_id=#{tenantId}
</select>

</mapper> </mapper>

Загрузка…
Отмена
Сохранить