From 3565ef641c4204aaf7d9a2eaf770ca034110f67a Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 20 十一月 2025 09:16:04 +0800
Subject: [PATCH] 名称加*
---
framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java | 198 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 171 insertions(+), 27 deletions(-)
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java
index f2e2db6..2920e96 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java
@@ -1,21 +1,24 @@
package cn.lili.modules.lmk.service.impl;
import cn.lili.base.Result;
+import cn.lili.common.enums.ActivityCoverTypeEnum;
+import cn.lili.common.enums.ActivityStatusEnum;
+import cn.lili.common.security.context.UserContext;
import cn.lili.modules.lmk.domain.entity.Activity;
-import cn.lili.modules.lmk.domain.entity.CustomerBlack;
-import cn.lili.modules.lmk.domain.entity.CustomerTagRef;
+import cn.lili.modules.lmk.domain.form.ActivityAuditRecordForm;
import cn.lili.modules.lmk.domain.form.ActivityForm;
-import cn.lili.modules.lmk.domain.form.CustomerTagRefForm;
+import cn.lili.modules.lmk.domain.query.ActivityAuditRecordQuery;
import cn.lili.modules.lmk.domain.query.ActivityMembersQuery;
import cn.lili.modules.lmk.domain.query.ActivityQuery;
+import cn.lili.modules.lmk.domain.vo.ActivityAuditRecordVO;
import cn.lili.modules.lmk.domain.vo.ActivityVO;
-import cn.lili.modules.lmk.domain.vo.CustomerBlackVO;
import cn.lili.modules.lmk.mapper.ActivityMapper;
-import cn.lili.modules.lmk.mapper.CustomerBlackMapper;
+import cn.lili.modules.lmk.service.ActivityAuditRecordService;
+import cn.lili.modules.lmk.service.ActivityReportService;
import cn.lili.modules.lmk.service.ActivityService;
import cn.lili.modules.lmk.service.LmkFileService;
import cn.lili.modules.member.entity.vo.MemberVO;
-import cn.lili.modules.member.service.MemberService;
+import cn.lili.utils.COSUtil;
import cn.lili.utils.PageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -23,39 +26,53 @@
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.web.multipart.MultipartFile;
+import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
+@Transactional
public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> implements ActivityService {
-
- private final ActivityMapper activityMapper;
private final LmkFileService lmkFileService;
+ private final COSUtil cOSUtil;
+
+ private final ActivityAuditRecordService activityAuditRecordService;
+
+ private final ActivityReportService activityReportService;
+
@Override
- public Result add(ActivityForm form) {
+ public Result add(ActivityForm form,Boolean isManager) {
+
Activity entity = ActivityForm.getEntityByForm(form, null);
+
//榛樿鏂板娲诲姩涓�
- entity.setStatus("鏈紑濮�");
+ entity.setStatus(ActivityStatusEnum.NOT_STARTED.getType());
//榛樿涓嶄负鎺ㄨ崘
entity.setRecommend(false);
-
+ //榛樿鏈彂甯�
+ entity.setPublish(false);
+ //璁剧疆鐢宠浜篿d
+ entity.setMemberId(UserContext.getCurrentUserId());
+ entity.setStoreId(UserContext.getCurrentUser().getStoreId());
baseMapper.insert(entity);
+ mangerSaveOrUpdate(isManager,entity);
return Result.ok("娣诲姞鎴愬姛");
}
@Override
- public Result update(ActivityForm form) {
+ public Result update(ActivityForm form,Boolean isManager) {
Activity entity = baseMapper.selectById(form.getId());
//鍒ゆ柇淇敼鍓嶇殑灏侀潰绫诲瀷鏄惁涓烘枃鏈紝鏂囨湰涓嶉渶瑕佸垹闄ゆ枃浠�
- if (!"鏂囧瓧".equals(entity.getCoverType())){
+ if (!ActivityCoverTypeEnum.TEXT.getType().equals(entity.getCoverType())){
//鍒ゆ柇璺緞鏄惁鏀瑰彉
if (!form.getCover().equals(entity.getCover())) {
//鍒犻櫎浜戞湇鍔″櫒涓棫鐨勫浘鐗�
@@ -67,25 +84,87 @@
Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
BeanUtils.copyProperties(form, entity);
+ mangerSaveOrUpdate(isManager,entity);
baseMapper.updateById(entity);
+
return Result.ok("淇敼鎴愬姛");
}
-
+ //鍒ゆ柇璇锋眰鏉ユ簮鏄钩鍙扮杩樻槸灏忕▼搴忕
+ public void mangerSaveOrUpdate(Boolean isManager,Activity entity){
+ ActivityAuditRecordForm activityAuditRecordForm;
+ //娣诲姞瀹℃牳璁板綍
+ if (isManager){
+ //鐩存帴閫氳繃
+ activityAuditRecordForm = ActivityAuditRecordForm.getFormByManager(entity.getId());
+ }else {
+ activityAuditRecordForm = ActivityAuditRecordForm.getFormByBuyer(entity.getId());
+ }
+ activityAuditRecordService.addOrUpdateAuditActivity(activityAuditRecordForm);
+ }
@Override
public Result remove(List<String> ids) {
- baseMapper.deleteBatchIds(ids);
+ //鍒ゆ柇娲诲姩id鏄惁宸茬粡瀛樺湪鎶ュ悕浜哄憳
+ for(String id : ids){
+ Result result = canDeleteActivity(id);
+ Integer code = (Integer) result.get("code");
+ if (code != 200){
+ return result;
+ }
+ }
+
return Result.ok("鍒犻櫎鎴愬姛");
}
+ /**
+ * 鍒ゆ柇鏄惁鑳藉垹闄ゆ椿鍔� 骞跺垹闄ゆ椿鍔ㄧ浉鍏充俊鎭�
+ * @param id
+ * @return
+ */
+ public Result canDeleteActivity(String id){
+ Activity activity = baseMapper.selectById(id);
+
+ //娲诲姩鏄惁鍙戝竷
+ if (activity.getPublish()){
+ return Result.error("瀛樺湪娲诲姩宸插彂甯冨垹闄ゅ墠璇蜂笅鏋惰娲诲姩锛�");
+ }
+ //妫�鏌ユ姤鍚嶄汉鍛樺墠鍒ゆ柇娲诲姩鏄惁缁撴潫浜� 缁撴潫浜嗗氨鍏佽鍒犻櫎
+ Date currentDate = new Date();
+ if (currentDate.before(activity.getEndTime())){
+ //娲诲姩鏈粨鏉� 涓旀姤鍚嶄汉鍛樼殑鎯呭喌
+ if(haveApplicationMembers(activity.getId())){
+ //todo 鎶ュ悕浜哄憳瀛樺湪 浣嗘槸闇�瑕佸垹闄ょ殑鎯呭喌棰勭暀
+// return Result.error("娲诲姩鏈粨鏉熶笖宸叉湁鎶ュ悕浜哄憳锛屾棤娉曞垹闄わ紒");
+ }
+
+ }
+ delActivityAndInformation(activity);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+ //鍒ゆ柇娲诲姩鏄惁瀛樺湪鎶ュ悕浜哄憳
+ public Boolean haveApplicationMembers(String id){
+ ActivityMembersQuery activityMembersQuery = new ActivityMembersQuery();
+ activityMembersQuery.setId(id);
+ return (long) activityMembersPage(activityMembersQuery).get("total") > 0;
+ }
+ //鍒ゆ柇浜掑姩鏄惁鍙戝竷
+
+ //鍒犻櫎娲诲姩鍚屾椂鍒犻櫎娲诲姩鐨勭浉鍏充俊鎭�
+ public void delActivityAndInformation(Activity activity){
+// if (StringUtils.isNotEmpty(activity.getCover())){
+// lmkFileService.deleteObject(activity.getCover());
+// }
+ baseMapper.deleteById(activity.getId());
+ //鍒犻櫎瀹℃牳璁板綍
+ activityAuditRecordService.delActivityAuditById(activity.getId());
+ //鍒犻櫎娲诲姩鎶ュ悕浜哄憳
+ activityReportService.delByActivityId(activity.getId());
+ }
+
+
@Override
public Result removeById(String id) {
- //鍒犻櫎锛屽悓鏃跺垽鏂瀵硅薄鐨勫皝闈㈡槸鍚﹀瓨鍦� 锛屽瓨鍦ㄥ垯鍦ㄤ簯鏈嶅姟鍣ㄥ垹闄�
- ActivityVO vo = baseMapper.getById(id);
- if (StringUtils.isNotEmpty(vo.getCover())){
- lmkFileService.deleteObject(vo.getCover());
- }
- baseMapper.deleteById(id);
- return Result.ok("鍒犻櫎鎴愬姛");
+ //鍏堝垽鏂椿鍔ㄦ槸鍚︽湁鎶ュ悕浜哄憳
+ return canDeleteActivity(id);
}
@Override
@@ -94,11 +173,33 @@
baseMapper.getPage(page, query);
for (ActivityVO vo : page.getRecords()) {
- if (!"鏂囧瓧".equals(vo.getCoverType())){
- String url = lmkFileService.getPreviewUrl(vo.getCover());
- vo.setUrl(url);
+ if (!ActivityCoverTypeEnum.TEXT.getType().equals(vo.getCoverType())){
+ vo.setUrl(cOSUtil.getPreviewUrl(vo.getCover()));
}
}
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ @Override
+ public Result getMyApplyActivityPage(ActivityQuery query){
+
+ //浼犲叆褰撳墠璇锋眰鐢ㄦ埛鐨刬d
+ String storeId = UserContext.getCurrentUser().getStoreId();
+ if (storeId == null){
+ query.setMemberId(UserContext.getCurrentUserId());
+ }else {
+ query.setStoreId(storeId);
+ }
+
+ //鏇村叿鐢ㄦ埛id鑾峰緱娲诲姩
+ IPage<ActivityVO> page = PageUtil.getPage(query, ActivityVO.class);
+ baseMapper.storeGetPage(page, query);
+ for (ActivityVO vo : page.getRecords()) {
+ if (!ActivityCoverTypeEnum.TEXT.getType().equals(vo.getCoverType())){
+ vo.setUrl(cOSUtil.getPreviewUrl(vo.getCover()));
+ }
+ }
+
return Result.ok().data(page.getRecords()).total(page.getTotal());
}
@@ -108,14 +209,29 @@
Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
return Result.ok().data(vo);
}
+ @Override
+ public Result getCanReportPage(ActivityQuery query){
+ //鏌ヨ鍒扮殑缁撴灉宸茬粡瀹℃牳涓斿彂甯�
+ IPage<ActivityVO> page = PageUtil.getPage(query, ActivityVO.class);
+ //宸插彂甯冪殑娲诲姩
+ baseMapper.getCanReportPage(page, query);
+
+ for(ActivityVO activityVO : page.getRecords()){
+ activityVO.setUrl(cOSUtil.getPreviewUrl(activityVO.getCover()));
+ }
+
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
@Override
public Result all() {
+
List<Activity> entities = baseMapper.selectList(null);
List<ActivityVO> vos = entities.stream()
.map(entity -> ActivityVO.getVoByEntity(entity, null))
.collect(Collectors.toList());
- return Result.ok().data(vos);
+ List<ActivityVO> reportActivityVo =vos.stream().filter(item -> ActivityStatusEnum.REPORT.getType().equals(item.getStatus())).collect(Collectors.toList());
+ return Result.ok().data(reportActivityVo);
}
@Override
@@ -135,8 +251,34 @@
@Override
public Result activityChangeStatus(ActivityForm form) {
+ //鍒ゆ柇娲诲姩
Activity entity = baseMapper.selectById(form.getId());
- entity.setStatus(form.getStatus());
+
+ entity.setPublish(form.getPublish());
+
+ if (!form.getPublish()){
+ //涓嬫灦鍒ゆ柇鏄惁鏈変汉鍛樻姤鍚嶏紝鏈夋姤鍚嶄笖娲诲姩鏈粨鏉熺殑璇濈姝㈡彁閱掓棤娉曚笅鏋�
+ ActivityMembersQuery activityMembersQuery = new ActivityMembersQuery();
+ activityMembersQuery.setId(form.getId());
+ Date currentTime = new Date();
+
+ if (currentTime.before(entity.getEndTime())){
+ if(haveApplicationMembers(form.getId())){
+// return Result.error("璇ユ椿鍔ㄦ棤娉曚笅鏋讹紝宸插瓨鍦ㄦ姤鍚嶄汉鍛�");
+ //todo 鎶ュ悕浜哄憳瀛樺湪 浣嗘槸闇�瑕佷笅鏋剁殑鎯呭喌棰勭暀
+
+ }
+
+
+ }
+
+ }else {
+ //鍒ゆ柇璇ユ椿鍔ㄦ槸鍚﹀鏍搁�氳繃
+ if(!activityAuditRecordService.getActivityActivityIsAudit(form.getId())){
+ return Result.error("娲诲姩鏈�氳繃瀹℃牳");
+
+ }
+ }
baseMapper.updateById(entity);
return Result.ok();
}
@@ -155,4 +297,6 @@
baseMapper.getMembers(page, query);
return Result.ok().data(page.getRecords()).total(page.getTotal());
}
+
+
}
--
Gitblit v1.8.0