活动奖励配置

dev-discount
yuanye 3 years ago
parent 82350b04fc
commit 3bda0d2d34
  1. 114
      hai-bweb/src/main/java/com/bweb/controller/HighActivityController.java
  2. 32
      hai-service/src/main/java/com/hai/enum_type/ActivityAwardStatus.java
  3. 51
      hai-service/src/main/java/com/hai/service/HighActivityAwardService.java
  4. 14
      hai-service/src/main/java/com/hai/service/HighActivityPrizeService.java
  5. 13
      hai-service/src/main/java/com/hai/service/HighDiscountAgentCodeService.java
  6. 76
      hai-service/src/main/java/com/hai/service/impl/HighActivityAwardServiceImpl.java
  7. 11
      hai-service/src/main/java/com/hai/service/impl/HighDiscountAgentCodeServiceImpl.java

@ -7,7 +7,11 @@ import com.hai.common.exception.SysCode;
import com.hai.common.security.SessionObject; import com.hai.common.security.SessionObject;
import com.hai.common.security.UserCenter; import com.hai.common.security.UserCenter;
import com.hai.common.utils.ResponseMsgUtil; import com.hai.common.utils.ResponseMsgUtil;
import com.hai.entity.HighActivityAward;
import com.hai.entity.HighActivityInfo; import com.hai.entity.HighActivityInfo;
import com.hai.entity.HighActivityPrize;
import com.hai.enum_type.ActivityAwardStatus;
import com.hai.enum_type.ActivityInfoStatus;
import com.hai.model.HighUserModel; import com.hai.model.HighUserModel;
import com.hai.model.ResponseData; import com.hai.model.ResponseData;
import com.hai.service.HighActivityAwardService; import com.hai.service.HighActivityAwardService;
@ -16,6 +20,7 @@ import com.hai.service.HighActivityUserLotteryNumService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -23,8 +28,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.HashMap; import java.util.*;
import java.util.Map;
/** /**
* *
@ -40,75 +44,89 @@ public class HighActivityController {
@Resource @Resource
private UserCenter userCenter; private UserCenter userCenter;
@Resource
private HighActivityInfoService highActivityInfoService;
@Resource @Resource
private HighActivityAwardService highActivityAwardService; private HighActivityAwardService highActivityAwardService;
@Resource @Resource
private HighActivityUserLotteryNumService highActivityUserLotteryNumService; private HighActivityUserLotteryNumService highActivityUserLotteryNumService;
@RequestMapping(value="/edit",method = RequestMethod.POST) @RequestMapping(value="/editActivityAward",method = RequestMethod.POST)
@ResponseBody @ResponseBody
@ApiOperation(value = "用户抽奖业务") @ApiOperation(value = "新增中奖名次")
public ResponseData userLottery(@RequestBody JSONObject body, HttpServletRequest request) { public ResponseData userLottery(@RequestBody JSONObject body, HttpServletRequest request) {
try { try {
// 用户
SessionObject sessionObject = userCenter.getSessionObject(request);
HighUserModel userInfoModel = (HighUserModel) sessionObject.getObject();
if (body == null || body.getLong("activityId") == null) { if (body == null
log.error("HighActivityController --> lottery() error!", "参数错误"); || body.getLong("activityInfoId") == null
|| StringUtils.isBlank(body.getString("img"))
|| StringUtils.isBlank(body.getString("name"))
|| body.getInteger("num") == null
) {
log.error("HighActivityController -> editActivityAward() error!","参数错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
} }
return ResponseMsgUtil.success(highActivityUserLotteryNumService.userLottery(body.getLong("activityId"),userInfoModel.getHighUser().getId())); HighActivityPrize activityPrize;
List<HighActivityPrize> activityPrizes = new ArrayList<>();
} catch (Exception e) { // 组装奖品
log.error("HighActivityController -> userLottery() error!",e); if (body.getJSONArray("activityPrizes") != null && body.getJSONArray("activityPrizes").size() > 0) {
return ResponseMsgUtil.exception(e); for (Object object : body.getJSONArray("ruleArray")) {
} JSONObject activityObject = (JSONObject)object;
if (
activityObject.getInteger("prizeType") == null ||
activityObject.getLong("prizeId") == null ||
StringUtils.isBlank(activityObject.getString("prizeName")) ||
activityObject.getInteger("prizeNum") == null
) {
log.error("HighActivityController -> editActivityAward() error!","参数错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
} }
@RequestMapping(value="/getActivityByCoupon",method = RequestMethod.GET) activityPrize = new HighActivityPrize();
@ResponseBody
@ApiOperation(value = "根据卡券查询活动信息") activityPrize.setPrizeType(activityObject.getInteger("prizeType"));
public ResponseData getActivityByCoupon(@RequestParam(name = "couponId", required = true) Long couponId) { activityPrize.setPrizeId(activityObject.getLong("prizeId"));
try { activityPrize.setPrizeName(activityObject.getString("prizeName"));
// 查询活动 activityPrize.setPrizeNum(activityObject.getInteger("prizeNum"));
Map<String, Object> activity = highActivityInfoService.getNewActivityByCouponId(couponId); activityPrize.setExt1(activityObject.getString("agentId"));
if (activity != null) { activityPrizes.add(activityPrize);
Map<String,Object> map = new HashMap<>();
map.put("activityInfo", activity);
map.put("activityAward", highActivityAwardService.getListByActivityId(MapUtils.getLong(activity, "id")));
return ResponseMsgUtil.success(map);
}
return ResponseMsgUtil.success(null);
} catch (Exception e) {
log.error("HighActivityController -> getActivityByCoupon() error!",e);
return ResponseMsgUtil.exception(e);
} }
} }
@RequestMapping(value="/getDetail",method = RequestMethod.GET) HighActivityAward highActivityAward;
@ResponseBody
@ApiOperation(value = "查询活动详情") if (body.getLong("id") != null) {
public ResponseData getDetail(@RequestParam(name = "activityId", required = true) Long activityId) { highActivityAward = highActivityAwardService.getDetailById(body.getLong("id"));
try { if (highActivityAward == null) {
// 查询活动 log.error("HighActivityInfoController -> editActivityInfo() error!","未找到活动信息");
HighActivityInfo detail = highActivityInfoService.getDetailById(activityId); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到活动信息");
if (detail != null) { }
Map<String,Object> map = new HashMap<>(); if (highActivityAward.getStatus().equals(ActivityAwardStatus.status0.getNumber())) {
map.put("activityInfo", detail); log.error("HighActivityInfoController -> editActivityInfo() error!","状态错误");
map.put("activityAward", highActivityAwardService.getListByActivityId(detail.getId())); throw ErrorHelp.genException(SysCode.System, ErrorCode.STATUS_ERROR, "");
return ResponseMsgUtil.success(map);
} }
return ResponseMsgUtil.success(null); } else {
highActivityAward = new HighActivityAward();
}
// 组装奖励
highActivityAward.setActivityInfoId(body.getLong("activityInfoId"));
highActivityAward.setImg(body.getString("img"));
highActivityAward.setName(body.getString("name"));
highActivityAward.setNum(body.getInteger("num"));
highActivityAwardService.editHighActivateAward(highActivityAward , activityPrizes);
return ResponseMsgUtil.success("1");
} catch (Exception e) { } catch (Exception e) {
log.error("HighActivityController -> getDetail() error!",e); log.error("HighActivityController -> userLottery() error!",e);
return ResponseMsgUtil.exception(e); return ResponseMsgUtil.exception(e);
} }
} }
} }

@ -0,0 +1,32 @@
package com.hai.enum_type;
public enum ActivityAwardStatus {
status0(0, "删除"),
status1(1, "正常"),
;
private Integer number;
private String name;
ActivityAwardStatus(int number, String name) {
this.number = number;
this.name = name;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

@ -21,44 +21,23 @@ public interface HighActivityAwardService {
List<HighActivityAward> getListByActivityId(Long activityId); List<HighActivityAward> getListByActivityId(Long activityId);
/** /**
* @params highActivityAward * @Author Sum1Dream
* @return void * @name getDetailById.java
* @author sum1dream * @Description // 查询详情
* @description 编辑活动奖励名次 * @Date 10:22 2021/9/29
* @date 2021/9/28 11:35 下午 * @Param [id]
* @version: 1.0.0 * @return com.hai.entity.HighActivityAward
*/ **/
void editHighActivateAward(HighActivityAward highActivityAward); HighActivityAward getDetailById(Long id);
/**
* @params highActivityPrize
* @return void
* @author sum1dream
* @description 编辑活动奖品
* @date 2021/9/28 11:37 下午
* @version: 1.0.0
*/
void editHighActivatePrize(HighActivityPrize highActivityPrize);
/** /**
* @params HighActivityAwardSerialNum * @Author Sum1Dream
* @name editHighActivateAward.java
* @Description //编辑活动奖励名次
* @Date 9:33 2021/9/29
* @Param [highActivityAward]
* @return void * @return void
* @author sum1dream **/
* @description 增加活动将池 void editHighActivateAward(HighActivityAward highActivityAward , List<HighActivityPrize> highActivityPrizes) throws Exception ;
* @date 2021/9/28 11:38 下午
* @version: 1.0.0
*/
void addHighActivityAwardSerialNum(HighActivityAwardSerialNum highActivityAwardSerialNum);
/**
* @params HighActivityAwardActualPrize
* @return void
* @author sum1dream
* @description 增加实际奖品
* @date 2021/9/28 11:40 下午
* @version: 1.0.0
*/
void addHighActivityAwardActualPrize(HighActivityAwardActualPrize highActivityAwardActualPrize);
} }

@ -0,0 +1,14 @@
package com.hai.service;
import com.hai.entity.HighActivityAward;
import java.util.List;
/**
* 活动奖励
* @author hurui
*/
public interface HighActivityPrizeService {
}

@ -40,6 +40,17 @@ public interface HighDiscountAgentCodeService {
**/ **/
List<HighDiscountAgentCode> getDiscountCode(Map<String,Object> map); List<HighDiscountAgentCode> getDiscountCode(Map<String,Object> map);
/**
* @Author Sum1Dream
* @name getDiscountCodeByDiscountAgentId.java
* @Description // 根据关系id 查询 未领取的卡券
* @Date 14:20 2021/9/29
* @Param [discountAgentId]
* @return java.util.List<com.hai.entity.HighDiscountAgentCode>
**/
List<HighDiscountAgentCode> getDiscountCodeByDiscountAgentId(Long discountAgentId , Integer num);
/** /**
* @Author 胡锐 * @Author 胡锐
* @Description 根据id 查询二维码 * @Description 根据id 查询二维码
@ -47,6 +58,8 @@ public interface HighDiscountAgentCodeService {
**/ **/
HighDiscountAgentCode getCodeById(Long id); HighDiscountAgentCode getCodeById(Long id);
/** /**
* 查询已分配的优惠券总数 * 查询已分配的优惠券总数
* @param discountAgentId * @param discountAgentId

@ -1,14 +1,23 @@
package com.hai.service.impl; package com.hai.service.impl;
import com.hai.common.utils.DateUtil;
import com.hai.common.utils.IDGenerator;
import com.hai.dao.HighActivityAwardActualPrizeMapper; import com.hai.dao.HighActivityAwardActualPrizeMapper;
import com.hai.dao.HighActivityAwardMapper; import com.hai.dao.HighActivityAwardMapper;
import com.hai.dao.HighActivityAwardSerialNumMapper; import com.hai.dao.HighActivityAwardSerialNumMapper;
import com.hai.dao.HighActivityPrizeMapper; import com.hai.dao.HighActivityPrizeMapper;
import com.hai.entity.*; import com.hai.entity.*;
import com.hai.enum_type.ActivityAwardStatus;
import com.hai.enum_type.ActivityInfoStatus;
import com.hai.service.HighActivityAwardService; import com.hai.service.HighActivityAwardService;
import com.hai.service.HighDiscountAgentCodeService;
import com.hai.service.HighDiscountAgentRelService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date;
import java.util.List; import java.util.List;
@Service("activityAwardService") @Service("activityAwardService")
@ -21,10 +30,14 @@ public class HighActivityAwardServiceImpl implements HighActivityAwardService {
private HighActivityPrizeMapper highActivityPrizeMapper; private HighActivityPrizeMapper highActivityPrizeMapper;
@Resource @Resource
private HighActivityAwardSerialNumMapper highActivityAwardSerialNumMapper; private HighActivityAwardSerialNumMapper highActivityAwardSerialNumM;
@Resource @Resource
private HighActivityAwardActualPrizeMapper highActivityAwardActualPrizeMapper; private HighDiscountAgentRelService highDiscountAgentRelService;
@Resource
private HighDiscountAgentCodeService highDiscountAgentCodeService;
@Override @Override
public List<HighActivityAward> getListByActivityId(Long activityId) { public List<HighActivityAward> getListByActivityId(Long activityId) {
@ -34,22 +47,63 @@ public class HighActivityAwardServiceImpl implements HighActivityAwardService {
} }
@Override @Override
public void editHighActivateAward(HighActivityAward highActivityAward) { @Transactional(rollbackFor=Exception.class,propagation= Propagation.REQUIRES_NEW)
public void editHighActivateAward(HighActivityAward highActivityAward, List<HighActivityPrize> highActivityPrizes) throws Exception {
// 增加奖励
if (highActivityAward.getId() == null) {
highActivityAward.setCreateTime(new Date());
highActivityAward.setUpdateTime(new Date());
highActivityAward.setStatus(ActivityAwardStatus.status1.getNumber());
highActivityAwardMapper.insert(highActivityAward); highActivityAwardMapper.insert(highActivityAward);
} else {
highActivityAward.setUpdateTime(new Date());
highActivityAwardMapper.updateByPrimaryKey(highActivityAward);
} }
@Override HighActivityAwardSerialNum serialNum;
public void editHighActivatePrize(HighActivityPrize highActivityPrize) {
highActivityPrizeMapper.insert(highActivityPrize); HighActivityAwardActualPrize actualPrize;
for (int i = 0; i < highActivityAward.getNum(); i++) {
serialNum = new HighActivityAwardSerialNum();
serialNum.setActivityInfoId(highActivityAward.getActivityInfoId());
serialNum.setActivityAwardId(highActivityAward.getId());
serialNum.setSerialNum("HFA" + DateUtil.date2String(new Date(),"yyyyMMddHHmmss") + IDGenerator.nextId(5));
serialNum.setStatus(1);
serialNum.setCreateTime(new Date());
highActivityAwardSerialNumM.insert(serialNum);
// 增加奖品
for (HighActivityPrize list : highActivityPrizes) {
list.setActivityAwardId(highActivityAward.getId());
list.setCreateTime(new Date());
list.setStatus(1);
highActivityPrizeMapper.insert(list);
HighDiscountAgentRel discountAgentRel = highDiscountAgentRelService.getRelByDiscountAgent(list.getPrizeId() , Long.valueOf(list.getExt1()));
List<HighDiscountAgentCode> codeList = highDiscountAgentCodeService.getDiscountCodeByDiscountAgentId(discountAgentRel.getId() , list.getPrizeNum());
for (HighDiscountAgentCode agentCode: codeList) {
actualPrize = new HighActivityAwardActualPrize();
actualPrize.setActivityAwardPrizeId(list.getId());
actualPrize.setActivityAwardSerialNumId(serialNum.getId());
actualPrize.setActualPrizeType(2);
actualPrize.setActualPrizeId(agentCode.getId());
actualPrize.setStatus(1);
actualPrize.setCreateTime(new Date());
} }
@Override }
public void addHighActivityAwardSerialNum(HighActivityAwardSerialNum highActivityAwardSerialNum) {
highActivityAwardSerialNumMapper.insert(highActivityAwardSerialNum); }
} }
@Override @Override
public void addHighActivityAwardActualPrize(HighActivityAwardActualPrize highActivityAwardActualPrize) { public HighActivityAward getDetailById(Long id) {
highActivityAwardActualPrizeMapper.insert(highActivityAwardActualPrize); return highActivityAwardMapper.selectByPrimaryKey(id);
} }
} }

@ -91,6 +91,17 @@ public class HighDiscountAgentCodeServiceImpl implements HighDiscountAgentCodeSe
return list; return list;
} }
@Override
public List<HighDiscountAgentCode> getDiscountCodeByDiscountAgentId(Long discountAgentId , Integer num) {
HighDiscountAgentCodeExample example = new HighDiscountAgentCodeExample();
HighDiscountAgentCodeExample.Criteria criteria = example.createCriteria();
criteria.andDiscountAgentIdEqualTo(discountAgentId).andStatusEqualTo(1);
example.setLimit(num);
example.setOrderByClause("create_time desc");
return highDiscountAgentCodeMapper.selectByExample(example);
}
@Override @Override
public HighDiscountAgentCode getCodeById(Long id) { public HighDiscountAgentCode getCodeById(Long id) {
return highDiscountAgentCodeMapper.selectByPrimaryKey(id); return highDiscountAgentCodeMapper.selectByPrimaryKey(id);

Loading…
Cancel
Save