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

//OfflineActivity

release_toaliyun_real
xiaohu 1 год назад
Родитель
Сommit
ff51167685
2 измененных файлов: 23 добавлений и 12 удалений
  1. +3
    -3
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java
  2. +20
    -9
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java

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

@@ -112,9 +112,9 @@ public class WxOfflineActivityGrantController extends BaseController {
if(wxOfflineActivityGrantAward.getRecordIds() == null || wxOfflineActivityGrantAward.getRecordIds().isEmpty()){ if(wxOfflineActivityGrantAward.getRecordIds() == null || wxOfflineActivityGrantAward.getRecordIds().isEmpty()){
return new ResultData(Result.ERROR,"请选择订单"); return new ResultData(Result.ERROR,"请选择订单");
} }
if(StringUtil.isBlank(wxOfflineActivityGrantAward.getSignImg())){
return new ResultData(Result.ERROR,"签名为空");
}
// if(StringUtil.isBlank(wxOfflineActivityGrantAward.getSignImg())){
// return new ResultData(Result.ERROR,"签名为空");
// }
TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();
wxOfflineActivityGrantAward.updateTenantInfo(tenantEntity); wxOfflineActivityGrantAward.updateTenantInfo(tenantEntity);
wxOfflineActivityGrantAward.setCreateBy(getUserId()); wxOfflineActivityGrantAward.setCreateBy(getUserId());


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

@@ -30,6 +30,8 @@ import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;


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

/** /**
* @author xiaohu * @author xiaohu
* @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Service实现 * @description 针对表【wx_offline_activity_grant_award(线下活动发放奖励)】的数据库操作Service实现
@@ -199,10 +201,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
&& activityItem.getAwardsItemLimit() < limitCount){ && activityItem.getAwardsItemLimit() < limitCount){
limitCount = activityItem.getAwardsItemLimit(); limitCount = activityItem.getAwardsItemLimit();
} }
if(limitCount == 0){
activityItem.setIsMeet(false);
}
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.comparing(WxOfflineActivityAwardsItem::getMinAmount)).collect(Collectors.toList());
List<WxOfflineActivityAwardsItem> sortAwardsItemList = activityItem.getActivityAwardsItemList().stream().sorted(Comparator.comparing(WxOfflineActivityAwardsItem::getMinAmount)).collect(toList());
WxOfflineActivityAwardsItem grantAwardsItem = null; WxOfflineActivityAwardsItem grantAwardsItem = null;
for(WxOfflineActivityAwardsItem awardsItem : sortAwardsItemList){ for(WxOfflineActivityAwardsItem awardsItem : sortAwardsItemList){
if((awardsItem.getMinAmount() == null || wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMinAmount()) >= 0) if((awardsItem.getMinAmount() == null || wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(awardsItem.getMinAmount()) >= 0)
@@ -321,7 +326,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
private void handlerGrantItem(WxOfflineActivity activity, WxOfflineActivityGrantAward wxOfflineActivityGrantAward){ private void handlerGrantItem(WxOfflineActivity activity, WxOfflineActivityGrantAward wxOfflineActivityGrantAward){


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


int i = 0;//检查活动奖项 int i = 0;//检查活动奖项
for (WxOfflineActivityItem grantActivityItem : wxOfflineActivityGrantAward.getActivityItemList()) { for (WxOfflineActivityItem grantActivityItem : wxOfflineActivityGrantAward.getActivityItemList()) {
@@ -337,8 +342,14 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
continue; continue;
// throw new MallinkException(Result.ERROR, "请检查活动奖项参数"); // throw new MallinkException(Result.ERROR, "请检查活动奖项参数");
} }
boolean isRepeat = activityGrantItemList.stream()
.collect(groupingBy(WxOfflineActivityGrantItem::getAwardItamId, counting()))
.entrySet().stream().anyMatch(e -> e.getValue() > 1);
if(isRepeat){
throw new MallinkException(Result.ERROR, "请检查活动奖项存在重复");
}


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


for (WxOfflineActivityGrantItem grantGrantItem : activityGrantItemList) { for (WxOfflineActivityGrantItem grantGrantItem : activityGrantItemList) {
i++; i++;
@@ -361,7 +372,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
&& activityItem.getAwardsItemLimit() < limitCount){ && activityItem.getAwardsItemLimit() < limitCount){
limitCount = activityItem.getAwardsItemLimit(); limitCount = activityItem.getAwardsItemLimit();
} }
if(limitCount != 0 && activityGrantItemList.stream().mapToInt(WxOfflineActivityGrantItem::getAwardCount).sum()>limitCount){
if(activityGrantItemList.stream().mapToInt(WxOfflineActivityGrantItem::getAwardCount).sum()>limitCount){
throw new MallinkException(Result.ERROR, "活动项"+activityItem.getName()+"奖券超过限制"); throw new MallinkException(Result.ERROR, "活动项"+activityItem.getName()+"奖券超过限制");
} }


@@ -514,7 +525,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
grantItemQ.updateTenantInfo(grantAward); grantItemQ.updateTenantInfo(grantAward);
grantItemQ.setGrantId(grantId); grantItemQ.setGrantId(grantId);
List<WxOfflineActivityGrantItem> grantItemList = wxOfflineActivityGrantItemMapper.findList(grantItemQ); List<WxOfflineActivityGrantItem> grantItemList = wxOfflineActivityGrantItemMapper.findList(grantItemQ);
Map<Long, List<WxOfflineActivityGrantItem>> activityItemGrantMap = grantItemList.stream().collect(Collectors.groupingBy(WxOfflineActivityGrantItem::getActivityItemId));
Map<Long, List<WxOfflineActivityGrantItem>> activityItemGrantMap = grantItemList.stream().collect(groupingBy(WxOfflineActivityGrantItem::getActivityItemId));
for (WxOfflineActivityItem activityItem : grantAward.getActivityItemList()) { for (WxOfflineActivityItem activityItem : grantAward.getActivityItemList()) {
List<WxOfflineActivityGrantItem> grantActivityItemList = activityItemGrantMap.get(activityItem.getId()); List<WxOfflineActivityGrantItem> grantActivityItemList = activityItemGrantMap.get(activityItem.getId());
if (grantActivityItemList == null || grantActivityItemList.isEmpty()) { if (grantActivityItemList == null || grantActivityItemList.isEmpty()) {
@@ -554,7 +565,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
grantItemQ.updateTenantInfo(wxOfflineActivity); grantItemQ.updateTenantInfo(wxOfflineActivity);
grantItemQ.setActivityId(wxOfflineActivity.getId()); grantItemQ.setActivityId(wxOfflineActivity.getId());
List<WxOfflineActivityGrantItem> grantItem = wxOfflineActivityGrantItemMapper.findList(grantItemQ); List<WxOfflineActivityGrantItem> grantItem = wxOfflineActivityGrantItemMapper.findList(grantItemQ);
Map<Long, List<WxOfflineActivityGrantItem>> grantItemMap = grantItem.stream().collect(Collectors.groupingBy(WxOfflineActivityGrantItem::getGrantId));
Map<Long, List<WxOfflineActivityGrantItem>> grantItemMap = grantItem.stream().collect(groupingBy(WxOfflineActivityGrantItem::getGrantId));
for (WxOfflineActivityGrantAward grantAward : grantAwardList) { for (WxOfflineActivityGrantAward grantAward : grantAwardList) {
List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordMapper.findGrantList(grantAward.getId(),grantAward.getTenantId()); List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordMapper.findGrantList(grantAward.getId(),grantAward.getTenantId());
List<WxOfflineActivityGrantItem> grantItemList = grantItemMap.get(grantAward.getId()); List<WxOfflineActivityGrantItem> grantItemList = grantItemMap.get(grantAward.getId());
@@ -564,7 +575,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
for (WxOfflineActivityRecord record : recordList) { for (WxOfflineActivityRecord record : recordList) {
merchantOrder.add(record.getOrderNo()+"["+merchantMap.get(record.getMerchantId())+"]"); merchantOrder.add(record.getOrderNo()+"["+merchantMap.get(record.getMerchantId())+"]");
} }
activityGrantObject.put("merchantOrder",merchantOrder.stream().collect(Collectors.joining(";")));
activityGrantObject.put("merchantOrder",merchantOrder.stream().collect(joining(";")));
activityGrantObject.put("orderMoneySum",grantAward.getOrderMoneySum()); activityGrantObject.put("orderMoneySum",grantAward.getOrderMoneySum());
activityGrantObject.put("cusName",grantAward.getCusName()); activityGrantObject.put("cusName",grantAward.getCusName());
activityGrantObject.put("cusPhone",grantAward.getCusPhone()); activityGrantObject.put("cusPhone",grantAward.getCusPhone());
@@ -572,13 +583,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
activityGrantObject.put("realCard",grantAward.getRealCard()); activityGrantObject.put("realCard",grantAward.getRealCard());
activityGrantObject.put("createByName",grantAward.getCreateBy()!=null?userMap.get(grantAward.getCreateBy()).getName():""); activityGrantObject.put("createByName",grantAward.getCreateBy()!=null?userMap.get(grantAward.getCreateBy()).getName():"");
activityGrantObject.put("createDate",DateUtils.date2String(grantAward.getCreateDate())); activityGrantObject.put("createDate",DateUtils.date2String(grantAward.getCreateDate()));
Map<Long, List<WxOfflineActivityGrantItem>> granActivityItemMap = grantItemList.stream().collect(Collectors.groupingBy(WxOfflineActivityGrantItem::getActivityItemId));
Map<Long, List<WxOfflineActivityGrantItem>> granActivityItemMap = grantItemList.stream().collect(groupingBy(WxOfflineActivityGrantItem::getActivityItemId));
for (WxOfflineActivityItem activityItem : activity.getActivityItemList()) { for (WxOfflineActivityItem activityItem : activity.getActivityItemList()) {
List<WxOfflineActivityGrantItem> granActivityItemList = granActivityItemMap.get(activityItem.getId()); List<WxOfflineActivityGrantItem> granActivityItemList = granActivityItemMap.get(activityItem.getId());
if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){ if(EnumOfflineActivityType.LOTTERY_DRAW.getCode().equals(activityItem.getType())){
Map<Long, WxOfflineActivityGrantItem> granAwardItamMap = new HashMap<>(); Map<Long, WxOfflineActivityGrantItem> granAwardItamMap = new HashMap<>();
if(granActivityItemList != null && !granActivityItemList.isEmpty()){ if(granActivityItemList != null && !granActivityItemList.isEmpty()){
granAwardItamMap = granActivityItemList.stream().collect(Collectors.toMap(WxOfflineActivityGrantItem::getAwardItamId, Function.identity()));
granAwardItamMap = granActivityItemList.stream().collect(toMap(WxOfflineActivityGrantItem::getAwardItamId, Function.identity()));
} }
for (WxOfflineActivityAwardsItem awardsItem : activityItem.getActivityAwardsItemList()) { for (WxOfflineActivityAwardsItem awardsItem : activityItem.getActivityAwardsItemList()) {
WxOfflineActivityGrantItem grantAwardsItem = granAwardItamMap.get(awardsItem.getId()); WxOfflineActivityGrantItem grantAwardsItem = granAwardItamMap.get(awardsItem.getId());


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