Procházet zdrojové kódy

标签组新增;群发任务分类功能

zoujiajian před 2 roky
rodič
revize
9492ccdb84

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpMsgBulkTaskCategoryMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.corp;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.CorpMsgBulkTaskCategory;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: CorpMsgBulkTaskCategoryMapper
+ * 创建者: JavaZou
+ * 创建时间:2023/12/11 10:21
+ */
+public interface CorpMsgBulkTaskCategoryMapper extends BaseMapper<CorpMsgBulkTaskCategory> {
+}

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CorpMsgBulkTask.java

@@ -33,6 +33,12 @@ public class CorpMsgBulkTask implements Serializable {
 	@TableId(value = "id", type = IdType.AUTO)
 	private Long id;
 
+	/**
+	 * 分类id
+	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
+	private Long category;
+
 	/**
 	 * 企业微信id
 	 */

+ 19 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CorpMsgBulkTaskCategory.java

@@ -0,0 +1,19 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: CorpMsgBulkTaskCategory
+ * 创建者: JavaZou
+ * 创建时间:2023/12/11 10:21
+ */
+@Getter
+@Setter
+public class CorpMsgBulkTaskCategory extends BaseEntity{
+	@NotEmpty(message = "分类名不为空")
+	private String name;
+}

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ChannelPopularizeView.java

@@ -119,6 +119,12 @@ public class ChannelPopularizeView {
     @DbIgnore
     private BigDecimal refundMoney;
 
+    /**
+     * 加粉链接id
+     */
+    @DbIgnore
+    private Long corpCustomerLinkId;
+
     @DbField("cp.created_time")
     private Date createdTime;
 

+ 5 - 0
netflix-service/src/main/java/com/cyksj/service/corp/CorpTagService.java

@@ -42,4 +42,9 @@ public interface CorpTagService {
 	CorpTagHeadDataView getCorpTagHeadDataView();
 
 	void delTags(CorpDelTagReq req) throws Exception;
+
+	/**
+	 * 新增标签组
+	 */
+	CorpTagGroupView addGroup(CorpTagGroupView tagGroup) throws Exception;
 }

+ 17 - 0
netflix-service/src/main/java/com/cyksj/service/corp/impl/CorpTagServiceImpl.java

@@ -389,4 +389,21 @@ public class CorpTagServiceImpl implements CorpTagService {
 			corpTagMapper.delete(Wrappers.lambdaQuery(CorpTag.class).eq(CorpTag::getGroupId, groupId));
 		}
 	}
+
+	@Override
+	public CorpTagGroupView addGroup(CorpTagGroupView tagGroup) throws Exception {
+		CorpUserExternalTagGroupInfo tagGroupInfoReq = new CorpUserExternalTagGroupInfo();
+		if (StrUtil.isAllBlank(tagGroup.getGroupId(), tagGroup.getGroupName())) {
+			throw BusinessRuntimeException.getInstance("请输入标签组名");
+		}
+
+		CorpUserExternalTagGroupInfo.TagGroup group = new CorpUserExternalTagGroupInfo.TagGroup();
+		group.setGroupId(tagGroup.getGroupId());
+		group.setGroupName(tagGroup.getGroupName());
+
+		tagGroupInfoReq.setTagGroup(group);
+		CorpUserExternalTagGroupInfo corpUserExternalTagGroupInfo = wxCorpOps.addCorpTag(tagGroupInfoReq, null);
+		CorpTagGroupView corpTagGroupView = corpTagGroupMapper.getOneCorpGroupTag(tagGroup.getGroupId(), tagGroup.getGroupName());
+		return corpTagGroupView;
+	}
 }

+ 11 - 4
netflix-web/src/main/java/com/cyksj/web/controller/manage/channel/CmsChannelPopularizeController.java

@@ -9,10 +9,8 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.channel.ChannelPopularizeVisitMapper;
-import com.cyksj.model.entity.ChannelPopularize;
-import com.cyksj.model.entity.ChannelPopularizeVisit;
-import com.cyksj.model.entity.OrderDon;
-import com.cyksj.model.entity.User;
+import com.cyksj.mapper.corp.CorpCustomerAcquisitionLinkPopularizeMapper;
+import com.cyksj.model.entity.*;
 import com.cyksj.model.views.ChannelPopularizeDetailView;
 import com.cyksj.model.views.ChannelPopularizeView;
 import com.cyksj.service.mange.channel.ChannelPopularizeService;
@@ -49,6 +47,8 @@ public class CmsChannelPopularizeController {
 
     private final ChannelPopularizeVisitMapper visitMapper;
 
+    private final CorpCustomerAcquisitionLinkPopularizeMapper acquisitionLinkPopularizeMapper;
+
     @GetMapping
     @SaCheckPermission("promotion:view")
     public Result<SearchResult<ChannelPopularizeView>> get(String startTime, String endTime) {
@@ -85,6 +85,13 @@ public class CmsChannelPopularizeController {
                     .ge(StrUtil.isNotEmpty(startTime), ChannelPopularizeVisit::getCreatedTime, startTime)
                     .lt(StrUtil.isNotEmpty(endTime), ChannelPopularizeVisit::getCreatedTime, endTime));
             data.setVisit(visitCount);
+
+            CorpCustomerAcquisitionLinkPopularize acquisitionLinkPopularize = acquisitionLinkPopularizeMapper.selectOne(Wrappers.lambdaQuery(CorpCustomerAcquisitionLinkPopularize.class)
+                    .eq(CorpCustomerAcquisitionLinkPopularize::getPopularizeId, data.getId())
+                    .last("limit 1"));
+            if (acquisitionLinkPopularize != null) {
+                data.setCorpCustomerLinkId(acquisitionLinkPopularize.getId());
+            }
         });
         return GatewayResponse.SUCCESS.newBuilder().toResult(searchResult);
     }

+ 2 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/CorpCustomerAcquistionLinkPopularizeController.java

@@ -52,7 +52,8 @@ public class CorpCustomerAcquistionLinkPopularizeController {
     public Result<String> get(@PathVariable Long id){
         CorpCustomerAcquisitionLinkPopularize linkPopularize = corpCustomerAcquisitionLinkPopularizeService.
                 getOne(Wrappers.lambdaQuery(CorpCustomerAcquisitionLinkPopularize.class)
-                .eq(CorpCustomerAcquisitionLinkPopularize::getPopularizeId,id));
+                        .eq(CorpCustomerAcquisitionLinkPopularize::getPopularizeId, id)
+                        .last("limit 1"));
         if (linkPopularize == null) {
             throw BusinessRuntimeException.getInstance("请先创建加粉链接。");
         }

+ 52 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/CorpMsgBulkTaskController.java

@@ -10,10 +10,12 @@ import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.corp.CorpMsgBulkTaskCategoryMapper;
 import com.cyksj.mapper.corp.CorpTagMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
 import com.cyksj.model.dto.CornMetaDto;
 import com.cyksj.model.entity.CorpMsgBulkTask;
+import com.cyksj.model.entity.CorpMsgBulkTaskCategory;
 import com.cyksj.model.entity.CorpTag;
 import com.cyksj.model.excel.ExcelCorpMsgBulkTaskSendRecordData;
 import com.cyksj.model.request.CorpActiveBulkMsg;
@@ -29,6 +31,7 @@ import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -59,6 +62,8 @@ public class CorpMsgBulkTaskController {
 
 	private final CorpTagMapper corpTagMapper;
 
+	private final CorpMsgBulkTaskCategoryMapper corpMsgBulkTaskCategoryMapper;
+
 
 	/**
 	 * 新建群发
@@ -244,4 +249,51 @@ public class CorpMsgBulkTaskController {
 		corpMsgBulkTaskService.sendActiveCorpBulkMsg(msg);
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
+
+
+	/**
+	 * 新增分类
+	 */
+	@PostMapping("/category/post")
+	public Result<String> postCategory(@RequestBody @Validated CorpMsgBulkTaskCategory corpMsgBulkTaskCategory) {
+		try {
+			corpMsgBulkTaskCategoryMapper.insert(corpMsgBulkTaskCategory);
+		} catch (DuplicateKeyException e) {
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 编辑分类
+	 */
+	@PostMapping("/category/update")
+	public Result<String> upCategory(@RequestBody @Validated CorpMsgBulkTaskCategory corpMsgBulkTaskCategory) {
+		try {
+			corpMsgBulkTaskCategoryMapper.updateById(corpMsgBulkTaskCategory);
+		} catch (DuplicateKeyException e) {
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 删除分类
+	 */
+	@PostMapping("/category/delete/{id}")
+	public Result<String> delCategory(@PathVariable Long id) {
+		int count = corpMsgBulkTaskService.count(Wrappers.lambdaQuery(CorpMsgBulkTask.class).eq(CorpMsgBulkTask::getCategory, id));
+		if (count > 0) {
+			throw BusinessRuntimeException.getInstance("存在该分类下的群发任务");
+		}
+		corpMsgBulkTaskCategoryMapper.deleteById(id);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 分类列表
+	 */
+	@PostMapping("/category/get")
+	public Result<SearchResult<CorpMsgBulkTaskCategory>> getCategory() {
+		SearchResult<CorpMsgBulkTaskCategory> search = beanSearcher.search(CorpMsgBulkTaskCategory.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
 }

+ 10 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/CorpTagController.java

@@ -41,6 +41,16 @@ public class CorpTagController {
 
 	private final HttpServletRequest request;
 
+
+	/**
+	 * 添加企业标签组及标签
+	 */
+	@PostMapping("/addCorpTagGroup")
+	public Result<CorpTagGroupView> addGroup(@RequestBody CorpTagGroupView tagGroup) throws Exception {
+		CorpTagGroupView corpTagGroupView = corpTagService.addGroup(tagGroup);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(corpTagGroupView);
+	}
+
 	/**
 	 * 添加企业标签组及标签
 	 */