活动奖励配置

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.UserCenter;
import com.hai.common.utils.ResponseMsgUtil;
import com.hai.entity.HighActivityAward;
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.ResponseData;
import com.hai.service.HighActivityAwardService;
@ -16,6 +20,7 @@ import com.hai.service.HighActivityUserLotteryNumService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
@ -23,8 +28,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
/**
*
@ -40,75 +44,89 @@ public class HighActivityController {
@Resource
private UserCenter userCenter;
@Resource
private HighActivityInfoService highActivityInfoService;
@Resource
private HighActivityAwardService highActivityAwardService;
@Resource
private HighActivityUserLotteryNumService highActivityUserLotteryNumService;
@RequestMapping(value="/edit",method = RequestMethod.POST)
@RequestMapping(value="/editActivityAward",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "用户抽奖业务")
@ApiOperation(value = "新增中奖名次")
public ResponseData userLottery(@RequestBody JSONObject body, HttpServletRequest request) {
try {
// 用户
SessionObject sessionObject = userCenter.getSessionObject(request);
HighUserModel userInfoModel = (HighUserModel) sessionObject.getObject();
if (body == null || body.getLong("activityId") == null) {
log.error("HighActivityController --> lottery() error!", "参数错误");
if (body == null
|| 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, "");
}
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);
return ResponseMsgUtil.exception(e);
}
// 组装奖品
if (body.getJSONArray("activityPrizes") != null && body.getJSONArray("activityPrizes").size() > 0) {
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)
@ResponseBody
@ApiOperation(value = "根据卡券查询活动信息")
public ResponseData getActivityByCoupon(@RequestParam(name = "couponId", required = true) Long couponId) {
try {
// 查询活动
Map<String, Object> activity = highActivityInfoService.getNewActivityByCouponId(couponId);
if (activity != null) {
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);
activityPrize = new HighActivityPrize();
activityPrize.setPrizeType(activityObject.getInteger("prizeType"));
activityPrize.setPrizeId(activityObject.getLong("prizeId"));
activityPrize.setPrizeName(activityObject.getString("prizeName"));
activityPrize.setPrizeNum(activityObject.getInteger("prizeNum"));
activityPrize.setExt1(activityObject.getString("agentId"));
activityPrizes.add(activityPrize);
} catch (Exception e) {
log.error("HighActivityController -> getActivityByCoupon() error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/getDetail",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询活动详情")
public ResponseData getDetail(@RequestParam(name = "activityId", required = true) Long activityId) {
try {
// 查询活动
HighActivityInfo detail = highActivityInfoService.getDetailById(activityId);
if (detail != null) {
Map<String,Object> map = new HashMap<>();
map.put("activityInfo", detail);
map.put("activityAward", highActivityAwardService.getListByActivityId(detail.getId()));
return ResponseMsgUtil.success(map);
HighActivityAward highActivityAward;
if (body.getLong("id") != null) {
highActivityAward = highActivityAwardService.getDetailById(body.getLong("id"));
if (highActivityAward == null) {
log.error("HighActivityInfoController -> editActivityInfo() error!","未找到活动信息");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到活动信息");
}
if (highActivityAward.getStatus().equals(ActivityAwardStatus.status0.getNumber())) {
log.error("HighActivityInfoController -> editActivityInfo() error!","状态错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.STATUS_ERROR, "");
}
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) {
log.error("HighActivityController -> getDetail() error!",e);
log.error("HighActivityController -> userLottery() error!",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);
/**
* @params highActivityAward
* @return void
* @author sum1dream
* @description 编辑活动奖励名次
* @date 2021/9/28 11:35 下午
* @version: 1.0.0
*/
void editHighActivateAward(HighActivityAward highActivityAward);
/**
* @params highActivityPrize
* @return void
* @author sum1dream
* @description 编辑活动奖品
* @date 2021/9/28 11:37 下午
* @version: 1.0.0
*/
void editHighActivatePrize(HighActivityPrize highActivityPrize);
* @Author Sum1Dream
* @name getDetailById.java
* @Description // 查询详情
* @Date 10:22 2021/9/29
* @Param [id]
* @return com.hai.entity.HighActivityAward
**/
HighActivityAward getDetailById(Long id);
/**
* @params HighActivityAwardSerialNum
* @Author Sum1Dream
* @name editHighActivateAward.java
* @Description //编辑活动奖励名次
* @Date 9:33 2021/9/29
* @Param [highActivityAward]
* @return void
* @author sum1dream
* @description 增加活动将池
* @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);
**/
void editHighActivateAward(HighActivityAward highActivityAward , List<HighActivityPrize> highActivityPrizes) throws Exception ;
}

@ -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);
/**
* @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 胡锐
* @Description 根据id 查询二维码
@ -47,6 +58,8 @@ public interface HighDiscountAgentCodeService {
**/
HighDiscountAgentCode getCodeById(Long id);
/**
* 查询已分配的优惠券总数
* @param discountAgentId

@ -1,14 +1,23 @@
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.HighActivityAwardMapper;
import com.hai.dao.HighActivityAwardSerialNumMapper;
import com.hai.dao.HighActivityPrizeMapper;
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.HighDiscountAgentCodeService;
import com.hai.service.HighDiscountAgentRelService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service("activityAwardService")
@ -21,10 +30,14 @@ public class HighActivityAwardServiceImpl implements HighActivityAwardService {
private HighActivityPrizeMapper highActivityPrizeMapper;
@Resource
private HighActivityAwardSerialNumMapper highActivityAwardSerialNumMapper;
private HighActivityAwardSerialNumMapper highActivityAwardSerialNumM;
@Resource
private HighActivityAwardActualPrizeMapper highActivityAwardActualPrizeMapper;
private HighDiscountAgentRelService highDiscountAgentRelService;
@Resource
private HighDiscountAgentCodeService highDiscountAgentCodeService;
@Override
public List<HighActivityAward> getListByActivityId(Long activityId) {
@ -34,22 +47,63 @@ public class HighActivityAwardServiceImpl implements HighActivityAwardService {
}
@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);
} else {
highActivityAward.setUpdateTime(new Date());
highActivityAwardMapper.updateByPrimaryKey(highActivityAward);
}
@Override
public void editHighActivatePrize(HighActivityPrize highActivityPrize) {
highActivityPrizeMapper.insert(highActivityPrize);
HighActivityAwardSerialNum serialNum;
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
public void addHighActivityAwardActualPrize(HighActivityAwardActualPrize highActivityAwardActualPrize) {
highActivityAwardActualPrizeMapper.insert(highActivityAwardActualPrize);
public HighActivityAward getDetailById(Long id) {
return highActivityAwardMapper.selectByPrimaryKey(id);
}
}

@ -91,6 +91,17 @@ public class HighDiscountAgentCodeServiceImpl implements HighDiscountAgentCodeSe
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
public HighDiscountAgentCode getCodeById(Long id) {
return highDiscountAgentCodeMapper.selectByPrimaryKey(id);

Loading…
Cancel
Save