| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.common.annotation.Log; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.common.constant.WxConstant; |
| | | import com.ruoyi.common.core.controller.FileController; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.common.enums.BusinessType; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.WebUtils; |
| | |
| | | import com.ruoyi.system.query.TCrmChangePointsQuery; |
| | | import com.ruoyi.system.query.TCrmClinicQuery; |
| | | import com.ruoyi.system.service.*; |
| | | import com.ruoyi.system.utils.util.ObsUploadUtil; |
| | | import com.ruoyi.system.utils.wx.model.WeixinProperties; |
| | | import com.ruoyi.system.utils.wx.tools.WxAppletTools; |
| | | import com.ruoyi.system.utils.xiMaUtil.XimaAIUtil; |
| | | import com.ruoyi.system.vo.TCrmClinicVO; |
| | | import com.ruoyi.system.vo.TSysAppUserVO; |
| | | import com.ruoyi.web.controller.tool.MsgUtils; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.http.entity.ContentType; |
| | | import org.apache.poi.ss.usermodel.Workbook; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.*; |
| | | import org.springframework.mock.web.MockMultipartFile; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.client.RestTemplate; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.IOException; |
| | | import java.net.URLEncoder; |
| | | import java.time.LocalDateTime; |
| | |
| | | * @author xiaochen |
| | | * @since 2025-08-20 |
| | | */ |
| | | @Slf4j |
| | | @Api(tags = "crm诊所管理") |
| | | @RestController |
| | | @RequestMapping("/t-crm-clinic") |
| | |
| | | private final TokenService tokenService; |
| | | private final MsgUtils msgUtils; |
| | | private final TSysMessageTemplateService sysMessageTemplateService; |
| | | private final RedisCache redisCache; |
| | | private final RestTemplate restTemplate; |
| | | private final WeixinProperties wxConfig; |
| | | @Autowired |
| | | public TCrmClinicController(TCrmClinicService crmClinicService, TCrmSupplierService crmSupplierService, TCrmBranchService crmBranchService, TCrmWarehouseService crmWarehouseService, TCrmSalespersonService crmSalespersonService, ISysUserService sysUserService, TCrmDeviceService crmDeviceService, TokenService tokenService, MsgUtils msgUtils, TSysMessageTemplateService sysMessageTemplateService) { |
| | | public TCrmClinicController(TCrmClinicService crmClinicService, TCrmSupplierService crmSupplierService, TCrmBranchService crmBranchService, TCrmWarehouseService crmWarehouseService, TCrmSalespersonService crmSalespersonService, ISysUserService sysUserService, TCrmDeviceService crmDeviceService, TokenService tokenService, MsgUtils msgUtils, TSysMessageTemplateService sysMessageTemplateService, RedisCache redisCache, RestTemplate restTemplate, WeixinProperties wxConfig) { |
| | | this.crmClinicService = crmClinicService; |
| | | this.crmSupplierService = crmSupplierService; |
| | | this.crmBranchService = crmBranchService; |
| | |
| | | this.tokenService = tokenService; |
| | | this.msgUtils = msgUtils; |
| | | this.sysMessageTemplateService = sysMessageTemplateService; |
| | | this.redisCache = redisCache; |
| | | this.restTemplate = restTemplate; |
| | | this.wxConfig = wxConfig; |
| | | } |
| | | |
| | | /** |
| | |
| | | @Log(title = "crm诊所管理信息-新增crm诊所管理", businessType = BusinessType.INSERT) |
| | | @ApiOperation(value = "添加crm诊所管理") |
| | | @PostMapping(value = "/add") |
| | | public R<Boolean> add(@Validated @RequestBody TCrmClinicDTO dto) { |
| | | public R<String> add(@Validated @RequestBody TCrmClinicDTO dto) { |
| | | Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); |
| | | if (roleType == 1){ |
| | | dto.setStatus(3); |
| | | }else { |
| | | dto.setStatus(1); |
| | | } |
| | | return crmClinicService.addClinic(dto); |
| | | WxAppletTools wxAppletTools = new WxAppletTools(restTemplate, wxConfig, redisCache); |
| | | // 获取access_token |
| | | String accessToken = wxAppletTools.getAccessToken(); |
| | | // 替换CREATE_CODE_URL |
| | | String url = WxConstant.CREATE_CODE_URL.replace("ACCESS_TOKEN", accessToken); |
| | | // 发送请求 |
| | | try { |
| | | HashMap<String, String> map = new HashMap<>(); |
| | | map.put("path", ""); |
| | | map.put("scene", "clinicId=" + dto.getId()); |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | headers.setContentType(MediaType.APPLICATION_JSON); |
| | | HttpEntity requestEntity = new HttpEntity(map, headers); |
| | | ResponseEntity<byte[]> rep = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class); |
| | | byte[] bytes = rep.getBody(); |
| | | ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); |
| | | MultipartFile file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), byteArrayInputStream); |
| | | String stringApiResult = ObsUploadUtil.obsUpload(file); |
| | | dto.setQrCode(stringApiResult); |
| | | } catch (Exception e) { |
| | | log.error("生成小程序码失败:{}", e.getMessage()); |
| | | } |
| | | crmClinicService.addClinic(dto); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |