| @@ -1,5 +1,6 @@ | |||
| package com.xueyi.system.api.pass.domain.dto; | |||
| import com.xueyi.system.api.digitalmans.domain.dto.DmVisitorsDto; | |||
| import com.xueyi.system.api.pass.domain.po.DmRecognizedRecordsPo; | |||
| import lombok.Data; | |||
| import lombok.EqualsAndHashCode; | |||
| @@ -28,4 +29,6 @@ public class DmRecognizedRecordsDto extends DmRecognizedRecordsPo { | |||
| public final static Integer TYPE_STAFF = 1; | |||
| public final static Integer TYPE_STRANGER = 6; | |||
| private DmVisitorsDto visitor; | |||
| } | |||
| @@ -0,0 +1,17 @@ | |||
| package com.xueyi.system.staff.domain.model; | |||
| import com.xueyi.common.core.web.entity.model.BaseConverter; | |||
| import com.xueyi.system.staff.domain.dto.DmVisitorOperateLogDto; | |||
| import com.xueyi.system.staff.domain.po.DmVisitorOperateLogPo; | |||
| import com.xueyi.system.staff.domain.query.DmVisitorOperateLogQuery; | |||
| import org.mapstruct.Mapper; | |||
| import org.mapstruct.MappingConstants; | |||
| /** | |||
| * 访客 对象映射器 | |||
| * | |||
| * @author xueyi | |||
| */ | |||
| @Mapper(componentModel = MappingConstants.ComponentModel.SPRING) | |||
| public interface DmVisitorOperateLogConverter extends BaseConverter<DmVisitorOperateLogQuery, DmVisitorOperateLogDto, DmVisitorOperateLogPo> { | |||
| } | |||
| @@ -18,7 +18,7 @@ import java.time.LocalDateTime; | |||
| */ | |||
| @Data | |||
| @EqualsAndHashCode(callSuper = true) | |||
| @TableName(value = "dm_visitor_operate_log",excludeProperty = {"name","sort","createBy","createTime","updateBy","updateTime","remark"}) | |||
| @TableName(value = "dm_visitor_operate_log",excludeProperty = {"name","sort","createBy","createTime","updateBy","updateTime","remark","status"}) | |||
| public class DmVisitorOperateLogPo extends TBaseEntity { | |||
| @Serial | |||
| @@ -33,9 +33,6 @@ public class DmVisitorOperateLogPo extends TBaseEntity { | |||
| /** 请求方法 */ | |||
| protected String method; | |||
| /** 请求方式 */ | |||
| protected String requestMethod; | |||
| protected Long visitorId; | |||
| @@ -1,13 +1,19 @@ | |||
| package com.xueyi.system.staff.graphql; | |||
| import com.alibaba.fastjson.JSON; | |||
| import com.xueyi.system.api.digitalmans.domain.po.DmVisitRecordsPo; | |||
| import com.xueyi.system.staff.domain.dto.DmVisitorOperateLogDto; | |||
| import com.xueyi.system.staff.domain.model.DmVisitRecordsConverter; | |||
| import com.xueyi.system.staff.mapper.DmVisitRecordsMapper; | |||
| import com.xueyi.system.staff.mapper.DmVisitorsMapper; | |||
| import com.xueyi.system.staff.service.impl.DmVisitorOperateLogServiceImpl; | |||
| import graphql.kickstart.tools.GraphQLMutationResolver; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.HashMap; | |||
| import java.util.Map; | |||
| /* | |||
| * @author yk | |||
| * @description | |||
| @@ -25,16 +31,36 @@ class VisitRecordGraphQLMutationResolver implements GraphQLMutationResolver { | |||
| @Autowired | |||
| private DmVisitRecordsConverter converter; | |||
| private DmVisitorOperateLogServiceImpl visitorLogsService; | |||
| public boolean createVisitRecord(DmVisitRecordsPo input, Long staffId){ | |||
| return mapper.insert(input) > 0; | |||
| Map<String, Object> map = new HashMap<>(); | |||
| map.put("input", input); | |||
| map.put("staffId", staffId); | |||
| Boolean result = mapper.insert(input) > 0; | |||
| DmVisitorOperateLogDto operateLogPo = visitorLogsService.initData(input.getVisitorId(), staffId, DmVisitorOperateLogDto.BUSINESS_TYPE_CREATE, "createVisitRecord", JSON.toJSONString(map),JSON.toJSONString(result)); | |||
| visitorLogsService.insert(operateLogPo); | |||
| return result; | |||
| } | |||
| public boolean updateVisitRecord(DmVisitRecordsPo input, Long staffId){ | |||
| return mapper.updateById(input) > 0; | |||
| Map<String, Object> map = new HashMap<>(); | |||
| map.put("input", input); | |||
| map.put("staffId", staffId); | |||
| Boolean result = mapper.updateById(input) > 0; | |||
| DmVisitorOperateLogDto operateLogPo = visitorLogsService.initData(input.getVisitorId(), staffId, DmVisitorOperateLogDto.BUSINESS_TYPE_UPDATE, "updateVisitRecord",JSON.toJSONString(map),JSON.toJSONString(result)); | |||
| visitorLogsService.insert(operateLogPo); | |||
| return result; | |||
| } | |||
| public Boolean deleteVisitRecord(Long id, Long staffId){ | |||
| return mapper.deleteById(id) > 0; | |||
| DmVisitRecordsPo recordsPo = mapper.selectById(id); | |||
| Map<String, Object> map = new HashMap<>(); | |||
| map.put("id", id); | |||
| map.put("staffId", staffId); | |||
| Boolean result = mapper.deleteById(id) > 0; | |||
| DmVisitorOperateLogDto operateLogPo = visitorLogsService.initData(recordsPo.getVisitorId(), staffId, DmVisitorOperateLogDto.BUSINESS_TYPE_DELETE, "deleteVisitRecord", JSON.toJSONString(map), JSON.toJSONString(result)); | |||
| visitorLogsService.insert(operateLogPo); | |||
| return result; | |||
| } | |||
| } | |||
| @@ -41,7 +41,7 @@ class VisitRecordsGraphQLQueryResolver implements GraphQLQueryResolver { | |||
| return converter.mapperDto(mapper.selectById(id)); | |||
| } | |||
| public List<DmVisitRecordsDto> visitRecords(String receiverName, String receiverPhone, Long visitorId){ | |||
| public List<DmVisitRecordsDto> visitRecords(String receiverName, String receiverPhone, Long visitorId, Integer limit){ | |||
| QueryWrapper<DmVisitRecordsPo> query = new QueryWrapper<>(); | |||
| if (StringUtils.isNotEmpty(receiverName)) { | |||
| @@ -56,6 +56,10 @@ class VisitRecordsGraphQLQueryResolver implements GraphQLQueryResolver { | |||
| query.eq("visitor_id", visitorId); | |||
| } | |||
| if (null!= limit) { | |||
| query.last("limit " + limit); | |||
| } | |||
| return mapper.selectList(query).stream().map( | |||
| t -> { | |||
| DmVisitorsPo po = visitorsMapper.selectById(t.getVisitorId()); | |||
| @@ -1,15 +1,21 @@ | |||
| package com.xueyi.system.staff.graphql; | |||
| import com.alibaba.excel.util.BooleanUtils; | |||
| import com.alibaba.fastjson.JSON; | |||
| import com.xueyi.system.api.digitalmans.domain.po.DmVisitorsPo; | |||
| import com.xueyi.system.api.resource.domain.po.DmResourcesPo; | |||
| import com.xueyi.system.resource.mapper.DmResourcesMapper; | |||
| import com.xueyi.system.staff.domain.dto.DmVisitorOperateLogDto; | |||
| import com.xueyi.system.staff.domain.model.DmVisitorsConverter; | |||
| import com.xueyi.system.staff.mapper.DmVisitorsMapper; | |||
| import com.xueyi.system.staff.service.impl.DmVisitorOperateLogServiceImpl; | |||
| import graphql.kickstart.tools.GraphQLMutationResolver; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.HashMap; | |||
| import java.util.Map; | |||
| /* | |||
| * @author yk | |||
| @@ -28,6 +34,9 @@ class VisitorGraphQLMutationResolver implements GraphQLMutationResolver { | |||
| @Autowired | |||
| private DmResourcesMapper resourcesMapper; | |||
| @Autowired | |||
| private DmVisitorOperateLogServiceImpl visitorLogsService; | |||
| private DmVisitorsPo initPo(DmVisitorsPo po){ | |||
| if (BooleanUtils.isTrue(po.getIsVip())) { | |||
| po.setType(9L); | |||
| @@ -44,14 +53,32 @@ class VisitorGraphQLMutationResolver implements GraphQLMutationResolver { | |||
| } | |||
| public boolean updateVisitor(DmVisitorsPo po, Long staffId){ | |||
| return mapper.updateOne(initPo(po)) > 0; | |||
| Map<String, Object> map = new HashMap<>(); | |||
| map.put("input", po); | |||
| map.put("staffId", staffId); | |||
| Boolean result = mapper.updateOne(initPo(po)) > 0; | |||
| DmVisitorOperateLogDto operateLogPo = visitorLogsService.initData(po.getId(),staffId, DmVisitorOperateLogDto.BUSINESS_TYPE_UPDATE, "updateVisitor",JSON.toJSONString(map),JSON.toJSONString(result)); | |||
| visitorLogsService.insert(operateLogPo); | |||
| return result; | |||
| } | |||
| public boolean createVisitor(DmVisitorsPo po, Long staffId){ | |||
| return mapper.insert(initPo(po)) > 0; | |||
| Map<String, Object> map = new HashMap<>(); | |||
| map.put("input", po); | |||
| map.put("staffId", staffId); | |||
| Boolean result = mapper.insert(initPo(po)) > 0; | |||
| DmVisitorOperateLogDto operateLogPo = visitorLogsService.initData(po.getId(),staffId, DmVisitorOperateLogDto.BUSINESS_TYPE_CREATE, "createVisitor",JSON.toJSONString(map),JSON.toJSONString(result)); | |||
| visitorLogsService.insert(operateLogPo); | |||
| return result; | |||
| } | |||
| public Boolean deleteVisitor(Long id, Long staffId){ | |||
| return mapper.deleteById(id) > 0; | |||
| Map<String, Object> map = new HashMap<>(); | |||
| map.put("id", id); | |||
| map.put("staffId", staffId); | |||
| Boolean result = mapper.deleteById(id) > 0; | |||
| DmVisitorOperateLogDto operateLogPo = visitorLogsService.initData(id,staffId, DmVisitorOperateLogDto.BUSINESS_TYPE_DELETE, "deleteVisitor",JSON.toJSONString(map),JSON.toJSONString(result)); | |||
| visitorLogsService.insert(operateLogPo); | |||
| return result; | |||
| } | |||
| } | |||
| @@ -30,7 +30,7 @@ class VisitorLogsGraphQLQueryResolver implements GraphQLQueryResolver { | |||
| return mapper.selectById(id); | |||
| } | |||
| public List<DmVisitorOperateLogPo> visitorLogs(String userName, Long userId, Long visitorId, Integer businessType, LocalDate startDate, LocalDate endDate){ | |||
| public List<DmVisitorOperateLogPo> visitorLogs(String userName, Long userId, Long visitorId, Integer businessType, LocalDate startDate, LocalDate endDate, Integer limit){ | |||
| QueryWrapper<DmVisitorOperateLogPo> query = new QueryWrapper<>(); | |||
| if (StringUtils.isNotEmpty(userName)) { | |||
| @@ -49,6 +49,10 @@ class VisitorLogsGraphQLQueryResolver implements GraphQLQueryResolver { | |||
| query.eq("business_type", businessType); | |||
| } | |||
| if (null!= limit) { | |||
| query.last("limit " + limit); | |||
| } | |||
| if (null != startDate && null != endDate){ | |||
| query.between("operate_time", LocalDateTimeUtil.format(startDate, MyDateUtils.DEFAULT_DATE_PATTERN),LocalDateTimeUtil.format(endDate, MyDateUtils.DEFAULT_DATE_PATTERN)); | |||
| } | |||
| @@ -4,10 +4,13 @@ import cn.hutool.core.date.LocalDateTimeUtil; | |||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||
| import com.baomidou.mybatisplus.core.toolkit.StringUtils; | |||
| import com.xueyi.common.web.utils.MyDateUtils; | |||
| import com.xueyi.system.api.digitalmans.domain.po.DmVisitorsPo; | |||
| import com.xueyi.system.api.pass.domain.dto.DmRecognizedRecordsDto; | |||
| import com.xueyi.system.api.pass.domain.po.DmRecognizedRecordsPo; | |||
| import com.xueyi.system.pass.domain.model.DmRecognizedRecordsConverter; | |||
| import com.xueyi.system.pass.mapper.DmRecognizedRecordsMapper; | |||
| import com.xueyi.system.staff.domain.model.DmVisitorsConverter; | |||
| import com.xueyi.system.staff.mapper.DmVisitorsMapper; | |||
| import graphql.kickstart.tools.GraphQLQueryResolver; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Component; | |||
| @@ -23,19 +26,26 @@ import java.util.stream.Collectors; | |||
| */ | |||
| @Component | |||
| class PassRecordsGraphQLQueryResolver implements GraphQLQueryResolver { | |||
| class VisitorPassRecordsGraphQLQueryResolver implements GraphQLQueryResolver { | |||
| @Autowired | |||
| private DmRecognizedRecordsMapper mapper; | |||
| @Autowired | |||
| private DmRecognizedRecordsConverter converter; | |||
| @Autowired | |||
| private DmVisitorsMapper visitorsMapper; | |||
| @Autowired | |||
| private DmVisitorsConverter visitorsConverter; | |||
| public DmRecognizedRecordsDto passRecord(Long id) { | |||
| public DmRecognizedRecordsDto visitorPassRecord(Long id) { | |||
| return converter.mapperDto(mapper.selectById(id)); | |||
| } | |||
| public List<DmRecognizedRecordsDto> passRecords(String userName, Long userId, Integer type, LocalDate startDate, LocalDate endDate){ | |||
| public List<DmRecognizedRecordsDto> visitorPassRecords(String userName, Long userId, Integer type, LocalDate startDate, LocalDate endDate, Integer limit){ | |||
| QueryWrapper<DmRecognizedRecordsPo> query = new QueryWrapper<>(); | |||
| if (StringUtils.isNotEmpty(userName)) { | |||
| @@ -48,12 +58,25 @@ class PassRecordsGraphQLQueryResolver implements GraphQLQueryResolver { | |||
| if (null != type) { | |||
| query.eq("type", type); | |||
| } else { | |||
| query.in("type", 8, 9, 10); | |||
| } | |||
| if (null != startDate && null != endDate){ | |||
| query.between("recognized_time", LocalDateTimeUtil.format(startDate, MyDateUtils.DEFAULT_DATE_PATTERN),LocalDateTimeUtil.format(endDate, MyDateUtils.DEFAULT_DATE_PATTERN)); | |||
| } | |||
| return mapper.selectList(query).stream().map(t->converter.mapperDto(t)).collect(Collectors.toList()); | |||
| if (null!= limit) { | |||
| query.last("limit " + limit); | |||
| } | |||
| return mapper.selectList(query).stream().map(t-> | |||
| { | |||
| DmRecognizedRecordsDto recognizedRecordsDto = converter.mapperDto(t); | |||
| DmVisitorsPo po = visitorsMapper.selectById(t.getUserId()); | |||
| if (null == po) { | |||
| recognizedRecordsDto.setVisitor(visitorsConverter.mapperDto(po)); | |||
| } | |||
| return recognizedRecordsDto; | |||
| }).collect(Collectors.toList()); | |||
| } | |||
| } | |||
| @@ -0,0 +1,13 @@ | |||
| package com.xueyi.system.staff.manager; | |||
| import com.xueyi.common.web.entity.manager.IBaseManager; | |||
| import com.xueyi.system.staff.domain.dto.DmVisitorOperateLogDto; | |||
| import com.xueyi.system.staff.domain.query.DmVisitorOperateLogQuery; | |||
| /** | |||
| * 访客管理 数据封装层 | |||
| * | |||
| * @author xueyi | |||
| */ | |||
| public interface IDmVisitorOperateLogManager extends IBaseManager<DmVisitorOperateLogQuery, DmVisitorOperateLogDto> { | |||
| } | |||
| @@ -0,0 +1,35 @@ | |||
| package com.xueyi.system.staff.manager.impl; | |||
| import com.xueyi.common.core.constant.basic.OperateConstants; | |||
| import com.xueyi.common.web.entity.domain.SlaveRelation; | |||
| import com.xueyi.common.web.entity.manager.impl.BaseManagerImpl; | |||
| import com.xueyi.system.api.digitalmans.domain.dto.DmVisitorsDto; | |||
| import com.xueyi.system.api.digitalmans.domain.po.DmVisitorsPo; | |||
| import com.xueyi.system.digitalmans.domain.merge.DmReceptionVisitorMerge; | |||
| import com.xueyi.system.digitalmans.mapper.merge.DmReceptionVisitorMergeMapper; | |||
| import com.xueyi.system.staff.domain.dto.DmVisitorOperateLogDto; | |||
| import com.xueyi.system.staff.domain.model.DmVisitorOperateLogConverter; | |||
| import com.xueyi.system.staff.domain.model.DmVisitorsConverter; | |||
| import com.xueyi.system.staff.domain.po.DmVisitorOperateLogPo; | |||
| import com.xueyi.system.staff.domain.query.DmVisitorOperateLogQuery; | |||
| import com.xueyi.system.staff.domain.query.DmVisitorsQuery; | |||
| import com.xueyi.system.staff.manager.IDmVisitorOperateLogManager; | |||
| import com.xueyi.system.staff.manager.IDmVisitorsManager; | |||
| import com.xueyi.system.staff.mapper.DmVisitorOperateLogMapper; | |||
| import com.xueyi.system.staff.mapper.DmVisitorsMapper; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.ArrayList; | |||
| import java.util.List; | |||
| import static com.xueyi.system.api.digitalmans.domain.merge.MergeGroup.Visitor_DmReceptionVisitorMerge_GROUP; | |||
| /** | |||
| * 访客管理 数据封装层处理 | |||
| * | |||
| * @author xueyi | |||
| */ | |||
| @Component | |||
| public class DmVisitorOperateLogManager extends BaseManagerImpl<DmVisitorOperateLogQuery, DmVisitorOperateLogDto, DmVisitorOperateLogPo, DmVisitorOperateLogMapper, DmVisitorOperateLogConverter> implements IDmVisitorOperateLogManager { | |||
| } | |||
| @@ -0,0 +1,13 @@ | |||
| package com.xueyi.system.staff.service; | |||
| import com.xueyi.common.web.entity.service.IBaseService; | |||
| import com.xueyi.system.staff.domain.dto.DmVisitorOperateLogDto; | |||
| import com.xueyi.system.staff.domain.query.DmVisitorOperateLogQuery; | |||
| /** | |||
| * 访客日志管理 服务层 | |||
| * | |||
| * @author xueyi | |||
| */ | |||
| public interface IDmVisitorOperateLogService extends IBaseService<DmVisitorOperateLogQuery, DmVisitorOperateLogDto> { | |||
| } | |||
| @@ -0,0 +1,45 @@ | |||
| package com.xueyi.system.staff.service.impl; | |||
| import com.alibaba.fastjson.JSON; | |||
| import com.xueyi.common.web.entity.service.impl.BaseServiceImpl; | |||
| import com.xueyi.system.api.staff.domain.po.DmStaffPo; | |||
| import com.xueyi.system.staff.domain.dto.DmVisitorOperateLogDto; | |||
| import com.xueyi.system.staff.domain.po.DmVisitorOperateLogPo; | |||
| import com.xueyi.system.staff.domain.query.DmVisitorOperateLogQuery; | |||
| import com.xueyi.system.staff.manager.IDmVisitorOperateLogManager; | |||
| import com.xueyi.system.staff.mapper.DmStaffMapper; | |||
| import com.xueyi.system.staff.service.IDmVisitorOperateLogService; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import java.time.LocalDateTime; | |||
| import java.util.HashMap; | |||
| import java.util.Map; | |||
| /** | |||
| * 访客管理 服务层处理 | |||
| * | |||
| * @author xueyi | |||
| */ | |||
| @Service | |||
| public class DmVisitorOperateLogServiceImpl extends BaseServiceImpl<DmVisitorOperateLogQuery, DmVisitorOperateLogDto, IDmVisitorOperateLogManager> implements IDmVisitorOperateLogService { | |||
| @Autowired | |||
| private DmStaffMapper staffMapper; | |||
| public DmVisitorOperateLogDto initData(Long visitorId, Long staffId, Integer businessType, String funName, String parms, String result){ | |||
| DmVisitorOperateLogDto operateLogPo = new DmVisitorOperateLogDto(); | |||
| operateLogPo.setVisitorId(visitorId); | |||
| operateLogPo.setUserId(staffId); | |||
| DmStaffPo staffPo = staffMapper.selectById(staffId); | |||
| operateLogPo.setBusinessType(businessType); | |||
| operateLogPo.setMethod(funName); | |||
| operateLogPo.setUserName(staffPo.getUserName()); | |||
| operateLogPo.setTitle("访客方面操作日志(小程序)"); | |||
| operateLogPo.setOperateTime(LocalDateTime.now()); | |||
| operateLogPo.setParam(parms); | |||
| operateLogPo.setJsonResult(result); | |||
| return operateLogPo; | |||
| } | |||
| } | |||
| @@ -2,18 +2,19 @@ extend type Query { | |||
| visitRecords( | |||
| receiverName:String | |||
| receiverPhone:String | |||
| visitorId:Long | |||
| visitorId:ID | |||
| limit:Int | |||
| ): [VisitRecord!] | |||
| visitRecord(id:Long!): VisitRecord | |||
| visitRecord(id:ID!): VisitRecord | |||
| } | |||
| input VisitRecordInput { | |||
| id: Long | |||
| visitorId: Long! | |||
| id: ID | |||
| visitorId: ID! | |||
| visitDate: Date! | |||
| userId: Long | |||
| userId: ID | |||
| receiverName: String | |||
| receiverPhone: String | |||
| } | |||
| @@ -21,23 +22,23 @@ input VisitRecordInput { | |||
| extend type Mutation { | |||
| createVisitRecord( | |||
| input:VisitRecordInput! | |||
| staffId: Long! | |||
| staffId: ID! | |||
| ): Boolean | |||
| updateVisitRecord( | |||
| input:VisitRecordInput! | |||
| staffId: Long! | |||
| staffId: ID! | |||
| ): Boolean | |||
| deleteVisitRecord( | |||
| id:Long! | |||
| staffId: Long! | |||
| id:ID! | |||
| staffId: ID! | |||
| ): Boolean | |||
| } | |||
| type VisitRecord { | |||
| id: Long | |||
| visitorId: Long | |||
| userId: Long | |||
| id: ID | |||
| visitorId: ID | |||
| userId: ID | |||
| receiverName: String | |||
| receiverPhone: String | |||
| recordStatus: Int | |||
| @@ -1,16 +1,16 @@ | |||
| extend type Query { | |||
| visitors( | |||
| id: Long | |||
| id: ID | |||
| name: String | |||
| type: Int | |||
| phone: String | |||
| ): [Visitor!] | |||
| visitor(id: Long): Visitor | |||
| visitor(id: ID): Visitor | |||
| } | |||
| input VisitorInput { | |||
| id: Long | |||
| id: ID | |||
| name: String | |||
| nickname: String | |||
| phone: String | |||
| @@ -18,23 +18,23 @@ input VisitorInput { | |||
| isVip:Boolean | |||
| flexVisit:Boolean | |||
| isBlock:Boolean | |||
| resourceId: Long | |||
| resourceId: ID | |||
| } | |||
| extend type Mutation { | |||
| createVisitor( | |||
| input: VisitorInput! | |||
| staffId: Long! | |||
| staffId: ID! | |||
| ): Boolean | |||
| updateVisitor( | |||
| input: VisitorInput! | |||
| staffId: Long! | |||
| staffId: ID! | |||
| ): Boolean | |||
| deleteVisitor( | |||
| id: Long!, | |||
| staffId: Long! | |||
| id: ID!, | |||
| staffId: ID! | |||
| ): Boolean | |||
| } | |||
| @@ -50,5 +50,5 @@ type Visitor { | |||
| isVip:Boolean | |||
| flexVisit:Boolean | |||
| isBlock:Boolean | |||
| resourceId: Long | |||
| resourceId: ID | |||
| } | |||
| @@ -6,9 +6,10 @@ extend type Query { | |||
| businessType:Int | |||
| startDate:Date | |||
| endDate:Date | |||
| limit:Int | |||
| ): [VisitorLog!] | |||
| visitorLog(id:Long!): VisitorLog | |||
| visitorLog(id:ID!): VisitorLog | |||
| } | |||
| @@ -1,17 +1,18 @@ | |||
| extend type Query { | |||
| passRecords( | |||
| visitorPassRecords( | |||
| userName:String | |||
| userId:ID | |||
| type:Int | |||
| startDate:Date | |||
| endDate:Date | |||
| ): [PassRecord!] | |||
| limit:Int | |||
| ): [VisitorPassRecord!] | |||
| passRecord(id:Long!): PassRecord | |||
| visitorPassRecord(id:ID!): VisitorPassRecord | |||
| } | |||
| type PassRecord { | |||
| type VisitorPassRecord { | |||
| id: ID | |||
| userName: String | |||
| userId: ID | |||
| @@ -19,4 +20,5 @@ type PassRecord { | |||
| recognizedTime: String | |||
| createTime: Date | |||
| type: Int | |||
| visitor: Visitor | |||
| } | |||