Browse Source

Merge remote-tracking branch 'origin/master'

master
La123123 5 days ago
parent
commit
3f58169813
  1. 10
      im-admin-ui/src/api/im/agent/index.ts
  2. 11
      im-admin-ui/src/api/im/user/customer.ts
  3. 15
      im-admin-ui/src/views/im/code/index.vue
  4. 12
      im-admin/ruoyi-im/src/main/java/org/dromara/im/controller/ImAgentController.java
  5. 6
      im-admin/ruoyi-im/src/main/java/org/dromara/im/controller/ImUserController.java
  6. 4
      im-admin/ruoyi-im/src/main/java/org/dromara/im/service/IImAgentService.java
  7. 4
      im-admin/ruoyi-im/src/main/java/org/dromara/im/service/IImUserService.java
  8. 6
      im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImAgentServiceImpl.java
  9. 15
      im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImUserServiceImpl.java

10
im-admin-ui/src/api/im/agent/index.ts

@ -33,9 +33,9 @@ export function getAgentFloatBallConfig(token: string): AxiosPromise<any> {
/**
* ID
*/
export function getDefaultKefu(): AxiosPromise<any> {
export function getDefaultCustomer(): AxiosPromise<any> {
return request({
url: '/im/agent/defaultKefu',
url: '/im/agent/defaultCustomer',
method: 'get'
});
}
@ -44,10 +44,10 @@ export function getDefaultKefu(): AxiosPromise<any> {
* ID
* @param kefuId IDnull表示清除
*/
export function saveDefaultKefu(kefuId: number | null): AxiosPromise<any> {
export function saveDefaultCustomer(kefuId: number | null): AxiosPromise<any> {
return request({
url: '/im/agent/saveDefaultKefu',
url: '/im/agent/saveDefaultCustomer',
method: 'post',
data: { defaultKefuId: kefuId }
data: { defaultCustomerId: kefuId }
});
}

11
im-admin-ui/src/api/im/user/customer.ts

@ -16,6 +16,17 @@ export const listUser = (query?: UserQuery): AxiosPromise<UserVO[]> => {
});
};
/**
*
*/
export function listAllCustomer() {
return request({
url: '/im/user/listAllCustomer',
method: 'get',
});
}
/**
*
*/

15
im-admin-ui/src/views/im/code/index.vue

@ -54,10 +54,10 @@ import { ref, computed, onMounted, getCurrentInstance } from 'vue';
import alink from './components/alink.vue';
import wangye from './components/wangye.vue';
import FloatBallSetting from './components/FloatBallSetting.vue';
import { listUser } from '@/api/im/user/customer';
import { listUser, listAllCustomer } from '@/api/im/user/customer';
import type { FloatBallConfig } from './components/FloatBallSetting.vue';
import { getInfo } from '@/api/login';
import { getDefaultKefu, saveDefaultKefu } from '@/api/im/agent';
import { getDefaultCustomer, saveDefaultCustomer } from '@/api/im/agent';
// import kaifa from './components/kaifa';
// import setting from './components/setting';
@ -124,18 +124,19 @@ async function fetchAgentToken() {
async function loadKefuList() {
try {
const res = await listUser();
const data = (res as any)?.rows || [];
kefuList.value = data;
const res = await listAllCustomer();
// R<List<ImUserVo>> res.data
kefuList.value = (res as any)?.data || [];
} catch (e) {
console.error('获取客服列表失败', e);
}
}
// ID
async function loadDefaultKefu() {
try {
const kefuId = await getDefaultKefu();
const kefuId = await getDefaultCustomer();
if (kefuId.data) {
selectedKefuId.value = kefuId.data;
}
@ -147,7 +148,7 @@ async function loadDefaultKefu() {
async function onKefuChange(val: number | '') {
try {
await saveDefaultKefu(val || null);
await saveDefaultCustomer(val || null);
proxy?.$Message?.success('已保存');
} catch (e) {
console.error('保存默认客服失败', e);

12
im-admin/ruoyi-im/src/main/java/org/dromara/im/controller/ImAgentController.java

@ -143,18 +143,18 @@ public class ImAgentController extends BaseController {
/**
* 获取默认客服ID
*/
@GetMapping("/defaultKefu")
public R<Long> getDefaultKefu() {
return R.ok(imAgentService.getDefaultKefuId());
@GetMapping("/defaultCustomer")
public R<Long> getDefaultCustomer() {
return R.ok(imAgentService.getDefaultCustomerId());
}
/**
* 保存默认客服ID
*/
@RepeatSubmit()
@PostMapping("/saveDefaultKefu")
public R<Void> saveDefaultKefu(@RequestBody ImAgentBo bo) {
imAgentService.saveDefaultKefuId(bo.getDefaultKefuId());
@PostMapping("/saveDefaultCustomer")
public R<Void> saveDefaultCustomer(@RequestBody ImAgentBo bo) {
imAgentService.saveDefaultCustomerId(bo.getDefaultKefuId());
return R.ok();
}

6
im-admin/ruoyi-im/src/main/java/org/dromara/im/controller/ImUserController.java

@ -162,6 +162,12 @@ public class ImUserController extends BaseController {
return userService.queryPageListCustomer(bo, pageQuery);
}
@SaCheckPermission("im:user:list")
@GetMapping("/listAllCustomer")
public R<List<ImUserVo>> listAllCustomer() {
return R.ok(userService.queryAllCustomer());
}
/**
* 新增客服(isCustomer-2)
*/

4
im-admin/ruoyi-im/src/main/java/org/dromara/im/service/IImAgentService.java

@ -104,11 +104,11 @@ public interface IImAgentService {
/**
* 获取默认客服ID
*/
Long getDefaultKefuId();
Long getDefaultCustomerId();
/**
* 保存默认客服ID
*/
void saveDefaultKefuId(Long kefuId);
void saveDefaultCustomerId(Long customerId);
}

4
im-admin/ruoyi-im/src/main/java/org/dromara/im/service/IImUserService.java

@ -150,4 +150,8 @@ public interface IImUserService {
*/
boolean isCustomerLimited();
/**
* 查询所有客服不分页
*/
List<ImUserVo> queryAllCustomer();
}

6
im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImAgentServiceImpl.java

@ -260,7 +260,7 @@ public class ImAgentServiceImpl implements IImAgentService {
}
@Override
public Long getDefaultKefuId() {
public Long getDefaultCustomerId() {
Long userId = LoginHelper.getUserId();
if (userId == null || LoginHelper.isSuperAdmin()) {
return null;
@ -272,7 +272,7 @@ public class ImAgentServiceImpl implements IImAgentService {
}
@Override
public void saveDefaultKefuId(Long kefuId) {
public void saveDefaultCustomerId(Long customerId) {
Long userId = LoginHelper.getUserId();
if (userId == null || LoginHelper.isSuperAdmin()) {
throw new RuntimeException("无权限操作");
@ -285,7 +285,7 @@ public class ImAgentServiceImpl implements IImAgentService {
}
LambdaUpdateWrapper<ImAgent> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(ImAgent::getId, agent.getId());
wrapper.set(ImAgent::getDefaultKefuId, kefuId);
wrapper.set(ImAgent::getDefaultKefuId, customerId);
baseMapper.update(null, wrapper);
}

15
im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImUserServiceImpl.java

@ -433,4 +433,19 @@ public class ImUserServiceImpl implements IImUserService {
//返回结果 达到极限返回true
return nowCustomerCount >= limit;
}
@Override
public List<ImUserVo> queryAllCustomer() {
LambdaQueryWrapper<ImUser> wrapper = Wrappers.lambdaQuery();
wrapper.eq(ImUser::getIsCustomer, 2);
if (!LoginHelper.isSuperAdmin()) {
LambdaQueryWrapperHelper.appendToken(wrapper, ImUser::getUniqueToken);
}
wrapper.select(ImUser::getId, ImUser::getUserName, ImUser::getNickName, ImUser::getHeadImage, ImUser::getHeadImageThumb);
wrapper.orderByDesc(ImUser::getId);
return baseMapper.selectVoList(wrapper);
}
}

Loading…
Cancel
Save