package com.panzhihua.service_jinhui_community.service.impl;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.jinhui.JinhuiApplyExperienceVO;
|
import com.panzhihua.common.model.vos.jinhui.JinhuiCoinGeneralTableVO;
|
import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
|
import com.panzhihua.service_jinhui_community.dao.JinhuiApplyExperienceDao;
|
import com.panzhihua.service_jinhui_community.entity.JinhuiApplyExperience;
|
import com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable;
|
import com.panzhihua.service_jinhui_community.entity.JinhuiExperienceActivity;
|
import com.panzhihua.service_jinhui_community.service.JinhuiApplyExperienceService;
|
import com.panzhihua.service_jinhui_community.service.JinhuiCoinGeneralTableService;
|
import com.panzhihua.service_jinhui_community.service.JinhuiExperienceActivityService;
|
import com.panzhihua.service_jinhui_community.service.JinhuiGoldCoinRecordService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
|
|
@Slf4j
|
@Service
|
public class JinhuiApplyExperienceServiceImpl extends ServiceImpl<JinhuiApplyExperienceDao,
|
JinhuiApplyExperience> implements JinhuiApplyExperienceService
|
{
|
@Resource
|
private JinhuiExperienceActivityService activityService;
|
|
@Resource
|
private JinhuiGoldCoinRecordService recordService;
|
|
@Resource
|
private JinhuiCoinGeneralTableService tableService;
|
|
|
@Override
|
public R getList(int pageNum,int pageSize,String userId,String activityId,String isFeedback)
|
{
|
Page page = new Page<JinhuiApplyExperience>(pageNum,pageSize);
|
return R.ok(baseMapper.getList(page,userId,activityId,isFeedback));
|
}
|
|
@Override
|
public JinhuiApplyExperience getDetails(String id, String userId, String activityId) {
|
return baseMapper.getDetails(id,userId,activityId);
|
}
|
|
|
|
@Override
|
public R addData(JinhuiApplyExperienceVO item)
|
{
|
if(StringUtils.isEmpty(item.getActivityId()))
|
{
|
return R.fail("活动id不能为空");
|
}
|
|
JinhuiApplyExperience applyExperience=baseMapper.getDetails(null,item.getUserId(),item.getActivityId());
|
|
if(applyExperience!=null && !StringUtils.isEmpty(applyExperience.getId()) )
|
{
|
return R.fail("该活动已参加");
|
}
|
|
//获取活动信息
|
JinhuiExperienceActivity activity=activityService.getDetails(item.getActivityId(),item.getUserId());
|
|
if (!StringUtils.equals("-1",activity.getPeopleNumber()))
|
{
|
//总数
|
int allNum=Integer.valueOf(activity.getPeopleNumber());
|
//报名人数
|
int num=getNum(null,null,item.getActivityId());
|
if(num>=allNum)
|
{
|
return R.fail("报名人数已满");
|
}
|
}
|
|
|
//当前时间
|
long newTime=System.currentTimeMillis();
|
//报名开始时间
|
long applyStartTime=activity.getApplyStartTime().getTime();
|
//报名结束时间
|
long applyEndTime=activity.getApplyEndTime().getTime();
|
|
|
if(applyStartTime<newTime && newTime<applyEndTime)
|
{
|
int num= baseMapper.addData(item);
|
if(num>0)
|
{
|
return R.ok();
|
}
|
return R.fail("添加失败");
|
}
|
else
|
{
|
return R.fail("报名未开始或报名已结束");
|
}
|
}
|
|
@Override
|
public R editData(JinhuiApplyExperienceVO item) {
|
int num= baseMapper.editData(item);
|
if(num>0)
|
{
|
return R.ok();
|
}
|
return R.fail("添加失败");
|
}
|
|
@Override
|
public R expurgateData(String id) {
|
int num= baseMapper.expurgateData(id);
|
if(num>0)
|
{
|
return R.ok();
|
}
|
return R.fail("添加失败");
|
}
|
|
@Override
|
public int getNum(String userId, String isFeedback, String activityId) {
|
return baseMapper.getNum(userId,isFeedback,activityId);
|
}
|
|
@Override
|
public R filIn(String userId, String activityId, String content)
|
{
|
if (StringUtils.isEmpty(activityId))
|
{
|
return R.fail("活动id不能为空");
|
}
|
|
if(StringUtils.isEmpty(content))
|
{
|
return R.fail("填写内容不能为空");
|
}
|
|
//获取活动信息
|
JinhuiExperienceActivity activity=activityService.getDetails(activityId,userId);
|
|
|
//当前时间
|
long newTime=System.currentTimeMillis();
|
|
//活动开始时间
|
long activityStartTime=activity.getActivityStartTime().getTime();
|
//活动结束时间
|
long activityEndTime=activity.getActivityEndTime().getTime();
|
|
if(newTime<activityStartTime)
|
{
|
return R.fail("活动未开始");
|
}
|
|
if(newTime>activityEndTime)
|
{
|
return R.fail("活动已结束");
|
}
|
|
//获取报名体验详情
|
JinhuiApplyExperience applyExperience=baseMapper.getDetails(null,userId,activityId);
|
if(StringUtils.equals("1",applyExperience.getIsFeedback()))
|
{
|
return R.fail("体验不可重复提交");
|
}
|
|
|
JinhuiApplyExperienceVO applyExperienceVO=new JinhuiApplyExperienceVO();
|
applyExperienceVO.setId(applyExperience.getId());
|
applyExperienceVO.setExperienceContent(content);
|
applyExperienceVO.setIsFeedback("1");
|
applyExperienceVO.setUploadingTime(new Date());
|
baseMapper.editData(applyExperienceVO);
|
|
|
|
int award=0;
|
if(!StringUtils.isEmpty(activity.getAward()))
|
{
|
award=Integer.valueOf(activity.getAward());
|
}
|
|
if(award>0)
|
{
|
//增加积分明细
|
JinhuiGoldCoinRecordVO recordVO=new JinhuiGoldCoinRecordVO();
|
recordVO.setGoldCoin(activity.getAward());
|
recordVO.setUserId(userId);
|
recordVO.setTitle("参加体验活动奖励");
|
recordVO.setType("4");
|
recordService.addData(recordVO);
|
//修改用户积分
|
|
JinhuiCoinGeneralTableVO table=new JinhuiCoinGeneralTableVO();
|
table.setUserId(userId);
|
table.setGoldCoin(activity.getAward());
|
tableService.addData(table);
|
}
|
return R.ok();
|
}
|
}
|