From 6873ee2b98283d9a876dfc6e5d878094e5de61d9 Mon Sep 17 00:00:00 2001 From: huanghongfa <18228131219@163.com> Date: 星期三, 20 一月 2021 11:30:46 +0800 Subject: [PATCH] 系统配置 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java | 327 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 327 insertions(+), 0 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java new file mode 100644 index 0000000..68a66d7 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java @@ -0,0 +1,327 @@ +package com.panzhihua.service_community.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +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.community.ActivitySignVO; +import com.panzhihua.common.model.vos.community.ComActActivityVO; +import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO; +import com.panzhihua.common.model.vos.community.SignactivityVO; +import com.panzhihua.service_community.dao.ComActActSignDAO; +import com.panzhihua.service_community.dao.ComActActivityDAO; +import com.panzhihua.service_community.model.dos.ComActActSignDO; +import com.panzhihua.service_community.model.dos.ComActActivityDO; +import com.panzhihua.service_community.service.ComActActivityService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * @program: springcloud_k8s_panzhihuazhihuishequ + * @description: 社区活动 + * @author: huang.hongfa weixin hhf9596 qq 959656820 + * @create: 2020-12-07 14:35 + **/ +@Slf4j +@Service +public class ComActActivityServiceImpl extends ServiceImpl<ComActActivityDAO, ComActActivityDO> implements ComActActivityService { + @Resource + private ComActActivityDAO comActActivityDAO; + @Resource + private ComActActSignDAO comActActSignDAO; + /** + * 新增社区活动 + * @param comActActivityVO 新增信息 + * @return 新增结果 + */ + @Override + public R addActivity(ComActActivityVO comActActivityVO) { + ComActActivityDO comActActivityDO=new ComActActivityDO(); + BeanUtils.copyProperties(comActActivityVO,comActActivityDO); + Integer status = comActActivityVO.getStatus(); + if (status.intValue()!=1) { + comActActivityDO.setPublishAt(new Date());//发布时间 + } + boolean save = this.save(comActActivityDO); + if(!save){ + return R.fail(); + } + ComActActivityDO one = this.getOne(new QueryWrapper<ComActActivityDO>().lambda().eq(ComActActivityDO::getActivityName, comActActivityDO.getActivityName()).orderByDesc(ComActActivityDO::getCreateAt).last(" limit 1 ")); + Long activityId = one.getId(); + return R.ok(activityId); + } + + /** + * 编辑社区活动 + * + * @param comActActivityVO 编辑内容 + * @return 编辑结果 + */ + @Override + public R putActivity(ComActActivityVO comActActivityVO) { + ComActActivityDO comActActivityDO=new ComActActivityDO(); + BeanUtils.copyProperties(comActActivityVO,comActActivityDO); + boolean b = this.updateById(comActActivityDO); + if (b) { + return R.ok(); + } + return R.fail(); + } + + /** + * 分页查询社区活动 + * + * @param comActActivityVO 查询参数 + * @return 分页集合 + */ + @Override + public R pageActivity(ComActActivityVO comActActivityVO) { + Page page = new Page<>(); + Long pageNum = comActActivityVO.getPageNum(); + Long pageSize = comActActivityVO.getPageSize(); + if (null==pageNum||0==pageNum) { + pageNum = 1l; + } + if (null==pageSize||0==pageSize) { + pageSize = 10l; + } + page.setSize(pageSize); + page.setCurrent(pageNum); + IPage<ComActActivityVO> iPage = comActActivityDAO.pageActivity(page, comActActivityVO); + return R.ok(iPage); + } + + /** + * 发布活动 + * + * @param comActActivityVO 主键id 发布时间 + * @return 发布结果 + */ + @Override + public R releaseActivity(ComActActivityVO comActActivityVO) { + ComActActivityDO comActActivityDO=new ComActActivityDO(); + comActActivityDO.setId(comActActivityVO.getId()); + comActActivityDO.setPublishAt(comActActivityVO.getPublishAt()); + comActActivityDO.setStatus(comActActivityVO.getStatus()); + int update = comActActivityDAO.updateById(comActActivityDO); + if (update>0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 取消活动 + * + * @param comActActivityVO 取消原因 + * @return 取消结果 + */ + @Override + public R cancelActivity(ComActActivityVO comActActivityVO) { + ComActActivityDO comActActivityDO=new ComActActivityDO(); + comActActivityDO.setId(comActActivityVO.getId()); + comActActivityDO.setStatus(comActActivityVO.getStatus()); + comActActivityDO.setCancelReason(comActActivityVO.getCancelReason()); + int update = comActActivityDAO.updateById(comActActivityDO); + if (update>0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 活动详情 + * + * @param id 活动id + * @param userId + * @return 详情 + */ + @Override + public ComActActivityVO inforActivity(Long id, Long userId) { + ComActActivityVO comActActivityVO=comActActivityDAO.inforActivity(id); + if (!ObjectUtils.isEmpty(comActActivityVO)) { + ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getActivityId, id).eq(ComActActSignDO::getUserId, userId)); + if (!ObjectUtils.isEmpty(comActActSignDO)) { + comActActivityVO.setIsSign(1); + comActActivityVO.setIsVolunteer(comActActSignDO.getIsVolunteer()); + }else { + + } + } + return comActActivityVO; + } + + /** + * 活动报名名单 + * + * @param activitySignVO 查询参数 + * @return 报名人员集合 + */ + @Override + public R listActivitySign(ActivitySignVO activitySignVO) { + List<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySign(activitySignVO); + return R.ok(activitySignVOS); + } + + /** + * 分页展示我的所有活动 时间倒序排列 + * + * @param comActActivityVO 分页参数 + * @return 分页集合 + */ + @Override + public R pageMyActivity(ComActActivityVO comActActivityVO) { + Page page = new Page<>(); + Long pageNum = comActActivityVO.getPageNum(); + Long pageSize = comActActivityVO.getPageSize(); + if (null==pageNum||0==pageNum) { + pageNum = 1l; + } + if (null==pageSize||0==pageSize) { + pageSize = 10l; + } + page.setSize(pageSize); + page.setCurrent(pageNum); + IPage<ComActActivityVO> iPage = comActActivityDAO.pageMyActivity(page, comActActivityVO); + return R.ok(iPage); + } + + /** + * 报名/取消报名社区活动 + * + * @param signactivityVO 报名参数 + * @return 报名 取消报名 结果 + */ + @Override + public R signActivity(SignactivityVO signactivityVO) { + Long activityId = signactivityVO.getActivityId(); + Integer type = signactivityVO.getType(); + Long userId = signactivityVO.getUserId(); + Integer isVolunteer = signactivityVO.getIsVolunteer(); + int num=0; + if (1==type) { + ComActActSignDO comActActSignDO=new ComActActSignDO(); + comActActSignDO.setActivityId(activityId); + comActActSignDO.setUserId(userId); + comActActSignDO.setIsVolunteer(isVolunteer); + num = comActActSignDAO.insert(comActActSignDO); + } else { + num = comActActSignDAO.delete(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getUserId, userId).eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, isVolunteer)); + } + if (num>0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 用户参加的所有社区活动 + * + * @param userId 用户id + * @return 活动列表 + */ + @Override + public R listActivity(Long userId) { + List<ComActActSignDO> comActActSignDOS = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getUserId, userId)); + if (ObjectUtils.isEmpty(comActActSignDOS)) { + return R.fail(); + } + List<Long> longs = comActActSignDOS.stream().map(comActActSignDO -> comActActSignDO.getActivityId()).collect(Collectors.toList()); + List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectBatchIds(longs); + List<ComActActivityVO>comActActivityVOS=new ArrayList<>(); + comActActivityDOS.forEach(comActActivityDO -> { + ComActActivityVO comActActivityVO=new ComActActivityVO(); + BeanUtils.copyProperties(comActActivityDO,comActActivityVO); + List<ComActActSignDO> collect = comActActSignDOS.stream().filter(comActActSignDO -> comActActSignDO.getActivityId().equals(comActActivityVO.getId())).limit(1).collect(Collectors.toList()); + ComActActSignDO comActActSignDO = collect.get(0); + Integer isVolunteer = comActActSignDO.getIsVolunteer(); + if (isVolunteer.intValue()==1) { + comActActivityVO.setType(1); + }else{ + comActActivityVO.setType(2); + } + comActActivityVOS.add(comActActivityVO); + }); + return R.ok(comActActivityVOS); + } + + /** + * 查询志愿者参与的所有已经完成的活动 + * + * @param phone 用户手机号 + * @return 所有活动集合 + */ + @Override + public List<ComActActivityVO> listActivityByPhone(String phone) { + List<ComActActivityVO> comActActivityVOS=comActActivityDAO.listActivityByPhone(phone); + return comActActivityVOS; + } + + /** + * 定时任务查询所有要取消的社区活动 + * + * @return 社区活动集合 + */ + @Override + public R timedTaskActActivity() { + List<Long>longs=comActActivityDAO.selectTimedTaskActActivity(); + if (ObjectUtils.isEmpty(longs)) { + return R.fail("没有需要取消的社区活动"); + } + List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectBatchIds(longs); + List<ComActActivityVO>comActActivityVOS=new ArrayList<>(); + if (!ObjectUtils.isEmpty(comActActivityDOS)) { + comActActivityDOS.forEach(comActActivityDO -> { + ComActActivityVO comActActivityVO=new ComActActivityVO(); + BeanUtils.copyProperties(comActActivityDO,comActActivityVO); + List<ComActActSignDO> comActActSignDOS = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getActivityId, comActActivityDO.getId())); + if (!ObjectUtils.isEmpty(comActActSignDOS)) { + List<ActivitySignVO> activitySignVOList=new ArrayList<>(); + comActActSignDOS.forEach(comActActSignDO -> { + ActivitySignVO activitySignVO=new ActivitySignVO(); + BeanUtils.copyProperties(comActActSignDO,activitySignVO); + activitySignVOList.add(activitySignVO); + comActActivityVO.setActivitySignVOList(activitySignVOList); + }); + } + comActActivityVOS.add(comActActivityVO); + }); + int num=comActActivityDAO.updateIdBatch(longs); + log.info("定时任务--一共取消社区活动数量【{}】",num); + } + return R.ok(comActActivityVOS); + } + + /** + * 定时任务刷新社区活动的各个状态 除取消外 + * + * @return 更新结果 + */ + @Override + public R timedTaskActActivityAll() { +// 修改发布状态 变为未开始 + int num=comActActivityDAO.updateStatusToNotBegin(); + log.info("定时任务--修改社区活动发布状态活动数量【{}】",num); +// 修改报名状态 变为报名中 + int num1=comActActivityDAO.updateStatusToBeginSign(); + log.info("定时任务--修改社区活动报名状态活动数量【{}】",num1); +// 修改进行状态 变为进行中或者已结束 + int num2=comActActivityDAO.updateStatusToBeginActiveOrEnd(); + log.info("定时任务--修改社区活动进行状态活动数量【{}】",num2); + return R.ok(); + } + + + + +} -- Gitblit v1.7.1