|
|
|
@ -1,6 +1,7 @@ |
|
|
|
package org.dromara.im.controller; |
|
|
|
|
|
|
|
import cn.dev33.satoken.annotation.SaCheckPermission; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import io.swagger.v3.oas.annotations.Operation; |
|
|
|
import jakarta.servlet.http.HttpServletResponse; |
|
|
|
import jakarta.validation.Valid; |
|
|
|
@ -13,18 +14,22 @@ import org.dromara.common.log.enums.BusinessType; |
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery; |
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|
|
|
import org.dromara.common.web.core.BaseController; |
|
|
|
import org.dromara.im.domain.ImUser; |
|
|
|
import org.dromara.im.domain.bo.ImSensitiveWordBo; |
|
|
|
import org.dromara.im.domain.bo.ImUserBo; |
|
|
|
import org.dromara.im.domain.dto.ImUserBanDto; |
|
|
|
import org.dromara.im.domain.dto.ImUserUnbanDto; |
|
|
|
import org.dromara.im.domain.vo.ImUserVo; |
|
|
|
import org.dromara.im.service.IImUserService; |
|
|
|
import org.dromara.im.util.CommaTextUtils; |
|
|
|
import org.springframework.security.crypto.password.PasswordEncoder; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Objects; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
@ -41,6 +46,8 @@ public class ImUserController extends BaseController { |
|
|
|
|
|
|
|
private final IImUserService userService; |
|
|
|
|
|
|
|
private final PasswordEncoder passwordEncoder; |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询用户列表 |
|
|
|
*/ |
|
|
|
@ -136,4 +143,103 @@ public class ImUserController extends BaseController { |
|
|
|
stats.put("monthlyActive", userService.getMonthlyActiveUserCount()); |
|
|
|
return R.ok(stats); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询客服列表 |
|
|
|
*/ |
|
|
|
@SaCheckPermission("im:user:list") |
|
|
|
@GetMapping("/listCustomer") |
|
|
|
public TableDataInfo<ImUserVo> listCustomer(ImUserBo bo, PageQuery pageQuery) { |
|
|
|
System.out.println("ImUserBo" + bo); |
|
|
|
System.out.println("PageQuery" + pageQuery); |
|
|
|
return userService.queryPageListCustomer(bo, pageQuery); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 新增客服(isCustomer-2) |
|
|
|
*/ |
|
|
|
@SaCheckPermission("im:user:list") |
|
|
|
@PostMapping("/addCustomer") |
|
|
|
public R addCustomer(@RequestBody ImUser user) { |
|
|
|
// 昵称默认跟用户名保持一致
|
|
|
|
if(StrUtil.isEmpty(user.getNickName())){ |
|
|
|
user.setNickName(user.getUserName()); |
|
|
|
} |
|
|
|
|
|
|
|
// 检查用户名是否已存在
|
|
|
|
ImUser temp = userService.findUserByUserName(user.getUserName()); |
|
|
|
if (!Objects.isNull(temp)) { |
|
|
|
return R.fail("用户名已存在"); |
|
|
|
} |
|
|
|
|
|
|
|
// 设置默认值
|
|
|
|
String username = user.getUserName(); |
|
|
|
String nickname = user.getNickName(); |
|
|
|
user.setPassword(passwordEncoder.encode(user.getPassword())); |
|
|
|
user.setIsCustomer(2); |
|
|
|
user.setUserName(username); |
|
|
|
user.setNickName(nickname); |
|
|
|
user.setHeadImage(user.getHeadImage()); |
|
|
|
user.setHeadImageThumb(user.getHeadImage()); |
|
|
|
user.setSex(user.getSex()); |
|
|
|
user.setIsBanned(false); |
|
|
|
user.setType(1L); |
|
|
|
|
|
|
|
// 保存
|
|
|
|
userService.save(user); |
|
|
|
|
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 删除客服 |
|
|
|
*/ |
|
|
|
@SaCheckPermission("im:user:list") |
|
|
|
@PostMapping("/removeCustomer") |
|
|
|
public R removeCustomer(@RequestBody List<Long> ids) { |
|
|
|
|
|
|
|
userService.removeCustomer(ids); |
|
|
|
|
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 修改客服 |
|
|
|
*/ |
|
|
|
@SaCheckPermission("im:user:list") |
|
|
|
@PostMapping("/editCustomer") |
|
|
|
public R editCustomer(@RequestBody ImUser user) { |
|
|
|
|
|
|
|
String headImage = user.getHeadImage(); |
|
|
|
if(!StrUtil.isEmpty(headImage)){ |
|
|
|
user.setHeadImage(user.getHeadImageThumb()); |
|
|
|
user.setHeadImageThumb(headImage); |
|
|
|
} |
|
|
|
|
|
|
|
userService.updateCustomerById(user); |
|
|
|
|
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 修改客服 |
|
|
|
*/ |
|
|
|
@SaCheckPermission("im:user:list") |
|
|
|
@PostMapping("/resetPwdCustomer") |
|
|
|
public R resetPwdCustomer(@RequestBody ImUser user) { |
|
|
|
Long id = user.getId(); |
|
|
|
String password = user.getPassword(); |
|
|
|
|
|
|
|
if(StrUtil.isEmpty(password) || id == null ){ |
|
|
|
return R.fail("参数错误"); |
|
|
|
} |
|
|
|
|
|
|
|
ImUser temp = new ImUser(); |
|
|
|
temp.setId(id); |
|
|
|
temp.setPassword(passwordEncoder.encode(password)); |
|
|
|
|
|
|
|
userService.updateCustomerById(temp); |
|
|
|
|
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
} |
|
|
|
|