From 7c038921c9242db70ea751ac45f6cdc6c35e4a2e Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期二, 15 七月 2025 14:59:07 +0800 Subject: [PATCH] 商家端活动申请 --- framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java | 182 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 158 insertions(+), 24 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 c63218f..2557297 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,18 +1,23 @@ 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.ActivityService; import cn.lili.modules.lmk.service.LmkFileService; +import cn.lili.modules.member.entity.vo.MemberVO; +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; @@ -30,28 +35,38 @@ @RequiredArgsConstructor 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; + + @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())) { //鍒犻櫎浜戞湇鍔″櫒涓棫鐨勫浘鐗� @@ -63,24 +78,76 @@ 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){ + if (isPublishActivity(id)){ + return Result.error("瀛樺湪娲诲姩宸插彂甯冨垹闄ゅ墠璇蜂笅鏋惰娲诲姩锛�"); + } + if(haveApplicationMembers(id)){ + return Result.error("瀛樺湪娲诲姩宸叉湁鎶ュ悕浜哄憳锛屾棤娉曞垹闄わ紒"); + } + + } + //鏈粡杩噐eturn鍒欏垹闄� + for (String id : ids){ + delActivityAndInformation(id); + } + return Result.ok("鍒犻櫎鎴愬姛"); } + //鍒ゆ柇娲诲姩鏄惁瀛樺湪鎶ュ悕浜哄憳 + public Boolean haveApplicationMembers(String id){ + ActivityMembersQuery activityMembersQuery = new ActivityMembersQuery(); + activityMembersQuery.setId(id); + return (long) activityMembersPage(activityMembersQuery).get("total") > 0; + } + //鍒ゆ柇浜掑姩鏄惁鍙戝竷 + public Boolean isPublishActivity(String id){ + Activity activity = baseMapper.selectById(id); + return activity.getPublish(); + } - @Override - public Result removeById(String id) { - //鍒犻櫎锛屽悓鏃跺垽鏂瀵硅薄鐨勫皝闈㈡槸鍚﹀瓨鍦� 锛屽瓨鍦ㄥ垯鍦ㄤ簯鏈嶅姟鍣ㄥ垹闄� + //鍒犻櫎娲诲姩鍚屾椂鍒犻櫎娲诲姩鐨勭浉鍏充俊鎭� + public void delActivityAndInformation(String id){ ActivityVO vo = baseMapper.getById(id); if (StringUtils.isNotEmpty(vo.getCover())){ lmkFileService.deleteObject(vo.getCover()); } baseMapper.deleteById(id); + //鍒犻櫎瀹℃牳璁板綍 + activityAuditRecordService.delActivityAuditById(id); + } + @Override + public Result removeById(String id) { + //鍏堝垽鏂椿鍔ㄦ槸鍚︽湁鎶ュ悕浜哄憳 + if (isPublishActivity(id)){ + return Result.error("璇ユ椿鍔ㄥ凡鍙戝竷鍒犻櫎鍓嶈涓嬫灦璇ユ椿鍔紒"); + } + + if(haveApplicationMembers(id)){ + return Result.error("璇ユ椿鍔ㄥ凡鏈夋姤鍚嶄汉鍛橈紝鏃犳硶鍒犻櫎锛�"); + } + //鍒犻櫎锛屽悓鏃跺垽鏂瀵硅薄鐨勫皝闈㈡槸鍚﹀瓨鍦� 锛屽瓨鍦ㄥ垯鍦ㄤ簯鏈嶅姟鍣ㄥ垹闄� + delActivityAndInformation(id); return Result.ok("鍒犻櫎鎴愬姛"); } @@ -90,11 +157,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()); } @@ -104,14 +193,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 @@ -132,9 +236,30 @@ @Override public Result activityChangeStatus(ActivityForm form) { Activity entity = baseMapper.selectById(form.getId()); - entity.setStatus(form.getStatus()); - baseMapper.updateById(entity); - return Result.ok(); + entity.setPublish(form.getPublish()); + if (!form.getPublish()){ + //涓嬫灦鍒ゆ柇鏄惁鏈変汉鍛樻姤鍚嶏紝鏈夋姤鍚嶇殑璇濈姝㈡彁閱掓棤娉曚笅鏋� + ActivityMembersQuery activityMembersQuery = new ActivityMembersQuery(); + activityMembersQuery.setId(form.getId()); + if((long)activityMembersPage(activityMembersQuery).get("total") > 0){ + return Result.error("璇ユ椿鍔ㄦ棤娉曚笅鏋讹紝宸插瓨鍦ㄦ姤鍚嶄汉鍛�"); + } + return Result.ok(); + }else { + //鍒ゆ柇璇ユ椿鍔ㄦ槸鍚﹀鏍搁�氳繃 + if(activityAuditRecordService.getActivityActivityIsAudit(form.getId())){ + baseMapper.updateById(entity); + return Result.ok(); + }else { + return Result.error("娲诲姩鏈�氳繃瀹℃牳"); + } + + + + } + + + } @Override @@ -144,4 +269,13 @@ baseMapper.updateById(entity); return Result.ok(); } + + @Override + public Result activityMembersPage(ActivityMembersQuery query) { + IPage<MemberVO> page = PageUtil.getPage(query, MemberVO.class); + baseMapper.getMembers(page, query); + return Result.ok().data(page.getRecords()).total(page.getTotal()); + } + + } -- Gitblit v1.8.0