From 4e502853119c6d8e7ff686191e19bb0a19a4f875 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 04 六月 2025 16:35:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 framework/src/main/java/cn/lili/modules/lmk/service/impl/MyActivityServiceImpl.java |  112 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 92 insertions(+), 20 deletions(-)

diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/MyActivityServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/MyActivityServiceImpl.java
index 8193824..ca098d0 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/MyActivityServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/MyActivityServiceImpl.java
@@ -1,18 +1,26 @@
 package cn.lili.modules.lmk.service.impl;
 
 import cn.lili.base.Result;
+import cn.lili.common.security.context.UserContext;
+import cn.lili.common.utils.StringUtils;
 import cn.lili.modules.lmk.domain.entity.Activity;
+import cn.lili.modules.lmk.domain.entity.ActivityReport;
+import cn.lili.modules.lmk.domain.form.ActivityReportForm;
 import cn.lili.modules.lmk.domain.query.ActivityReportQuery;
 import cn.lili.modules.lmk.domain.query.MyActivityQuery;
 import cn.lili.modules.lmk.domain.vo.ActivityReportVO;
 import cn.lili.modules.lmk.domain.vo.ActivityVO;
 import cn.lili.modules.lmk.domain.vo.MyActivityVo;
 import cn.lili.modules.lmk.mapper.ActivityMapper;
-import cn.lili.modules.lmk.service.LmkFileService;
+import cn.lili.modules.lmk.mapper.ActivityReportMapper;
 import cn.lili.modules.lmk.service.MyActivityService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xkzhangsan.time.utils.StringUtil;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
 
 import java.util.Date;
 import java.util.List;
@@ -21,44 +29,108 @@
 @RequiredArgsConstructor
 public class MyActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> implements MyActivityService {
     private final ActivityMapper activityMapper;
-    private final LmkFileService lmkFileService;
+
+    private final ActivityReportMapper activityReportMapper;
+
 
     @Override
     public Result getMyActivityList(MyActivityQuery query) {
-        List<MyActivityVo>  myActivityList = activityMapper.getMyActivityList(query);
+        String userId = UserContext.getCurrentUserId();
+        List<MyActivityVo>  myActivityList = activityMapper.getMyActivityList(query,userId);
 
-        for (MyActivityVo vo : myActivityList) {
-            System.out.println(vo);
-            if (!"鏂囧瓧".equals(vo.getCoverType())){
-//                String url = lmkFileService.getPreviewUrl(vo.getCover());
-//                vo.setUrl(url);
-            }
-        }
         return Result.ok().data(myActivityList);
     }
 
     @Override
-    public Result cancelActivity(ActivityReportQuery query) {
+    public Result activityCancel(String activityId) {
        //  TODO  鍒ゆ柇鏄惁鍦ㄦ姤鍚嶆椂闂村唴 鍦ㄧ殑璇濆彲浠ュ彇娑堟姤鍚嶏紝 锛堣嫢鏈夋姤鍚嶈垂闇�瑕侀��娆撅級
-        ActivityReportVO vo = activityMapper.getActivityReport(query);
+        //鑾峰緱涓棿琛ㄤ俊鎭�
+        ActivityReportVO vo = userReport(activityId);
 
-        Activity activity = activityMapper.selectById(vo.getActivityId());
+        Activity activity = activityMapper.selectById(activityId);
 
         Date date = new Date();
         if(!date.before(activity.getReportStartTime()) && !date.after(activity.getReportEndTime())){
-            int affectedRows = activityMapper.cancelActivity(vo.getId());
 
-            if (affectedRows > 0) {
+            boolean rowsAffected = new LambdaUpdateChainWrapper<ActivityReport>(activityReportMapper)
+                    .eq(ActivityReport::getId, vo.getId())      // WHERE id = ?
+                    .set(ActivityReport::getCancel, true)        // SET cancel = true
+                    .update();                                   // 鎵ц鏇存柊
+
+
+            if (rowsAffected) {
                 return Result.ok("娲诲姩鍙栨秷鎴愬姛");
             } else {
                 // 鍙�夛細璁板綍璀﹀憡鏃ュ織
-                throw new RuntimeException("娲诲姩涓嶅瓨鍦ㄦ垨宸插彇娑�");
+                return Result.error("娲诲姩涓嶅瓨鍦ㄦ垨宸插彇娑�");
             }
         }else {
-            throw new RuntimeException("娲诲姩宸蹭笉鍦ㄦ姤鍚嶆椂闂村唴鏃犳硶鍙栨秷");
+            return Result.error("娲诲姩宸蹭笉鍦ㄦ姤鍚嶆椂闂村唴鏃犳硶鍙栨秷");
         }
-
-
-
     }
+
+    @Override
+    public Result activityReport(ActivityReportForm reportActivityForm) {
+        //鍒ゆ柇鐢ㄦ埛鏄惁宸茬粡鎶ュ悕璇ユ椿鍔�
+        ActivityReportVO reportVO = userReport(reportActivityForm.getActivityId());
+        if (reportVO != null) {
+            //鍒ゆ柇鏄惁宸插彇娑堣繃璇ユ椿鍔�
+            if (reportVO.getCancel()){
+                //閲嶆柊鎶ュ悕
+
+                ActivityReport entity = ActivityReportForm.getEntityByForm(reportActivityForm, null);
+                entity.setId(reportVO.getId());
+                entity.setUserId(UserContext.getCurrentUserId());
+                entity.setCancel(false);
+                activityReportMapper.updateById(entity);
+                return Result.ok("鎴愬姛");
+            }else {
+                return Result.error("璇ユ椿鍔ㄥ凡鎶ュ悕");
+            }
+
+
+        }
+        ActivityReport entity = ActivityReportForm.getEntityByForm(reportActivityForm, null);
+        entity.setUserId(UserContext.getCurrentUserId());
+        activityReportMapper.insert(entity);
+        return Result.ok("鎴愬姛");
+    }
+
+    /**
+     * 鑾峰緱涓棿琛ㄤ俊鎭�氳繃activityId锛寀serId
+     * @param activityId 娲诲姩id
+     * @return
+     */
+    @Override
+    public ActivityReportVO userReport(String activityId){
+
+        if (UserContext.getCurrentUserId() == null || UserContext.getCurrentUserId().isEmpty()){
+            throw new RuntimeException("鐢ㄦ埛鐧诲綍鐘舵�佸紓甯�");
+        }
+        return activityReportMapper.getActivityReport(activityId,UserContext.getCurrentUserId());
+    }
+
+    @Override
+    public Result detailByUsr(String activityId) {
+        ActivityVO vo = baseMapper.getById(activityId);
+        Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+
+        ActivityReportVO reportVO = userReport(activityId);
+        //鍒欏綋鍓嶇敤鎴锋湭鎶ュ悕
+        if (reportVO == null){
+            vo.setIsReport(false);
+        }else {
+            //宸插彇娑堝垯鍙互鎶ュ悕
+            if (reportVO.getCancel()){
+                vo.setIsReport(false);
+            }else {
+                vo.setIsReport(true);
+            }
+
+        }
+        return Result.ok().data(vo);
+    }
+
+
+
 }

--
Gitblit v1.8.0