feat:智能柜枚举
fix:钱包余额bug
This commit is contained in:
1 parent
6bbe3c05c0
commit
971e9cba3a
9 files changed
+125
-21
No files matched your search
+26
@@ -0,0 +1,26 @@
|
||||
package com.bsd.pjcloud.thirdparty.constant.door;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.bsd.pjcloud.thirdparty.constant.ThirdZyBizEnumType;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum ThirdDoorApiTypeEnum {
|
||||
|
||||
DOOR_API("10", "智能柜接口"),
|
||||
DISCERN_API("20", "识别接口"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
private final String description;
|
||||
|
||||
public static ThirdDoorApiTypeEnum valueOfByType(String type) {
|
||||
if (ObjectUtil.isEmpty(type)) return null;
|
||||
return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get();
|
||||
}
|
||||
|
||||
}
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
package com.bsd.pjcloud.thirdparty.constant;
|
||||
package com.bsd.pjcloud.thirdparty.constant.door;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.bsd.pjcloud.thirdparty.dto.door;
|
||||
|
||||
import com.bsd.pjcloud.thirdparty.entity.door.ThirdDoorLogEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class ThirdDoorLogDto extends ThirdDoorLogEntity {
|
||||
|
||||
private LocalDateTime[] createTimeList;
|
||||
|
||||
}
|
||||
+5
-3
@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
import com.bsd.pjcloud.common.log.annotation.SysLog;
|
||||
import com.bsd.pjcloud.thirdparty.dto.door.ThirdDoorLogDto;
|
||||
import com.bsd.pjcloud.thirdparty.entity.door.ThirdDoorLogEntity;
|
||||
import com.bsd.pjcloud.thirdparty.service.ThirdDoorLogService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@@ -37,9 +39,9 @@ public class ThirdDoorLogController {
|
||||
@Operation(summary = "分页查询", description = "分页查询")
|
||||
@GetMapping("/page")
|
||||
@PreAuthorize("@pms.hasPermission('third_thirdDoorLog_view')")
|
||||
public R getThirdDoorLogPage(@ParameterObject Page page, @ParameterObject ThirdDoorLogEntity thirdDoorLog) {
|
||||
LambdaQueryWrapper<ThirdDoorLogEntity> wrapper = Wrappers.lambdaQuery();
|
||||
return R.ok(thirdDoorLogService.page(page, wrapper));
|
||||
public R getThirdDoorLogPage(@ParameterObject Page page, @ParameterObject ThirdDoorLogDto dto) {
|
||||
DataScope dataScope = null;
|
||||
return R.ok(thirdDoorLogService.scopePageList(page, dto, dataScope));
|
||||
}
|
||||
|
||||
@Operation(summary = "通过id查询", description = "通过id查询")
|
||||
|
||||
+20
-1
@@ -1,11 +1,30 @@
|
||||
package com.bsd.pjcloud.thirdparty.mapper.door;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper;
|
||||
import com.bsd.pjcloud.thirdparty.dto.door.ThirdDoorLogDto;
|
||||
import com.bsd.pjcloud.thirdparty.entity.door.ThirdDoorLogEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface ThirdDoorLogMapper extends PjcloudBaseMapper<ThirdDoorLogEntity> {
|
||||
|
||||
|
||||
default Page<ThirdDoorLogEntity> scopePageList(Page page, ThirdDoorLogDto dto, DataScope dataScope) {
|
||||
LambdaQueryWrapper<ThirdDoorLogEntity> wrapper = new LambdaQueryWrapper<ThirdDoorLogEntity>()
|
||||
.eq(ObjectUtil.isNotEmpty(dto.getApiType()), ThirdDoorLogEntity::getApiType, dto.getApiType())
|
||||
.eq(ObjectUtil.isNotEmpty(dto.getBizId()), ThirdDoorLogEntity::getBizId, dto.getBizId())
|
||||
.eq(ObjectUtil.isNotEmpty(dto.getBizType()), ThirdDoorLogEntity::getBizType, dto.getBizType())
|
||||
.between(
|
||||
ObjectUtil.isNotEmpty(dto.getCreateTimeList()),
|
||||
ThirdDoorLogEntity::getCreateTime,
|
||||
ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[0] : null,
|
||||
ObjectUtil.isNotEmpty(dto.getCreateTimeList()) ? dto.getCreateTimeList()[1] : null
|
||||
)
|
||||
.orderByDesc(ThirdDoorLogEntity::getCreateTime)
|
||||
.orderByDesc(ThirdDoorLogEntity::getId);
|
||||
return selectPageByScope(page, wrapper, dataScope);
|
||||
}
|
||||
}
|
||||
+6
@@ -1,8 +1,14 @@
|
||||
package com.bsd.pjcloud.thirdparty.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
import com.bsd.pjcloud.thirdparty.dto.door.ThirdDoorLogDto;
|
||||
import com.bsd.pjcloud.thirdparty.entity.door.ThirdDoorLogEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ThirdDoorLogService extends IService<ThirdDoorLogEntity> {
|
||||
|
||||
Page<ThirdDoorLogEntity> scopePageList(Page page, ThirdDoorLogDto dto, DataScope dataScope);
|
||||
}
|
||||
+9
@@ -1,11 +1,15 @@
|
||||
package com.bsd.pjcloud.thirdparty.service.impl.door;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
import com.bsd.pjcloud.thirdparty.dto.door.ThirdDoorLogDto;
|
||||
import com.bsd.pjcloud.thirdparty.entity.door.ThirdDoorLogEntity;
|
||||
import com.bsd.pjcloud.thirdparty.mapper.door.ThirdDoorLogMapper;
|
||||
import com.bsd.pjcloud.thirdparty.service.ThirdDoorLogService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 智能柜日志
|
||||
*
|
||||
@@ -14,4 +18,9 @@ import org.springframework.stereotype.Service;
|
||||
*/
|
||||
@Service
|
||||
public class ThirdDoorLogServiceImpl extends ServiceImpl<ThirdDoorLogMapper, ThirdDoorLogEntity> implements ThirdDoorLogService {
|
||||
|
||||
@Override
|
||||
public Page<ThirdDoorLogEntity> scopePageList(Page page, ThirdDoorLogDto dto, DataScope dataScope) {
|
||||
return baseMapper.scopePageList(page, dto, dataScope);
|
||||
}
|
||||
}
|
||||
+26
-13
@@ -3,7 +3,9 @@ package com.bsd.pjcloud.thirdparty.utils.door.api;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.bsd.pjcloud.thirdparty.constant.ThordDoorApiTypeEnum;
|
||||
import com.bsd.pjcloud.thirdparty.constant.door.ThirdDoorApiTypeEnum;
|
||||
import com.bsd.pjcloud.thirdparty.constant.door.ThordDoorApiTypeEnum;
|
||||
import com.bsd.pjcloud.thirdparty.entity.door.ThirdDoorLogEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@@ -12,37 +14,37 @@ import lombok.NoArgsConstructor;
|
||||
public class DoorApi {
|
||||
|
||||
// 设备注册
|
||||
public static final Api REGISTER = Api.builder().url("/ams/api/device/register").type(ThordDoorApiTypeEnum.REGISTER).method("post").contentType("application/json").build();
|
||||
public static final Api REGISTER = Api.builder().url("/ams/api/device/register").bizType(ThordDoorApiTypeEnum.REGISTER).method("post").contentType("application/json").build();
|
||||
|
||||
// 设备信息绑定
|
||||
public static final Api BIND = Api.builder().url("/ams/api/device/bind").type(ThordDoorApiTypeEnum.BIND).method("post").contentType("application/json").build();
|
||||
public static final Api BIND = Api.builder().url("/ams/api/device/bind").bizType(ThordDoorApiTypeEnum.BIND).method("post").contentType("application/json").build();
|
||||
|
||||
// 查询设备状态
|
||||
public static final Api STATUS = Api.builder().url("/ams/api/device/status").type(ThordDoorApiTypeEnum.STATUS).method("post").contentType("application/json").build();
|
||||
public static final Api STATUS = Api.builder().url("/ams/api/device/status").bizType(ThordDoorApiTypeEnum.STATUS).method("post").contentType("application/json").build();
|
||||
|
||||
// 设备重启
|
||||
public static final Api RESTART = Api.builder().url("/ams/api/device/restart").type(ThordDoorApiTypeEnum.RESTART).method("post").contentType("application/json").build();
|
||||
public static final Api RESTART = Api.builder().url("/ams/api/device/restart").bizType(ThordDoorApiTypeEnum.RESTART).method("post").contentType("application/json").build();
|
||||
|
||||
// 设备设置
|
||||
public static final Api SETTING = Api.builder().url("/ams/api/device/setting").type(ThordDoorApiTypeEnum.SETTING).method("post").contentType("application/json").build();
|
||||
public static final Api SETTING = Api.builder().url("/ams/api/device/setting").bizType(ThordDoorApiTypeEnum.SETTING).method("post").contentType("application/json").build();
|
||||
|
||||
// 音量设置
|
||||
public static final Api VOLUME = Api.builder().url("/ams/api/device/volume").type(ThordDoorApiTypeEnum.VOLUME).method("post").contentType("application/json").build();
|
||||
public static final Api VOLUME = Api.builder().url("/ams/api/device/volume").bizType(ThordDoorApiTypeEnum.VOLUME).method("post").contentType("application/json").build();
|
||||
|
||||
// 请求开锁
|
||||
public static final Api OPEN = Api.builder().url("/ams/api/event/open").type(ThordDoorApiTypeEnum.OPEN).method("post").contentType("application/json").build();
|
||||
public static final Api OPEN = Api.builder().url("/ams/api/event/open").bizType(ThordDoorApiTypeEnum.OPEN).method("post").contentType("application/json").build();
|
||||
|
||||
// 调取另一个摄像头视频
|
||||
public static final Api VIDEO = Api.builder().url("/ams/api/event/video").type(ThordDoorApiTypeEnum.VIDEO).method("post").contentType("application/json").build();
|
||||
public static final Api VIDEO = Api.builder().url("/ams/api/event/video").bizType(ThordDoorApiTypeEnum.VIDEO).method("post").contentType("application/json").build();
|
||||
|
||||
// 门锁开关通知
|
||||
public static final Api OPEN_CALLBACK = Api.builder().url("/door/callback/open").type(ThordDoorApiTypeEnum.OPEN_CALLBACK).method("post").contentType("application/json").build();
|
||||
public static final Api OPEN_CALLBACK = Api.builder().url("/door/callback/open").bizType(ThordDoorApiTypeEnum.OPEN_CALLBACK).method("post").contentType("application/json").build();
|
||||
|
||||
// 视频地址通知
|
||||
public static final Api VIDEO_CALLBACK = Api.builder().url("/door/callback/video").type(ThordDoorApiTypeEnum.VIDEO_CALLBACK).method("post").contentType("application/json").build();
|
||||
public static final Api VIDEO_CALLBACK = Api.builder().url("/door/callback/video").bizType(ThordDoorApiTypeEnum.VIDEO_CALLBACK).method("post").contentType("application/json").build();
|
||||
|
||||
// 设备状态通知
|
||||
public static final Api STATUS_CALLBACK = Api.builder().url("/door/callback/status").type(ThordDoorApiTypeEnum.STATUS_CALLBACK).method("post").contentType("application/json").build();
|
||||
public static final Api STATUS_CALLBACK = Api.builder().url("/door/callback/status").bizType(ThordDoorApiTypeEnum.STATUS_CALLBACK).method("post").contentType("application/json").build();
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@@ -56,7 +58,9 @@ public class DoorApi {
|
||||
|
||||
private String contentType;
|
||||
|
||||
private ThordDoorApiTypeEnum type;
|
||||
private ThirdDoorApiTypeEnum apiType = ThirdDoorApiTypeEnum.DOOR_API;
|
||||
|
||||
private ThordDoorApiTypeEnum bizType;
|
||||
|
||||
public HttpRequest getHttpRequest() {
|
||||
if (ObjectUtil.equals(method, "post")) {
|
||||
@@ -67,5 +71,14 @@ public class DoorApi {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public ThirdDoorLogEntity getInitLogEntity() {
|
||||
ThirdDoorLogEntity entity = new ThirdDoorLogEntity();
|
||||
entity.setBizId(null);
|
||||
entity.setBizType(bizType.getType());
|
||||
entity.setApiType(apiType.getType());
|
||||
entity.setApiUrl(url);
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -58,8 +58,25 @@
|
||||
<where>
|
||||
a.del_flag = 0
|
||||
<if test="dto.walletRecordMonth != null">
|
||||
AND a.create_time = (SELECT MAX(sub.create_time) FROM wallet_transaction sub WHERE sub.user_id = a.user_id AND
|
||||
DATE_FORMAT(sub.create_time, '%Y-%m') <= #{dto.walletRecordMonth})
|
||||
AND a.create_time = (
|
||||
SELECT MAX(sub.create_time)
|
||||
FROM wallet_transaction sub
|
||||
LEFT JOIN wallet_manage wallet on wallet.id = sub.wallet_id
|
||||
WHERE sub.user_id = a.user_id
|
||||
AND DATE_FORMAT(sub.create_time, '%Y-%m') <= #{dto.walletRecordMonth}
|
||||
<if test="dto.userId != null">
|
||||
AND sub.user_id = #{dto.userId}
|
||||
</if>
|
||||
<if test="dto.userIds != null and dto.userIds.size() != 0">
|
||||
and sub.user_id in
|
||||
<foreach collection="dto.userIds" item="v" open="(" close=")" separator=",">
|
||||
#{v}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="dto.walletTypeId != null">
|
||||
AND wallet.wallet_type_id = #{dto.walletTypeId}
|
||||
</if>
|
||||
)
|
||||
</if>
|
||||
<if test="dto.userId != null">
|
||||
AND a.user_id = #{dto.userId}
|
||||
|
||||
Reference in new issue
Block a user