From 7c038921c9242db70ea751ac45f6cdc6c35e4a2e Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 15 七月 2025 14:59:07 +0800
Subject: [PATCH] 商家端活动申请
---
manager-api/src/main/java/cn/lili/controller/lmk/NewsController.java | 3
framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java | 5 +
framework/src/main/java/cn/lili/modules/lmk/domain/form/ActivityAuditRecordForm.java | 4
framework/src/main/java/cn/lili/modules/lmk/domain/query/ActivityQuery.java | 5 +
framework/src/main/java/cn/lili/utils/HtmlUtil.java | 23 +++++
seller-api/src/main/java/cn/lili/controller/activity/StoreActivityController.java | 66 ++++++++++++++++
framework/src/main/java/cn/lili/modules/lmk/domain/entity/Activity.java | 3
framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java | 36 +++++++--
framework/src/main/java/cn/lili/modules/lmk/service/impl/NewsServiceImpl.java | 16 +++-
manager-api/src/main/java/cn/lili/controller/lmk/ActivityController.java | 15 ---
framework/src/main/resources/mapper/lmk/ActivityMapper.xml | 59 ++++++++++++++
11 files changed, 208 insertions(+), 27 deletions(-)
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/Activity.java b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/Activity.java
index 4162815..ac452a3 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/Activity.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/Activity.java
@@ -75,4 +75,7 @@
@TableField("member_id")
private String memberId;
+ @TableField("store_id")
+ private String storeId;
+
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/ActivityAuditRecordForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/ActivityAuditRecordForm.java
index cbcb35a..8f6e870 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/form/ActivityAuditRecordForm.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/ActivityAuditRecordForm.java
@@ -49,14 +49,14 @@
return entity;
}
- public static ActivityAuditRecordForm getEntityByManagerBuildForm(@NotNull String activityId) {
+ public static ActivityAuditRecordForm getFormByManager(@NotNull String activityId) {
ActivityAuditRecordForm form = new ActivityAuditRecordForm();
form.setActivityId(activityId);
form.setAudit(1);
form.setRemarks(mangerBuild);
return form;
}
- public static ActivityAuditRecordForm getEntityByBuyerBuildForm(@NotNull String activityId) {
+ public static ActivityAuditRecordForm getFormByBuyer(@NotNull String activityId) {
ActivityAuditRecordForm form = new ActivityAuditRecordForm();
form.setActivityId(activityId);
form.setAudit(0);
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/ActivityQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/ActivityQuery.java
index 8509f1d..da07a71 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/query/ActivityQuery.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/ActivityQuery.java
@@ -48,5 +48,10 @@
*/
private String memberId;
+ /**
+ * 鐢宠浜掑姩鐨勫簵閾篿d
+ */
+ private String storeId;
+
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java
index 977a69e..c895d2e 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/ActivityMapper.java
@@ -35,7 +35,10 @@
*/
IPage getPage(IPage page, @Param("query") ActivityQuery query);
-
+ /**
+ * 鍟嗗绔鍒嗛〉
+ */
+ IPage storeGetPage(IPage page, @Param("query") ActivityQuery query);
IPage getMembers(IPage page, @Param("query") ActivityMembersQuery query);
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 b32929a..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
@@ -55,6 +55,7 @@
entity.setPublish(false);
//璁剧疆鐢宠浜篿d
entity.setMemberId(UserContext.getCurrentUserId());
+ entity.setStoreId(UserContext.getCurrentUser().getStoreId());
baseMapper.insert(entity);
mangerSaveOrUpdate(isManager,entity);
return Result.ok("娣诲姞鎴愬姛");
@@ -88,9 +89,9 @@
//娣诲姞瀹℃牳璁板綍
if (isManager){
//鐩存帴閫氳繃
- activityAuditRecordForm = ActivityAuditRecordForm.getEntityByManagerBuildForm(entity.getId());
+ activityAuditRecordForm = ActivityAuditRecordForm.getFormByManager(entity.getId());
}else {
- activityAuditRecordForm = ActivityAuditRecordForm.getEntityByBuyerBuildForm(entity.getId());
+ activityAuditRecordForm = ActivityAuditRecordForm.getFormByBuyer(entity.getId());
}
activityAuditRecordService.addOrUpdateAuditActivity(activityAuditRecordForm);
}
@@ -98,9 +99,13 @@
public Result remove(List<String> ids) {
//鍒ゆ柇娲诲姩id鏄惁宸茬粡瀛樺湪鎶ュ悕浜哄憳
for(String id : ids){
- if(haveApplicationMembers(id)){
- return Result.error("璇ユ椿鍔ㄦ棤娉曞垹闄わ紝宸插瓨鍦ㄦ姤鍚嶄汉鍛�");
+ if (isPublishActivity(id)){
+ return Result.error("瀛樺湪娲诲姩宸插彂甯冨垹闄ゅ墠璇蜂笅鏋惰娲诲姩锛�");
}
+ if(haveApplicationMembers(id)){
+ return Result.error("瀛樺湪娲诲姩宸叉湁鎶ュ悕浜哄憳锛屾棤娉曞垹闄わ紒");
+ }
+
}
//鏈粡杩噐eturn鍒欏垹闄�
for (String id : ids){
@@ -115,6 +120,12 @@
activityMembersQuery.setId(id);
return (long) activityMembersPage(activityMembersQuery).get("total") > 0;
}
+ //鍒ゆ柇浜掑姩鏄惁鍙戝竷
+ public Boolean isPublishActivity(String id){
+ Activity activity = baseMapper.selectById(id);
+ return activity.getPublish();
+ }
+
//鍒犻櫎娲诲姩鍚屾椂鍒犻櫎娲诲姩鐨勭浉鍏充俊鎭�
public void delActivityAndInformation(String id){
ActivityVO vo = baseMapper.getById(id);
@@ -128,9 +139,12 @@
@Override
public Result removeById(String id) {
//鍏堝垽鏂椿鍔ㄦ槸鍚︽湁鎶ュ悕浜哄憳
+ if (isPublishActivity(id)){
+ return Result.error("璇ユ椿鍔ㄥ凡鍙戝竷鍒犻櫎鍓嶈涓嬫灦璇ユ椿鍔紒");
+ }
if(haveApplicationMembers(id)){
- return Result.error("璇ユ椿鍔ㄦ棤娉曞垹闄わ紝宸插瓨鍦ㄦ姤鍚嶄汉鍛�");
+ return Result.error("璇ユ椿鍔ㄥ凡鏈夋姤鍚嶄汉鍛橈紝鏃犳硶鍒犻櫎锛�");
}
//鍒犻櫎锛屽悓鏃跺垽鏂瀵硅薄鐨勫皝闈㈡槸鍚﹀瓨鍦� 锛屽瓨鍦ㄥ垯鍦ㄤ簯鏈嶅姟鍣ㄥ垹闄�
delActivityAndInformation(id);
@@ -152,18 +166,24 @@
@Override
public Result getMyApplyActivityPage(ActivityQuery query){
- System.out.println(query);
//浼犲叆褰撳墠璇锋眰鐢ㄦ埛鐨刬d
- query.setMemberId(UserContext.getCurrentUserId());
+ 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.getPage(page, query);
+ 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());
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/NewsServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/NewsServiceImpl.java
index 92011fc..9088686 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/NewsServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/NewsServiceImpl.java
@@ -59,16 +59,24 @@
@Override
public Result remove(List<String> ids) {
+ for (String id : ids) {
+ if (isPublishNews(id)){
+ return Result.error("瀛樺湪鏂伴椈宸插彂甯冨垹闄ゅ墠璇蜂笅鏋惰鏂伴椈锛�");
+ }
+ }
+
baseMapper.deleteBatchIds(ids);
return Result.ok("鍒犻櫎鎴愬姛");
}
-
+ public Boolean isPublishNews(String id){
+ News entity = baseMapper.selectById(id);
+ return entity.getPublish();
+ }
@Override
public Result removeById(String id) {
//鍒ゆ柇鏄惁鍙戝竷鍙戝竷鍒欐彁绀哄厛涓嬫灦锛屽啀鍒犻櫎
- News entity = baseMapper.selectById(id);
- if(entity.getPublish()){
- throw new RuntimeException("璇ユ柊闂诲凡鍙戝竷");
+ if(isPublishNews(id)){
+ return Result.error("璇ユ柊闂诲凡鍙戝竷鍒犻櫎鍓嶈涓嬫灦璇ユ柊闂伙紒");
}
baseMapper.deleteById(id);
diff --git a/framework/src/main/java/cn/lili/utils/HtmlUtil.java b/framework/src/main/java/cn/lili/utils/HtmlUtil.java
new file mode 100644
index 0000000..52e3326
--- /dev/null
+++ b/framework/src/main/java/cn/lili/utils/HtmlUtil.java
@@ -0,0 +1,23 @@
+package cn.lili.utils;
+
+
+/**
+ * lmk-shop-java
+ * 鏂板html澶勭悊
+ *
+ * @author : zxl
+ * @date : 2025-07-14 14:10
+ **/
+public class HtmlUtil {
+ public static String addVideoControls(String html) {
+ if (html == null || html.isEmpty()) {
+ return html;
+ }
+
+ // 鍖归厤鎵�鏈夋湭鍖呭惈 controls 灞炴�х殑 <video> 鏍囩
+ String regex = "<video\\b(?![^>]*\\bcontrols\\b)([^>]*)>";
+ String replacement = "<video controls=\"controls\"$1>";
+
+ return html.replaceAll(regex, replacement);
+ }
+}
diff --git a/framework/src/main/resources/mapper/lmk/ActivityMapper.xml b/framework/src/main/resources/mapper/lmk/ActivityMapper.xml
index 9382128..e651bc2 100644
--- a/framework/src/main/resources/mapper/lmk/ActivityMapper.xml
+++ b/framework/src/main/resources/mapper/lmk/ActivityMapper.xml
@@ -165,9 +165,68 @@
<if test="query.audit == true" >AND LAAR.audit != 0</if>
<if test="query.audit == false" >AND LAAR.audit = 0</if>
<if test="query.memberId !=null and query.memberId !=''">And LA.member_id = #{query.memberId}</if>
+ <if test="query.storeId !=null and query.storeId !=''">And LA.store_id = #{query.storeId}</if>
Order by LA.create_time DESC
</select>
+ <select id="storeGetPage" resultMap="BaseResultMap">
+ SELECT
+ LA.id,
+ LA.activity_name,
+ LA.activity_type,
+ LA.report_start_time,
+ LA.report_end_time,
+ LA.start_time,
+ LA.end_time,
+ LA.status,
+ LA.recommend,
+ LA.cover,
+ LA.cover_type,
+ LA.limit_user_num,
+ LA.activity_location,
+ LA.activity_content,
+ LA.publish,
+ LAAR.audit as auditStatus
+ FROM
+ lmk_activity LA
+ LEFT JOIN
+ (
+ SELECT
+ activity_id,
+ audit,
+ create_time
+ FROM (
+ SELECT
+ activity_id,
+ audit,
+ create_time,
+ ROW_NUMBER() OVER (PARTITION BY activity_id ORDER BY create_time DESC) AS rn
+ FROM
+ lmk_activity_audit_record
+ WHERE
+ delete_flag = 0
+ ) t
+ WHERE
+ rn = 1
+ ) LAAR ON LA.id = LAAR.activity_id
+ WHERE
+ LA.delete_flag = 0
+ <if test="query.activityName != null and query.activityName != ''">AND LA.activity_name LIKE CONCAT('%', #{query.activityName}, '%')</if>
+ <if test="query.activityType != null and query.activityType != ''">AND LA.activity_type LIKE CONCAT('%', #{query.activityType}, '%')</if>
+ <if test="query.recommend != null and query.recommend != ''">AND LA.recommend = #{recommend}</if>
+ <if test="query.reportStartTime != null">AND LA.report_start_time >= #{query.reportStartTime}</if>
+ <if test="query.reportEndTime != null">AND LA.report_end_time <= #{query.reportEndTime}</if>
+ <if test="query.memberId != null and query.memberId !=''">AND LA.member_id <= #{query.memberId}</if>
+ <if test="query.audit == true" >AND LAAR.audit != 0</if>
+ <if test="query.audit == false" >AND LAAR.audit = 0</if>
+ <if test="query.memberId !=null and query.memberId !=''">And LA.member_id = #{query.memberId}</if>
+ <if test="query.storeId !=null and query.storeId !=''">And LA.store_id = #{query.storeId}</if>
+ Order by LA.create_time DESC
+ </select>
+
+
+
+
<select id="getCanReportPage" resultMap="BaseResultMap">
SELECT
LA.id,
diff --git a/manager-api/src/main/java/cn/lili/controller/lmk/ActivityController.java b/manager-api/src/main/java/cn/lili/controller/lmk/ActivityController.java
index 8ae3b7c..553f65e 100644
--- a/manager-api/src/main/java/cn/lili/controller/lmk/ActivityController.java
+++ b/manager-api/src/main/java/cn/lili/controller/lmk/ActivityController.java
@@ -12,6 +12,7 @@
import cn.lili.modules.lmk.service.ActivityAuditRecordService;
import cn.lili.modules.lmk.service.ActivityService;
import cn.lili.modules.lmk.service.CustomerBlackService;
+import cn.lili.utils.HtmlUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@@ -47,25 +48,15 @@
@PostMapping
@ApiOperation(value = "娣诲姞", notes = "娣诲姞")
public Result add(@RequestBody ActivityForm form) {
- form.setActivityContent(addVideoControls(form.getActivityContent()));
+ form.setActivityContent(HtmlUtil.addVideoControls(form.getActivityContent()));
return activityService.add(form,true);
}
- public static String addVideoControls(String html) {
- if (html == null || html.isEmpty()) {
- return html;
- }
- // 鍖归厤鎵�鏈夋湭鍖呭惈 controls 灞炴�х殑 <video> 鏍囩
- String regex = "<video\\b(?![^>]*\\bcontrols\\b)([^>]*)>";
- String replacement = "<video controls=\"controls\"$1>";
-
- return html.replaceAll(regex, replacement);
- }
@PutMapping
@ApiOperation(value = "淇敼", notes = "淇敼")
public Result update(@RequestBody ActivityForm form) {
- form.setActivityContent(addVideoControls(form.getActivityContent()));
+ form.setActivityContent(HtmlUtil.addVideoControls(form.getActivityContent()));
return activityService.update(form,true);
}
diff --git a/manager-api/src/main/java/cn/lili/controller/lmk/NewsController.java b/manager-api/src/main/java/cn/lili/controller/lmk/NewsController.java
index 703546c..2cc7463 100644
--- a/manager-api/src/main/java/cn/lili/controller/lmk/NewsController.java
+++ b/manager-api/src/main/java/cn/lili/controller/lmk/NewsController.java
@@ -9,6 +9,7 @@
import cn.lili.modules.lmk.domain.query.ActivityQuery;
import cn.lili.modules.lmk.domain.query.NewsQuery;
import cn.lili.modules.lmk.service.NewsService;
+import cn.lili.utils.HtmlUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@@ -36,12 +37,14 @@
@PostMapping
@ApiOperation(value = "娣诲姞", notes = "娣诲姞")
public Result add(@RequestBody @Validated(Add.class) NewsForm form) {
+ form.setContent(HtmlUtil.addVideoControls(form.getContent()));
return newsService.add(form);
}
@PutMapping
@ApiOperation(value = "淇敼", notes = "淇敼")
public Result update(@RequestBody @Validated(Update.class) NewsForm form) {
+ form.setContent(HtmlUtil.addVideoControls(form.getContent()));
return newsService.update(form);
}
diff --git a/seller-api/src/main/java/cn/lili/controller/activity/StoreActivityController.java b/seller-api/src/main/java/cn/lili/controller/activity/StoreActivityController.java
new file mode 100644
index 0000000..ab0bd17
--- /dev/null
+++ b/seller-api/src/main/java/cn/lili/controller/activity/StoreActivityController.java
@@ -0,0 +1,66 @@
+package cn.lili.controller.activity;
+
+
+import cn.lili.base.Result;
+import cn.lili.modules.lmk.domain.form.ActivityForm;
+import cn.lili.modules.lmk.domain.query.ActivityQuery;
+import cn.lili.modules.lmk.service.ActivityService;
+import cn.lili.utils.HtmlUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * lmk-shop-java
+ * 鍟嗘埛绔椿鍔ㄦ帴鍙�
+ *
+ * @author : zxl
+ * @date : 2025-07-14 17:27
+ **/
+@Validated
+@RequiredArgsConstructor
+@Api(value = "鎴戠殑娲诲姩", tags = "鎴戠殑娲诲姩绠$悊")
+@RestController
+@RequestMapping("/store/lmk/activity")
+public class StoreActivityController {
+
+ private final ActivityService activityService;
+
+ @PostMapping("/add")
+ @ApiOperation(value = "鍟嗘埛绔柊澧炴椿鍔�", notes = "鍟嗘埛绔柊澧炴椿鍔�")
+ public Result addActivityByBuyer(@RequestBody ActivityForm form){
+ return activityService.add(form,false);
+ }
+
+ @GetMapping("/applyActivityPage")
+ @ApiOperation(value = "鐢ㄦ埛鐢宠娲诲姩鍒嗛〉", notes = "鐢ㄦ埛鐢宠娲诲姩鍒嗛〉")
+ public Result getMyApplyActivityPage(ActivityQuery query){
+ return activityService.getMyApplyActivityPage(query);
+ }
+
+ @PutMapping
+ @ApiOperation(value = "淇敼", notes = "淇敼")
+ public Result update(@RequestBody ActivityForm form) {
+ form.setActivityContent(HtmlUtil.addVideoControls(form.getActivityContent()));
+ return activityService.update(form,false);
+ }
+
+ @DeleteMapping("/{id}")
+ @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+ public Result removeById(@PathVariable("id") String id) {
+ return activityService.removeById(id);
+ }
+
+ @DeleteMapping("/batch")
+ @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+ public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+ return activityService.remove(ids);
+ }
+
+
+}
--
Gitblit v1.8.0