xuhy
2026-01-06 3d8e6a16f98bc01d3cee3a2733fa9a4eff8db2c7
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java
@@ -1,33 +1,37 @@
package com.ruoyi.web.controller.api;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.controller.FileController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.model.TCrmClinic;
import com.ruoyi.system.model.TSysAppUser;
import com.ruoyi.system.model.TSysChronicDisease;
import com.ruoyi.system.model.TSysInspection;
import com.ruoyi.system.query.TSysAppUserQuery;
import com.ruoyi.system.service.TSysAppUserService;
import com.ruoyi.system.service.TSysChronicDiseaseService;
import com.ruoyi.system.service.TSysInspectionService;
import com.ruoyi.system.service.TSysOrderService;
import com.ruoyi.system.service.*;
import com.ruoyi.system.utils.wx.model.WeixinProperties;
import com.ruoyi.system.utils.xiMaUtil.XimaAIUtil;
import com.ruoyi.system.vo.TSysAppUserVO;
import com.ruoyi.system.vo.TSysOrderVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
/**
 * <p>
@@ -37,6 +41,7 @@
 * @author xiaochen
 * @since 2025-08-20
 */
@Slf4j
@Api(tags = "用户管理")
@RestController
@RequestMapping("/t-sys-app-user")
@@ -48,14 +53,24 @@
    private final TSysChronicDiseaseService sysChronicDiseaseService;
    private final TokenService tokenService;
    private final RedisCache redisCache;
    private final XimaAIUtil ximaAIUtil;
    private final RestTemplate restTemplate;
    private final FileController fileController;
    private final WeixinProperties wxConfig;
    private final TCrmClinicService crmClinicService;
    @Autowired
    public TSysAppUserController(TSysAppUserService sysAppUserService, TSysInspectionService sysInspectionService, TSysOrderService sysOrderService, TSysChronicDiseaseService sysChronicDiseaseService, TokenService tokenService, RedisCache redisCache) {
    public TSysAppUserController(TSysAppUserService sysAppUserService, TSysInspectionService sysInspectionService, TSysOrderService sysOrderService, TSysChronicDiseaseService sysChronicDiseaseService, TokenService tokenService, RedisCache redisCache, XimaAIUtil ximaAIUtil, RestTemplate restTemplate, FileController fileController, WeixinProperties wxConfig, TCrmClinicService crmClinicService) {
        this.sysAppUserService = sysAppUserService;
        this.sysInspectionService = sysInspectionService;
        this.sysOrderService = sysOrderService;
        this.sysChronicDiseaseService = sysChronicDiseaseService;
        this.tokenService = tokenService;
        this.redisCache = redisCache;
        this.ximaAIUtil = ximaAIUtil;
        this.restTemplate = restTemplate;
        this.fileController = fileController;
        this.wxConfig = wxConfig;
        this.crmClinicService = crmClinicService;
    }
    /**
@@ -133,5 +148,43 @@
        return R.ok();
    }
    /**
     * 获取AI检测页面
     */
    @ApiOperation(value = "获取AI检测页面[1229]",notes = "设备类型 deviceType: android ios")
    @GetMapping(value = "/getXiMaAiDetection")
    public R<JSONObject> getXiMaAiDetection(@RequestParam String deviceType) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        TSysAppUser sysAppUser = sysAppUserService.getById(userId);
        if(StringUtils.isBlank(sysAppUser.getNickName()) || StringUtils.isBlank(sysAppUser.getPhone()) || Objects.isNull(sysAppUser.getSex()) ||Objects.isNull(sysAppUser.getUserHeight()) || Objects.isNull(sysAppUser.getUserWeight())){
            return R.fail("请先完善用户信息");
        }
        if(StringUtils.isBlank(sysAppUser.getIdentifierNumber())){
            String identifierNumber = UUID.randomUUID().toString().replace("-", "");
            sysAppUser.setIdentifierNumber(identifierNumber);
            sysAppUserService.updateById(sysAppUser);
        }
        JSONObject authorizationH5 = ximaAIUtil.getAuthorizationH5(sysAppUser.getIdentifierNumber(), sysAppUser.getNickName(), sysAppUser.getPhone(), sysAppUser.getSex() == 1 ? "0" : "1", sysAppUser.getUserHeight(), sysAppUser.getUserWeight(), deviceType);
        return R.ok(authorizationH5);
    }
    @ApiOperation(value = "查询诊所邀请码[1229]")
    @GetMapping("/getClinicQrCode")
    public R<String> getClinicQrCode() {
        String userId = tokenService.getLoginUserApplet().getUserId();
        TSysAppUser sysAppUser = sysAppUserService.getById(userId);
        if(StringUtils.isBlank(sysAppUser.getClinicId())){
            return R.fail("请先绑定诊所");
        }
        TCrmClinic crmClinic = crmClinicService.getById(sysAppUser.getClinicId());
        if(Objects.isNull(crmClinic)){
            return R.fail("未找到该诊所信息");
        }
        return R.ok(crmClinic.getQrCode());
    }
}