Procházet zdrojové kódy

Merge branch 'master' of http://git.mokasz.com/marketing/moka-private

# Conflicts:
#	src/main/java/com/mokamrp/privates/service/impl/WorkRoomServiceImpl.java
MOKASZ\wzk12044 před 5 roky
rodič
revize
2742eb2eae

+ 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);
 }

+ 156 - 60
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;
@@ -13,7 +19,6 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
@@ -38,71 +43,73 @@ 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,
                                            String start_create_time, String end_create_time,
                                            String wx_chat_id, Integer corp_group_id,
-                                           List owner_id, List tag_id) {
+                                           List owner_id, List tag_id ){
+
 
 
         Page<WorkRoom> pageObj = new Page<>(page, pagesize);
         EntityWrapper<WorkRoom> obj = new EntityWrapper<WorkRoom>();
 
-        if (name != null && !"".equals(name)) {
-            obj.like("a.name", name);
+        if(name != null && !"".equals(name)){
+            obj.like("a.name",name);
         }
 
-        if (corp_id != null) {
-            obj.eq("a.corp_id", corp_id);
+        if(corp_id != null){
+            obj.eq("a.corp_id",corp_id);
         }
 
-        if (start_create_time != null && !"".equals(start_create_time)) {
+        if(start_create_time != null && !"".equals(start_create_time)) {
             obj.ge("a.create_time", start_create_time);
         }
 
-        if (end_create_time != null && !"".equals(end_create_time)) {
+        if(end_create_time != null && !"".equals(end_create_time)) {
             obj.le("a.create_time", end_create_time);
         }
 
-        if (owner_id != null) {
+        if(owner_id !=null) {
             obj.in("a.owner_id", owner_id);
         }
 
-        if (tag_id != null) {
+        if(tag_id !=null) {
             obj.in("f.tag_id", tag_id);
         }
 
-        if (corp_id != null) {
-            obj.eq("a.corp_id", owner_id);
+        if(corp_id != null){
+            obj.eq("a.corp_id",owner_id);
         }
 
-        if (corp_group_id != null) {
-            obj.eq("c.group_id", corp_group_id);
+        if(corp_group_id != null){
+            obj.eq("c.group_id",corp_group_id);
         }
 
-        if (wx_chat_id != null && !"".equals(wx_chat_id)) {
-            obj.eq("a.wx_chat_id", wx_chat_id);
+        if(wx_chat_id != null && !"".equals(wx_chat_id)){
+            obj.eq("a.wx_chat_id",wx_chat_id);
         }
 
-        List<WorkRoomVo> list = mapperObj.getVoList(pageObj, obj);
+        List<WorkRoomVo> list = mapperObj.getVoList(pageObj,obj);
         Integer total = mapperObj.getVoListTotal(obj);
-        System.out.println("数据总数");
-        System.out.println(total);
-
-        if (list.size() > 0) {
-
 
+        if(list.size() > 0 ) {
             List<Integer> ids = list.stream().map(WorkRoomVo -> WorkRoomVo.getId()).collect(Collectors.toList());
-            HashMap<Integer, HashMap<String, Integer>> dataById = getDataById(ids);
-
+            HashMap<Integer ,HashMap<String,Integer >> dataById  = getDataById(ids);
 
-            System.out.println(dataById);
-            if (dataById.size() > 0) {
-                list = list.stream().map(WorkRwoomVo -> {
+            if(dataById.size() > 0){
+                list=list.stream().map(WorkRwoomVo -> {
                     WorkRoomVo detail = new WorkRoomVo();
                     BeanUtils.copyProperties(WorkRwoomVo, detail);
-                    if (dataById.get(detail.getId()) != null) {
+                    if(dataById.get(detail.getId()) != null){
                         ;
                         detail.setTotal_num((dataById.get(detail.getId()).get("total")));
                         detail.setAdd_num(dataById.get(detail.getId()).get("add_num"));
@@ -116,15 +123,107 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         }
 
 
-        Map<String, Object> resMap = new HashMap<String, Object>();
+        Map<String, Object> resMap = new HashMap<String,Object>();
 
-        resMap.put("list", list);
-        resMap.put("total", total);
+        resMap.put("list",list);
+        resMap.put("total",total);
 
         return resMap;
     }
 
-    private HashMap<Integer, HashMap<String, Integer>> getDataById(List<Integer> ids) {
+
+    @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());
         String todayEndDate = (new SimpleDateFormat("yyyy-MM-dd 23:59:59")).format(new Date());
@@ -147,51 +246,48 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         contactRoomEntityWrapperTodayLeft.le("out_time", todayEndDate);
         contactRoomEntityWrapperTodayLeft.ge("out_time", todayStartDate);//大于
 
-        List<WorkContactRoomGroupDataVo> todayLefts = contanctMapperObj.getNum(contactRoomEntityWrapperTodayLeft);
-        List<WorkContactRoomGroupDataVo> todayAdds = contanctMapperObj.getNum(contactRoomEntityWrapperTodayAdd);
-        List<WorkContactRoomGroupDataVo> totals = contanctMapperObj.getNum(contactRoomEntityWrapperTotal);
+        List<WorkContactRoomGroupDataVo> todayLefts= contanctMapperObj.getNum(contactRoomEntityWrapperTodayLeft);
+        List<WorkContactRoomGroupDataVo> todayAdds= contanctMapperObj.getNum(contactRoomEntityWrapperTodayAdd);
+        List<WorkContactRoomGroupDataVo> totals= contanctMapperObj.getNum(contactRoomEntityWrapperTotal);
 
 
-        HashMap<Integer, HashMap<String, Integer>> dataById =
+        HashMap<Integer ,HashMap<String,Integer >> dataById =
                 new HashMap<Integer, HashMap<String, Integer>>();
 
         HashMap<String, Integer> temp = new HashMap<String, Integer>();
         for (WorkContactRoomGroupDataVo o : totals) {
-            temp.put("total", o.getNum());
-            temp.put("add_num", 0);
-            temp.put("left_num", 0);
-            dataById.put(o.getRoom_id(), temp);
+            temp.put("total",o.getNum());
+            temp.put("add_num",0);
+            temp.put("left_num",0);
+            dataById.put(o.getRoom_id(),temp);
         }
 
         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);
-                temp.put("left_num", o.getNum());
-                temp.put("add_num", 0);
-                dataById.put(o.getRoom_id(), temp);
-            } else {
+            if(dataById.get(o.getRoom_id())==null){//不存在
+                temp.put("total",0);
+                temp.put("left_num",o.getNum());
+                temp.put("add_num",0);
+                dataById.put(o.getRoom_id(),temp);
+            }else{
                 tempSetLeft = dataById.get(o.getRoom_id());
-                tempSetLeft.put("left_num", o.getNum());
-                dataById.put(o.getRoom_id(), tempSetLeft);
+                tempSetLeft.put("left_num",o.getNum());
+                dataById.put(o.getRoom_id(),tempSetLeft);
             }
 
         }
 
         HashMap<String, Integer> tempSetAdd = new HashMap<String, Integer>();
         for (WorkContactRoomGroupDataVo o : todayAdds) {
-            if (dataById.get(o.getRoom_id()) == null) {//不存在
-                temp.put("total", 0);
-                temp.put("add_num", o.getNum());
-                temp.put("left_num", 0);
-                dataById.put(o.getRoom_id(), temp);
-            } else {
-                tempSetAdd = dataById.get(o.getRoom_id());
-                tempSetAdd.put("add_num", o.getNum());
-                dataById.put(o.getRoom_id(), tempSetAdd);
+            if(dataById.get(o.getRoom_id())==null){//不存在
+                temp.put("total",0);
+                temp.put("add_num",o.getNum());
+                temp.put("left_num",0);
+                dataById.put(o.getRoom_id(),temp);
+            }else{
+                tempSetAdd =  dataById.get(o.getRoom_id());
+                tempSetAdd.put("add_num",o.getNum());
+                dataById.put(o.getRoom_id(),tempSetAdd);
             }
         }
         return dataById;