Просмотр исходного кода

feat(客户群绑定标签,解除标签)

gengyang 5 лет назад
Родитель
Сommit
2bcadf92d7

+ 0 - 2
src/main/java/com/mokamrp/privates/config/Config.java

@@ -3,7 +3,6 @@ package com.mokamrp.privates.config;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.alibaba.fastjson.support.config.FastJsonConfig;
 import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
-import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.MediaType;
@@ -13,7 +12,6 @@ import java.util.List;
 
 
 @Configuration
-@MapperScan("com.mokamrp.privates.mapper")
 public class Config {
 //    @Bean
 //    public FastJsonHttpMessageConverter fastJsonHttpMessageConverter() {

+ 25 - 5
src/main/java/com/mokamrp/privates/controller/WorkRoomController.java

@@ -1,17 +1,17 @@
 package com.mokamrp.privates.controller;
 
 
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.WorkRoomBandTagHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.mapper.pojo.WorkRoom;
 import com.mokamrp.privates.service.WorkContactEmployeeService;
 import com.mokamrp.privates.service.WorkRoomService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 import java.util.Map;
 
@@ -48,5 +48,25 @@ public class WorkRoomController extends BaseController<WorkRoom> {
         return AjaxResult.success(resMap);
     }
 
+    @PostMapping("/band")
+    public Object band(@Valid @RequestBody WorkRoomBandTagHandle handle, BindingResult bindingResult){
+        if(bindingResult.hasErrors()){
+            return AjaxResult.error(HttpStatus.ERROR,bindingResult.getFieldError().getDefaultMessage());
+        }
+
+        //绑定关系用去吧
+        return workRoomService.bangTagIds(handle.getIds(),handle.getTag_ids());
+    }
+
+    @PostMapping("/left")
+    public Object left(@Valid @RequestBody WorkRoomBandTagHandle handle, BindingResult bindingResult){
+        if(bindingResult.hasErrors()){
+            return AjaxResult.error(HttpStatus.ERROR,bindingResult.getFieldError().getDefaultMessage());
+        }
+
+        //绑定关系用去吧
+        return workRoomService.leftTagIds(handle.getIds(),handle.getTag_ids());
+    }
+
 }
 

+ 20 - 0
src/main/java/com/mokamrp/privates/entity/WorkRoomBandTagHandle.java

@@ -0,0 +1,20 @@
+package com.mokamrp.privates.entity;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+/**
+ * @author gy 登录接口请求参数实体
+ */
+@Data
+public class WorkRoomBandTagHandle {
+    @NotNull(message = "标签不可为空")
+    @Size(min=1,message = "标签 不可为空")
+    private Integer[] tag_ids;
+
+    @NotNull(message = "群id不可为空")
+    @Size(min=1,message = "群id 不可为空")
+    private Integer[] ids;
+}

+ 16 - 0
src/main/java/com/mokamrp/privates/mapper/RoomTagMapper.java

@@ -0,0 +1,16 @@
+package com.mokamrp.privates.mapper;
+
+import com.mokamrp.privates.mapper.pojo.RoomTag;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 客户群标签 Mapper 接口
+ * </p>
+ *
+ * @author gy
+ * @since 2021-04-22
+ */
+public interface RoomTagMapper extends BaseMapper<RoomTag> {
+
+}

+ 22 - 0
src/main/java/com/mokamrp/privates/mapper/RoomTagMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.RoomTagMapper">
+
+    <!-- 开启二级缓存 -->
+    <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.pojo.RoomTag">
+        <id column="id" property="id" />
+        <result column="room_id" property="roomId" />
+        <result column="tag_id" property="tagId" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, room_id, tag_id, create_at, update_at
+    </sql>
+
+</mapper>

+ 103 - 0
src/main/java/com/mokamrp/privates/mapper/pojo/RoomTag.java

@@ -0,0 +1,103 @@
+package com.mokamrp.privates.mapper.pojo;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 客户群标签
+ * </p>
+ *
+ * @author gy
+ * @since 2021-04-22
+ */
+@TableName("private_room_tag")
+public class RoomTag extends Model<RoomTag> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 组ID(private.group.id)
+     */
+    private Integer roomId;
+    /**
+     * 企业ID(mc.mc_corp.id)
+     */
+    private Integer tagId;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(Integer roomId) {
+        this.roomId = roomId;
+    }
+
+    public Integer getTagId() {
+        return tagId;
+    }
+
+    public void setTagId(Integer tagId) {
+        this.tagId = tagId;
+    }
+
+    public Date getCreateAt() {
+        return createAt;
+    }
+
+    public void setCreateAt(Date createAt) {
+        this.createAt = createAt;
+    }
+
+    public Date getUpdateAt() {
+        return updateAt;
+    }
+
+    public void setUpdateAt(Date updateAt) {
+        this.updateAt = updateAt;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "RoomTag{" +
+        ", id=" + id +
+        ", roomId=" + roomId +
+        ", tagId=" + tagId +
+        ", createAt=" + createAt +
+        ", updateAt=" + updateAt +
+        "}";
+    }
+}

+ 4 - 0
src/main/java/com/mokamrp/privates/service/WorkRoomService.java

@@ -21,4 +21,8 @@ public interface WorkRoomService extends IService<WorkRoom> {
                                           String wx_chat_id, Integer corp_group_id,
                                           List owner_id, List tag_id );
 
+
+   public Object bangTagIds(Integer[] ids,Integer[] tagIds);
+
+   public Object leftTagIds(Integer[] ids,Integer[] tagIds);
 }

+ 105 - 9
src/main/java/com/mokamrp/privates/service/impl/WorkRoomServiceImpl.java

@@ -2,7 +2,13 @@ package com.mokamrp.privates.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.mapper.RoomTagMapper;
+import com.mokamrp.privates.mapper.TagMapper;
 import com.mokamrp.privates.mapper.WorkContactRoomMapper;
+import com.mokamrp.privates.mapper.pojo.RoomTag;
+import com.mokamrp.privates.mapper.pojo.Tag;
 import com.mokamrp.privates.mapper.pojo.WorkContactRoom;
 import com.mokamrp.privates.mapper.pojo.WorkRoom;
 import com.mokamrp.privates.mapper.WorkRoomMapper;
@@ -37,6 +43,13 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
     @Autowired
     private WorkContactRoomMapper contanctMapperObj;
 
+    @Autowired
+    private TagMapper tagMapperObj;
+
+
+    @Autowired
+    private RoomTagMapper roomTagMapperObj;
+
     @Override
     public Map<String, Object> getPageList(Integer pagesize, Integer page,
                                            String name, Integer corp_id,
@@ -87,17 +100,11 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
 
         List<WorkRoomVo> list = mapperObj.getVoList(pageObj,obj);
         Integer total = mapperObj.getVoListTotal(obj);
-        System.out.println("数据总数");
-        System.out.println(total);
 
         if(list.size() > 0 ) {
-
-
             List<Integer> ids = list.stream().map(WorkRoomVo -> WorkRoomVo.getId()).collect(Collectors.toList());
             HashMap<Integer ,HashMap<String,Integer >> dataById  = getDataById(ids);
 
-
-            System.out.println(dataById);
             if(dataById.size() > 0){
                 list=list.stream().map(WorkRwoomVo -> {
                     WorkRoomVo detail = new WorkRoomVo();
@@ -124,6 +131,98 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         return resMap;
     }
 
+
+    @Override
+    public Object bangTagIds(Integer[] ids,Integer[] tagIds){
+
+        //1-先查room是否存在
+        Object res = checkOption(ids,tagIds);
+        if(res != null){
+            return res;
+        }
+
+        //3-绑定插入但是要检测已经存在的
+        //roomTagMapperObj.
+
+        EntityWrapper<RoomTag> obj = new EntityWrapper<RoomTag>();
+        obj.in("id",ids);
+        RoomTag roomTagObj;
+
+        Date nowDate =new Date();
+        for(Integer id : ids){
+            for(Integer tagId : tagIds){
+                //检测是否已经存在
+                obj = new EntityWrapper<RoomTag>();
+                obj.eq("room_id",id);
+                obj.eq("tag_id",tagId);
+
+
+                if(roomTagMapperObj.selectCount(obj)<=0){//插入
+                    roomTagObj = new RoomTag();
+                    roomTagObj.setRoomId(id);
+                    roomTagObj.setTagId(tagId);
+                    roomTagObj.setCreateAt(nowDate);
+                    roomTagObj.setUpdateAt(nowDate);
+                    roomTagMapperObj.insert(roomTagObj);
+                }
+            }
+        }
+        return AjaxResult.success("操作成功");
+    }
+
+    @Override
+    public Object leftTagIds(Integer[] ids,Integer[] tagIds){
+
+        //1-先查room是否存在
+        Object res = checkOption(ids,tagIds);
+        if(res != null){
+            return res;
+        }
+
+        //3-绑定插入但是要检测已经存在的
+        //roomTagMapperObj.
+        EntityWrapper<RoomTag> obj = new EntityWrapper<RoomTag>();
+        obj.in("id",ids);
+        RoomTag roomTagObj;
+
+        Date nowDate =new Date();
+        for(Integer id : ids){
+            for(Integer tagId : tagIds){
+                //检测是否已经存在
+                obj = new EntityWrapper<RoomTag>();
+                obj.eq("room_id",id);
+                obj.eq("tag_id",tagId);
+                if(roomTagMapperObj.selectCount(obj)>=0){//插入
+                    roomTagMapperObj.delete(obj);
+                }
+            }
+        }
+
+        return AjaxResult.success("操作成功");
+    }
+
+    private Object checkOption(Integer[] ids,Integer[] tagIds){
+        //1-先查room是否存在
+        EntityWrapper<WorkRoom> obj = new EntityWrapper<WorkRoom>();
+        obj.in("id",ids);
+
+        Integer total = mapperObj.selectCount(obj);
+        if(total != ids.length){
+            return AjaxResult.error(HttpStatus.ERROR,"room不全存在");
+        }
+
+        //2-tag是否都存在
+        EntityWrapper<Tag> tagWrapper = new EntityWrapper<Tag>();
+        tagWrapper.in("id",tagIds);
+        Integer tagTotal = tagMapperObj.selectCount(tagWrapper);
+
+        if(tagTotal != tagIds.length){
+            return AjaxResult.error(HttpStatus.ERROR,"tag不全存在");
+        }
+
+        return null;
+    }
+
     private HashMap<Integer ,HashMap<String,Integer >> getDataById(List<Integer> ids){
 
         String todayStartDate = (new SimpleDateFormat("yyyy-MM-dd 00:00:00")).format(new Date());
@@ -164,9 +263,6 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         }
 
         HashMap<String, Integer> tempSetLeft = new HashMap<String, Integer>();
-        System.out.println("查看类型");
-        System.out.println(todayLefts);
-        System.out.println(todayAdds);
         for (WorkContactRoomGroupDataVo o : todayLefts) {
             if(dataById.get(o.getRoom_id())==null){//不存在
                 temp.put("total",0);