| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package com.ydtech.modules.admin.controller;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.modules.admin.constants.SwitchConfig;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.admin.model.po.SysQyWeChat;
- import com.ydtech.modules.admin.service.*;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.protocol.utils.AssertionUtils;
- import com.ydtech.utils.StringUtils;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.RequiredArgsConstructor;
- import me.chanjar.weixin.common.error.WxErrorException;
- import org.springframework.web.bind.annotation.*;
- import java.time.LocalDateTime;
- import java.util.List;
- import java.util.Random;
- @RestController
- @RequestMapping("/sys/qy/wechat")
- @RequiredArgsConstructor
- @Api(tags = "企业微信宣传图管理")
- public class SysQyWeChatController {
- private final SysQyWeChatService sysQyWeChatService;
- private final SysUserService sysUserService;
- private final SysSwitchConfigService sysSwitchConfigService;
- private final SysWechatCustomerBusinessService sysWechatCustomerBusinessService;
- private final WechatCustomerService wechatCustomerService;
- private final SysSwitchConfigService switchConfigService;
- @ApiOperation(value = "配置宣传图/客服")
- @PostMapping(value = "/save/picture")
- public HttpResult<SysQyWeChat> save(@RequestBody SysQyWeChat sysQyWeChat) {
- SysQyWeChat serviceOne = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, sysQyWeChat.getUserId()));
- boolean save;
- sysQyWeChat.setOperator(BaseController.getUser().getName());
- sysQyWeChat.setOperatorTime(LocalDateTime.now());
- if (serviceOne != null) {
- sysQyWeChat.setId(serviceOne.getId());
- save = sysQyWeChatService.updateById(sysQyWeChat);
- } else {
- save = sysQyWeChatService.save(sysQyWeChat);
- }
- AssertionUtils.isSucceed(save, "添加失败");
- return HttpResult.ok("添加成功");
- }
- @ApiOperation(value = "查询当前员工宣传图 客服")
- @GetMapping(value = "/find/picture")
- public HttpResult<SysQyWeChat> findWechatPicture() {
- String userId = BaseController.getUser().getId();
- SysUser user = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getId, userId));
- SysQyWeChat sysQyWeChat = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, user.getLeaderId()));
- // 是否显示
- boolean b = sysSwitchConfigService.weComQRCodeDisplay();
- if (sysQyWeChat == null) {
- List<SysQyWeChat> list = sysQyWeChatService.list();
- sysQyWeChat = list.get(new Random().nextInt(list.size()));
- }
- sysQyWeChat.setOpenKfId(null);
- sysQyWeChat.setOpenKfName(null);
- sysQyWeChat.setDisplay(b);
- return HttpResult.ok(sysQyWeChat);
- }
- @ApiOperation(value = "查询对应员工宣传图")
- @GetMapping(value = "/find/picture/{userId}")
- public HttpResult<SysQyWeChat> findWechatPictureByUserId(@PathVariable("userId") String userId) {
- SysQyWeChat sysQyWeChat = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, userId));
- return HttpResult.ok(sysQyWeChat);
- }
- @ApiOperation(value = "查询微信客服链接")
- @PostMapping(value = "/find/wechatCustomer")
- public HttpResult<String> findWechatCustomerLink() throws WxErrorException {
- String userId = BaseController.getUser().getId();
- SysUser user = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getId, userId));
- if (switchConfigService.isEnabled(SwitchConfig.CUSTOMER.getCode())) {
- String link = sysWechatCustomerBusinessService.getWeChatCustomer(user);
- return HttpResult.ok(link);
- }
- SysQyWeChat sysQyWeChat = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, user.getLeaderId()));
- if (sysQyWeChat == null) {
- List<SysQyWeChat> list = sysQyWeChatService.list();
- sysQyWeChat = list.get(new Random().nextInt(list.size()));
- }
- String s = wechatCustomerService.addContactWay(sysQyWeChat.getOpenKfId());
- if (StringUtils.isNotEmpty(s)) {
- String url = s + "&scene_param=" + userId;
- return HttpResult.ok(url);
- }
- return HttpResult.ok(sysQyWeChat.getSupportStaffUrl());
- }
- }
|