diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeOptionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeOptionDAO.java index 57cfbc09e..8230d676d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeOptionDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeOptionDAO.java @@ -12,6 +12,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; import tk.mybatis.mapper.entity.Example; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -44,6 +45,9 @@ public class StoreTypeOptionDAO { } public List selectByIds(List optionIds,Long storeTypeId){ + if (storeTypeId==null||CollectionUtils.isEmpty(optionIds)){ + return new ArrayList<>(); + } Example example = new Example(StoreTypeOptionDO.class); example.createCriteria().andIn("optionId", optionIds).andEqualTo("storeTypeId",storeTypeId); return mapper.selectByExample(example); diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/huoma/StoreXinFaDeviceDetail.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/huoma/StoreXinFaDeviceDetail.java index 9868fb426..f9e855c97 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/huoma/StoreXinFaDeviceDetail.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/huoma/StoreXinFaDeviceDetail.java @@ -10,6 +10,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.lang.reflect.Type; +import java.util.Date; +import java.util.List; /** * @Author suzhuhong @@ -38,7 +40,7 @@ public class StoreXinFaDeviceDetail { /** * 设备连接状态 0:未连接 1:已连接 */ - @ApiModelProperty(value = "设备连接状态 false:未连接 true:已连接") + @ApiModelProperty(value = "设备连接状态未连接 1:已连接") private Boolean isConnect; @ApiModelProperty(value = "授权码") @@ -68,6 +70,201 @@ public class StoreXinFaDeviceDetail { @ApiModelProperty(value = "内用内存小于300M 或者 浏览器版本小于60") private Boolean flag; + @ApiModelProperty("应用版本") + private String appVersion; + + @ApiModelProperty("屏幕角度") + private String screenAngle; + + @ApiModelProperty("分类ID") + private Long classifyId; + + @ApiModelProperty("点位名称") + private String pointName; + + @ApiModelProperty("渠道") + private Integer channel; + + @ApiModelProperty("类型") + private Integer type; + + @ApiModelProperty("商户名称") + private String merchantName; + + @ApiModelProperty("销售人ID") + private Long sellerId; + + @ApiModelProperty("客户端类型") + private String clientType; + + @ApiModelProperty("管理信息") + private String manageInfo; + + @ApiModelProperty("节目名称") + private String programName; + + @ApiModelProperty("型号") + private String model; + +// @ApiModelProperty("标签") +// private List tag; + + @ApiModelProperty("品牌") + private String brand; + + @ApiModelProperty("屏幕点位") + private Integer screenPoint; + + @ApiModelProperty("是否子终端") + private Boolean isChildTerminal; + + @ApiModelProperty("序列号") + private String serialNum; + + @ApiModelProperty("签到时间") + private String signTime; + + @ApiModelProperty("IP地址") + private String ip; + + @ApiModelProperty("CPU") + private String cpu; + + @ApiModelProperty("是否激活") + private Boolean active; + + @ApiModelProperty("激活时间") + private String activateTime; + + @ApiModelProperty("时区") + private String timeZone; + + @ApiModelProperty("空闲容量") + private String freeCapacity; + + @ApiModelProperty("设备信息") + private String deviceInfo; + + @ApiModelProperty("使用状态") + private Integer useStatus; + + @ApiModelProperty("POS X坐标") + private Integer posX; + + @ApiModelProperty("POS Y坐标") + private Integer posY; + + @ApiModelProperty("授权信息") + private License license; + + @ApiModelProperty("门店容量") + private String storeCapacity; + + @ApiModelProperty("尺寸") + private String size; + + @ApiModelProperty("图片模式") + private String imgMode; + + @ApiModelProperty("设备唯一ID") + private String deviceUId; + + @ApiModelProperty("设备") + private String device; + +// @ApiModelProperty("标签ID列表") +// private List tagIdList; + + @ApiModelProperty("最后更新时间") + private String lastUpdateTime; + + @ApiModelProperty("日志类型") + private String logType; + + @ApiModelProperty("编码") + private String code; + + @ApiModelProperty("是否连接") + private Boolean connect; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("终端ID") + private Long terminalId; + + @ApiModelProperty("视频模式") + private String videoMode; + + @ApiModelProperty("MAC地址") + private String mac; + + @ApiModelProperty("制造商") + private String manufacturer; + + @ApiModelProperty("H5版本") + private String h5Version; + + @ApiModelProperty("是否删除") + private Boolean isDeleted; + + @ApiModelProperty("操作系统版本") + private String osVersion; + + @ApiModelProperty("点位ID") + private Long pointId; + + @ApiModelProperty("行数") + private Integer rowCount; + + @ApiModelProperty("DPI") + private String dpi; + + @ApiModelProperty("渠道ID") + private Long channelId; + + @ApiModelProperty("方向") + private String orientation; + + @ApiModelProperty("创建时间") + private String createTime; + + @ApiModelProperty("操作系统") + private String os; + + @ApiModelProperty("切换配置") + private String switchConfig; + + @ApiModelProperty("浏览器内核") + private String browserKernel; + + @ApiModelProperty("更新时间") + private String updateTime; + + @ApiModelProperty("点位编号") + private String pointNo; + + @ApiModelProperty("Token") + private String token; + + @ApiModelProperty("删除") + private Boolean deleted; + + @ApiModelProperty("列数") + private Integer colCount; + + @ApiModelProperty("链接类型") + private String linkType; + + @ApiModelProperty("渠道名称") + private String channelName; + + @ApiModelProperty("操作") + private List operation; + + @ApiModelProperty("节目ID") + private Long programId; + public boolean getFlag() { if (StringUtil.isEmpty(availRam)||StringUtil.isEmpty(userAgent)){ return false; @@ -88,4 +285,22 @@ public class StoreXinFaDeviceDetail { public String getDeviceId() { return id; } + + /** + * 授权信息内部类 + */ + @Data + public static class License { + @ApiModelProperty("开始时间") + private String startTime; + + @ApiModelProperty("结束时间") + private String endTime; + + @ApiModelProperty("授权ID") + private Long id; + + @ApiModelProperty("状态") + private Integer status; + } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/StoreNumRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/StoreNumRequest.java new file mode 100644 index 000000000..e2bf3d426 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/StoreNumRequest.java @@ -0,0 +1,17 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Auther zx_szh + * @Date 2026/4/14 15:00 + * @Version 1.0 + */ +@Data +public class StoreNumRequest { + + @ApiModelProperty("门店编码") + private String storeNum; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java index e751d252a..33843b91a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java @@ -571,6 +571,9 @@ public class StoreServiceImpl implements StoreService { dto.setBrand(FranchiseBrandEnum.getDescByCode(store.getJoinBrand())); dto.setOrderMiniProgramName(store.getMiniProgramOrderStoreName()); dto.setStatus(StoreStatusEnum.getName(store.getStoreStatus())); + dto.setCity(store.getCity()); + dto.setProvince(store.getProvince()); + dto.setCity(store.getCity()); if (store.getRegionId() != null){ dto.setRegionId(store.getRegionId()); dto.setManagerSupervisionName(regionMap.get(store.getRegionId())); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/xinfa/XinFaBusinessServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/xinfa/XinFaBusinessServiceImpl.java index b00e6b0dc..2d2d89a23 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/xinfa/XinFaBusinessServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/xinfa/XinFaBusinessServiceImpl.java @@ -1,10 +1,13 @@ package com.cool.store.service.impl.xinfa; import com.cool.store.dto.huoma.*; +import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.SpecialTagEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.response.ResponseResult; import com.cool.store.service.xinfa.XinFaBusinessService; import com.cool.store.service.xinfa.XinFaDeviceService; +import com.cool.store.utils.poi.StringUtils; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; @@ -27,6 +30,9 @@ public class XinFaBusinessServiceImpl implements XinFaBusinessService { @Override public List getStoreXinFaDeviceDetail(String storeNum) { + if (StringUtils.isEmpty(storeNum)){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } return xinFaDeviceService.getStoreXinFaDeviceDetail(storeNum); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/order/impl/MiniStoreOrderServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/order/impl/MiniStoreOrderServiceImpl.java index d341e06d6..2b7e0aa58 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/order/impl/MiniStoreOrderServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/order/impl/MiniStoreOrderServiceImpl.java @@ -2,6 +2,7 @@ package com.cool.store.service.order.impl; import cn.hutool.core.util.PageUtil; import com.alibaba.fastjson.JSONObject; +import com.cool.store.constants.CommonConstants; import com.cool.store.constants.RedisConstant; import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.*; @@ -74,6 +75,7 @@ import lombok.RequiredArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -129,6 +131,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService { private final FranchiseFeeMapper franchiseFeeMapper; private final PushService pushService; private final StoreOrderOptionSnapshotDAO storeOrderOptionSnapshotDAO; + @Value("${spring.profiles.active}") + private String active; @Override @@ -2042,8 +2046,11 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService { return Collections.emptyList(); } + Boolean isOnline = active.equals(CommonConstants.HD_ENV) || active.equals(CommonConstants.ONLINE_ENV); + Long tableId = isOnline ? 38L : 32L; + // 获取费用类型字典映射(费用名称) - Map expenseTypeNameMap = buildDictNameMap(32L); + Map expenseTypeNameMap = buildDictNameMap(tableId); // 获取配置大类名称映射 Set categoryCodeSet = snapshotList.stream() diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/xinfa/XinFaDeviceService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/xinfa/XinFaDeviceService.java index 43e534aeb..865241cdc 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/xinfa/XinFaDeviceService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/xinfa/XinFaDeviceService.java @@ -316,7 +316,7 @@ public class XinFaDeviceService { } return list; }catch (Exception e){ - log.error("getStoreXinFaDeviceDetailByPointId解析获取data失败,url:{},responseBody:{}",huoMaTokenUrl, responseBody); + log.error("getStoreXinFaDeviceDetailByPointId解析获取data失败,url:{},responseBody:{},exception:{}",huoMaTokenUrl, responseBody,e.getMessage()); } return null; } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java index a651c087f..6bb16fc7a 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java @@ -3,6 +3,7 @@ package com.cool.store.controller.webb; import com.alibaba.fastjson.JSONObject; import com.cool.store.annotation.Debounce; import com.cool.store.dto.*; +import com.cool.store.dto.huoma.StoreXinFaDeviceDetail; import com.cool.store.dto.region.BigRegionDTO; import com.cool.store.dto.store.StoreUserPositionDTO; import com.cool.store.dto.wallet.PaymentDTO; @@ -31,6 +32,8 @@ import com.cool.store.response.bigdata.ApiResponse; import com.cool.store.service.*; import com.cool.store.service.privatesphere.PrivateSphereQrService; import com.cool.store.service.wallet.WalletService; +import com.cool.store.service.xinfa.XinFaBusinessService; +import com.cool.store.service.xinfa.XinFaDeviceService; import com.cool.store.utils.HttpHelper; import com.cool.store.utils.poi.StringUtils; import com.cool.store.service.close.CloseStoreService; @@ -88,6 +91,8 @@ public class OpenApiController { RegionService regionService; @Resource PrivateSphereQrService privateSphereQrService; + @Resource + XinFaBusinessService xinFaBusinessService; @PostMapping("/statusRefresh") public ApiResponse statusRefresh(@RequestBody StatusRefreshDTO statusRefreshDTO){ @@ -303,4 +308,11 @@ public class OpenApiController { request.setClientIp(HttpHelper.getIpAddr(httpRequest)); return ApiResponse.success(privateSphereQrService.getPrivateSphereQr(request)); } + + @ApiOperation("获取门店设备列表") + @PostMapping("/getDeviceByStoreNum") + public ApiResponse> getStoreXinFaDeviceDetail(@RequestBody StoreNumRequest request) { + return ApiResponse.success(xinFaBusinessService.getStoreXinFaDeviceDetail(request.getStoreNum())); + } + }