SysQyWeChatController.java 4.6 KB

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