|
|
@@ -0,0 +1,196 @@
|
|
|
+package com.jzg.organization.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.jzg.commons.core.base.BaseController;
|
|
|
+import com.jzg.commons.core.page.HttpResult;
|
|
|
+import com.jzg.commons.entity.po.*;
|
|
|
+import com.jzg.commons.entity.vo.SysActivityAwardVo;
|
|
|
+import com.jzg.commons.entity.vo.SysActivityVo;
|
|
|
+import com.jzg.commons.util.MinioUtils;
|
|
|
+import com.jzg.commons.util.StringUtils;
|
|
|
+import com.jzg.organization.mapper.SysActivityAwardMapper;
|
|
|
+import com.jzg.organization.mapper.SysActivityMapper;
|
|
|
+import com.jzg.organization.mapper.SysUploadFilesMapper;
|
|
|
+import com.jzg.organization.service.SysActivityAwardService;
|
|
|
+import com.jzg.organization.service.SysActivityService;
|
|
|
+import com.jzg.organization.service.SysDeptService;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author quchen
|
|
|
+ * @date 2025/2/6 9:01
|
|
|
+ */
|
|
|
+
|
|
|
+@Service
|
|
|
+public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysActivity> implements SysActivityService {
|
|
|
+ @Resource
|
|
|
+ private SysDeptService sysDeptService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysActivityService sysActivityService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysActivityAwardService sysActivityAwardService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysActivityAwardMapper sysActivityAwardMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysUploadFilesMapper sysUploadFilesMapper;
|
|
|
+ @Qualifier("baseController")
|
|
|
+ @Autowired
|
|
|
+ private BaseController controller;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpResult addActivity(SysActivityVo sysActivityVo) {
|
|
|
+ SysDept sysDept = sysDeptService.getById(sysActivityVo.getActDept());
|
|
|
+ if (Objects.isNull(sysDept) || sysDept.getIsDelete().equals(1)) {
|
|
|
+ throw new RuntimeException("机构不存在");
|
|
|
+ }
|
|
|
+ String userId = controller.getUserName();
|
|
|
+ SysActivity sysActivity = new SysActivity(userId);
|
|
|
+ BeanUtils.copyProperties(sysActivityVo, sysActivity);
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
+
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+
|
|
|
+ LocalDate startTime = LocalDate.parse(sysActivityVo.getActStartTime(), formatter);
|
|
|
+ LocalDate endTime = LocalDate.parse(sysActivityVo.getActEndTime(), formatter);
|
|
|
+ // 检查当前时间是否早于生效日期
|
|
|
+ if (now.isBefore(startTime)) {
|
|
|
+ sysActivity.setActStatus("1");
|
|
|
+ }
|
|
|
+ else if (now.isAfter(startTime) && now.isBefore(endTime)) {
|
|
|
+ sysActivity.setActStatus("2");
|
|
|
+ }
|
|
|
+ else if (now.isEqual(startTime)) {
|
|
|
+ sysActivity.setActStatus("2");
|
|
|
+ }
|
|
|
+ else if (now.isAfter(endTime)) {
|
|
|
+ sysActivity.setActStatus("3");
|
|
|
+ }
|
|
|
+ else if (now.isEqual(endTime)) {
|
|
|
+ sysActivity.setActStatus("3");
|
|
|
+ }
|
|
|
+ sysActivityService.save(sysActivity);
|
|
|
+ return HttpResult.ok("添加活动成功", sysActivity.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public HttpResult updateActivity(SysActivityVo sysActivityVo) {
|
|
|
+ SysActivity sysActivity = sysActivityService.getById(sysActivityVo.getId());
|
|
|
+ if (Objects.isNull(sysActivity)) {
|
|
|
+ throw new RuntimeException("活动不存在");
|
|
|
+ }
|
|
|
+ if (sysActivity.getActStatus().equals("3")) {
|
|
|
+ throw new RuntimeException("活动已结束");
|
|
|
+ }
|
|
|
+ SysDept sysDept = sysDeptService.getById(sysActivityVo.getActDept());
|
|
|
+ if (Objects.isNull(sysDept) || sysDept.getIsDelete().equals(1)) {
|
|
|
+ throw new RuntimeException("机构不存在");
|
|
|
+ }
|
|
|
+ BeanUtils.copyProperties(sysActivityVo, sysActivity);
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
+
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+
|
|
|
+ LocalDate startTime = LocalDate.parse(sysActivityVo.getActStartTime(), formatter);
|
|
|
+ LocalDate endTime = LocalDate.parse(sysActivityVo.getActEndTime(), formatter);
|
|
|
+ // 检查当前时间是否早于生效日期
|
|
|
+ if (now.isBefore(startTime)) {
|
|
|
+ sysActivity.setActStatus("1");
|
|
|
+ }
|
|
|
+ else if (now.isAfter(startTime) && now.isBefore(endTime)) {
|
|
|
+ sysActivity.setActStatus("2");
|
|
|
+ }
|
|
|
+ else if (now.isEqual(startTime)) {
|
|
|
+ sysActivity.setActStatus("2");
|
|
|
+ }
|
|
|
+ else if (now.isAfter(endTime)) {
|
|
|
+ sysActivity.setActStatus("3");
|
|
|
+ }
|
|
|
+ else if (now.isEqual(endTime)) {
|
|
|
+ sysActivity.setActStatus("3");
|
|
|
+ }
|
|
|
+ sysActivityService.updateById(sysActivity);
|
|
|
+ return HttpResult.ok("修改活动成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpResult addActivityAward(SysActivityAwardVo sysActivityAwardVo) {
|
|
|
+ List<SysActivityAward> sysActivityAwardList = new ArrayList<>();
|
|
|
+ for (SysActivityAwardVo.AwardList awardList : sysActivityAwardVo.getAwardList()) {
|
|
|
+ SysActivity sysActivity = sysActivityService.getById(sysActivityAwardVo.getActivityId());
|
|
|
+ if (Objects.isNull(sysActivity)) {
|
|
|
+ throw new RuntimeException("活动不存在");
|
|
|
+ }
|
|
|
+ if (sysActivity.getActStatus().equals("3")) {
|
|
|
+ throw new RuntimeException("活动已结束");
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(awardList.getAwardId())) {
|
|
|
+ SysActivityAward sysActivityAward = sysActivityAwardService.getById(awardList.getAwardId());
|
|
|
+ if (Objects.isNull(sysActivityAward)) {
|
|
|
+ throw new RuntimeException("奖品不存在");
|
|
|
+ }
|
|
|
+ BeanUtils.copyProperties(awardList, sysActivityAward);
|
|
|
+ sysActivityAwardService.updateById(sysActivityAward);
|
|
|
+ } else{
|
|
|
+ SysActivityAward sysActivityAward = new SysActivityAward();
|
|
|
+ BeanUtils.copyProperties(awardList, sysActivityAward);
|
|
|
+ sysActivityAward.setActivityId(sysActivityAwardVo.getActivityId());
|
|
|
+ sysActivityAwardList.add(sysActivityAward);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysActivityAwardService.saveBatch(sysActivityAwardList);
|
|
|
+ return HttpResult.ok("添加奖品成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpResult deleteActivity(String id) {
|
|
|
+ SysActivity sysActivity = sysActivityService.getById(id);
|
|
|
+ if (Objects.isNull(sysActivity)) {
|
|
|
+ throw new RuntimeException("活动不存在");
|
|
|
+ }
|
|
|
+ sysActivity.setIsDelete("1");
|
|
|
+ sysActivityService.updateById(sysActivity);
|
|
|
+ return HttpResult.ok("删除活动成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpResult getActivity(SysActivityVo sysActivityVo) {
|
|
|
+ SysActivity sysActivity = sysActivityService.getById(sysActivityVo.getId());
|
|
|
+ if (Objects.isNull(sysActivity)) {
|
|
|
+ throw new RuntimeException("活动不存在");
|
|
|
+ }
|
|
|
+ List<SysActivityAward> awardList = sysActivityAwardMapper.selectList
|
|
|
+ (new LambdaQueryWrapper<SysActivityAward>().eq(SysActivityAward::getActivityId, sysActivityVo.getId()));
|
|
|
+ for (SysActivityAward award : awardList) { // 奖品图片
|
|
|
+ SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectById(award.getAwardImg());
|
|
|
+ if (!Objects.isNull(sysUploadFiles)) {
|
|
|
+ award.setImageUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysActivity.setAwardList(awardList);
|
|
|
+
|
|
|
+ return HttpResult.ok(sysActivity);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<SysActivity> getActivityList(Page page,SysActivityVo sysActivityVo) {
|
|
|
+ return baseMapper.getSysActivityList(page,sysActivityVo);
|
|
|
+ }
|
|
|
+}
|