提交 35c83a1b 作者: Administrator

feat : 小程序查看访客历史记录

上级 02cfe448
...@@ -3,6 +3,8 @@ package com.yiring.app.domain.visitor; ...@@ -3,6 +3,8 @@ package com.yiring.app.domain.visitor;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -18,4 +20,6 @@ public interface VisitorRepository extends JpaRepository<Visitor, Serializable>, ...@@ -18,4 +20,6 @@ public interface VisitorRepository extends JpaRepository<Visitor, Serializable>,
List<Visitor> findAllByMainVisitorIdAndDeletedEquals(Long mainId, String deleted); List<Visitor> findAllByMainVisitorIdAndDeletedEquals(Long mainId, String deleted);
List<Visitor> findAllByMainVisitorIdAndDeletedEqualsAndIdIsNot(Long mainId, String deleted, Long id); List<Visitor> findAllByMainVisitorIdAndDeletedEqualsAndIdIsNot(Long mainId, String deleted, Long id);
Page<Visitor> findAllByVisitorMobileAndDeletedEquals(String mobile, String deleted, Pageable pageable);
} }
...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel; ...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import javax.validation.constraints.NotEmpty;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -25,7 +26,8 @@ public class InvitationAppQueryParam implements Serializable { ...@@ -25,7 +26,8 @@ public class InvitationAppQueryParam implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 5194434249966317387L; private static final long serialVersionUID = 5194434249966317387L;
@ApiModelProperty(value = "到访人电话", example = "17688888888") @ApiModelProperty(value = "到访人电话", example = "17688888888", required = true)
@NotEmpty(message = "到访人电话不能为空")
String visitorMobile; String visitorMobile;
@ApiModelProperty(value = "分页条数", example = "10") @ApiModelProperty(value = "分页条数", example = "10")
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.visitor;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotEmpty;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* @author tzl
* 2022/4/19 14:15
*/
@ApiModel("VisitorQueryParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class VisitorAppQueryParam implements Serializable {
@Serial
private static final long serialVersionUID = 1158888191240628613L;
@ApiModelProperty(value = "到访人电话", example = "17688888888", required = true)
@NotEmpty(message = "到访人电话不能为空")
String visitorMobile;
@ApiModelProperty(value = "分页条数", example = "10")
Integer pageSize;
@ApiModelProperty(value = "当前页数", example = "1")
Integer pageNo;
}
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.visitor; package com.yiring.app.service.visitor;
import com.yiring.app.param.visitor.VisitorAppQueryParam;
import com.yiring.app.param.visitor.VisitorParam; import com.yiring.app.param.visitor.VisitorParam;
import com.yiring.app.param.visitor.VisitorQueryParam; import com.yiring.app.param.visitor.VisitorQueryParam;
import com.yiring.app.vo.visitor.VisitorAppVo;
import com.yiring.app.vo.visitor.VisitorDetailsVo; import com.yiring.app.vo.visitor.VisitorDetailsVo;
import com.yiring.app.vo.visitor.VisitorVo; import com.yiring.app.vo.visitor.VisitorVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
...@@ -74,11 +76,11 @@ public interface VisitorService { ...@@ -74,11 +76,11 @@ public interface VisitorService {
Result<String> cardRec(IdParam idParam); Result<String> cardRec(IdParam idParam);
/** /**
* 查看详情,并且带出该访客的随访人信息 * 小程序查看来访记录
* @author tzl * @author tzl
* @date 2022/4/25 16:48 * @date 2022/4/29 15:03
* @param idParam 主键id * @param visitorAppQueryParam 入参
* @return com.yiring.common.core.Result<com.yiring.app.vo.visitor.VisitorVo> * @return com.yiring.common.core.Result<com.yiring.app.vo.visitor.VisitorVo>
*/ */
Result<VisitorVo> selectInfo(IdParam idParam); Result<PageVo<VisitorAppVo>> selectInfo(VisitorAppQueryParam visitorAppQueryParam);
} }
...@@ -3,19 +3,19 @@ package com.yiring.app.service.visitor.impl; ...@@ -3,19 +3,19 @@ package com.yiring.app.service.visitor.impl;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder; import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder;
import com.yiring.app.domain.appletUser.AppletUserRepository;
import com.yiring.app.domain.visitor.Car; import com.yiring.app.domain.visitor.Car;
import com.yiring.app.domain.visitor.Visitor; import com.yiring.app.domain.visitor.Visitor;
import com.yiring.app.domain.visitor.VisitorRepository; import com.yiring.app.domain.visitor.VisitorRepository;
import com.yiring.app.excel.visitor.VisitorExportExcel; import com.yiring.app.excel.visitor.VisitorExportExcel;
import com.yiring.app.param.visitor.VisitorAppQueryParam;
import com.yiring.app.param.visitor.VisitorParam; import com.yiring.app.param.visitor.VisitorParam;
import com.yiring.app.param.visitor.VisitorQueryParam; import com.yiring.app.param.visitor.VisitorQueryParam;
import com.yiring.app.service.visitor.CarService; import com.yiring.app.service.visitor.CarService;
import com.yiring.app.service.visitor.VisitorService; import com.yiring.app.service.visitor.VisitorService;
import com.yiring.app.vo.visitor.VisitorAppVo;
import com.yiring.app.vo.visitor.VisitorDetailsVo; import com.yiring.app.vo.visitor.VisitorDetailsVo;
import com.yiring.app.vo.visitor.VisitorVo; import com.yiring.app.vo.visitor.VisitorVo;
import com.yiring.auth.domain.user.User; import com.yiring.auth.domain.user.User;
import com.yiring.auth.domain.user.UserRepository;
import com.yiring.common.constant.RegEx; import com.yiring.common.constant.RegEx;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.core.Status; import com.yiring.common.core.Status;
...@@ -61,12 +61,6 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -61,12 +61,6 @@ public class VisitorServiceImpl implements VisitorService {
@Resource @Resource
CarService carService; CarService carService;
@Resource
UserRepository userRepository;
@Resource
AppletUserRepository appletUserRepository;
@Override @Override
public Result<String> saveVisitor(VisitorParam visitorParam) { public Result<String> saveVisitor(VisitorParam visitorParam) {
//设置创建时间和默认状态 //设置创建时间和默认状态
...@@ -207,11 +201,16 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -207,11 +201,16 @@ public class VisitorServiceImpl implements VisitorService {
.map(visitor -> { .map(visitor -> {
VisitorVo vo = new VisitorVo(); VisitorVo vo = new VisitorVo();
BeanUtils.copyProperties(visitor, vo); BeanUtils.copyProperties(visitor, vo);
VisitorVo.UserVo userVo = VisitorVo.UserVo
.builder()
.realName(visitor.getUser().getRealName())
.build();
vo.setUserVo(userVo);
//翻译被访问人姓名 //翻译被访问人姓名
if (vo.getIntervieweeId() != null) { // if (vo.getIntervieweeId() != null) {
Optional<User> byId = userRepository.findById(vo.getIntervieweeId()); // Optional<User> byId = userRepository.findById(vo.getIntervieweeId());
byId.ifPresent(user -> vo.setIntervieweeName(user.getRealName())); // byId.ifPresent(user -> vo.setIntervieweeName(user.getRealName()));
} // }
return vo; return vo;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -223,11 +222,11 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -223,11 +222,11 @@ public class VisitorServiceImpl implements VisitorService {
.map(visitor -> { .map(visitor -> {
VisitorVo vo = new VisitorVo(); VisitorVo vo = new VisitorVo();
BeanUtils.copyProperties(visitor, vo); BeanUtils.copyProperties(visitor, vo);
//翻译被访问人姓名 VisitorVo.UserVo userVo = VisitorVo.UserVo
if (vo.getIntervieweeId() != null) { .builder()
Optional<User> byId = userRepository.findById(vo.getIntervieweeId()); .realName(visitor.getUser().getRealName())
byId.ifPresent(user -> vo.setIntervieweeName(user.getRealName())); .build();
} vo.setUserVo(userVo);
return vo; return vo;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -310,25 +309,35 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -310,25 +309,35 @@ public class VisitorServiceImpl implements VisitorService {
} }
@Override @Override
public Result<VisitorVo> selectInfo(IdParam idParam) { public Result<PageVo<VisitorAppVo>> selectInfo(VisitorAppQueryParam visitorAppQueryParam) {
return null; PageVo<VisitorAppVo> resultVo;
} //排序
// public boolean hasCarNum(String carNum) { //分页
// Visitor visitor = Visitor.builder().visitorCarNum(carNum).labelCardStatus("1").build(); Pageable pageable = PageRequest.of(visitorAppQueryParam.getPageNo() - 1, visitorAppQueryParam.getPageSize());
// long count = visitorRepository.count(Example.of(visitor)); Page<Visitor> all = visitorRepository.findAllByVisitorMobileAndDeletedEquals(
// Visitor visitor1 = Visitor.builder().visitorCarNum(carNum).labelCardStatus("2").build(); visitorAppQueryParam.getVisitorMobile(),
// long count1 = visitorRepository.count(Example.of(visitor1)); "N",
// return count + count1 > 0; pageable
// } );
// List<VisitorAppVo> data = all
// public boolean hasVisitorMobile(String mobile) { .get()
// Visitor visitor = Visitor.builder().visitorMobile(mobile).labelCardStatus("1").build(); .map(visitor -> {
// long count = visitorRepository.count(Example.of(visitor)); VisitorAppVo vo = new VisitorAppVo();
// Visitor visitor1 = Visitor.builder().visitorMobile(mobile).labelCardStatus("1").build(); vo.setId(visitor.getId());
// long count1 = visitorRepository.count(Example.of(visitor1)); vo.setCardSendTime(visitor.getCardSendTime());
// return count + count1 > 0; VisitorAppVo.UserVo userVo = VisitorAppVo.UserVo
// } .builder()
.realName(visitor.getUser().getRealName())
.mobile(visitor.getVisitorMobile())
.build();
vo.setUserVo(userVo);
return vo;
})
.collect(Collectors.toList());
resultVo = PageVo.build(data, all.getTotalElements());
return Result.ok(resultVo);
}
public Specification<Visitor> condition(VisitorQueryParam visitorQueryParam) { public Specification<Visitor> condition(VisitorQueryParam visitorQueryParam) {
return (root, query, criteriaBuilder) -> { return (root, query, criteriaBuilder) -> {
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.visitor;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* @author tzl
* 2022/4/19 14:16
*/
@ApiModel("VisitorVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class VisitorAppVo implements Serializable {
@Serial
private static final long serialVersionUID = 9004209982164273860L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id", example = "1548548545755")
Long id;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "发卡时间", example = "2022-04-19 14:28:00")
LocalDateTime cardSendTime;
UserVo userVo;
@ApiModel("UserVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public static class UserVo implements Serializable {
@Serial
private static final long serialVersionUID = 4115779013003587949L;
@ApiModelProperty(value = "被访人姓名", example = "张三")
String realName;
@ApiModelProperty(value = "被访人姓名", example = "张三")
String mobile;
}
}
...@@ -97,7 +97,7 @@ public class VisitorDetailsVo implements Serializable { ...@@ -97,7 +97,7 @@ public class VisitorDetailsVo implements Serializable {
List<VisitorResultVo> list; List<VisitorResultVo> list;
@ApiModel("MapVoReuslt") @ApiModel("VisitorResultVo")
@Data @Data
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
......
...@@ -58,9 +58,6 @@ public class VisitorVo implements Serializable { ...@@ -58,9 +58,6 @@ public class VisitorVo implements Serializable {
@ApiModelProperty(value = "所属单位id", example = "壹润科技") @ApiModelProperty(value = "所属单位id", example = "壹润科技")
String orgId; String orgId;
@ApiModelProperty(value = "被访人id", example = "1")
Long intervieweeId;
@ApiModelProperty(value = "被访人姓名", example = "李四") @ApiModelProperty(value = "被访人姓名", example = "李四")
String intervieweeName; String intervieweeName;
...@@ -88,4 +85,21 @@ public class VisitorVo implements Serializable { ...@@ -88,4 +85,21 @@ public class VisitorVo implements Serializable {
@ApiModelProperty(value = "主访人id") @ApiModelProperty(value = "主访人id")
Long mainVisitorId; Long mainVisitorId;
UserVo userVo;
@ApiModel("UserVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public static class UserVo implements Serializable {
@Serial
private static final long serialVersionUID = 4115779013003587949L;
@ApiModelProperty(value = "被访人姓名", example = "张三")
String realName;
}
} }
...@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
* *
* @author Administrator * @author Administrator
* @version 1.0 * @version 1.0
* @description: TODO * @description:
* @date 2022/4/24 13:48 * @date 2022/4/24 13:48
*/ */
@Slf4j @Slf4j
...@@ -40,7 +40,7 @@ public class MapController { ...@@ -40,7 +40,7 @@ public class MapController {
@GetMapping("/mapSelect") @GetMapping("/mapSelect")
@ApiImplicitParams({ @ApiImplicitParam(value = "orgId", required = true, name = "orgId") }) @ApiImplicitParams({ @ApiImplicitParam(value = "orgId", required = true, name = "orgId") })
public Result<MapVo> fail(String orgId) { public Result<MapVo> mapSelect(String orgId) {
String login = ZyUtil.login(); String login = ZyUtil.login();
JSONObject jsonObject = mapClient.selectMap(orgId, "bearer " + login); JSONObject jsonObject = mapClient.selectMap(orgId, "bearer " + login);
// if (ObjectUtil.isNotNull(jsonObject.getJSONArray("data"))) { // if (ObjectUtil.isNotNull(jsonObject.getJSONArray("data"))) {
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.visitor; package com.yiring.app.web.visitor;
import com.yiring.app.param.visitor.VisitorAppQueryParam;
import com.yiring.app.param.visitor.VisitorParam; import com.yiring.app.param.visitor.VisitorParam;
import com.yiring.app.param.visitor.VisitorQueryParam; import com.yiring.app.param.visitor.VisitorQueryParam;
import com.yiring.app.service.visitor.VisitorService; import com.yiring.app.service.visitor.VisitorService;
import com.yiring.app.vo.visitor.VisitorAppVo;
import com.yiring.app.vo.visitor.VisitorDetailsVo; import com.yiring.app.vo.visitor.VisitorDetailsVo;
import com.yiring.app.vo.visitor.VisitorVo; import com.yiring.app.vo.visitor.VisitorVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
...@@ -85,4 +87,10 @@ public class VisitorController { ...@@ -85,4 +87,10 @@ public class VisitorController {
public void exportVisitor(HttpServletResponse response, @Valid VisitorQueryParam visitorQueryParam) { public void exportVisitor(HttpServletResponse response, @Valid VisitorQueryParam visitorQueryParam) {
visitorService.exportVisitor(visitorQueryParam, response); visitorService.exportVisitor(visitorQueryParam, response);
} }
@ApiOperation(value = "小程序查看来访历史(分页)")
@GetMapping("selectInfo")
public Result<PageVo<VisitorAppVo>> selectInfo(@Valid VisitorAppQueryParam visitorAppQueryParam) {
return visitorService.selectInfo(visitorAppQueryParam);
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论