package com.ruoyi.web.controller.api; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.lkl.laop.sdk.exception.SDKException; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ip.IpUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TSysOrderDto; import com.ruoyi.system.model.*; import com.ruoyi.system.query.TErpGoodsWarehouseQuery; import com.ruoyi.system.query.TSysAppUserQuery; import com.ruoyi.system.query.TSysEducationalInfoQuery; import com.ruoyi.system.query.TSysOrderQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TSysOrderDetailVo; import com.ruoyi.system.vo.TSysOrderPageVo; import com.ruoyi.web.core.config.LakalaConfig; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.SneakyThrows; import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.IOUtils; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.io.*; import java.math.BigDecimal; import java.math.RoundingMode; import java.nio.charset.StandardCharsets; import java.security.*; import java.security.cert.*; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ThreadPoolExecutor; import java.util.stream.Collectors; /** *

* 订单管理 前端控制器 *

* * @author xiaochen * @since 2025-08-20 */ @RestController @RequestMapping("") @Api(tags = "订单管理") public class TSysOrderController { private final TSysOrderService sysOrderService; private final TokenService tokenService; private final TCrmClinicService crmClinicService; private final TSysAppUserService sysAppUserService; private final TSysOrderGoodsService sysOrderGoodsService; @Autowired public TSysOrderController(TokenService tokenService, TSysOrderService sysOrderService, TCrmClinicService crmClinicService, TSysAppUserService sysAppUserService, TSysOrderGoodsService sysOrderGoodsService) { this.sysOrderService = sysOrderService; this.tokenService = tokenService; this.crmClinicService = crmClinicService; this.sysAppUserService = sysAppUserService; this.sysOrderGoodsService = sysOrderGoodsService; } /** * 获取诊所患者诊疗 订单列表 */ @ApiOperation(value = "获取诊所患者诊疗订单列表") @PostMapping(value = "/pageList") public R> pageList(@RequestBody TSysOrderQuery query) { SysUser user = tokenService.getLoginUser().getUser(); Integer roleType = user.getRoleType(); if(roleType == 5){ // 诊所 TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) .eq(TCrmClinic::getUserId, user.getUserId()) .last("LIMIT 1")); query.setClinicId(crmClinic.getId()); } return R.ok(sysOrderService.pageList(query)); } @ApiOperation(value = "获取诊所患者诊疗--搜索用户") @PostMapping(value = "/userList") public R> pageList(@RequestBody TSysAppUserQuery query) { LambdaQueryWrapper eq = new LambdaQueryWrapper().eq(TSysAppUser::getStatus, 1); if(query.getNickName() != null && !query.getNickName().isEmpty()){ eq.like(TSysAppUser::getNickName, query.getNickName()); } if(query.getPhone() != null && !query.getPhone().isEmpty()){ eq.like(TSysAppUser::getPhone, query.getPhone()); } List list = sysAppUserService.list(eq); return R.ok(list); } @ApiOperation(value = "诊所患者诊疗--确认添加") @PostMapping(value = "/add") public R add(@RequestBody @Valid TSysOrderDto dto) { SysUser user = tokenService.getLoginUser().getUser(); Integer roleType = user.getRoleType(); if(roleType == 5){ // 诊所 TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class) .eq(TCrmClinic::getUserId, user.getUserId()) .last("LIMIT 1")); sysOrderService.add(dto,crmClinic); return R.ok("添加成功"); } return R.fail("添加失败"); } @ApiOperation(value = "诊所患者诊疗--详情") @GetMapping(value = "/detail/{id}") public R detail(@PathVariable String id) { TSysOrder tSysOrder = sysOrderService.getById(id); TSysOrderDetailVo detail = new TSysOrderDetailVo(); detail.setId(tSysOrder.getId()); String appUserId = tSysOrder.getAppUserId(); TSysAppUser appUser = sysAppUserService.getById(appUserId); detail.setUserName(appUser.getNickName()); detail.setCheckTime(tSysOrder.getCheckTime()); detail.setTotalMoney(tSysOrder.getTotalMoney()); List list = sysOrderGoodsService.list(new LambdaQueryWrapper().eq(TSysOrderGoods::getOrderId, id)); detail.setList(list); return R.ok(detail); } }