Browse Source

//activity v.2

release_toaliyun_real
xiaohu 1 year ago
parent
commit
2ddf8f5dce
18 changed files with 636 additions and 53 deletions
  1. +93
    -5
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoAmountGiftActivityController.java
  2. +95
    -7
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoCashBackActivityController.java
  3. +8
    -7
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoPrizeDrawActivityController.java
  4. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrantAward.java
  5. +3
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackActivity.java
  6. +1
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackAward.java
  7. +45
    -7
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackGrant.java
  8. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackGrantAward.java
  9. +5
    -4
      mallinkService/src/main/java/com/iformall/service/WxVtwoAmountGiftActivityService.java
  10. +5
    -4
      mallinkService/src/main/java/com/iformall/service/WxVtwoCashBackActivityService.java
  11. +6
    -0
      mallinkService/src/main/java/com/iformall/service/WxVtwoCashBackGrantService.java
  12. +107
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoAmountGiftActivityServiceImpl.java
  13. +194
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackActivityServiceImpl.java
  14. +61
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackGrantServiceImpl.java
  15. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoPrizeDrawActivityServiceImpl.java
  16. +1
    -1
      mallinkService/src/main/resources/mapper/WxVtwoCashBackActivityMapper.xml
  17. +1
    -1
      mallinkService/src/main/resources/mapper/WxVtwoCashBackAwardMapper.xml
  18. +2
    -4
      mallinkService/src/main/resources/mapper/WxVtwoCashBackGrantMapper.xml

+ 93
- 5
mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoAmountGiftActivityController.java View File

@@ -2,6 +2,7 @@ package com.iformall.controller.market;

import com.github.pagehelper.PageInfo;
import com.iformall.annotation.ApiVersion;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.constant.SwaggerConstant;
@@ -11,6 +12,7 @@ import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule;
import com.iformall.enums.EnumOfflineActivityMerchantType;
import com.iformall.enums.EnumOfflineActivityMode;
import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.exception.MallinkException;
import com.iformall.service.WxVtwoActivityOrderService;
@@ -164,14 +166,15 @@ public class WxVtwoAmountGiftActivityController extends BaseController {
activityOrder.setCreateDateBegin(activity.getStartTime());
activityOrder.setCreateDateEnd(activity.getEndTime());

Map<String,Object> statisticsMap = wxVtwoActivityOrderService.getStatistics(activityOrder);

WxVtwoActivityOrder orderOne = wxVtwoActivityOrderService.getlimitOne(activityOrder);
if(orderOne == null){
Map<String,Object> result = new HashMap<>();
result.put("cus_name","查无此人");
result.put("cus_phone",activityOrder.getCusPhone());
return new ResultData(result);
statisticsMap.put("cus_name","查无此人");
statisticsMap.put("cus_phone",activityOrder.getCusPhone());
return new ResultData(statisticsMap);
}
Map<String,Object> statisticsMap = wxVtwoActivityOrderService.getStatistics(activityOrder);
statisticsMap.put("cus_name",orderOne.getCusName());
statisticsMap.put("cus_phone",orderOne.getCusPhone());
return new ResultData(statisticsMap);
@@ -227,4 +230,89 @@ public class WxVtwoAmountGiftActivityController extends BaseController {
wxVtwoActivityOrderService.exportData(request,response,activityOrder,activity.getId());
}

@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("活动发放页面处理")
@PostMapping("grantAwardPage")
public ResultData grantAwardPage(@RequestBody WxVtwoActivityGrant activityGrant) {
TenantEntity tenantEntity = getTenantInfo();
activityGrant.updateTenantInfo(tenantEntity);
if(activityGrant.getActivityId() == null){
return new ResultData(Result.ERROR,"活动ID为空");
}
if(activityGrant.getOrderIdList() == null || activityGrant.getOrderIdList().isEmpty()){
return new ResultData(Result.ERROR,"请选择订单");
}
WxVtwoAmountGiftActivity amountGiftActivity = wxVtwoAmountGiftActivityService.getInfoById(activityGrant.getActivityId(), activityGrant.getTenantId());
if(amountGiftActivity == null){
return new ResultData(Result.ERROR,"查询不到活动");
}
if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(amountGiftActivity.getStatus())){
throw new MallinkException(Result.ERROR, "请检查活动状态");
}
if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(amountGiftActivity.getAmountModel())){
if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){
return new ResultData(Result.ERROR,"请筛选订单");
}
}else{
activityGrant.setOrderFilterIdList(null);
}
try{
wxVtwoAmountGiftActivityService.handlerGrantAwardPage(amountGiftActivity,activityGrant);
return new ResultData(activityGrant);
}catch(MallinkException e){
logger.error(e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());
}catch(Exception e){
logger.error("异常:" + e);
return new ResultData(ErrorCode.SYS_SERVER_ERROR);
}
}


@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("活动发放")
@PostMapping("grantAward")
public ResultData grantAward(@RequestBody WxVtwoActivityGrant activityGrant) {
TenantEntity tenantEntity = getTenantInfo();
activityGrant.updateTenantInfo(tenantEntity);
if(activityGrant.getActivityId() == null){
return new ResultData(Result.ERROR,"活动ID为空");
}
if(activityGrant.getOrderIdList() == null || activityGrant.getOrderIdList().isEmpty()){
return new ResultData(Result.ERROR,"请选择订单");
}
WxVtwoAmountGiftActivity amountGiftActivity = wxVtwoAmountGiftActivityService.getInfoById(activityGrant.getActivityId(), activityGrant.getTenantId());
if(amountGiftActivity == null){
return new ResultData(Result.ERROR,"查询不到活动");
}
if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(amountGiftActivity.getStatus())){
throw new MallinkException(Result.ERROR, "请检查活动状态");
}
if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(amountGiftActivity.getAmountModel())){
if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){
return new ResultData(Result.ERROR,"请筛选订单");
}
}else{
activityGrant.setOrderFilterIdList(null);
}
if(activityGrant.getGrantAwardList() == null || activityGrant.getGrantAwardList().isEmpty()){
return new ResultData(Result.ERROR,"奖励项为空");
}
// if(StringUtils.isBlank(activityGrant.getSignImg())){
// return new ResultData(Result.ERROR,"签名为空");
// }
activityGrant.setCreateBy(getUserId());
activityGrant.setCreateByName(getUser().getName());
try{
wxVtwoAmountGiftActivityService.grantAward(amountGiftActivity, activityGrant);
return new ResultData();
}catch(MallinkException e){
logger.error(e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());
}catch(Exception e){
logger.error("异常:" + e);
return new ResultData(ErrorCode.SYS_SERVER_ERROR);
}
}

}

+ 95
- 7
mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoCashBackActivityController.java View File

@@ -2,6 +2,7 @@ package com.iformall.controller.market;

import com.github.pagehelper.PageInfo;
import com.iformall.annotation.ApiVersion;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.constant.SwaggerConstant;
@@ -11,6 +12,7 @@ import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule;
import com.iformall.enums.EnumOfflineActivityMerchantType;
import com.iformall.enums.EnumOfflineActivityMode;
import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.exception.MallinkException;
import com.iformall.service.WxVtwoActivityOrderService;
@@ -178,7 +180,7 @@ public class WxVtwoCashBackActivityController extends BaseController {
}

TenantEntity tenantInfo = getTenantInfo();
WxVtwoCashBackActivity activity = wxVtwoCashBackActivityService.getById(activityOrder.getActivityId(), tenantInfo.getTenantId());
WxVtwoCashBackActivity activity = wxVtwoCashBackActivityService.getInfoById(activityOrder.getActivityId(), tenantInfo.getTenantId());
if(activity == null){
return new ResultData(Result.ERROR,"未查询到活动");
}
@@ -186,14 +188,15 @@ public class WxVtwoCashBackActivityController extends BaseController {
activityOrder.setCreateDateBegin(activity.getStartTime());
activityOrder.setCreateDateEnd(activity.getEndTime());

Map<String,Object> statisticsMap = wxVtwoActivityOrderService.getStatistics(activityOrder);

WxVtwoActivityOrder orderOne = wxVtwoActivityOrderService.getlimitOne(activityOrder);
if(orderOne == null){
Map<String,Object> result = new HashMap<>();
result.put("cus_name","查无此人");
result.put("cus_phone",activityOrder.getCusPhone());
return new ResultData(result);
statisticsMap.put("cus_name","查无此人");
statisticsMap.put("cus_phone",activityOrder.getCusPhone());
return new ResultData(statisticsMap);
}
Map<String,Object> statisticsMap = wxVtwoActivityOrderService.getStatistics(activityOrder);
statisticsMap.put("cus_name",orderOne.getCusName());
statisticsMap.put("cus_phone",orderOne.getCusPhone());
return new ResultData(statisticsMap);
@@ -212,7 +215,7 @@ public class WxVtwoCashBackActivityController extends BaseController {
}

TenantEntity tenantInfo = getTenantInfo();
WxVtwoCashBackActivity activity = wxVtwoCashBackActivityService.getById(activityOrder.getActivityId(), tenantInfo.getTenantId());
WxVtwoCashBackActivity activity = wxVtwoCashBackActivityService.getInfoById(activityOrder.getActivityId(), tenantInfo.getTenantId());
if(activity == null){
return new ResultData(Result.ERROR,"未查询到活动");
}
@@ -249,4 +252,89 @@ public class WxVtwoCashBackActivityController extends BaseController {
wxVtwoActivityOrderService.exportData(request,response,activityOrder,activity.getId());
}

@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("活动发放页面处理")
@PostMapping("grantAwardPage")
public ResultData grantAwardPage(@RequestBody WxVtwoCashBackGrant activityGrant) {
TenantEntity tenantEntity = getTenantInfo();
activityGrant.updateTenantInfo(tenantEntity);
if(activityGrant.getActivityId() == null){
return new ResultData(Result.ERROR,"活动ID为空");
}
if(activityGrant.getOrderIdList() == null || activityGrant.getOrderIdList().isEmpty()){
return new ResultData(Result.ERROR,"请选择订单");
}
WxVtwoCashBackActivity cashBackActivity = wxVtwoCashBackActivityService.getById(activityGrant.getActivityId(), activityGrant.getTenantId());
if(cashBackActivity == null){
return new ResultData(Result.ERROR,"查询不到活动");
}
if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(cashBackActivity.getStatus())){
throw new MallinkException(Result.ERROR, "请检查活动状态");
}
if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(cashBackActivity.getAmountModel())){
if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){
return new ResultData(Result.ERROR,"请筛选订单");
}
}else{
activityGrant.setOrderFilterIdList(null);
}
try{
wxVtwoCashBackActivityService.handlerGrantAwardPage(cashBackActivity,activityGrant);
return new ResultData(activityGrant);
}catch(MallinkException e){
logger.error(e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());
}catch(Exception e){
logger.error("异常:" + e);
return new ResultData(ErrorCode.SYS_SERVER_ERROR);
}
}


@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("活动发放")
@PostMapping("grantAward")
public ResultData grantAward(@RequestBody WxVtwoCashBackGrant activityGrant) {
TenantEntity tenantEntity = getTenantInfo();
activityGrant.updateTenantInfo(tenantEntity);
if(activityGrant.getActivityId() == null){
return new ResultData(Result.ERROR,"活动ID为空");
}
if(activityGrant.getOrderIdList() == null || activityGrant.getOrderIdList().isEmpty()){
return new ResultData(Result.ERROR,"请选择订单");
}
WxVtwoCashBackActivity cashBackActivity = wxVtwoCashBackActivityService.getById(activityGrant.getActivityId(), activityGrant.getTenantId());
if(cashBackActivity == null){
return new ResultData(Result.ERROR,"查询不到活动");
}
if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(cashBackActivity.getStatus())){
throw new MallinkException(Result.ERROR, "请检查活动状态");
}
if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(cashBackActivity.getAmountModel())){
if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){
return new ResultData(Result.ERROR,"请筛选订单");
}
}else{
activityGrant.setOrderFilterIdList(null);
}
if(activityGrant.getGrantAwardList() == null || activityGrant.getGrantAwardList().isEmpty()){
return new ResultData(Result.ERROR,"奖励项为空");
}
// if(StringUtils.isBlank(activityGrant.getSignImg())){
// return new ResultData(Result.ERROR,"签名为空");
// }
activityGrant.setCreateBy(getUserId());
activityGrant.setCreateByName(getUser().getName());
try{
wxVtwoCashBackActivityService.grantAward(cashBackActivity, activityGrant);
return new ResultData();
}catch(MallinkException e){
logger.error(e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());
}catch(Exception e){
logger.error("异常:" + e);
return new ResultData(ErrorCode.SYS_SERVER_ERROR);
}
}

}

+ 8
- 7
mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoPrizeDrawActivityController.java View File

@@ -166,14 +166,15 @@ public class WxVtwoPrizeDrawActivityController extends BaseController {
activityOrder.setCreateDateBegin(activity.getStartTime());
activityOrder.setCreateDateEnd(activity.getEndTime());

Map<String,Object> statisticsMap = wxVtwoActivityOrderService.getStatistics(activityOrder);

WxVtwoActivityOrder orderOne = wxVtwoActivityOrderService.getlimitOne(activityOrder);
if(orderOne == null){
Map<String,Object> result = new HashMap<>();
result.put("cus_name","查无此人");
result.put("cus_phone",activityOrder.getCusPhone());
return new ResultData(result);
statisticsMap.put("cus_name","查无此人");
statisticsMap.put("cus_phone",activityOrder.getCusPhone());
return new ResultData(statisticsMap);
}
Map<String,Object> statisticsMap = wxVtwoActivityOrderService.getStatistics(activityOrder);
statisticsMap.put("cus_name",orderOne.getCusName());
statisticsMap.put("cus_phone",orderOne.getCusPhone());
return new ResultData(statisticsMap);
@@ -241,7 +242,7 @@ public class WxVtwoPrizeDrawActivityController extends BaseController {
if(activityGrant.getOrderIdList() == null || activityGrant.getOrderIdList().isEmpty()){
return new ResultData(Result.ERROR,"请选择订单");
}
WxVtwoPrizeDrawActivity prizeDrawActivity = wxVtwoPrizeDrawActivityService.getById(activityGrant.getActivityId(), activityGrant.getTenantId());
WxVtwoPrizeDrawActivity prizeDrawActivity = wxVtwoPrizeDrawActivityService.getInfoById(activityGrant.getActivityId(), activityGrant.getTenantId());
if(prizeDrawActivity == null){
return new ResultData(Result.ERROR,"查询不到活动");
}
@@ -280,7 +281,7 @@ public class WxVtwoPrizeDrawActivityController extends BaseController {
if(activityGrant.getOrderIdList() == null || activityGrant.getOrderIdList().isEmpty()){
return new ResultData(Result.ERROR,"请选择订单");
}
WxVtwoPrizeDrawActivity prizeDrawActivity = wxVtwoPrizeDrawActivityService.getById(activityGrant.getActivityId(), activityGrant.getTenantId());
WxVtwoPrizeDrawActivity prizeDrawActivity = wxVtwoPrizeDrawActivityService.getInfoById(activityGrant.getActivityId(), activityGrant.getTenantId());
if(prizeDrawActivity == null){
return new ResultData(Result.ERROR,"查询不到活动");
}


+ 4
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrantAward.java View File

@@ -16,6 +16,10 @@ import lombok.Data;
@TableName(value ="wx_vtwo_activity_grant_award")
@Data
public class WxVtwoActivityGrantAward extends TenantEntity {

@TableField(exist = false)
private String name;

/**
*
*/


+ 3
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackActivity.java View File

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity;

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

@@ -70,7 +72,7 @@ public class WxVtwoCashBackActivity extends TenantEntity {
* 返现总金额限制
*/
@TableField(value = "cash_back_limit")
private Integer cashBackLimit;
private BigDecimal cashBackLimit;

/**
* 返现计算规则


+ 1
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackAward.java View File

@@ -68,7 +68,7 @@ public class WxVtwoCashBackAward extends TenantEntity {
* 返现金额限制
*/
@TableField(value = "cash_back_limit")
private Integer cashBackLimit;
private BigDecimal cashBackLimit;

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


+ 45
- 7
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackGrant.java View File

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

import com.alibaba.fastjson.JSON;
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -7,6 +9,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.iformall.domain.vo.WxVtwoActivityGrantRule;
import lombok.Data;

/**
@@ -63,6 +68,18 @@ public class WxVtwoCashBackGrant extends TenantEntity {
*/
@TableField(value = "lottery_num")
private String lotteryNum;
@TableField(exist = false)
private List<String> lotteryNumList;
public List<String> getLotteryNumList() {
if(StringUtils.isNotBlank(lotteryNum)){
try {
List<String> stringList = JSON.parseArray(lotteryNum, String.class);
stringList.removeIf(String::isEmpty);
lotteryNumList = stringList.isEmpty() ? null : stringList;
} catch (Exception e){}
}
return lotteryNumList;
}

/**
* 抽奖券数量
@@ -75,6 +92,18 @@ public class WxVtwoCashBackGrant extends TenantEntity {
*/
@TableField(value = "anniversary_lottery_num")
private String anniversaryLotteryNum;
@TableField(exist = false)
private List<String> anniversaryLotteryNumList;
public List<String> getAnniversaryLotteryNumList() {
if(StringUtils.isNotBlank(anniversaryLotteryNum)){
try {
List<String> stringList = JSON.parseArray(anniversaryLotteryNum, String.class);
stringList.removeIf(String::isEmpty);
anniversaryLotteryNumList = stringList.isEmpty() ? null : stringList;
} catch (Exception e){}
}
return anniversaryLotteryNumList;
}

/**
* 实际领奖人
@@ -94,12 +123,6 @@ public class WxVtwoCashBackGrant extends TenantEntity {
@TableField(value = "cash_back_limit")
private BigDecimal cashBackLimit;

/**
* 返现金额计算规则
*/
@TableField(value = "cash_back_rule")
private Integer cashBackRule;

/**
* 返现金额
*/
@@ -121,7 +144,7 @@ public class WxVtwoCashBackGrant extends TenantEntity {
/**
* 实际返现金额
*/
@TableField(value = "real_cash_back")
@TableField(exist = false)
private BigDecimal realCashBack;

/**
@@ -147,6 +170,8 @@ public class WxVtwoCashBackGrant extends TenantEntity {
*/
@TableField(value = "create_by")
private Long createBy;
@TableField(exist = false)
private String createByName;

/**
* 创建时间
@@ -159,4 +184,17 @@ public class WxVtwoCashBackGrant extends TenantEntity {
*/
@TableField(value = "update_date")
private Date updateDate;

@TableField(exist = false)
private List<WxVtwoCashBackGrantAward> grantAwardList;

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

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

@TableField(exist = false)
private List<WxVtwoActivityOrder> orderList;

}

+ 4
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackGrantAward.java View File

@@ -16,6 +16,10 @@ import lombok.Data;
@TableName(value ="wx_vtwo_cash_back_grant_award")
@Data
public class WxVtwoCashBackGrantAward extends TenantEntity {

@TableField(exist = false)
private String name;

/**
*
*/


+ 5
- 4
mallinkService/src/main/java/com/iformall/service/WxVtwoAmountGiftActivityService.java View File

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

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxVtwoAmountGiftActivity;
import com.iformall.domain.po.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.WxVtwoCashBackActivity;
import com.iformall.domain.po.WxVtwoPrizeDrawActivity;
import com.iformall.domain.po.WxVtwoSpecialTopicActivity;
import com.iformall.domain.po.base.TenantEntity;

/**
@@ -22,4 +19,8 @@ public interface WxVtwoAmountGiftActivityService extends IService<WxVtwoAmountGi
WxVtwoAmountGiftActivity getById(Long id, String tenantId);

void handleSpecialTopicActivity(TenantEntity tenantEntity, WxVtwoSpecialTopicActivity activity);

void handlerGrantAwardPage(WxVtwoAmountGiftActivity amountGiftActivity, WxVtwoActivityGrant activityGrant);

void grantAward(WxVtwoAmountGiftActivity amountGiftActivity,WxVtwoActivityGrant activityGrant);
}

+ 5
- 4
mallinkService/src/main/java/com/iformall/service/WxVtwoCashBackActivityService.java View File

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

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxVtwoAmountGiftActivity;
import com.iformall.domain.po.WxVtwoCashBackActivity;
import com.iformall.domain.po.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.WxVtwoPrizeDrawActivity;
import com.iformall.domain.po.WxVtwoSpecialTopicActivity;
import com.iformall.domain.po.base.TenantEntity;

/**
@@ -22,4 +19,8 @@ public interface WxVtwoCashBackActivityService extends IService<WxVtwoCashBackAc
WxVtwoCashBackActivity getById(Long id, String tenantId);

void handleSpecialTopicActivity(TenantEntity tenantEntity, WxVtwoSpecialTopicActivity activity);

void handlerGrantAwardPage(WxVtwoCashBackActivity cashBackActivity, WxVtwoCashBackGrant activityGrant);

void grantAward(WxVtwoCashBackActivity cashBackActivity,WxVtwoCashBackGrant activityGrant);
}

+ 6
- 0
mallinkService/src/main/java/com/iformall/service/WxVtwoCashBackGrantService.java View File

@@ -1,8 +1,12 @@
package com.iformall.service;

import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityOrder;
import com.iformall.domain.po.WxVtwoCashBackGrant;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author xiaohu
* @description 针对表【wx_vtwo_cash_back_grant(线下返现活动发奖)】的数据库操作Service
@@ -10,4 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface WxVtwoCashBackGrantService extends IService<WxVtwoCashBackGrant> {

void handleFromOrder(String activityName, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant);

}

+ 107
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxVtwoAmountGiftActivityServiceImpl.java View File

@@ -8,22 +8,27 @@ import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxVtwoActivityGrantRule;
import com.iformall.domain.vo.WxVtwoActivityOrderStatistics;
import com.iformall.domain.vo.WxVtwoActivityRuleDetail;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.*;
import com.iformall.service.ExcelService;
import com.iformall.service.WxVtwoActivityAwardService;
import com.iformall.service.WxVtwoActivityMerchantService;
import com.iformall.service.WxVtwoAmountGiftActivityService;
import com.iformall.service.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.function.Function;

import static java.util.stream.Collectors.toMap;

/**
* @author xiaohu
@@ -55,6 +60,21 @@ public class WxVtwoAmountGiftActivityServiceImpl extends ServiceImpl<WxVtwoAmoun
@Autowired
private WxVtwoActivityMerchantService wxVtwoActivityMerchantService;

@Autowired
private WxVtwoActivityOrderService wxVtwoActivityOrderService;

@Autowired
private WxVtwoActivityGrantService wxVtwoActivityGrantService;

@Autowired
private WxVtwoActivityGrantOrderService wxVtwoActivityGrantOrderService;

@Autowired
private WxVtwoActivityGrantAwardService wxVtwoActivityGrantAwardService;

@Autowired
private WxVtwoActivityGrantSettlementService wxVtwoActivityGrantSettlementService;

@Autowired
private ExcelService excelService;

@@ -233,6 +253,89 @@ public class WxVtwoAmountGiftActivityServiceImpl extends ServiceImpl<WxVtwoAmoun
activity.setActivityEndTime(amountGiftActivity.getEndTime());
activity.setActivityStatus(amountGiftActivity.getStatus());
}

@Override
public void handlerGrantAwardPage(WxVtwoAmountGiftActivity amountGiftActivity,WxVtwoActivityGrant activityGrant) {

List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());

wxVtwoActivityGrantService.handleFromOrder(amountGiftActivity.getName(),activityGrant,orderList,false);

List<WxVtwoActivityAward> activityAwardList = wxVtwoActivityAwardService.findActivityAwardList(activityGrant.getActivityId(), activityGrant.getTenantId());
activityGrant.setAwardList(activityAwardList);

List<WxVtwoActivityGrantAward> grantAwardList = new ArrayList<>();
if(EnumOfflineActivityMode.ONE.getCode().equals(amountGiftActivity.getAmountModel())){
for(WxVtwoActivityOrder order:orderList){
Integer awardGrade = 0;
for (WxVtwoActivityRuleDetail rule :amountGiftActivity.getAmountRulesObject()){
if((rule.getMinAmount() == null || order.getOrderMoney().compareTo(rule.getMinAmount()) >= 0)
&& (rule.getMaxAmount() == null || order.getOrderMoney().compareTo(rule.getMaxAmount()) <= 0)){
awardGrade = rule.getAwardGrade();
}
}
if(awardGrade != null){
WxVtwoActivityGrantAward grantAward = new WxVtwoActivityGrantAward();
grantAward.setOrderId(order.getId());
grantAward.setModeType(EnumOfflineActivityAwardsModeType.AMOUNT.getCode());
grantAward.setName("订单赠礼("+order.getOrderNo()+")");
grantAward.setAwardGrade(awardGrade);
grantAwardList.add(grantAward);
}
}
}else{
BigDecimal orderMoneySum = orderList.stream().filter(order -> EnumYesOrNo.YES.getCode().equals(order.getIsAmount()))
.map(WxVtwoActivityOrder::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
Integer awardGrade = 0;
for (WxVtwoActivityRuleDetail rule :amountGiftActivity.getAmountRulesObject()){
if((rule.getMinAmount() == null || orderMoneySum.compareTo(rule.getMinAmount()) >= 0)
&& (rule.getMaxAmount() == null || orderMoneySum.compareTo(rule.getMaxAmount()) <= 0)){
awardGrade = rule.getAwardGrade();
}
}
if(awardGrade != null){
WxVtwoActivityGrantAward grantAward = new WxVtwoActivityGrantAward();
grantAward.setModeType(EnumOfflineActivityAwardsModeType.AMOUNT.getCode());
grantAward.setName("订单金额赠礼");
grantAward.setAwardGrade(awardGrade);
grantAwardList.add(grantAward);
}
}

//联单
Integer jointCount = wxVtwoActivityOrderService.getJointCount(amountGiftActivity.getRelatedModel(),orderList);
if(jointCount != 0){
Map<Integer, WxVtwoActivityRuleDetail> jointCountMap = amountGiftActivity.getRelatedRulesObject().stream().collect(toMap(WxVtwoActivityRuleDetail::getRelatedCount, Function.identity()));
WxVtwoActivityRuleDetail relatedRule = jointCountMap.get(jointCount);
if(relatedRule != null && relatedRule.getAwardGrade() != null){
Integer awardGrade = relatedRule.getAwardGrade();
WxVtwoActivityGrantAward grantAward = new WxVtwoActivityGrantAward();
grantAward.setModeType(EnumOfflineActivityAwardsModeType.COUNT.getCode());
grantAward.setName("联单赠礼");
grantAward.setAwardGrade(awardGrade);
grantAwardList.add(grantAward);
}
}
activityGrant.setGrantAwardList(grantAwardList);
}

@Override
@Transactional(rollbackFor = Exception.class)
public void grantAward(WxVtwoAmountGiftActivity amountGiftActivity,WxVtwoActivityGrant activityGrant) {

List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());

wxVtwoActivityGrantService.handleFromOrder(amountGiftActivity.getName(),activityGrant,orderList,false);

wxVtwoActivityGrantService.saveOrUpdate(activityGrant);

wxVtwoActivityGrantOrderService.saveGrantOrder(activityGrant.getId(),activityGrant.getActivityId(),orderList);

wxVtwoActivityGrantAwardService.saveGrantAward(activityGrant);

wxVtwoActivityGrantSettlementService.saveGrantSettlement(activityGrant);
}

}




+ 194
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackActivityServiceImpl.java View File

@@ -20,11 +20,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toMap;

/**
* @author xiaohu
* @description 针对表【wx_vtwo_cash_back_activity(线下返现活动)】的数据库操作Service实现
@@ -55,6 +59,12 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac
@Autowired
private WxVtwoActivityMerchantService wxVtwoActivityMerchantService;

@Autowired
private WxVtwoActivityOrderService wxVtwoActivityOrderService;

@Autowired
private WxVtwoCashBackGrantService wxVtwoCashBackGrantService;

@Autowired
private ExcelService excelService;

@@ -201,9 +211,6 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac
cashBackActivity.setTaxDeductionRulesObject(JSONObject.parseObject(cashBackActivity.getTaxDeductionRules(), WxVtwoActivityTaxDeductionRule.class));
}

WxVtwoCashBackAward cashBackAwardQ = new WxVtwoCashBackAward();
cashBackAwardQ.setTenantId(tenantId);
cashBackAwardQ.setActivityId(id);
List<WxVtwoCashBackAward> activityAwardList = wxVtwoCashBackAwardService.findActivityAwardList(id,tenantId);
Map<Integer, List<WxVtwoCashBackAward>> activityAwardMap = activityAwardList.stream().collect(Collectors.groupingBy(WxVtwoCashBackAward::getModelType));
cashBackActivity.setAmountRulesObject(activityAwardMap.get(EnumOfflineActivityAwardsModeType.AMOUNT.getCode()));
@@ -236,6 +243,187 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac
activity.setActivityStatus(cashBackActivity.getStatus());
}

@Override
public void handlerGrantAwardPage(WxVtwoCashBackActivity cashBackActivity,WxVtwoCashBackGrant activityGrant) {

List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());

wxVtwoCashBackGrantService.handleFromOrder(cashBackActivity.getName(),activityGrant,orderList,false);

List<WxVtwoCashBackGrantAward> grantAwardList = new ArrayList<>();
BigDecimal cashBackTotal = BigDecimal.ZERO;
List<WxVtwoCashBackAward> sortAmountAwardList = cashBackActivity.getAmountRulesObject().stream().sorted(Comparator.comparing(WxVtwoCashBackAward::getMinAmount)).collect(toList());
if(EnumOfflineActivityMode.ONE.getCode().equals(cashBackActivity.getAmountModel())){
for(WxVtwoActivityOrder order:orderList){
WxVtwoCashBackAward cashBackAward = null;
for(WxVtwoCashBackAward award:sortAmountAwardList){
if((award.getMinAmount() == null || order.getOrderMoney().compareTo(award.getMinAmount()) >= 0)
&& (award.getMaxAmount() == null || order.getOrderMoney().compareTo(award.getMaxAmount()) <= 0)){
cashBackAward = award;
}
}
if(cashBackAward != null && cashBackAward.getCashBackRatio() != null){
BigDecimal cashBackPrice = order.getOrderMoney().multiply(cashBackAward.getCashBackRatio().divide(new BigDecimal(100)));
if(cashBackAward.getCashBackLimit() != null && cashBackAward.getCashBackLimit().compareTo(BigDecimal.ZERO) > 0
&& cashBackAward.getCashBackLimit().compareTo(cashBackPrice) < 0 ){
cashBackPrice = cashBackAward.getCashBackLimit();
}
cashBackPrice = awardsRulePrice(cashBackPrice,cashBackActivity.getCashBackRule());
if(cashBackPrice.compareTo(BigDecimal.ZERO) > 0){
cashBackTotal = cashBackTotal.add(cashBackPrice);
WxVtwoCashBackGrantAward grantAward = new WxVtwoCashBackGrantAward();
grantAward.setName("订单返现("+order.getOrderNo()+")");
grantAward.setOrderId(order.getId());
grantAward.setOrderAmount(order.getOrderMoney());
grantAward.setModeType(EnumOfflineActivityAwardsModeType.AMOUNT.getCode());
grantAward.setCashBackRule(cashBackActivity.getCashBackRule());
grantAward.setCashBack(cashBackPrice);
handleGrantAward(grantAward,cashBackAward);
grantAwardList.add(grantAward);
}
}
}
}else{
BigDecimal orderMoneySum = orderList.stream().filter(order -> EnumYesOrNo.YES.getCode().equals(order.getIsAmount()))
.map(WxVtwoActivityOrder::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
WxVtwoCashBackAward cashBackAward = null;
for(WxVtwoCashBackAward award:sortAmountAwardList){
if((award.getMinAmount() == null || orderMoneySum.compareTo(award.getMinAmount()) >= 0)
&& (award.getMaxAmount() == null || orderMoneySum.compareTo(award.getMaxAmount()) <= 0)){
cashBackAward = award;
}
}
if(cashBackAward != null && cashBackAward.getCashBackRatio() != null){
BigDecimal cashBackPrice = orderMoneySum.multiply(cashBackAward.getCashBackRatio().divide(new BigDecimal(100)));
cashBackPrice = awardsRulePrice(cashBackPrice,cashBackActivity.getCashBackRule());

if(cashBackPrice.compareTo(BigDecimal.ZERO) > 0){
cashBackTotal = cashBackTotal.add(cashBackPrice);
WxVtwoCashBackGrantAward grantAward = new WxVtwoCashBackGrantAward();
grantAward.setName("订单金额返现");
grantAward.setOrderAmount(orderMoneySum);
grantAward.setModeType(EnumOfflineActivityAwardsModeType.AMOUNT.getCode());
grantAward.setCashBackRule(cashBackActivity.getCashBackRule());
grantAward.setCashBack(cashBackPrice);
handleGrantAward(grantAward,cashBackAward);
grantAwardList.add(grantAward);
}
}
}

//联单
Integer jointCount = wxVtwoActivityOrderService.getJointCount(cashBackActivity.getRelatedModel(),orderList);
if(jointCount != 0){
Map<Integer, WxVtwoCashBackAward> jointCountMap = cashBackActivity.getRelatedRulesObject().stream().collect(toMap(WxVtwoCashBackAward::getRelatedCount, Function.identity()));
WxVtwoCashBackAward cashBackAward = jointCountMap.get(jointCount);
if(cashBackAward != null && cashBackAward.getCashBackRatio() != null){
BigDecimal orderMoneySum = orderList.stream().map(WxVtwoActivityOrder::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal cashBackPrice = orderMoneySum.multiply(cashBackAward.getCashBackRatio().divide(new BigDecimal(100)));
cashBackPrice = awardsRulePrice(cashBackPrice,cashBackActivity.getCashBackRule());

if(cashBackPrice.compareTo(BigDecimal.ZERO) > 0){
cashBackTotal = cashBackTotal.add(cashBackPrice);
WxVtwoCashBackGrantAward grantAward = new WxVtwoCashBackGrantAward();
grantAward.setName("联单返现");
grantAward.setOrderAmount(orderMoneySum);
grantAward.setModeType(EnumOfflineActivityAwardsModeType.COUNT.getCode());
grantAward.setCashBackRule(cashBackActivity.getCashBackRule());
grantAward.setCashBack(cashBackPrice);
handleGrantAward(grantAward,cashBackAward);
grantAwardList.add(grantAward);
}
}
}

//计算返现金额最大限制
BigDecimal prop = BigDecimal.ONE;
if(cashBackTotal.compareTo(cashBackActivity.getCashBackLimit()) >= 0){
prop = cashBackActivity.getCashBackLimit().divide(cashBackTotal,4,RoundingMode.HALF_UP);
}
BigDecimal realCashBackTotal = BigDecimal.ZERO;
if(prop.compareTo(BigDecimal.ONE) < 0){
for (WxVtwoCashBackGrantAward grantAward:grantAwardList){
grantAward.setCashBack(awardsRulePrice(grantAward.getCashBack().multiply(prop),cashBackActivity.getCashBackRule()));
realCashBackTotal = realCashBackTotal.add(grantAward.getCashBack());
}
}

activityGrant.setCashBackLimit(cashBackActivity.getCashBackLimit());
activityGrant.setCashBack(realCashBackTotal);
if(EnumOfflineActivityMode.ONE.getCode().equals(cashBackActivity.getAmountModel())){
//单独算税点
BigDecimal taxAmount = BigDecimal.ZERO;
for (WxVtwoCashBackGrantAward grantAward:grantAwardList){
grantAward.setTaxDeductionRules(cashBackActivity.getTaxDeductionRules());
WxVtwoActivityTaxDeductionRule taxDeductionRulesObject = cashBackActivity.getTaxDeductionRulesObject();
if(taxDeductionRulesObject.getStartingTax() != null && grantAward.getCashBack().compareTo(taxDeductionRulesObject.getStartingTax()) > 0
&& taxDeductionRulesObject.getTaxPoints() != null){
grantAward.setTaxAmount(grantAward.getCashBack().multiply(taxDeductionRulesObject.getTaxPoints())
.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP));
taxAmount = taxAmount.add(grantAward.getTaxAmount());
}
}
activityGrant.setTaxAmount(taxAmount);
}else{
activityGrant.setTaxDeductionRules(cashBackActivity.getTaxDeductionRules());
WxVtwoActivityTaxDeductionRule taxDeductionRulesObject = cashBackActivity.getTaxDeductionRulesObject();
if(taxDeductionRulesObject.getStartingTax() != null && activityGrant.getCashBack().compareTo(taxDeductionRulesObject.getStartingTax()) > 0
&& taxDeductionRulesObject.getTaxPoints() != null){
activityGrant.setTaxAmount(activityGrant.getCashBack().multiply(taxDeductionRulesObject.getTaxPoints())
.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP));

//税点分摊到发奖上面
}
}




activityGrant.setGrantAwardList(grantAwardList);
}

private BigDecimal awardsRulePrice(BigDecimal awardsPrice,Integer awardsRule){
BigDecimal awardsRulePrice = BigDecimal.ZERO;
if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(awardsRule)){
awardsRulePrice = awardsPrice.setScale(2, RoundingMode.HALF_UP);
} else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(awardsRule)) {
awardsRulePrice = awardsPrice.setScale(0, RoundingMode.HALF_UP);
}else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(awardsRule)){
awardsRulePrice = awardsPrice.divide(new BigDecimal(10))
.setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10));
}
return awardsRulePrice;
}

private void handleGrantAward(WxVtwoCashBackGrantAward grantAward,WxVtwoCashBackAward cashBackAward){
grantAward.setMinAmount(cashBackAward.getMinAmount());
grantAward.setMaxAmount(cashBackAward.getMaxAmount());
grantAward.setAwardId(cashBackAward.getId());
grantAward.setAwardName(cashBackAward.getName());
grantAward.setCashBackRatio(cashBackAward.getCashBackRatio());

grantAward.setShareRule(cashBackAward.getShareRule());
grantAward.setMallShareRate(cashBackAward.getMallShareRate());
grantAward.setMerchantShareRate(cashBackAward.getMerchantShareRate());
}

@Override
@Transactional(rollbackFor = Exception.class)
public void grantAward(WxVtwoCashBackActivity cashBackActivity,WxVtwoCashBackGrant activityGrant) {

List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());

// wxVtwoActivityGrantService.handleFromOrder(amountGiftActivity.getName(),activityGrant,orderList,false);
//
// wxVtwoActivityGrantService.saveOrUpdate(activityGrant);
//
// wxVtwoActivityGrantOrderService.saveGrantOrder(activityGrant.getId(),activityGrant.getActivityId(),orderList);
//
// wxVtwoActivityGrantAwardService.saveGrantAward(activityGrant);
//
// wxVtwoActivityGrantSettlementService.saveGrantSettlement(activityGrant);
}

}




+ 61
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackGrantServiceImpl.java View File

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

import com.alibaba.fastjson.JSON;
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityOrder;
import com.iformall.domain.po.WxVtwoCashBackGrant;
import com.iformall.service.WxVtwoCashBackGrantService;
import com.iformall.mapper.WxVtwoCashBackGrantMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

/**
* @author xiaohu
* @description 针对表【wx_vtwo_cash_back_grant(线下返现活动发奖)】的数据库操作Service实现
@@ -15,6 +26,56 @@ import org.springframework.stereotype.Service;
public class WxVtwoCashBackGrantServiceImpl extends ServiceImpl<WxVtwoCashBackGrantMapper, WxVtwoCashBackGrant>
implements WxVtwoCashBackGrantService{

@Autowired
private WxVtwoCashBackGrantMapper wxVtwoCashBackGrantMapper;

@Override
public void handleFromOrder(String activityName, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant) {
activityGrant.setActivityName(activityName);
activityGrant.setOrderList(orderList);
BigDecimal orderMoneySum = BigDecimal.ZERO;
List<String> lotteryNumList = new ArrayList<>();
int lotteryCount = 0;
List<String> anniversaryLotteryNumList = new ArrayList<>();
for (WxVtwoActivityOrder order : orderList) {
orderMoneySum = orderMoneySum.add(order.getOrderMoney());
if(order.getLotteryNumList() != null && !order.getLotteryNumList().isEmpty()){
lotteryNumList.addAll(order.getLotteryNumList());
}
if(order.getLotteryCount() != null){
lotteryCount = lotteryCount + order.getLotteryCount();
}
if(StringUtils.isNotBlank(order.getAnniversaryLotteryNum())){
anniversaryLotteryNumList.add(order.getAnniversaryLotteryNum());
}
}
activityGrant.setOrderMoneySum(orderMoneySum);
activityGrant.setOrderCount(orderList.size());
activityGrant.setCusName(orderList.get(0).getCusName());
activityGrant.setCusPhone(orderList.get(0).getCusPhone());
if(!isGrant){
activityGrant.setLotteryNum(JSON.toJSONString(lotteryNumList));
activityGrant.setLotteryCount(lotteryCount);
activityGrant.setAnniversaryLotteryNum(JSON.toJSONString(anniversaryLotteryNumList));
}
}

@Override
public boolean saveOrUpdate(WxVtwoCashBackGrant activityGrant) {
Date now = new Date();
if(activityGrant.getId() == null){
final IdWorker idWorker = IdWorker.get();
activityGrant.setId(idWorker.nextId());
activityGrant.setCreateDate(now);
activityGrant.setCreateDate(now);
wxVtwoCashBackGrantMapper.insert(activityGrant);
}
else{
activityGrant.setUpdateDate(now);
wxVtwoCashBackGrantMapper.updateById(activityGrant);
}
return true;
}
}




+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxVtwoPrizeDrawActivityServiceImpl.java View File

@@ -299,7 +299,7 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl<WxVtwoPrizeD
if(order_limit > 0){
WxVtwoActivityGrantRule grantRule = new WxVtwoActivityGrantRule();
grantRule.setModeType(EnumOfflineActivityAwardsModeType.AMOUNT.getCode());
grantRule.setName("订单金额抽奖");
grantRule.setName("订单金额抽奖");
grantRule.setAwardLimit(order_limit);
grantRuleList.add(grantRule);



+ 1
- 1
mallinkService/src/main/resources/mapper/WxVtwoCashBackActivityMapper.xml View File

@@ -14,7 +14,7 @@
<result property="amountModel" column="amount_model" jdbcType="SMALLINT"/>
<result property="businessOrderLimit" column="business_order_limit" jdbcType="INTEGER"/>
<result property="relatedModel" column="related_model" jdbcType="SMALLINT"/>
<result property="cashBackLimit" column="cash_back_limit" jdbcType="INTEGER"/>
<result property="cashBackLimit" column="cash_back_limit" jdbcType="DECIMAL"/>
<result property="cashBackRule" column="cash_back_rule" jdbcType="SMALLINT"/>
<result property="taxDeductionRules" column="tax_deduction_rules" jdbcType="VARCHAR"/>
<result property="merchantRule" column="merchant_rule" jdbcType="SMALLINT"/>


+ 1
- 1
mallinkService/src/main/resources/mapper/WxVtwoCashBackAwardMapper.xml View File

@@ -15,7 +15,7 @@
<result property="relatedCount" column="related_count" jdbcType="INTEGER"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="cashBackRatio" column="cash_back_ratio" jdbcType="DECIMAL"/>
<result property="cashBackLimit" column="cash_back_limit" jdbcType="INTEGER"/>
<result property="cashBackLimit" column="cash_back_limit" jdbcType="DECIMAL"/>
<result property="shareRule" column="share_rule" jdbcType="SMALLINT"/>
<result property="mallShareRate" column="mall_share_rate" jdbcType="DECIMAL"/>
<result property="merchantShareRate" column="merchant_share_rate" jdbcType="DECIMAL"/>


+ 2
- 4
mallinkService/src/main/resources/mapper/WxVtwoCashBackGrantMapper.xml View File

@@ -20,11 +20,9 @@
<result property="realName" column="real_name" jdbcType="VARCHAR"/>
<result property="realCard" column="real_card" jdbcType="VARCHAR"/>
<result property="cashBackLimit" column="cash_back_limit" jdbcType="DECIMAL"/>
<result property="cashBackRule" column="cash_back_rule" jdbcType="SMALLINT"/>
<result property="cashBack" column="cash_back" jdbcType="DECIMAL"/>
<result property="taxDeductionRules" column="tax_deduction_rules" jdbcType="VARCHAR"/>
<result property="taxAmount" column="tax_amount" jdbcType="DECIMAL"/>
<result property="realCashBack" column="real_cash_back" jdbcType="DECIMAL"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
<result property="signImg" column="sign_img" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="SMALLINT"/>
@@ -39,8 +37,8 @@
order_count,cus_name,cus_phone,
lottery_num,lottery_count,anniversary_lottery_num,
real_name,real_card,cash_back_limit,
cash_back_rule,cash_back,tax_deduction_rules,
tax_amount,real_cash_back,remark,sign_img,
cash_back,tax_deduction_rules,
tax_amount,remark,sign_img,
status,create_by,create_date,
update_date
</sql>


Loading…
Cancel
Save