提交 35c83a1b 作者: Administrator

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

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