package com.panzhihua.service_dangjian.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.panzhihua.common.model.dtos.partybuilding.NeedProblemClaimDTO;
|
import com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.community.ComActActRegistVO;
|
import com.panzhihua.common.utlis.Snowflake;
|
import com.panzhihua.common.utlis.StringUtils;
|
import com.panzhihua.service_dangjian.dao.NeedProblemClaimDAO;
|
import com.panzhihua.service_dangjian.entity.UserIntegral;
|
import com.panzhihua.service_dangjian.entity.UserTrade;
|
import com.panzhihua.service_dangjian.service.NeedProblemClaimService;
|
import com.panzhihua.service_dangjian.service.NeedProblemInventoryService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: 党组织
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2020-11-30 11:40
|
**/
|
@Service
|
public class NeedProblemClaimServiceImpl extends ServiceImpl<NeedProblemClaimDAO, NeedProblemClaimDTO>
|
implements NeedProblemClaimService
|
{
|
//任务 问题接口
|
@Resource
|
private NeedProblemInventoryService inventoryService;
|
|
@Override
|
public List<NeedProblemClaimDTO> getList(String taskId, String userId, String unitId)
|
{
|
// Page page = new Page<>(pageNum,pageSize);
|
return baseMapper.getList(taskId,userId,unitId);
|
}
|
|
@Override
|
public NeedProblemClaimDTO getDetails(String id,String taskId, String userId) {
|
return baseMapper.getDetails(id,taskId,userId);
|
}
|
|
@Override
|
public R addData(NeedProblemClaimDTO item)
|
{
|
//任务问题详情
|
NeedProblemInventoryDTO inventoryDTO=inventoryService.getDetails(item.getTaskId(),item.getUserId());
|
long times=System.currentTimeMillis();
|
if(times<inventoryDTO.getClaimStartTime().getTime())
|
{
|
return R.fail("报名未开始");
|
}
|
|
if(times>inventoryDTO.getClaimEndTime().getTime())
|
{
|
return R.fail("报名已结束");
|
}
|
|
if(StringUtils.equals(inventoryDTO.getJoinNum(),inventoryDTO.getClaimNum()))
|
{
|
return R.fail("认领人数已满");
|
}
|
|
int isJion= baseMapper.getJionNum(item.getTaskId(),item.getUserId());
|
if(isJion>0)
|
{
|
return R.fail("您已报名!");
|
}
|
|
int peopleAstrict=0;
|
if(!StringUtils.isEmpty(inventoryDTO.getClaimNum()))
|
{
|
peopleAstrict=Integer.valueOf(inventoryDTO.getClaimNum());
|
}
|
|
if(peopleAstrict>0)
|
{
|
//活动参与人数
|
int jionNum= baseMapper.getJionNum(item.getTaskId(),null);
|
if(peopleAstrict<=jionNum)
|
{
|
return R.fail("参与人数已满");
|
}
|
}
|
|
int num=baseMapper.addData(item);
|
if(num!=1)
|
{
|
return R.fail("报名失败");
|
}
|
return R.ok();
|
}
|
|
@Override
|
public R editData(NeedProblemClaimDTO item)
|
{
|
int num=baseMapper.editData(item);
|
if(num>0)
|
{
|
return R.ok();
|
}
|
return R.fail("操作失败");
|
}
|
|
@Override
|
public R expurgateData(String id,String taskId,String userId)
|
{
|
//报名信息
|
NeedProblemClaimDTO claimDTO=baseMapper.getDetails(id,taskId,userId);
|
NeedProblemInventoryDTO inventoryDTO=inventoryService.getDetails(claimDTO.getTaskId(),claimDTO.getUserId());
|
long times=System.currentTimeMillis();
|
|
if(times>inventoryDTO.getNeedStartTime().getTime())
|
{
|
return R.fail("任务已开始!不能取消");
|
}
|
|
int num=baseMapper.expurgateData(id, taskId, userId);
|
if(num>0)
|
{
|
return R.ok();
|
}
|
return R.fail("操作失败");
|
}
|
|
@Override
|
public int getJionNum(String taskId,String userId)
|
{
|
return baseMapper.getJionNum(taskId,userId);
|
}
|
|
@Override
|
public int needClaimSignIn(String taskId, String userId, String type)
|
{
|
NeedProblemClaimDTO item=new NeedProblemClaimDTO();
|
item.setTaskId(taskId);
|
item.setUserId(userId);
|
if(StringUtils.equals("1",type))
|
{
|
//开始打卡
|
item.setPunchStartTime(new Date());
|
}
|
else {
|
NeedProblemClaimDTO userDto = baseMapper.getUserIdDetails(taskId, userId);
|
//结束打卡
|
Date newDate = new Date();
|
item.setPunchEndTime(newDate);
|
|
long times = newDate.getTime() - userDto.getPunchStartTime().getTime();
|
item.setServiceTime(times + "");
|
|
NeedProblemInventoryDTO dto=inventoryService.getDetails(taskId,userId);
|
UserTrade userTrade=new UserTrade();
|
//增加积分
|
UserIntegral integral = baseMapper.getUserIntegral(userId,dto.getCommunityId());
|
if (integral == null) {
|
UserIntegral addIn = new UserIntegral();
|
addIn.setId(Snowflake.getId()+"");
|
addIn.setUserId(userId);
|
addIn.setCommunityId(dto.getCommunityId());
|
addIn.setIntegralAvailableSum(dto.getAward());
|
addIn.setIntegralSum(dto.getAward());
|
userTrade.setIntegralId(addIn.getId());
|
baseMapper.addUserIntegral(addIn);
|
}
|
else
|
{
|
int award=0;
|
int integralAvailableSum=0;
|
int integralSum=0;
|
|
if(!StringUtils.isEmpty(dto.getAward()))
|
{
|
award=Integer.valueOf(dto.getAward());
|
}
|
|
if(!StringUtils.isEmpty(integral.getIntegralAvailableSum()))
|
{
|
integralAvailableSum=Integer.valueOf(integral.getIntegralAvailableSum())+award;
|
}
|
|
if(!StringUtils.isEmpty(integral.getIntegralSum()))
|
{
|
integralSum=Integer.valueOf(integral.getIntegralSum())+award;
|
}
|
|
userTrade.setIntegralId(integral.getId());
|
integral.setIntegralAvailableSum(integralAvailableSum+"");
|
integral.setIntegralSum(integralSum+"");
|
baseMapper.editUserIntegral(integral);
|
}
|
|
userTrade.setServiceId(dto.getId());
|
userTrade.setId(Snowflake.getId()+"");
|
userTrade.setAmount(dto.getAward());
|
userTrade.setChangeType("1");
|
userTrade.setUserId(userId);
|
userTrade.setCommunityId(dto.getCommunityId());
|
userTrade.setCreateBy(userId);
|
|
// @ApiModelProperty("1问题清单 2需求清单")
|
// private String kind;
|
if(StringUtils.equals("2",dto.getKind()))
|
{
|
//19 完成需求任务
|
userTrade.setServiceType("19");
|
userTrade.setRemark("完成需求清单任务奖励");
|
}
|
else
|
{
|
//20完成问题任务
|
userTrade.setServiceType("20");
|
userTrade.setRemark("完成问题清单任务奖励");
|
}
|
baseMapper.addUserIntegralTrade(userTrade);
|
}
|
return baseMapper.editData(item);
|
}
|
|
@Override
|
public R upNewFightNeedProblemClaimEndTime()
|
{
|
|
//获取未签退的活动id
|
List<String> activityList=baseMapper.getNotTimeTaskList();
|
if(activityList!=null && activityList.size()>0)
|
{
|
for (String aId:activityList)
|
{
|
NeedProblemInventoryDTO comActActivityDO=baseMapper.getActivityEndTime(aId);
|
|
if(comActActivityDO!=null)
|
{
|
if(comActActivityDO.getNeedEndTime().getTime()<new Date().getTime())
|
{
|
List<NeedProblemClaimDTO> timeList=baseMapper.getNotTimeId(aId);
|
for (NeedProblemClaimDTO user:timeList)
|
{
|
long time=comActActivityDO.getNeedEndTime().getTime()-user.getPunchStartTime().getTime();
|
baseMapper.updateEndTime(user.getId(),time+"",comActActivityDO.getNeedEndTime());
|
}
|
}
|
}
|
else
|
{
|
List<NeedProblemClaimDTO> timeList=baseMapper.getNotTimeId(aId);
|
for (NeedProblemClaimDTO user:timeList)
|
{
|
Calendar calendar = Calendar.getInstance();
|
calendar.setTime(user.getPunchStartTime());
|
calendar.add(Calendar.HOUR_OF_DAY, 3); // 加3小时
|
Date newDate = calendar.getTime();
|
long time=newDate.getTime()-user.getPunchStartTime().getTime();
|
|
baseMapper.updateEndTime(user.getId(),time+"",newDate);
|
}
|
}
|
|
}
|
|
}
|
|
return R.ok();
|
}
|
|
|
}
|