Pārlūkot izejas kodu

总后台在销售公司菜单下面加一个外部联系人菜单

yjwang 1 nedēļu atpakaļ
vecāks
revīzija
55912a1a1f

+ 138 - 0
fs-admin/src/main/java/com/fs/qw/controller/QwExternalContactController.java

@@ -0,0 +1,138 @@
+package com.fs.qw.controller;
+
+import java.util.List;
+import java.util.Objects;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.fs.common.exception.ServiceException;
+import com.fs.qw.param.QwExternalContactParam;
+import com.fs.qw.param.QwTagSearchParam;
+import com.fs.qw.service.IQwTagService;
+import com.fs.qw.vo.QwExternalContactVO;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.enums.BusinessType;
+import com.fs.qw.domain.QwExternalContact;
+import com.fs.qw.service.IQwExternalContactService;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.common.core.page.TableDataInfo;
+
+/**
+ * 企业微信客户Controller
+ * 
+ * @author fs
+ * @date 2025-06-13
+ */
+@RestController
+@RequestMapping("/qw/externalContact")
+public class QwExternalContactController extends BaseController
+{
+    private IQwExternalContactService qwExternalContactService;
+    private IQwTagService iQwTagService;
+
+    QwExternalContactController(IQwExternalContactService qwExternalContactService,IQwTagService iQwTagService){
+        this.qwExternalContactService=qwExternalContactService;
+        this.iQwTagService=iQwTagService;
+    }
+
+
+    /**
+     * 查询企业微信客户列表
+     */
+    @PreAuthorize("@ss.hasPermi('qw:externalContact:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(QwExternalContactParam qwExternalContact)
+    {
+        if(ObjectUtil.isEmpty(qwExternalContact.getCompanyId())){
+            throw new ServiceException("操作失败,请选择企业!");
+        }
+        startPage();
+        List<QwExternalContactVO> list = qwExternalContactService.selectQwExternalContactListVO(qwExternalContact);
+        list.forEach(item->{
+
+            if (!Objects.equals(item.getTagIds(), "[]") && item.getTagIds()!=null) {
+                QwTagSearchParam param = new QwTagSearchParam();
+                Gson gson = new Gson();
+                List<String> tagIds = gson.fromJson(
+                        item.getTagIds(),
+                        new TypeToken<List<String>>() {
+                        }.getType()
+                );
+
+                param.setTagIds(tagIds);
+
+                item.setTagIdsName(iQwTagService.selectQwTagListByTagIds(param));
+            }
+        });
+
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出企业微信客户列表
+     */
+    @PreAuthorize("@ss.hasPermi('qw:externalContact:export')")
+    @Log(title = "企业微信客户", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(QwExternalContact qwExternalContact)
+    {
+        List<QwExternalContact> list = qwExternalContactService.selectQwExternalContactList(qwExternalContact);
+        ExcelUtil<QwExternalContact> util = new ExcelUtil<QwExternalContact>(QwExternalContact.class);
+        return util.exportExcel(list, "企业微信客户数据");
+    }
+
+    /**
+     * 获取企业微信客户详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('qw:externalContact:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(qwExternalContactService.selectQwExternalContactById(id));
+    }
+
+    /**
+     * 新增企业微信客户
+     */
+    @PreAuthorize("@ss.hasPermi('qw:externalContact:add')")
+    @Log(title = "企业微信客户", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody QwExternalContact qwExternalContact)
+    {
+        return toAjax(qwExternalContactService.insertQwExternalContact(qwExternalContact));
+    }
+
+    /**
+     * 修改企业微信客户
+     */
+    @PreAuthorize("@ss.hasPermi('qw:externalContact:edit')")
+    @Log(title = "企业微信客户", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody QwExternalContact qwExternalContact)
+    {
+        return toAjax(qwExternalContactService.updateQwExternalContact(qwExternalContact));
+    }
+
+    /**
+     * 删除企业微信客户
+     */
+    @PreAuthorize("@ss.hasPermi('qw:externalContact:remove')")
+    @Log(title = "企业微信客户", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(qwExternalContactService.deleteQwExternalContactByIds(ids));
+    }
+}

+ 41 - 0
fs-admin/src/main/java/com/fs/qw/controller/QwTagGroupController.java

@@ -0,0 +1,41 @@
+package com.fs.qw.controller;
+
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.qw.domain.QwTagGroup;
+import com.fs.qw.service.IQwTagGroupService;
+import com.fs.qw.vo.QwTagGroupListVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 企微客户标签组Controller
+ *
+ * @author fs
+ * @date 2024-06-20
+ */
+@RestController
+@RequestMapping("/qw/tagGroup")
+public class QwTagGroupController extends BaseController
+{
+    @Autowired
+    private IQwTagGroupService qwTagGroupService;
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    /**
+    * 所有标签列表
+    */
+    @GetMapping("/allList")
+    public TableDataInfo allList(QwTagGroup qwTagGroup)
+    {
+        startPage();
+
+        List<QwTagGroupListVO> list = qwTagGroupService.selectQwTagGroupListVO(qwTagGroup);
+        return getDataTable(list);
+    }
+}

+ 10 - 0
fs-admin/src/main/java/com/fs/qw/controller/QwUserController.java

@@ -1,7 +1,9 @@
 package com.fs.qw.controller;
 package com.fs.qw.controller;
 
 
+import com.baomidou.mybatisplus.extension.api.R;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.AjaxResult;
+import com.fs.qw.param.QwFsUserParam;
 import com.fs.qw.service.IQwUserService;
 import com.fs.qw.service.IQwUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -24,4 +26,12 @@ public class QwUserController extends BaseController {
     public AjaxResult getQwUserAll(){
     public AjaxResult getQwUserAll(){
         return AjaxResult.success(qwUserService.getQwUserAll());
         return AjaxResult.success(qwUserService.getQwUserAll());
     }
     }
+
+    /**
+     * 获取企微信息
+     * **/
+    @GetMapping("/getQwUserInfo")
+    public R getQwUserInfo(QwFsUserParam param){
+        return R.ok(qwUserService.getQwUserInfo(param));
+    }
 }
 }

+ 1 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java

@@ -251,6 +251,7 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
             "            <if test=\"delTime != null \"> and DATE(ec.del_time) = DATE(#{delTime})</if>\n" +
             "            <if test=\"delTime != null \"> and DATE(ec.del_time) = DATE(#{delTime})</if>\n" +
             "            <if test=\"sTime != null \">  and DATE(ec.create_time) &gt;= DATE(#{sTime})</if>\n" +
             "            <if test=\"sTime != null \">  and DATE(ec.create_time) &gt;= DATE(#{sTime})</if>\n" +
             "            <if test=\"eTime != null \">  and DATE(ec.create_time) &lt;= DATE(#{eTime})</if>\n" +
             "            <if test=\"eTime != null \">  and DATE(ec.create_time) &lt;= DATE(#{eTime})</if>\n" +
+            "            <if test=\"companyUserName != null  and companyUserName != ''\"> and cu.user_name = #{companyUserName}</if>\n" +
 
 
             "<if test ='companyUser!=null'> " +
             "<if test ='companyUser!=null'> " +
                 "and (cu.nick_name like concat('%', #{companyUser}, '%') or cu.phonenumber= #{companyUser})"+
                 "and (cu.nick_name like concat('%', #{companyUser}, '%') or cu.phonenumber= #{companyUser})"+

+ 5 - 0
fs-service/src/main/java/com/fs/qw/param/QwExternalContactParam.java

@@ -32,6 +32,11 @@ public class QwExternalContactParam {
      */
      */
     private String companyUser;
     private String companyUser;
 
 
+    /**
+     * 销售账号
+     * **/
+    private String companyUserName;
+
 
 
     private Long customerId;
     private Long customerId;
 
 

+ 5 - 0
fs-service/src/main/java/com/fs/qw/param/QwFsUserParam.java

@@ -10,4 +10,9 @@ public class QwFsUserParam {
 
 
     /** 手机号码 */
     /** 手机号码 */
     private String phone;
     private String phone;
+
+    /**
+     * 企业ID
+     * **/
+    private String companyId;
 }
 }

+ 7 - 0
fs-service/src/main/java/com/fs/qw/service/IQwUserService.java

@@ -171,4 +171,11 @@ public interface IQwUserService
      * @return
      * @return
      */
      */
     R restartCloudHost(String IP);
     R restartCloudHost(String IP);
+
+    /**
+     * 获取企微用户信息
+     * @param param 查询参数
+     * @return list
+     * **/
+    List<QwUser> getQwUserInfo(QwFsUserParam param);
 }
 }

+ 17 - 0
fs-service/src/main/java/com/fs/qw/service/impl/QwUserServiceImpl.java

@@ -1,8 +1,10 @@
 package com.fs.qw.service.impl;
 package com.fs.qw.service.impl;
 
 
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpRequest;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.cloud.host.CloudHostConfig;
 import com.cloud.host.CloudHostConfig;
 import com.cloud.host.PoolInfoEnum;
 import com.cloud.host.PoolInfoEnum;
 import com.ecloud.sdk.ecs.v1.Client;
 import com.ecloud.sdk.ecs.v1.Client;
@@ -1357,6 +1359,21 @@ public class QwUserServiceImpl implements IQwUserService
         }
         }
     }
     }
 
 
+    @Override
+    public List<QwUser> getQwUserInfo(QwFsUserParam param) {
+        LambdaQueryWrapper<QwUser> qw=buildQuery(param);
+        return qwUserMapper.selectList(qw);
+    }
+
+    /**
+     * 构建查询条件
+     * **/
+    public LambdaQueryWrapper buildQuery(QwFsUserParam param){
+        LambdaQueryWrapper<QwUser> queryWrapper=new LambdaQueryWrapper<>();
+        queryWrapper.eq(ObjectUtil.isNotNull(param.getCompanyId()),QwUser::getCompanyId,param.getCompanyId());
+        return queryWrapper;
+    }
+
     /**
     /**
      *  获取文件名
      *  获取文件名
      */
      */