package com.stylefeng.guns.modular.system.service.impl;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.stylefeng.guns.core.shiro.ShiroKit;
|
import com.stylefeng.guns.core.shiro.ShiroUser;
|
import com.stylefeng.guns.core.util.DateUtil;
|
import com.stylefeng.guns.core.util.SinataUtil;
|
import com.stylefeng.guns.modular.system.model.*;
|
import com.stylefeng.guns.modular.system.dao.UserActivityMapper;
|
import com.stylefeng.guns.modular.system.service.*;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* <p>
|
* 用户活动主表 服务实现类
|
* </p>
|
*
|
* @author stylefeng
|
* @since 2020-06-19
|
*/
|
@Service
|
public class UserActivityServiceImpl extends ServiceImpl<UserActivityMapper, UserActivity> implements IUserActivityService {
|
@Resource
|
private UserActivityMapper userActivityMapper;
|
|
@Autowired
|
private ISysRedPacketRecordService redPacketRecordService;
|
|
@Autowired
|
private IUserActivityBalanceService userActivityBalanceService;
|
|
@Autowired
|
private IUserActivityDiscount1Service userActivityDiscount1Service;
|
|
@Autowired
|
private IUserActivityInviteService userActivityInviteService;
|
|
@Autowired
|
private IUserActivityRedenvelopeService userActivityRedenvelopeService;
|
|
@Autowired
|
private IUserActivityRegisteredService userActivityRegisteredService;
|
|
@Autowired
|
private IUserService userService;
|
|
@Override
|
public void insertOrUpdate(Integer id, String name, String startTime, Integer registCouponId, Integer registEnable, Integer registNumber, Integer registEffective,
|
Integer inviteCouponId, Integer inviteEnable, Integer inviteNumber, Integer inviteEffective, Integer balanceEnable, String balanceInfo,
|
Integer discountEnable, Double discountSpecial, Double discountTaxi, Double discountLogistics, Integer redenvelopeId, Integer redenvelopeEnable,
|
Double registerPrice, Double invitationPrice, Double redPrice) {
|
if(id==null){
|
String[] timeArray = startTime.split(" - ");
|
Date startTimes = DateUtil.getDate_str3(timeArray[0]);
|
Date endTimes = DateUtil.getDate_str3(timeArray[1]);
|
ShiroUser user = ShiroKit.getUser();
|
Date nowDay = new Date();
|
UserActivity userActivity = new UserActivity();
|
userActivity.setInsertTime(nowDay);
|
userActivity.setCompanyId(ShiroKit.getUser().getObjectId());
|
userActivity.setCompanyType(ShiroKit.getUser().getRoleType());
|
userActivity.setStatus(userActivity.getCompanyType()==1?3:1);
|
userActivity.setName(name);
|
userActivity.setStartTime(startTimes);
|
userActivity.setEndTime(endTimes);
|
userActivity.insertOrUpdate();
|
//添加注册奖励
|
if(registCouponId!=null){
|
UserActivityRegistered userActivityRegistered = new UserActivityRegistered();
|
userActivityRegistered.setCouponId(registCouponId);
|
userActivityRegistered.setEnable(registEnable);
|
userActivityRegistered.setEndTime(endTimes);
|
userActivityRegistered.setStartTime(startTimes);
|
userActivityRegistered.setTotalNum(registNumber);
|
userActivityRegistered.setLaveNum(registNumber);
|
userActivityRegistered.setUserActivityId(userActivity.getId());
|
userActivityRegistered.setEffective(registEffective);
|
userActivityRegistered.setTotalPrice(registerPrice);
|
userActivityRegistered.setLavePrice(registerPrice);
|
userActivityRegistered.insertOrUpdate();
|
}
|
//添加邀请奖励
|
if(inviteCouponId!=null){
|
UserActivityInvite userActivityInvite = new UserActivityInvite();
|
userActivityInvite.setCouponId(inviteCouponId);
|
userActivityInvite.setEnable(inviteEnable);
|
userActivityInvite.setEndTime(endTimes);
|
userActivityInvite.setStartTime(startTimes);
|
userActivityInvite.setTotalNum(inviteNumber);
|
userActivityInvite.setLaveNum(inviteNumber);
|
userActivityInvite.setUserActivityId(userActivity.getId());
|
userActivityInvite.setEffective(inviteEffective);
|
userActivityInvite.setTotalPrice(invitationPrice);
|
userActivityInvite.setLavePrice(invitationPrice);
|
userActivityInvite.insertOrUpdate();
|
}
|
//添加充值赠送
|
JSONArray jsonArray = JSON.parseArray(balanceInfo);
|
if(jsonArray.size()>0){
|
for(int i=0;i<jsonArray.size();i++){
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
UserActivityBalance userActivityBalance = new UserActivityBalance();
|
userActivityBalance.setEnable(balanceEnable);
|
userActivityBalance.setUserActivityId(userActivity.getId());
|
userActivityBalance.setInsertTime(nowDay);
|
userActivityBalance.setStartTime(startTimes);
|
userActivityBalance.setEndTime(endTimes);
|
userActivityBalance.setGeneralCouponId(jsonObject.getInteger("id1"));
|
userActivityBalance.setSpecialCouponId(jsonObject.getInteger("id2"));
|
userActivityBalance.setTaxiCouponId(jsonObject.getInteger("id3"));
|
userActivityBalance.setIntercityCouponId(jsonObject.getInteger("id4"));
|
userActivityBalance.setEffective(jsonObject.getInteger("num10"));
|
userActivityBalance.setMoney(jsonObject.getDouble("num1"));
|
userActivityBalance.setGeneralNum(jsonObject.getInteger("num2"));
|
userActivityBalance.setGeneralCouponMoney(jsonObject.getDouble("num3"));
|
userActivityBalance.setSpecialNum(jsonObject.getInteger("num4"));
|
userActivityBalance.setSpecialCouponMoney(jsonObject.getDouble("num5"));
|
userActivityBalance.setTaxiNum(jsonObject.getInteger("num6"));
|
userActivityBalance.setTaxiCouponMoney(jsonObject.getDouble("num7"));
|
userActivityBalance.setIntercityNum(jsonObject.getInteger("num8"));
|
userActivityBalance.setIntercityCouponMoney(jsonObject.getDouble("num9"));
|
userActivityBalance.setTotalPrice(jsonObject.getDouble("num11"));
|
userActivityBalance.setLavePrice(jsonObject.getDouble("num11"));
|
userActivityBalance.insertOrUpdate();
|
}
|
}
|
//添加打折活动
|
if(SinataUtil.isNotEmpty(discountSpecial) ||
|
SinataUtil.isNotEmpty(discountTaxi) ||
|
SinataUtil.isNotEmpty(discountLogistics)){
|
UserActivityDiscount1 userActivityDiscount1 = new UserActivityDiscount1();
|
userActivityDiscount1.setUserActivityId(userActivity.getId());
|
userActivityDiscount1.setStartTime(startTimes);
|
userActivityDiscount1.setEndTime(endTimes);
|
userActivityDiscount1.setEnable(discountEnable);
|
userActivityDiscount1.setSpecial(SinataUtil.isEmpty(discountSpecial) ?10:discountSpecial);
|
userActivityDiscount1.setTaxi(SinataUtil.isEmpty(discountTaxi) ?10:discountTaxi);
|
userActivityDiscount1.setLogistics(SinataUtil.isEmpty(discountLogistics) ?10:discountLogistics);
|
userActivityDiscount1.insertOrUpdate();
|
}
|
//添加红包活动
|
if(redenvelopeId!=null){
|
UserActivityRedenvelope userActivityRedenvelope = new UserActivityRedenvelope();
|
userActivityRedenvelope.setUserActivityId(userActivity.getId());
|
userActivityRedenvelope.setStartTime(startTimes);
|
userActivityRedenvelope.setEndTime(endTimes);
|
userActivityRedenvelope.setEnable(redenvelopeEnable);
|
userActivityRedenvelope.setRedEnvelopeId(redenvelopeId);
|
SysRedPacketRecord redPacketRecord = redPacketRecordService.selectById(redenvelopeId);
|
userActivityRedenvelope.setTotalMoney(redPacketRecord.getTotalMoney().doubleValue());
|
userActivityRedenvelope.setLaveMoney(redPacketRecord.getTotalMoney().doubleValue());
|
userActivityRedenvelope.setTotalPrice(redPrice);
|
userActivityRedenvelope.setLavePrice(redPrice);
|
userActivityRedenvelope.insertOrUpdate();
|
}
|
}else{
|
String[] timeArray = startTime.split(" - ");
|
Date startTimes = DateUtil.getDate_str3(timeArray[0]);
|
Date endTimes = DateUtil.getDate_str3(timeArray[1]);
|
ShiroUser user = ShiroKit.getUser();
|
Date nowDay = new Date();
|
UserActivity userActivity = new UserActivity();
|
userActivity.setId(id);
|
userActivity.setInsertTime(nowDay);
|
userActivity.setCompanyId(ShiroKit.getUser().getObjectId());
|
userActivity.setCompanyType(ShiroKit.getUser().getRoleType());
|
userActivity.setStatus(userActivity.getCompanyType()==1?3:1);
|
userActivity.setName(name);
|
userActivity.setStartTime(startTimes);
|
userActivity.setEndTime(endTimes);
|
userActivity.insertOrUpdate();
|
userActivityBalanceService.delete(new EntityWrapper<UserActivityBalance>().eq("userActivityId",id));
|
userActivityDiscount1Service.delete(new EntityWrapper<UserActivityDiscount1>().eq("userActivityId",id));
|
userActivityInviteService.delete(new EntityWrapper<UserActivityInvite>().eq("userActivityId",id));
|
userActivityRedenvelopeService.delete(new EntityWrapper<UserActivityRedenvelope>().eq("userActivityId",id));
|
userActivityRegisteredService.delete(new EntityWrapper<UserActivityRegistered>().eq("userActivityId",id));
|
//添加注册奖励
|
if(registCouponId!=null){
|
UserActivityRegistered userActivityRegistered = new UserActivityRegistered();
|
userActivityRegistered.setCouponId(registCouponId);
|
userActivityRegistered.setEnable(registEnable);
|
userActivityRegistered.setEndTime(endTimes);
|
userActivityRegistered.setStartTime(startTimes);
|
userActivityRegistered.setTotalNum(registNumber);
|
userActivityRegistered.setLaveNum(registNumber);
|
userActivityRegistered.setUserActivityId(userActivity.getId());
|
userActivityRegistered.setEffective(registEffective);
|
userActivityRegistered.setTotalPrice(registerPrice);
|
userActivityRegistered.setLavePrice(registerPrice);
|
userActivityRegistered.insertOrUpdate();
|
}
|
//添加邀请奖励
|
if(inviteCouponId!=null){
|
UserActivityInvite userActivityInvite = new UserActivityInvite();
|
userActivityInvite.setCouponId(inviteCouponId);
|
userActivityInvite.setEnable(inviteEnable);
|
userActivityInvite.setEndTime(endTimes);
|
userActivityInvite.setStartTime(startTimes);
|
userActivityInvite.setTotalNum(inviteNumber);
|
userActivityInvite.setLaveNum(inviteNumber);
|
userActivityInvite.setUserActivityId(userActivity.getId());
|
userActivityInvite.setEffective(inviteEffective);
|
userActivityInvite.setTotalPrice(invitationPrice);
|
userActivityInvite.setLavePrice(invitationPrice);
|
userActivityInvite.insertOrUpdate();
|
}
|
//添加充值赠送
|
JSONArray jsonArray = JSON.parseArray(balanceInfo);
|
if(jsonArray.size()>0){
|
for(int i=0;i<jsonArray.size();i++){
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
UserActivityBalance userActivityBalance = new UserActivityBalance();
|
userActivityBalance.setEnable(balanceEnable);
|
userActivityBalance.setUserActivityId(userActivity.getId());
|
userActivityBalance.setInsertTime(nowDay);
|
userActivityBalance.setStartTime(startTimes);
|
userActivityBalance.setEndTime(endTimes);
|
userActivityBalance.setEffective(jsonObject.getInteger("num10"));
|
userActivityBalance.setMoney(jsonObject.getDouble("num1"));
|
userActivityBalance.setGeneralNum(jsonObject.getInteger("num2"));
|
userActivityBalance.setGeneralCouponMoney(jsonObject.getDouble("num3"));
|
userActivityBalance.setSpecialNum(jsonObject.getInteger("num4"));
|
userActivityBalance.setSpecialCouponMoney(jsonObject.getDouble("num5"));
|
userActivityBalance.setTaxiNum(jsonObject.getInteger("num6"));
|
userActivityBalance.setTaxiCouponMoney(jsonObject.getDouble("num7"));
|
userActivityBalance.setIntercityNum(jsonObject.getInteger("num8"));
|
userActivityBalance.setIntercityCouponMoney(jsonObject.getDouble("num9"));
|
userActivityBalance.setTotalPrice(jsonObject.getDouble("num11"));
|
userActivityBalance.setLavePrice(jsonObject.getDouble("num11"));
|
userActivityBalance.insertOrUpdate();
|
|
}
|
}
|
//添加打折活动
|
UserActivityDiscount1 userActivityDiscount1 = new UserActivityDiscount1();
|
userActivityDiscount1.setUserActivityId(userActivity.getId());
|
userActivityDiscount1.setStartTime(startTimes);
|
userActivityDiscount1.setEndTime(endTimes);
|
userActivityDiscount1.setEnable(discountEnable);
|
userActivityDiscount1.setSpecial(SinataUtil.isEmpty(discountSpecial) ?10d:discountSpecial);
|
userActivityDiscount1.setTaxi(SinataUtil.isEmpty(discountTaxi) ?10d:discountTaxi);
|
userActivityDiscount1.setLogistics(SinataUtil.isEmpty(discountLogistics) ?10d:discountLogistics);
|
userActivityDiscount1.insertOrUpdate();
|
//添加红包活动
|
if(redenvelopeId!=null){
|
UserActivityRedenvelope userActivityRedenvelope = new UserActivityRedenvelope();
|
userActivityRedenvelope.setUserActivityId(userActivity.getId());
|
userActivityRedenvelope.setStartTime(startTimes);
|
userActivityRedenvelope.setEndTime(endTimes);
|
userActivityRedenvelope.setEnable(redenvelopeEnable);
|
userActivityRedenvelope.setRedEnvelopeId(redenvelopeId);
|
SysRedPacketRecord redPacketRecord = redPacketRecordService.selectById(redenvelopeId);
|
userActivityRedenvelope.setTotalMoney(redPacketRecord.getTotalMoney().doubleValue());
|
userActivityRedenvelope.setLaveMoney(redPacketRecord.getTotalMoney().doubleValue());
|
userActivityRedenvelope.setTotalPrice(redPrice);
|
userActivityRedenvelope.setLavePrice(redPrice);
|
userActivityRedenvelope.insertOrUpdate();
|
}
|
}
|
}
|
|
/**
|
* 获取列表数据
|
* @param start
|
* @param end
|
* @param name
|
* @param status
|
* @param offset
|
* @param limit
|
* @return
|
*/
|
@Override
|
public Map<String, Object> queryUserActivityList(Integer uid, Date start, Date end, String name, Integer status, Integer offset, Integer limit) {
|
Map<String, Object> map = new HashMap<>();
|
Integer objectId = userService.selectById(uid).getObjectId();
|
List<Map<String, Object>> list = userActivityMapper.queryUserActivityList(objectId, start, end, name, status, offset, limit);
|
int i = userActivityMapper.queryUserActivityListCount(objectId, start, end, name, status);
|
map.put("rows", list);
|
map.put("total", i);
|
return map;
|
}
|
}
|