Przeglądaj źródła

增加外呼的公共api部分接口整合

peicj 1 tydzień temu
rodzic
commit
1d01d861dd

+ 106 - 0
ruoyi-admin/src/main/java/com/ruoyi/aicall/controller/ApiController.java

@@ -26,10 +26,16 @@ import com.ruoyi.common.utils.ShiroUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.common.utils.uuid.UuidGenerator;
+import com.ruoyi.framework.shiro.service.SysPasswordService;
+import com.ruoyi.framework.shiro.util.AuthorizationUtils;
+import com.ruoyi.system.service.ISysDeptService;
+import com.ruoyi.system.service.ISysRoleService;
+import com.ruoyi.system.service.ISysUserService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.RandomUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -65,6 +71,10 @@ public class ApiController extends BaseController {
     private ICcExtNumService ccExtNumService;
     @Autowired
     private ICcParamsService ccParamsService;
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private SysPasswordService passwordService;
 
     /**
      * 获取外呼网关列表接口
@@ -1069,4 +1079,100 @@ public class ApiController extends BaseController {
         return AjaxResult.success(callConfig);
 
     }
+
+    /**
+     * 查询未绑定的分机管理列表
+     */
+    @GetMapping("/extnum/selectUnBindCcExtNumList")
+    @ResponseBody
+    public AjaxResult selectUnBindCcExtNumList()
+    {
+        return AjaxResult.success(ccExtNumService.selectUnBindCcExtNumList());
+    }
+
+    /**
+     * 修改保存分机管理
+     */
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(@RequestBody CcExtNum ccExtNum) {
+        // 一个工号只能绑定一个分机
+        if (StringUtils.isNotEmpty(ccExtNum.getUserCode())) {
+            CcExtNum checkUserCode = ccExtNumService.selectCcExtNumByUserCode(ccExtNum.getUserCode());
+            if (null != checkUserCode
+                    && !ccExtNum.getExtNum().equals(checkUserCode.getExtNum())) {
+                return AjaxResult.error("该工号已经绑定分机" + checkUserCode.getExtNum() + ",不允许重复绑定!");
+            }
+        }
+        return toAjax(ccExtNumService.updateCcExtNum(ccExtNum));
+    }
+    /**
+     * 新增用户且绑定未使用的分机返回用户
+     */
+    @PostMapping("/user/addUserOrBindExtNumReturnUser")
+    @ResponseBody
+    @Transactional
+    public AjaxResult addUserOrBindExtNumReturnUser(@RequestBody SysUser user)
+    {
+        if (!userService.checkLoginNameUnique(user))
+        {
+            throw new RuntimeException("新增用户'" + user.getLoginName() + "'失败,登录账号已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
+        {
+            throw new RuntimeException("新增用户'" + user.getLoginName() + "'失败,手机号码已存在");
+        }
+        user.setSalt(ShiroUtils.randomSalt());
+        user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
+        user.setPwdUpdateDate(DateUtils.getNowDate());
+        user.setCreateBy("ylrz");
+        int i = userService.insertUser(user);
+        if(i>0){
+            //绑定分机
+            if (StringUtils.isNotEmpty(user.getLoginName())) {
+                CcExtNum extNum = ccExtNumService.selectCcExtNumByExtNum(user.getExtNum());
+                if (null != extNum) {
+                    extNum.setUserCode(user.getLoginName());
+                    int num = ccExtNumService.updateCcExtNum(extNum);
+                    if(num>0){
+                        return AjaxResult.success(user);
+                    }
+                }
+            }
+        }
+        throw new RuntimeException("新增用户失败");
+    }
+    /**
+     * 修改用户且绑分机
+     */
+    @PostMapping("/user/editUserOrUnBindExtNum")
+    @ResponseBody
+    @Transactional
+    public AjaxResult editUserOrUnBindExtNum(@RequestBody SysUser user)
+    {
+        if (!userService.checkLoginNameUnique(user))
+        {
+            throw new RuntimeException("修改用户'" + user.getLoginName() + "'失败,登录账号已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
+        {
+            throw new RuntimeException("修改用户'" + user.getLoginName() + "'失败,手机号码已存在");
+        }
+        user.setUpdateBy("ylrz");
+        AuthorizationUtils.clearAllCachedAuthorizationInfo();
+        int i = userService.updateUser(user);
+        if(i>0){
+            //修改绑定分机
+            CcExtNum extNum = new CcExtNum();
+            extNum.setExtNum(user.getExtNum());
+            extNum.setUserCode(user.getLoginName());
+            int num = ccExtNumService.updateCcExtNumByUserCode(extNum);
+            if(num>0){
+                return AjaxResult.success(user);
+            }
+        }
+        throw new RuntimeException("修改用户失败");
+    }
+
+
 }

+ 7 - 0
ruoyi-admin/src/main/java/com/ruoyi/cc/mapper/CcExtNumMapper.java

@@ -64,4 +64,11 @@ public interface CcExtNumMapper
      * @return
      */
     List<CcExtNum> selectUnBindCcExtNumList();
+
+    /**
+     * 根据用户名修改分机绑定
+     * @param extNum
+     * @return
+     */
+    int updateCcExtNumByUserCode(CcExtNum extNum);
 }

+ 7 - 0
ruoyi-admin/src/main/java/com/ruoyi/cc/service/ICcExtNumService.java

@@ -89,4 +89,11 @@ public interface ICcExtNumService
      * @return
      */
     List<CcExtNum> selectUnBindCcExtNumList();
+
+    /**
+     * 根据用户名修改分机绑定
+     * @param extNum
+     * @return
+     */
+    int updateCcExtNumByUserCode(CcExtNum extNum);
 }

+ 5 - 0
ruoyi-admin/src/main/java/com/ruoyi/cc/service/impl/CcExtNumServiceImpl.java

@@ -162,4 +162,9 @@ public class CcExtNumServiceImpl implements ICcExtNumService
     public List<CcExtNum> selectUnBindCcExtNumList() {
         return ccExtNumMapper.selectUnBindCcExtNumList();
     }
+
+    @Override
+    public int updateCcExtNumByUserCode(CcExtNum extNum) {
+        return ccExtNumMapper.updateCcExtNumByUserCode(extNum);
+    }
 }

+ 3 - 0
ruoyi-admin/src/main/resources/mapper/cc/CcExtNumMapper.xml

@@ -69,4 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where user_code = ''
     </select>
 
+    <update id="updateCcExtNumByUserCode" parameterType="CcExtNum">
+        update cc_ext_num set ext_num = #{extNum} where user_code = #{userCode}
+    </update>
 </mapper>

+ 8 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -103,7 +103,15 @@ public class SysUser extends BaseEntity
 
     /** 岗位组 */
     private Long[] postIds;
+    /** 分机号 */
+    private Long extNum;
+    public Long getExtNum() {
+        return extNum;
+    }
 
+    public void setExtNum(Long extNum) {
+        this.extNum = extNum;
+    }
     public SysUser()
     {
 

+ 10 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java

@@ -306,7 +306,16 @@ public class ShiroConfig
         filterChainDefinitionMap.put("/aicall/api/ai/stopTask", "anon");
         filterChainDefinitionMap.put("/aicall/api/local/addCall", "anon");
         filterChainDefinitionMap.put("/aicall/api/phoneBar/params", "anon");
-        filterChainDefinitionMap.put("/aicall/api//phoneBar/extnum/bind", "anon");
+        filterChainDefinitionMap.put("/aicall/api/phoneBar/extnum/bind", "anon");
+
+        //用户操作
+        filterChainDefinitionMap.put("/aicall/api/user/addUserOrBindExtNumReturnUser", "anon");
+        filterChainDefinitionMap.put("/aicall/api/user/editUserOrUnBindExtNum", "anon");
+
+        //分机操作
+        filterChainDefinitionMap.put("/aicall/api/extnum/selectUnBindCcExtNumList", "anon");
+        filterChainDefinitionMap.put("/aicall/api/extnum/edit", "anon");
+
 
         // 匿名访问不鉴权注解列表
         List<String> permitAllUrl = SpringUtils.getBean(PermitAllUrlProperties.class).getUrls();