| @@ -94,8 +94,11 @@ public class WxOfflineActivityGrantController extends BaseController { | |||||
| if(wxOfflineActivityGrantAward.getActivityId() == null){ | if(wxOfflineActivityGrantAward.getActivityId() == null){ | ||||
| return new ResultData(Result.ERROR,"活动ID为空"); | return new ResultData(Result.ERROR,"活动ID为空"); | ||||
| } | } | ||||
| if(wxOfflineActivityGrantAward.getRecordIds() == null || wxOfflineActivityGrantAward.getRecordIds().isEmpty()){ | |||||
| return new ResultData(Result.ERROR,"请选择订单"); | |||||
| // if(wxOfflineActivityGrantAward.getRecordIds() == null || wxOfflineActivityGrantAward.getRecordIds().isEmpty()){ | |||||
| // return new ResultData(Result.ERROR,"请选择订单"); | |||||
| // } | |||||
| if(StringUtil.isBlank(wxOfflineActivityGrantAward.getCusPhone())){ | |||||
| throw new MallinkException(Result.ERROR,"用户手机号为空"); | |||||
| } | } | ||||
| TenantEntity tenantEntity = getTenantInfo(); | TenantEntity tenantEntity = getTenantInfo(); | ||||
| wxOfflineActivityGrantAward.updateTenantInfo(tenantEntity); | wxOfflineActivityGrantAward.updateTenantInfo(tenantEntity); | ||||
| @@ -110,8 +113,11 @@ public class WxOfflineActivityGrantController extends BaseController { | |||||
| if(wxOfflineActivityGrantAward.getActivityId() == null){ | if(wxOfflineActivityGrantAward.getActivityId() == null){ | ||||
| return new ResultData(Result.ERROR,"活动ID为空"); | return new ResultData(Result.ERROR,"活动ID为空"); | ||||
| } | } | ||||
| if(wxOfflineActivityGrantAward.getRecordIds() == null || wxOfflineActivityGrantAward.getRecordIds().isEmpty()){ | |||||
| return new ResultData(Result.ERROR,"请选择订单"); | |||||
| // if(wxOfflineActivityGrantAward.getRecordIds() == null || wxOfflineActivityGrantAward.getRecordIds().isEmpty()){ | |||||
| // return new ResultData(Result.ERROR,"请选择订单"); | |||||
| // } | |||||
| if(StringUtil.isBlank(wxOfflineActivityGrantAward.getCusPhone())){ | |||||
| throw new MallinkException(Result.ERROR,"用户手机号为空"); | |||||
| } | } | ||||
| // if(StringUtil.isBlank(wxOfflineActivityGrantAward.getSignImg())){ | // if(StringUtil.isBlank(wxOfflineActivityGrantAward.getSignImg())){ | ||||
| // return new ResultData(Result.ERROR,"签名为空"); | // return new ResultData(Result.ERROR,"签名为空"); | ||||
| @@ -138,9 +144,12 @@ public class WxOfflineActivityGrantController extends BaseController { | |||||
| if(wxOfflineActivityGrantAward.getActivityId() == null){ | if(wxOfflineActivityGrantAward.getActivityId() == null){ | ||||
| return new ResultData(Result.ERROR,"活动ID为空"); | return new ResultData(Result.ERROR,"活动ID为空"); | ||||
| } | } | ||||
| if(wxOfflineActivityGrantAward.getRecordId() == null){ | |||||
| return new ResultData(Result.ERROR,"订单ID为空"); | |||||
| if(StringUtil.isBlank(wxOfflineActivityGrantAward.getCusPhone())){ | |||||
| throw new MallinkException(Result.ERROR,"用户手机号为空"); | |||||
| } | } | ||||
| // if(wxOfflineActivityGrantAward.getRecordId() == null){ | |||||
| // return new ResultData(Result.ERROR,"订单ID为空"); | |||||
| // } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | TenantEntity tenantInfo = getTenantInfo(); | ||||
| wxOfflineActivityGrantAward.updateTenantInfo(tenantInfo); | wxOfflineActivityGrantAward.updateTenantInfo(tenantInfo); | ||||
| List<WxOfflineActivityGrantAward> grantAwardList = wxOfflineActivityGrantAwardService.grantAwardDetail(wxOfflineActivityGrantAward); | List<WxOfflineActivityGrantAward> grantAwardList = wxOfflineActivityGrantAwardService.grantAwardDetail(wxOfflineActivityGrantAward); | ||||
| @@ -32,6 +32,12 @@ public class WxOfflineActivityAwardsItem extends TenantEntity { | |||||
| @TableField(value = "activity_item_id") | @TableField(value = "activity_item_id") | ||||
| private Long activityItemId; | private Long activityItemId; | ||||
| /** | |||||
| * 奖项类型 | |||||
| */ | |||||
| @TableField(value = "type") | |||||
| private Integer type; | |||||
| /** | /** | ||||
| * 奖项名称 | * 奖项名称 | ||||
| */ | */ | ||||
| @@ -44,6 +50,12 @@ public class WxOfflineActivityAwardsItem extends TenantEntity { | |||||
| @TableField(value = "grade") | @TableField(value = "grade") | ||||
| private Integer grade; | private Integer grade; | ||||
| /** | |||||
| * 联单笔数 | |||||
| */ | |||||
| @TableField(value = "merchant_count") | |||||
| private Integer merchantCount; | |||||
| /** | /** | ||||
| * 限制最小金额 | * 限制最小金额 | ||||
| */ | */ | ||||
| @@ -71,11 +71,35 @@ public class WxOfflineActivityItem extends TenantEntity { | |||||
| private Integer awardsItemCount; | private Integer awardsItemCount; | ||||
| /** | /** | ||||
| * 奖项计算规则(0代表无规则) | |||||
| * 返现奖项计算规则(0代表无规则) | |||||
| */ | */ | ||||
| @TableField(value = "awards_item_rule") | @TableField(value = "awards_item_rule") | ||||
| private Integer awardsItemRule; | private Integer awardsItemRule; | ||||
| /** | |||||
| * 返现计算模式 | |||||
| */ | |||||
| @TableField(value = "calculation_mode") | |||||
| private Integer calculationMode; | |||||
| /** | |||||
| * 返现封顶金额 | |||||
| */ | |||||
| @TableField(value = "max_amount") | |||||
| private BigDecimal maxAmount; | |||||
| /** | |||||
| * 返现起征税点金额 | |||||
| */ | |||||
| @TableField(value = "starting_tax_point") | |||||
| private BigDecimal startingTaxPoint; | |||||
| /** | |||||
| * 返现税点比例 | |||||
| */ | |||||
| @TableField(value = "tax_points") | |||||
| private BigDecimal taxPoints; | |||||
| /** | /** | ||||
| * 创建时间 | * 创建时间 | ||||
| */ | */ | ||||
| @@ -93,6 +117,8 @@ public class WxOfflineActivityItem extends TenantEntity { | |||||
| */ | */ | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private List<WxOfflineActivityAwardsItem> activityAwardsItemList; | private List<WxOfflineActivityAwardsItem> activityAwardsItemList; | ||||
| @TableField(exist = false) | |||||
| private List<WxOfflineActivityAwardsItem> activityAwardsItemSecondList; | |||||
| /** | /** | ||||
| * 是否满足活动条件 | * 是否满足活动条件 | ||||
| */ | */ | ||||
| @@ -110,4 +136,16 @@ public class WxOfflineActivityItem extends TenantEntity { | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private List<WxOfflineActivityGrantItem> activityGrantItemList; | private List<WxOfflineActivityGrantItem> activityGrantItemList; | ||||
| /** | |||||
| * 返现金额 | |||||
| */ | |||||
| @TableField(exist = false) | |||||
| private BigDecimal cashBackPrice; | |||||
| /** | |||||
| * 返现详情 | |||||
| */ | |||||
| @TableField(exist = false) | |||||
| private String cashBackMsg; | |||||
| } | } | ||||
| @@ -0,0 +1,37 @@ | |||||
| package com.iformall.enums; | |||||
| /** | |||||
| * @author gongbiao | |||||
| */ | |||||
| public enum EnumOfflineActivityAwardsItemType { | |||||
| FIRST(1, "基本奖项"), | |||||
| SECOND(2, "第二奖项"), | |||||
| ; | |||||
| public static EnumOfflineActivityAwardsItemType getEnum(Integer code) { | |||||
| for (EnumOfflineActivityAwardsItemType value : values()) { | |||||
| if (value.getCode().equals(code)) { | |||||
| return value; | |||||
| } | |||||
| } | |||||
| return null; | |||||
| } | |||||
| private Integer code; | |||||
| private String message; | |||||
| EnumOfflineActivityAwardsItemType(Integer code, String message) { | |||||
| this.code = code; | |||||
| this.message = message; | |||||
| } | |||||
| public Integer getCode() { | |||||
| return code; | |||||
| } | |||||
| public String getMessage() { | |||||
| return message; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,37 @@ | |||||
| package com.iformall.enums; | |||||
| /** | |||||
| * @author gongbiao | |||||
| */ | |||||
| public enum EnumOfflineActivityCalculationMode { | |||||
| ONE(1, "单笔订单计算"), | |||||
| SUM(2, "订单总额计算"), | |||||
| ; | |||||
| public static EnumOfflineActivityCalculationMode getEnum(Integer code) { | |||||
| for (EnumOfflineActivityCalculationMode value : values()) { | |||||
| if (value.getCode().equals(code)) { | |||||
| return value; | |||||
| } | |||||
| } | |||||
| return null; | |||||
| } | |||||
| private Integer code; | |||||
| private String message; | |||||
| EnumOfflineActivityCalculationMode(Integer code, String message) { | |||||
| this.code = code; | |||||
| this.message = message; | |||||
| } | |||||
| public Integer getCode() { | |||||
| return code; | |||||
| } | |||||
| public String getMessage() { | |||||
| return message; | |||||
| } | |||||
| } | |||||
| @@ -13,7 +13,7 @@ import java.util.List; | |||||
| */ | */ | ||||
| public interface WxOfflineActivityAwardsItemService { | public interface WxOfflineActivityAwardsItemService { | ||||
| void saveOrUpdateFromActivityItem(WxOfflineActivityItem activityItem, List<WxOfflineActivityAwardsItem> activityAwardsItemList); | |||||
| void saveOrUpdateFromActivityItem(WxOfflineActivityItem activityItem, List<WxOfflineActivityAwardsItem> activityAwardsItemList, List<WxOfflineActivityAwardsItem> activityAwardsItemSecondList); | |||||
| List<WxOfflineActivityAwardsItem> getActivityAwardsItemList(Long activityItemId, String tenantId); | List<WxOfflineActivityAwardsItem> getActivityAwardsItemList(Long activityItemId, String tenantId); | ||||
| } | } | ||||
| @@ -3,6 +3,7 @@ package com.iformall.service.impl; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.WxOfflineActivityAwardsItem; | import com.iformall.domain.po.WxOfflineActivityAwardsItem; | ||||
| import com.iformall.domain.po.WxOfflineActivityItem; | import com.iformall.domain.po.WxOfflineActivityItem; | ||||
| import com.iformall.enums.EnumOfflineActivityAwardsItemType; | |||||
| import com.iformall.enums.EnumOfflineActivityType; | import com.iformall.enums.EnumOfflineActivityType; | ||||
| import com.iformall.service.WxOfflineActivityAwardsItemService; | import com.iformall.service.WxOfflineActivityAwardsItemService; | ||||
| import com.iformall.mapper.WxOfflineActivityAwardsItemMapper; | import com.iformall.mapper.WxOfflineActivityAwardsItemMapper; | ||||
| @@ -25,19 +26,20 @@ public class WxOfflineActivityAwardsItemServiceImpl implements WxOfflineActivity | |||||
| WxOfflineActivityAwardsItemMapper wxOfflineActivityAwardsItemMapper; | WxOfflineActivityAwardsItemMapper wxOfflineActivityAwardsItemMapper; | ||||
| @Override | @Override | ||||
| public void saveOrUpdateFromActivityItem(WxOfflineActivityItem activityItem, List<WxOfflineActivityAwardsItem> activityAwardsItemList) { | |||||
| public void saveOrUpdateFromActivityItem(WxOfflineActivityItem activityItem, List<WxOfflineActivityAwardsItem> activityAwardsItemList, | |||||
| List<WxOfflineActivityAwardsItem> activityAwardsItemSecondList) { | |||||
| WxOfflineActivityAwardsItem activityAwardsItemDel = new WxOfflineActivityAwardsItem(); | WxOfflineActivityAwardsItem activityAwardsItemDel = new WxOfflineActivityAwardsItem(); | ||||
| activityAwardsItemDel.updateTenantInfo(activityItem); | activityAwardsItemDel.updateTenantInfo(activityItem); | ||||
| activityAwardsItemDel.setActivityItemId(activityItem.getId()); | activityAwardsItemDel.setActivityItemId(activityItem.getId()); | ||||
| wxOfflineActivityAwardsItemMapper.delete(activityAwardsItemDel); | wxOfflineActivityAwardsItemMapper.delete(activityAwardsItemDel); | ||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| for (WxOfflineActivityAwardsItem awaItem : activityAwardsItemList) { | for (WxOfflineActivityAwardsItem awaItem : activityAwardsItemList) { | ||||
| if(awaItem.getId() == null){ | if(awaItem.getId() == null){ | ||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| awaItem.setId(idWorker.nextId()); | awaItem.setId(idWorker.nextId()); | ||||
| } | } | ||||
| awaItem.updateTenantInfo(activityItem); | awaItem.updateTenantInfo(activityItem); | ||||
| awaItem.setActivityItemId(activityItem.getId()); | awaItem.setActivityItemId(activityItem.getId()); | ||||
| awaItem.setType(EnumOfflineActivityAwardsItemType.FIRST.getCode()); | |||||
| if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ | if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ | ||||
| awaItem.setCashBackRatio(BigDecimal.ZERO); | awaItem.setCashBackRatio(BigDecimal.ZERO); | ||||
| @@ -50,8 +52,6 @@ public class WxOfflineActivityAwardsItemServiceImpl implements WxOfflineActivity | |||||
| } | } | ||||
| else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { | else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { | ||||
| awaItem.setGrade(-1); | awaItem.setGrade(-1); | ||||
| awaItem.setMinAmount(null); | |||||
| awaItem.setMaxAmount(null); | |||||
| awaItem.setPrice(BigDecimal.ZERO); | awaItem.setPrice(BigDecimal.ZERO); | ||||
| } | } | ||||
| if(awaItem.getPrice() == null){ | if(awaItem.getPrice() == null){ | ||||
| @@ -63,6 +63,22 @@ public class WxOfflineActivityAwardsItemServiceImpl implements WxOfflineActivity | |||||
| awaItem.setUpdateDate(activityItem.getUpdateDate()); | awaItem.setUpdateDate(activityItem.getUpdateDate()); | ||||
| wxOfflineActivityAwardsItemMapper.insert(awaItem); | wxOfflineActivityAwardsItemMapper.insert(awaItem); | ||||
| } | } | ||||
| if(activityAwardsItemSecondList != null && !activityAwardsItemSecondList.isEmpty()){ | |||||
| for (WxOfflineActivityAwardsItem secondAwaItem : activityAwardsItemSecondList) { | |||||
| if(secondAwaItem.getId() == null){ | |||||
| secondAwaItem.setId(idWorker.nextId()); | |||||
| } | |||||
| secondAwaItem.updateTenantInfo(activityItem); | |||||
| secondAwaItem.setActivityItemId(activityItem.getId()); | |||||
| secondAwaItem.setType(EnumOfflineActivityAwardsItemType.SECOND.getCode()); | |||||
| if(secondAwaItem.getCreateDate() == null){ | |||||
| secondAwaItem.setCreateDate(activityItem.getUpdateDate()); | |||||
| } | |||||
| secondAwaItem.setUpdateDate(activityItem.getUpdateDate()); | |||||
| wxOfflineActivityAwardsItemMapper.insert(secondAwaItem); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -173,6 +173,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| //奖项处理 | //奖项处理 | ||||
| List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(activity.getId(), activity.getTenantId()); | List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(activity.getId(), activity.getTenantId()); | ||||
| wxOfflineActivityGrantAward.setActivityItemList(activityItemList); | wxOfflineActivityGrantAward.setActivityItemList(activityItemList); | ||||
| 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())){ | ||||
| @@ -233,28 +234,36 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| activityItem.setActivityGrantItemList(Collections.singletonList(grantItem)); | activityItem.setActivityGrantItemList(Collections.singletonList(grantItem)); | ||||
| } | } | ||||
| else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { | else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { | ||||
| if(wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(activityItem.getLimitMoney()) < 0){ | |||||
| activityItem.setIsMeet(false); | |||||
| continue; | |||||
| } | |||||
| activityItem.setIsMeet(true); | |||||
| activityItem.setRealAwardsItemLimit(1); | |||||
| for (WxOfflineActivityAwardsItem awardsItem : activityItem.getActivityAwardsItemList()) { | |||||
| //计算返现金额 | |||||
| BigDecimal cashBackPrice = wxOfflineActivityGrantAward.getOrderMoneySum() | |||||
| .multiply(awardsItem.getCashBackRatio().divide(new BigDecimal(100))); | |||||
| if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){ | |||||
| awardsItem.setPrice(cashBackPrice.setScale(2, RoundingMode.HALF_UP)); | |||||
| } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { | |||||
| awardsItem.setPrice(cashBackPrice.setScale(0, RoundingMode.HALF_UP)); | |||||
| }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ | |||||
| BigDecimal cashBackPriceTen = cashBackPrice.divide(new BigDecimal(10)) | |||||
| .setScale(0, RoundingMode.HALF_UP); | |||||
| awardsItem.setPrice(cashBackPriceTen.multiply(new BigDecimal(10))); | |||||
| } | |||||
| BigDecimal cashBackPrice = BigDecimal.ZERO; | |||||
| //单笔订单计算 | |||||
| if(EnumOfflineActivityCalculationMode.ONE.getCode().equals(activityItem.getCalculationMode())){ | |||||
| }else{ | |||||
| } | } | ||||
| activityItem.setCashBackPrice(BigDecimal.ONE); | |||||
| // if(wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(activityItem.getLimitMoney()) < 0){ | |||||
| // activityItem.setIsMeet(false); | |||||
| // continue; | |||||
| // } | |||||
| // activityItem.setIsMeet(true); | |||||
| // activityItem.setRealAwardsItemLimit(1); | |||||
| // for (WxOfflineActivityAwardsItem awardsItem : activityItem.getActivityAwardsItemList()) { | |||||
| // //计算返现金额 | |||||
| // BigDecimal cashBackPrice = wxOfflineActivityGrantAward.getOrderMoneySum() | |||||
| // .multiply(awardsItem.getCashBackRatio().divide(new BigDecimal(100))); | |||||
| // if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){ | |||||
| // awardsItem.setPrice(cashBackPrice.setScale(2, RoundingMode.HALF_UP)); | |||||
| // } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { | |||||
| // awardsItem.setPrice(cashBackPrice.setScale(0, RoundingMode.HALF_UP)); | |||||
| // }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ | |||||
| // BigDecimal cashBackPriceTen = cashBackPrice.divide(new BigDecimal(10)) | |||||
| // .setScale(0, RoundingMode.HALF_UP); | |||||
| // awardsItem.setPrice(cashBackPriceTen.multiply(new BigDecimal(10))); | |||||
| // } | |||||
| // } | |||||
| //计算商户商管分别承担金额 | //计算商户商管分别承担金额 | ||||
| handlerAwardsSharePrice(activityItem.getActivityAwardsItemList()); | |||||
| // handlerAwardsSharePrice(activityItem.getActivityAwardsItemList()); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -304,7 +313,11 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||||
| private void handlerGrantData(WxOfflineActivity activity,WxOfflineActivityGrantAward wxOfflineActivityGrantAward,boolean isForPage){ | private void handlerGrantData(WxOfflineActivity activity,WxOfflineActivityGrantAward wxOfflineActivityGrantAward,boolean isForPage){ | ||||
| List<WxOfflineActivityRecord> wxOfflineActivityRecords = wxOfflineActivityRecordMapper.selectBatchIds(wxOfflineActivityGrantAward.getRecordIds()); | |||||
| // List<WxOfflineActivityRecord> wxOfflineActivityRecords = wxOfflineActivityRecordMapper.selectBatchIds(wxOfflineActivityGrantAward.getRecordIds()); | |||||
| WxOfflineActivityRecord recordQ = new WxOfflineActivityRecord(); | |||||
| recordQ.updateTenantInfo(wxOfflineActivityGrantAward); | |||||
| recordQ.setCusPhone(wxOfflineActivityGrantAward.getCusPhone()); | |||||
| List<WxOfflineActivityRecord> wxOfflineActivityRecords = wxOfflineActivityRecordMapper.findList(recordQ); | |||||
| if (wxOfflineActivityRecords == null || wxOfflineActivityRecords.isEmpty()) { | if (wxOfflineActivityRecords == null || wxOfflineActivityRecords.isEmpty()) { | ||||
| throw new MallinkException(Result.ERROR, "未查询到活动订单"); | throw new MallinkException(Result.ERROR, "未查询到活动订单"); | ||||
| } | } | ||||
| @@ -4,6 +4,7 @@ import com.iformall.common.IdWorker; | |||||
| import com.iformall.domain.po.WxOfflineActivity; | import com.iformall.domain.po.WxOfflineActivity; | ||||
| import com.iformall.domain.po.WxOfflineActivityAwardsItem; | import com.iformall.domain.po.WxOfflineActivityAwardsItem; | ||||
| import com.iformall.domain.po.WxOfflineActivityItem; | import com.iformall.domain.po.WxOfflineActivityItem; | ||||
| import com.iformall.enums.EnumOfflineActivityAwardsItemType; | |||||
| import com.iformall.enums.EnumOfflineActivityAwardsRule; | import com.iformall.enums.EnumOfflineActivityAwardsRule; | ||||
| import com.iformall.enums.EnumOfflineActivityType; | import com.iformall.enums.EnumOfflineActivityType; | ||||
| import com.iformall.service.WxOfflineActivityAwardsItemService; | import com.iformall.service.WxOfflineActivityAwardsItemService; | ||||
| @@ -15,6 +16,8 @@ import org.springframework.stereotype.Service; | |||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.util.Collections; | import java.util.Collections; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | |||||
| import java.util.stream.Collectors; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| @@ -68,7 +71,7 @@ public class WxOfflineActivityItemServiceImpl implements WxOfflineActivityItemSe | |||||
| wxOfflineActivityItemMapper.insert(activityItem); | wxOfflineActivityItemMapper.insert(activityItem); | ||||
| //处理奖项 | //处理奖项 | ||||
| wxOfflineActivityAwardsItemService.saveOrUpdateFromActivityItem(activityItem,activityItem.getActivityAwardsItemList()); | |||||
| wxOfflineActivityAwardsItemService.saveOrUpdateFromActivityItem(activityItem,activityItem.getActivityAwardsItemList(),activityItem.getActivityAwardsItemSecondList()); | |||||
| } | } | ||||
| } | } | ||||
| @@ -80,7 +83,13 @@ public class WxOfflineActivityItemServiceImpl implements WxOfflineActivityItemSe | |||||
| List<WxOfflineActivityItem> itemList = wxOfflineActivityItemMapper.findList(activityItemQuery); | List<WxOfflineActivityItem> itemList = wxOfflineActivityItemMapper.findList(activityItemQuery); | ||||
| for (WxOfflineActivityItem item : itemList) { | for (WxOfflineActivityItem item : itemList) { | ||||
| List<WxOfflineActivityAwardsItem> activityAwardsItemList = wxOfflineActivityAwardsItemService.getActivityAwardsItemList(item.getId(),tenantId); | List<WxOfflineActivityAwardsItem> activityAwardsItemList = wxOfflineActivityAwardsItemService.getActivityAwardsItemList(item.getId(),tenantId); | ||||
| item.setActivityAwardsItemList(activityAwardsItemList); | |||||
| if(EnumOfflineActivityType.CASHBACK.getCode().equals(item.getType())){ | |||||
| Map<Integer, List<WxOfflineActivityAwardsItem>> collect = activityAwardsItemList.stream().collect(Collectors.groupingBy(WxOfflineActivityAwardsItem::getType)); | |||||
| item.setActivityAwardsItemList(collect.get(EnumOfflineActivityAwardsItemType.FIRST.getCode())); | |||||
| item.setActivityAwardsItemSecondList(collect.get(EnumOfflineActivityAwardsItemType.SECOND.getCode())); | |||||
| }else{ | |||||
| item.setActivityAwardsItemList(activityAwardsItemList); | |||||
| } | |||||
| } | } | ||||
| return itemList; | return itemList; | ||||
| } | } | ||||
| @@ -9,8 +9,10 @@ | |||||
| <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="activityItemId" column="activity_item_id" jdbcType="BIGINT"/> | <result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/> | ||||
| <result property="type" column="type" jdbcType="INTEGER"/> | |||||
| <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="merchantCount" column="merchant_count" jdbcType="INTEGER"/> | |||||
| <result property="minAmount" column="min_amount" jdbcType="DECIMAL"/> | <result property="minAmount" column="min_amount" jdbcType="DECIMAL"/> | ||||
| <result property="maxAmount" column="max_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"/> | ||||
| @@ -16,6 +16,10 @@ | |||||
| <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"/> | ||||
| <result property="calculationMode" column="calculation_mode" jdbcType="SMALLINT"/> | |||||
| <result property="maxAmount" column="max_amount" jdbcType="DECIMAL"/> | |||||
| <result property="startingTaxPoint" column="starting_tax_point" jdbcType="DECIMAL"/> | |||||
| <result property="taxPoints" column="tax_points" 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> | ||||