Prechádzať zdrojové kódy

feat(客户群管理,根据客户群id搜索用户)

gengyang 5 rokov pred
rodič
commit
578600d36a

+ 17 - 2
src/main/java/com/mokamrp/privates/controller/WorkContactRoomController.java

@@ -1,10 +1,17 @@
 package com.mokamrp.privates.controller;
 
-
+import com.mokamrp.privates.entity.IndexHandle;
+import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.mapper.pojo.WorkContactRoom;
+import com.mokamrp.privates.service.WorkContactRoomService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
+import javax.validation.Valid;
+import java.util.Map;
 
 /**
  * <p>
@@ -18,6 +25,14 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/workContactRoom")
 public class WorkContactRoomController extends BaseController<WorkContactRoom> {
 
+    @Autowired
+    public WorkContactRoomService service;
+
+    @PostMapping("/search")
+    public Object index(@Valid @RequestBody IndexHandle indexHandle, BindingResult bindingResult){
+        Map<String, Object>  resMap = service.getPageList(indexHandle, bindingResult);
+        return  AjaxResult.success(resMap);
+    }
 
 }
 

+ 3 - 2
src/main/java/com/mokamrp/privates/mapper/WorkContactRoomMapper.java

@@ -4,8 +4,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.mokamrp.privates.mapper.pojo.WorkContactRoom;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
-import com.mokamrp.privates.mapper.pojo.WorkRoom;
-import com.mokamrp.privates.mapper.vo.WorkContactRoomData;
+import com.mokamrp.privates.mapper.vo.WorkContactRoomByRoomIdVo;
 import com.mokamrp.privates.mapper.vo.WorkContactRoomGroupDataVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -21,4 +20,6 @@ import java.util.List;
  */
 public interface WorkContactRoomMapper extends BaseMapper<WorkContactRoom> {
     List<WorkContactRoomGroupDataVo> getNum(@Param("ew") EntityWrapper<WorkContactRoom> queryWrapper);
+    List<WorkContactRoomByRoomIdVo> getListByRoomId(Page<WorkContactRoomByRoomIdVo> page, @Param("ew") EntityWrapper<WorkContactRoomByRoomIdVo> queryWrapper);
+    Integer getListByRoomIdTotal(@Param("ew") EntityWrapper<WorkContactRoomByRoomIdVo> queryWrapper);
 }

+ 34 - 0
src/main/java/com/mokamrp/privates/mapper/WorkContactRoomMapper.xml

@@ -39,4 +39,38 @@
             group by room_id
     </select>
 
+    <select id="getListByRoomId"  resultType="com.mokamrp.privates.mapper.vo.WorkContactRoomByRoomIdVo">
+        SELECT
+            a.id,
+            a.wx_user_id,
+            a.contact_id,
+            a.employee_id,
+            a.unionid,
+            a.room_id,
+            a.join_scene,
+            a.type,
+            a.status,
+            a.join_time,
+            a.out_time,
+            b.`name` as nick_name,
+            b.avatar
+        FROM
+            mc_work_contact_room AS a
+        LEFT JOIN mc_work_contact AS b ON b.id = a.contact_id
+        <where>
+            ${ew.sqlSegment}
+        </where>
+    </select>
+
+    <select id="getListByRoomIdTotal"  resultType="Integer">
+        SELECT
+            count(*)
+        FROM
+        mc_work_contact_room AS a
+        LEFT JOIN mc_work_contact AS b ON b.id = a.contact_id
+        <where>
+            ${ew.sqlSegment}
+        </where>
+    </select>
+
 </mapper>

+ 133 - 0
src/main/java/com/mokamrp/privates/mapper/vo/WorkContactRoomByRoomIdVo.java

@@ -0,0 +1,133 @@
+package com.mokamrp.privates.mapper.vo;
+
+/**
+ * <p>
+ * 通讯录 - 客户 中间表
+ * </p>
+ *
+ * @author gengyang
+ * @since 2021-04-17
+ */
+public class WorkContactRoomByRoomIdVo {
+
+    private Integer id;
+    private String wx_user_id;
+    private Integer contact_id;
+    private Integer employee_id;
+    private String unionid;
+    private Integer room_id;
+    private Integer join_scene;
+    private Integer type;
+    private Integer status;
+    private String join_time;
+    private String out_time;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getWx_user_id() {
+        return wx_user_id;
+    }
+
+    public void setWx_user_id(String wx_user_id) {
+        this.wx_user_id = wx_user_id;
+    }
+
+    public Integer getContact_id() {
+        return contact_id;
+    }
+
+    public void setContact_id(Integer contact_id) {
+        this.contact_id = contact_id;
+    }
+
+    public Integer getEmployee_id() {
+        return employee_id;
+    }
+
+    public void setEmployee_id(Integer employee_id) {
+        this.employee_id = employee_id;
+    }
+
+    public String getUnionid() {
+        return unionid;
+    }
+
+    public void setUnionid(String unionid) {
+        this.unionid = unionid;
+    }
+
+    public Integer getRoom_id() {
+        return room_id;
+    }
+
+    public void setRoom_id(Integer room_id) {
+        this.room_id = room_id;
+    }
+
+    public Integer getJoin_scene() {
+        return join_scene;
+    }
+
+    public void setJoin_scene(Integer join_scene) {
+        this.join_scene = join_scene;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getJoin_time() {
+        return join_time;
+    }
+
+    public void setJoin_time(String join_time) {
+        this.join_time = join_time;
+    }
+
+    public String getOut_time() {
+        return out_time;
+    }
+
+    public void setOut_time(String out_time) {
+        this.out_time = out_time;
+    }
+
+    public String getNick_name() {
+        return nick_name;
+    }
+
+    public void setNick_name(String nick_name) {
+        this.nick_name = nick_name;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    private String nick_name;
+    private String avatar;
+
+
+}

+ 5 - 0
src/main/java/com/mokamrp/privates/service/WorkContactRoomService.java

@@ -1,7 +1,10 @@
 package com.mokamrp.privates.service;
 
+import com.mokamrp.privates.entity.IndexHandle;
 import com.mokamrp.privates.mapper.pojo.WorkContactRoom;
 import com.baomidou.mybatisplus.service.IService;
+import org.springframework.validation.BindingResult;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +16,6 @@ import com.baomidou.mybatisplus.service.IService;
  */
 public interface WorkContactRoomService extends IService<WorkContactRoom> {
 
+    public Map<String, Object> getPageList(IndexHandle indexHandle, BindingResult bindingResult);
+
 }

+ 68 - 0
src/main/java/com/mokamrp/privates/service/impl/WorkContactRoomServiceImpl.java

@@ -1,10 +1,24 @@
 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.entity.IndexHandle;
+import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.mapper.pojo.WorkContactRoom;
 import com.mokamrp.privates.mapper.WorkContactRoomMapper;
+import com.mokamrp.privates.mapper.vo.WorkContactRoomByRoomIdVo;
 import com.mokamrp.privates.service.WorkContactRoomService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.mokamrp.privates.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.validation.BindingResult;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -17,4 +31,58 @@ import org.springframework.stereotype.Service;
 @Service
 public class WorkContactRoomServiceImpl extends ServiceImpl<WorkContactRoomMapper, WorkContactRoom> implements WorkContactRoomService {
 
+    @Autowired
+    private WorkContactRoomMapper mapperObj;
+
+    @Override
+    public Map<String, Object> getPageList(IndexHandle indexHandle, BindingResult bindingResult){
+
+        if(bindingResult.hasErrors()){
+            return AjaxResult.error(HttpStatus.ERROR,bindingResult.getFieldError().getDefaultMessage());
+        }
+
+        Iterator fileterIt = indexHandle.getFilter().entrySet().iterator();
+        EntityWrapper<WorkContactRoomByRoomIdVo> warpper = new EntityWrapper<WorkContactRoomByRoomIdVo>();
+        //.@leon where like,=,<>
+        while (fileterIt.hasNext()){
+            Map.Entry entray = (Map.Entry) fileterIt.next();
+            Object key = entray.getKey();
+            Object value = entray.getValue();
+            Map<String,String> op = indexHandle.getOp();
+            //.这里sql字段需要驼峰转下划线
+            if(op.get(key) == null || op.get(key).isEmpty() || op.get(key).toString().equals("=")){
+                warpper.eq(StringUtils.humpToLine2(key.toString()),value.toString());
+            }else if (op.get(key).toString().equals("like")){
+                warpper.like(StringUtils.humpToLine2(key.toString()),"%"+value.toString()+"%");
+            }else if (op.get(key).toString().equals("<>")){
+                warpper.ne(StringUtils.humpToLine2(key.toString()),value.toString());
+            }
+        }
+
+        //.统计数量
+        Integer total = mapperObj.getListByRoomIdTotal(warpper);
+        if (indexHandle.getOrder() != null && indexHandle.getSort() != null){
+            String order = indexHandle.getOrder();
+            String sort = indexHandle.getSort();
+            if (!order.isEmpty() && !sort.isEmpty()){
+                if (order.equals("asc")){
+                    warpper.orderBy(sort,true);
+                }else if(order.equals("desc")){
+                    warpper.orderBy(sort,false);
+                }
+            }
+        }
+
+        List<WorkContactRoomByRoomIdVo> page = mapperObj.getListByRoomId(
+                new Page<WorkContactRoomByRoomIdVo>(indexHandle.getOffset(),indexHandle.getLimit()),warpper
+        );
+
+        Map<String, Object> resMap = new HashMap<String,Object>();
+        resMap.put("list",page);
+        resMap.put("total",total);
+
+        return resMap;
+    }
+
+
 }

+ 2 - 5
src/main/java/com/mokamrp/privates/service/impl/WorkRoomServiceImpl.java

@@ -1,15 +1,11 @@
 package com.mokamrp.privates.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
-import com.mokamrp.privates.mapper.WorkContactEmployeeMapper;
 import com.mokamrp.privates.mapper.WorkContactRoomMapper;
-import com.mokamrp.privates.mapper.pojo.WorkContactEmployee;
 import com.mokamrp.privates.mapper.pojo.WorkContactRoom;
 import com.mokamrp.privates.mapper.pojo.WorkRoom;
 import com.mokamrp.privates.mapper.WorkRoomMapper;
-import com.mokamrp.privates.mapper.vo.WorkContactEmployeeVo;
 import com.mokamrp.privates.mapper.vo.WorkContactRoomGroupDataVo;
 import com.mokamrp.privates.mapper.vo.WorkRoomVo;
 import com.mokamrp.privates.service.WorkRoomService;
@@ -17,7 +13,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;
@@ -202,4 +197,6 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         return dataById;
 
     }
+
+
 }