调整接口

This commit is contained in:
andy 2025-04-23 15:31:52 +08:00
parent a3f357ba55
commit df6ea01c3e
9 changed files with 57 additions and 35 deletions

View File

@ -37,5 +37,11 @@ public class BaseResponse<T> implements Serializable {
return this; return this;
} }
public BaseResponse<T> error(CodeMsg codeMsg) {
this.status = 1;
this.code = codeMsg.getCode();
this.msg = codeMsg.getMsg();
return this;
}
} }

View File

@ -17,7 +17,7 @@ import java.util.List;
@Schema(name = "运营商信息-> 站端信息-> 设备信息") @Schema(name = "运营商信息-> 站端信息-> 设备信息")
public class DeviceDto { public class DeviceDto {
@Schema(description = "id") @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED)
private String id; private String id;
@Schema(description = "父级Id") @Schema(description = "父级Id")
private String parentId; private String parentId;

View File

@ -19,6 +19,10 @@ public interface HDConstant {
public static final String LIVE_EXISTS_CODE = "MP130007"; public static final String LIVE_EXISTS_CODE = "MP130007";
public static final String LIVE_NOT_EXISTS_CODE = "LV1002";
} }

View File

@ -2,7 +2,7 @@ package com.evotech.hd.cloud.controller;
import com.evotech.hd.cloud.entity.request.IndependentAccountRequest; import com.evotech.hd.cloud.entity.request.IndependentAccountRequest;
import com.evotech.hd.cloud.service.IndependentAccountService; import com.evotech.hd.cloud.service.IndependentAccountService;
import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.Dto.BaseResponse;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -36,7 +36,7 @@ public class IndependentAccountController {
@Operation(summary = "查询") @Operation(summary = "查询")
@GetMapping("/list") @GetMapping("/list")
@ApiOperationSupport(order = 4) @ApiOperationSupport(order = 4)
public Result<Map<String, Object>> list(@ParameterObject IndependentAccountRequest params) { public BaseResponse<Map<String, Object>> list(@ParameterObject IndependentAccountRequest params) {
return independentAccountService.pageList(params); return independentAccountService.pageList(params);
} }

View File

@ -1,9 +1,10 @@
package com.evotech.hd.cloud.controller.dh; package com.evotech.hd.cloud.controller.dh;
import com.evotech.hd.cloud.service.DHDeviceService; import com.evotech.hd.cloud.service.DHDeviceService;
import com.evotech.hd.common.core.Dto.BaseResponse;
import com.evotech.hd.common.core.Dto.DeviceDto; import com.evotech.hd.common.core.Dto.DeviceDto;
import com.evotech.hd.common.core.entity.Result;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -27,15 +28,16 @@ public class DHController {
@Resource @Resource
private DHDeviceService dhDeviceService; private DHDeviceService dhDeviceService;
@Operation(summary = "设备列表")
@GetMapping("/device/list") @GetMapping("/device/list")
public Result<List<DeviceDto>> deviceList() { public BaseResponse<List<DeviceDto>> deviceList() {
return new Result().success(dhDeviceService.findList()); return new BaseResponse().success(dhDeviceService.findList());
} }
@Operation(summary = "直播地址", description = "直接返回直播地址")
@PostMapping("/device/live") @PostMapping("/device/live")
public Result<String> live(@RequestParam String deviceId, @RequestParam String channelId) { public BaseResponse<String> live(@RequestParam String deviceId, @RequestParam String channelId) {
return new Result().success(dhDeviceService.live(deviceId, channelId)); return new BaseResponse().success(dhDeviceService.live(deviceId, channelId));
} }
} }

View File

@ -19,7 +19,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper=false) @EqualsAndHashCode(callSuper=false)
public class IndependentAccountRequest extends BasePageRequest { public class IndependentAccountRequest extends BasePageRequest {
@Schema(description = "分账状态") @Schema(description = "分账状态", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer status; private Integer status;
@Schema(description = "运营商ID") @Schema(description = "运营商ID")

View File

@ -1,7 +1,7 @@
package com.evotech.hd.cloud.service; package com.evotech.hd.cloud.service;
import com.evotech.hd.cloud.entity.request.IndependentAccountRequest; import com.evotech.hd.cloud.entity.request.IndependentAccountRequest;
import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.Dto.BaseResponse;
import com.evotech.hd.common.core.entity.cloud.TaxPoint; import com.evotech.hd.common.core.entity.cloud.TaxPoint;
import java.util.Map; import java.util.Map;
@ -19,5 +19,5 @@ public interface IndependentAccountService {
void addIndependentAccount(TaxPoint taxPoint, String stationCode); void addIndependentAccount(TaxPoint taxPoint, String stationCode);
public Result<Map<String, Object>> pageList(IndependentAccountRequest params); public BaseResponse<Map<String, Object>> pageList(IndependentAccountRequest params);
} }

View File

@ -15,11 +15,13 @@ import com.evotech.hd.common.core.utils.Collections;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -36,6 +38,8 @@ import java.util.stream.Collectors;
@Service @Service
public class DHDeviceServiceImpl implements DHDeviceService { public class DHDeviceServiceImpl implements DHDeviceService {
@Value("${yt.test:false}")
Boolean ytTest;
@Resource @Resource
ResourceService resourceService; ResourceService resourceService;
@Resource @Resource
@ -55,21 +59,21 @@ public class DHDeviceServiceImpl implements DHDeviceService {
@Override @Override
public Result<String> live(String deviceId, String channelId) { public Result<String> live(String deviceId, String channelId) {
AtomicReference<String> url = new AtomicReference<>(""); AtomicReference<String> url = new AtomicReference<>("");
JSONObject liveJSON = DHRequestUtil.live(deviceId,channelId); JSONObject liveInfoJSON = DHRequestUtil.liveInfo(deviceId,channelId);
JSONArray urlArray = null; JSONArray urlArray = null;
if(HDConstant.DHConstant.LIVE_EXISTS_CODE.equals(liveJSON.getString("code"))){ if(HDConstant.DHConstant.LIVE_NOT_EXISTS_CODE.equals(liveInfoJSON.getString("code"))){
JSONObject liveInfoJSON = DHRequestUtil.liveInfo(deviceId,channelId); JSONObject liveJSON = DHRequestUtil.live(deviceId,channelId);
urlArray = liveInfoJSON.getJSONArray("streams"); urlArray = liveJSON.getJSONArray("streams");
}else{ }else{
//如果不包含code, 则成功了, 直接获取就行 //如果不包含code, 则成功了, 直接获取就行
urlArray = liveJSON.getJSONArray("streams"); urlArray = liveInfoJSON.getJSONArray("streams");
} }
if(urlArray != null){ if(urlArray != null){
urlArray.stream().forEach( urlJSON ->{ urlArray.stream().forEach( urlJSON ->{
JSONObject urlObj = (JSONObject)urlJSON; JSONObject urlObj = (JSONObject)urlJSON;
// 码流类型0:高清1:标清 // 码流类型0:高清1:标清
if("1".equals(urlObj.getString("streamId")) && urlObj.getString("hls").contains("proto=https")){ if("0".equals(urlObj.getString("streamId")) && urlObj.getString("hls").contains("proto=https")){
url.set(urlObj.getString("hls")); url.set(urlObj.getString("hls"));
} }
}); });
@ -88,16 +92,22 @@ public class DHDeviceServiceImpl implements DHDeviceService {
Boolean findList = true; Boolean findList = true;
Integer page = 1; Integer page = 1;
List<DeviceDto> result = Collections.emptyList(); List<DeviceDto> result = Collections.emptyList();
Map<String, Object> params = Collections.asMap("pageSize", 200);
if(StringUtils.isNotEmpty(storeId) && ytTest){
params.put("storeId",storeId);
}
while (findList){ while (findList){
JSONObject jsonObject = DHRequestUtil.deviceList(Collections.asMap("pageNum", page, "pageSize", 200, "storeId",storeId)); params.put("pageNum", page);
if(HDConstant.DHConstant.SUCCESS_CODE.equals(jsonObject.getString("code"))){ JSONObject jsonObject = DHRequestUtil.deviceList(params);
JSONObject jsonData = jsonObject.getJSONObject("data"); //JSONObject jsonObject = DHRequestUtil.deviceList(Collections.asMap("pageNum", page, "pageSize", 200, "storeId",storeId));
Long totalRows = jsonData.getLong("totalRows"); // if(HDConstant.DHConstant.SUCCESS_CODE.equals(jsonObject.getString("code"))){
// JSONObject jsonData = jsonObject.getJSONObject("data");
Long totalRows = jsonObject.getLong("totalRows");
//如果totalRows.compareTo(page*pageSize) <= 0 则证明数据已经抓取完 //如果totalRows.compareTo(page*pageSize) <= 0 则证明数据已经抓取完
if(totalRows.compareTo(new BigDecimal(page).multiply(new BigDecimal(200)).longValue()) <= 0){ if(totalRows.compareTo(new BigDecimal(page).multiply(new BigDecimal(200)).longValue()) <= 0){
findList = false; findList = false;
} }
JSONArray pageData = jsonData.getJSONArray("pageData"); JSONArray pageData = jsonObject.getJSONArray("pageData");
if(pageData != null && !pageData.isEmpty()){ if(pageData != null && !pageData.isEmpty()){
pageData.stream().forEach(pData ->{ pageData.stream().forEach(pData ->{
JSONObject pj = (JSONObject)pData; JSONObject pj = (JSONObject)pData;
@ -113,10 +123,10 @@ public class DHDeviceServiceImpl implements DHDeviceService {
}); });
} }
page = page + 1; page = page + 1;
}else{ // }else{
findList = false; // findList = false;
log.error("大华(DH)异常============{}", jsonObject.getString("msg")); // log.error("大华(DH)异常============{}", jsonObject.getString("msg"));
} // }
} }
return result; return result;
} }
@ -141,9 +151,9 @@ public class DHDeviceServiceImpl implements DHDeviceService {
} }
public static void main(String[] args) { // public static void main(String[] args) {
System.out.println(Long.valueOf(201).compareTo(new BigDecimal(2).multiply(new BigDecimal(200)).longValue())); // System.out.println(Long.valueOf(201).compareTo(new BigDecimal(2).multiply(new BigDecimal(200)).longValue()));
} // }
//
} }

View File

@ -9,8 +9,8 @@ import com.evotech.hd.cloud.entity.request.IndependentAccountRequest;
import com.evotech.hd.cloud.service.IndependentAccountDetailService; import com.evotech.hd.cloud.service.IndependentAccountDetailService;
import com.evotech.hd.cloud.service.IndependentAccountService; import com.evotech.hd.cloud.service.IndependentAccountService;
import com.evotech.hd.cloud.service.rpc.ResourceService; import com.evotech.hd.cloud.service.rpc.ResourceService;
import com.evotech.hd.common.core.Dto.BaseResponse;
import com.evotech.hd.common.core.Dto.ResponseUtil; import com.evotech.hd.common.core.Dto.ResponseUtil;
import com.evotech.hd.common.core.entity.Result;
import com.evotech.hd.common.core.entity.cloud.BatteryStation; import com.evotech.hd.common.core.entity.cloud.BatteryStation;
import com.evotech.hd.common.core.entity.cloud.IndependentAccount; import com.evotech.hd.common.core.entity.cloud.IndependentAccount;
import com.evotech.hd.common.core.entity.cloud.TaxPoint; import com.evotech.hd.common.core.entity.cloud.TaxPoint;
@ -96,16 +96,16 @@ public class IndependentAccountServiceImpl implements IndependentAccountService
} }
@Override @Override
public Result<Map<String, Object>> pageList(IndependentAccountRequest params) { public BaseResponse<Map<String, Object>> pageList(IndependentAccountRequest params) {
Page<IndependentAccount> page = new Page<IndependentAccount>(params.getPageNo(), params.getPageSize()); Page<IndependentAccount> page = new Page<IndependentAccount>(params.getPageNo(), params.getPageSize());
List<IndependentAccount> list = independentAccountDao.pageList(page, params); List<IndependentAccount> list = independentAccountDao.pageList(page, params);
if (list.isEmpty()) { if (list.isEmpty()) {
return new Result<Map<String, Object>>().error(CodeMsg.DATABASE_RESULT_NULL); return new BaseResponse<Map<String, Object>>().error(CodeMsg.DATABASE_RESULT_NULL);
} }
IndependentAccount totalAmount = independentAccountDao.countAmount(params); IndependentAccount totalAmount = independentAccountDao.countAmount(params);
return new Result<Map<String, Object>>().success(Collections.asMap("pageList", page.setRecords(list), "totalAmount", totalAmount)); return new BaseResponse<Map<String, Object>>().success(Collections.asMap("pageList", page.setRecords(list), "totalAmount", totalAmount));
} }