SysQyWeChatController.java 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package com.ydtech.modules.admin.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.ydtech.core.page.HttpResult;
  4. import com.ydtech.modules.admin.model.SysUser;
  5. import com.ydtech.modules.admin.model.po.SysQyWeChat;
  6. import com.ydtech.modules.admin.service.SysQyWeChatService;
  7. import com.ydtech.modules.admin.service.SysSwitchConfigService;
  8. import com.ydtech.modules.admin.service.SysUserService;
  9. import com.ydtech.modules.admin.service.WechatCustomerService;
  10. import com.ydtech.modules.base.controller.BaseController;
  11. import com.ydtech.modules.protocol.utils.AssertionUtils;
  12. import com.ydtech.utils.StringUtils;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiOperation;
  15. import lombok.RequiredArgsConstructor;
  16. import org.springframework.web.bind.annotation.*;
  17. import java.time.LocalDateTime;
  18. import java.util.List;
  19. import java.util.Random;
  20. @RestController
  21. @RequestMapping("/sys/qy/wechat")
  22. @RequiredArgsConstructor
  23. @Api(tags = "企业微信宣传图管理")
  24. public class SysQyWeChatController {
  25. private final SysQyWeChatService sysQyWeChatService;
  26. private final SysUserService sysUserService;
  27. private final SysSwitchConfigService sysSwitchConfigService;
  28. private final WechatCustomerService wechatCustomerService;
  29. @ApiOperation(value = "配置宣传图/客服")
  30. @PostMapping(value = "/save/picture")
  31. public HttpResult<SysQyWeChat> save(@RequestBody SysQyWeChat sysQyWeChat) {
  32. SysQyWeChat serviceOne = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, sysQyWeChat.getUserId()));
  33. boolean save;
  34. sysQyWeChat.setOperator(BaseController.getUser().getName());
  35. sysQyWeChat.setOperatorTime(LocalDateTime.now());
  36. if (serviceOne != null) {
  37. sysQyWeChat.setId(serviceOne.getId());
  38. save = sysQyWeChatService.updateById(sysQyWeChat);
  39. }else{
  40. save = sysQyWeChatService.save(sysQyWeChat);
  41. }
  42. AssertionUtils.isSucceed(save, "添加失败");
  43. return HttpResult.ok("添加成功");
  44. }
  45. @ApiOperation(value = "查询当前员工宣传图 客服")
  46. @GetMapping(value = "/find/picture")
  47. public HttpResult<SysQyWeChat> findWechatPicture() {
  48. String userId = BaseController.getUser().getId();
  49. SysUser user = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getId, userId));
  50. SysQyWeChat sysQyWeChat = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, user.getLeaderId()));
  51. // 是否显示
  52. boolean b = sysSwitchConfigService.weComQRCodeDisplay();
  53. if (sysQyWeChat == null) {
  54. List<SysQyWeChat> list = sysQyWeChatService.list();
  55. sysQyWeChat = list.get(new Random().nextInt(list.size()));
  56. }
  57. sysQyWeChat.setOpenKfId(null);
  58. sysQyWeChat.setOpenKfName(null);
  59. sysQyWeChat.setDisplay(b);
  60. return HttpResult.ok(sysQyWeChat);
  61. }
  62. @ApiOperation(value = "查询对应员工宣传图")
  63. @GetMapping(value = "/find/picture/{userId}")
  64. public HttpResult<SysQyWeChat> findWechatPictureByUserId(@PathVariable("userId") String userId) {
  65. SysQyWeChat sysQyWeChat = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, userId));
  66. return HttpResult.ok(sysQyWeChat);
  67. }
  68. @ApiOperation(value = "查询微信客服链接")
  69. @PostMapping(value = "/find/wechatCustomer")
  70. public HttpResult<String> findWechatPictureByUserId() {
  71. String userId = BaseController.getUser().getId();
  72. SysUser user = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getId, userId));
  73. SysQyWeChat sysQyWeChat = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, user.getLeaderId()));
  74. if (sysQyWeChat == null) {
  75. List<SysQyWeChat> list = sysQyWeChatService.list();
  76. sysQyWeChat = list.get(new Random().nextInt(list.size()));
  77. }
  78. String s = wechatCustomerService.addContactWay(sysQyWeChat.getOpenKfId());
  79. if(StringUtils.isNotEmpty(s)){
  80. String url = s + "&scene_param=" + userId;
  81. return HttpResult.ok(url);
  82. }
  83. return HttpResult.ok(sysQyWeChat.getSupportStaffUrl());
  84. }
  85. }