Commit 965b9ab9 authored by 王琮's avatar 王琮

查询最新邀请

parent dddf3f69
......@@ -22,8 +22,8 @@ import org.rcisoft.core.constant.CyMessCons;
import org.rcisoft.core.controller.CyPaginationController;
import org.rcisoft.core.model.CyGridModel;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.List;
......@@ -148,4 +148,15 @@ public class VisitInfomationController extends CyPaginationController<VisitInfoM
CyMessCons.MESSAGE_ALERT_ERROR,
visitInfomationList);
}
@CyOpeLogAnno(title = "system-邀访信息管理-查询最近受邀记录", businessType = CyLogTypeEnum.QUERY)
@ApiOperation(value = "查询最近受邀记录", notes = "查询最近受邀记录")
@GetMapping("/lastDetail")
public CyResult lastDetail(HttpServletRequest request) {
return CyResultGenUtil.builder(new CyPersistModel(1),
CyMessCons.MESSAGE_ALERT_SUCCESS,
CyMessCons.MESSAGE_ALERT_ERROR,
visitInfomationServiceImpl.lastDetail(request));
}
}
......@@ -27,6 +27,12 @@ public interface VisitInfomationRepository extends CyBaseMapper<VisitInfoMation>
VisitInfoMation queryVisitById(@Param("id") int id);
/**
* 根据手机号匹配最新受邀记录
* @param phone
* @return
*/
List<VisitInfoMation> lastDetail(@Param("phone") String phone);
}
......@@ -101,6 +101,16 @@ public class VisitInfoMation extends CyIdIncreEntity<VisitInfoMation> {
@Excel(name = "访问时间", orderNum = "7", width = 20)
private String visitTime;
/**
* @desc 实际访问时间
* @column visit_real_time
* @default
*/
@Excel(name = "访问时间", orderNum = "7", width = 20)
@JsonFormat(pattern ="yyyy-MM-dd HH:mm",timezone ="GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private Date visitRealTime;
/**
* @desc 访问状态(0 未到访 1 已访问)
* @column visit_status
......@@ -128,33 +138,37 @@ public class VisitInfoMation extends CyIdIncreEntity<VisitInfoMation> {
@Transient
@TableField(exist = false)
@JsonFormat(pattern ="yyyy-MM-dd",timezone ="GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern ="yyyy-MM-dd HH:mm",timezone ="GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private Date visitDateBegin;
@Transient
@TableField(exist = false)
@JsonFormat(pattern ="yyyy-MM-dd",timezone ="GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern ="yyyy-MM-dd HH:mm",timezone ="GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd ")
private Date visitDateEnd;
/**(0-按按创建时间排序,1-按邀访时间排序,2-按访问日期排序)**/
@Transient
@TableField(exist = false)
private char sort;
private String sort;
/** 0-未来一周 1-未来三天 2-近三天 3-近一周 4-近一个月**/
@Transient
@TableField(exist = false)
private char selectTime;
private String selectTime;
/**0-未到访问时间 1-已过到访时间**/
@Transient
@TableField(exist = false)
private char boolVisit;
private String boolVisit;
@Transient //访客信息
@TableField(exist = false)
List<VisitUser> userList;
@Transient //访客手机号(小程序登录用户手机号)
@TableField(exist = false)
private String phone;
}
......@@ -5,6 +5,7 @@ import org.rcisoft.sys.visit.entity.VisitInfoMation;
import org.rcisoft.core.model.CyPersistModel;
import org.rcisoft.core.model.CyPageInfo;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
......@@ -68,4 +69,9 @@ public interface VisitInfomationService {
*/
List<VisitInfoMation> export(VisitInfoMation visitInfomation);
/**
* 查询当前登录人最新首要记录
* @return
*/
VisitInfoMation lastDetail(HttpServletRequest request);
}
......@@ -3,7 +3,10 @@ package org.rcisoft.sys.visit.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.rcisoft.common.component.CyGlobal;
import org.rcisoft.core.exception.CyServiceException;
import org.rcisoft.core.jwt.util.CyJwtUtil;
import org.rcisoft.core.util.CyUserUtil;
import org.rcisoft.core.model.CyPersistModel;
import org.rcisoft.sys.sysuser.dao.SysUserRepositorys;
......@@ -15,6 +18,7 @@ import org.rcisoft.sys.visit.entity.VisitUser;
import org.rcisoft.sys.visit.service.VisitInfomationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
......@@ -27,6 +31,8 @@ import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletRequest;
/**
* Created by cy on 2022年11月16日 下午2:40:21.
*/
......@@ -44,6 +50,15 @@ public class VisitInfomationServiceImpl extends ServiceImpl<VisitInfomationRepos
@Autowired
VisitUserServiceImpl userService;
@Autowired
private CyJwtUtil cyJwtUtil;
@Autowired
private CyGlobal global;
@Autowired
private PasswordEncoder passwordEncoder;
/**
* 保存 邀访信息
*
......@@ -66,7 +81,8 @@ public class VisitInfomationServiceImpl extends ServiceImpl<VisitInfomationRepos
SysUser sysUser = new SysUser();
sysUser.setName(u.getUserName());
sysUser.setPhone(u.getVisitPhone());
sysUser.setUsername("");
sysUser.setUsername(u.getVisitPhone());
sysUser.setPassword(passwordEncoder.encode(global.getResetPassword()));
sysUser.setNormal();
List<SysUser> sysUserList = sysUserRepositorys.querySysUsers(sysUser);
// 不存在新增
......@@ -126,9 +142,9 @@ public class VisitInfomationServiceImpl extends ServiceImpl<VisitInfomationRepos
public CyPersistModel merge(VisitInfoMation visitInfomation) {
List<VisitUser> visitUsers = visitInfomation.getUserList();
if (visitUsers.size()>0){
if (visitUsers.size() > 0) {
userService.deleteByVisitId(visitInfomation.getBusinessId());
for (VisitUser visitUser:visitUsers) {
for (VisitUser visitUser : visitUsers) {
userService.persist(visitUser);
}
}
......@@ -200,4 +216,22 @@ public class VisitInfomationServiceImpl extends ServiceImpl<VisitInfomationRepos
return visitInfomationList;
}
/**
* 获取当前用户最新受邀记录
*
* @return
*/
@Override
public VisitInfoMation lastDetail(HttpServletRequest request) {
// 获取当前登录用户的手机号
String phone = CyUserUtil.getUserInfoStrProp(cyJwtUtil.getToken(request), CyUserUtil.USER_PHONE);
if (StringUtils.isEmpty(phone))
return new VisitInfoMation();
// 获取当前登录用户的受邀记录
List<VisitInfoMation> visitInfList = baseMapper.lastDetail(phone);
if (CollectionUtils.isEmpty(visitInfList))
return new VisitInfoMation();
else
return visitInfList.get(0);
}
}
......@@ -315,7 +315,7 @@ public class CyWxMiniServiceImpl implements CyWxMiniService {
sysUserRbac = new SysUserRbac();
sysUserRbac.setWxOpenid(openId);
sysUserRbac.setPhone(phone);
sysUserRbac.setUsername("默认账号");
sysUserRbac.setUsername(phone);
sysUserRbac.setName("默认姓名");
sysUserRbac.setNickName("默认昵称");
sysUserRbac.setCreateDate(new Date());
......
......@@ -14,6 +14,7 @@
<result column="visit_region" jdbcType="VARCHAR" property="visitRegion"/>
<result column="visit_date" jdbcType="DATE" property="visitDate"/>
<result column="visit_time" jdbcType="VARCHAR" property="visitTime"/>
<result column="visit_real_time" jdbcType="TIMESTAMP" property="visitRealTime"/>
<result column="visit_status" jdbcType="VARCHAR" property="visitStatus"/>
<result column="del_flag" jdbcType="VARCHAR" property="delFlag"/>
<result column="create_by" jdbcType="VARCHAR" property="createBy"/>
......@@ -21,15 +22,17 @@
<result column="update_by" jdbcType="VARCHAR" property="updateBy"/>
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/>
<result column="remarks" jdbcType="VARCHAR" property="remarks"/>
<collection property="userList" ofType="org.rcisoft.sys.visit.entity.VisitUser" columnPrefix="vu_" >
<result column="user_name" property="userName" />
<collection property="userList" ofType="org.rcisoft.sys.visit.entity.VisitUser" columnPrefix="vu_">
<result column="user_name" property="userName"/>
<result column="visit_phone" property="visitPhone"/>
</collection>
</resultMap>
<!--<cache type="${corePackag!}.util.RedisCache"/>-->
<select id="queryVisitInfomations" resultMap="BaseResultMap">
select vi.business_id,vi.user_name,vi.dept_name,vi.post_name,vi.create_date,vi.visit_reason,vi.visit_region,vi.visit_date,vi.visit_time,vi.visit_status,vu.user_name vu_user_name,vu.visit_phone vu_visit_phone from visit_infomation vi
select
vi.business_id,vi.user_name,vi.dept_name,vi.post_name,vi.create_date,vi.visit_reason,vi.visit_region,vi.visit_date,vi.visit_time,vi.visit_status,vu.user_name
vu_user_name,vu.visit_phone vu_visit_phone from visit_infomation vi
right join visit_user vu on vi.business_id=vu.visit_id
where 1=1
<if test="entity.createDateBegin !=null">
......@@ -67,21 +70,25 @@
</if>
</select>
<!-- <select id="queryVisitInfomationsPaged" resultMap="BaseResultMap">-->
<!-- select * from visit_infomation-->
<!-- where 1=1-->
<!-- <if test="entity.delFlag !=null and entity.delFlag != '' ">-->
<!-- and del_flag = #{entity.delFlag}-->
<!-- </if>-->
<!-- <if test="entity.flag !=null and entity.flag != '' ">-->
<!-- and flag = #{entity.flag}-->
<!-- </if>-->
<!-- </select>-->
<!-- <select id="queryVisitInfomationsPaged" resultMap="BaseResultMap">-->
<!-- select * from visit_infomation-->
<!-- where 1=1-->
<!-- <if test="entity.delFlag !=null and entity.delFlag != '' ">-->
<!-- and del_flag = #{entity.delFlag}-->
<!-- </if>-->
<!-- <if test="entity.flag !=null and entity.flag != '' ">-->
<!-- and flag = #{entity.flag}-->
<!-- </if>-->
<!-- </select>-->
<select id="queryVisitInfomationsPaged" resultMap="BaseResultMap">
select vi.business_id,vi.user_name,vi.dept_name,vi.post_name,vi.create_date,vi.visit_reason,vi.visit_region,vi.visit_date,vi.visit_time,vi.visit_status,vu.user_name vu_user_name,vu.visit_phone vu_visit_phone from visit_infomation vi
right join visit_user vu on vi.business_id=vu.visit_id
where 1=1
select
vi.business_id,vi.user_name,vi.dept_name,vi.post_name,vi.create_date,
vi.visit_reason,vi.visit_region,vi.visit_date,vi.visit_time,vi.visit_status,
vu.user_name vu_user_name,vu.visit_phone vu_visit_phone
from visit_infomation vi
left join visit_user vu on vi.business_id=vu.visit_id
where vi.del_flag='0' and vi.flag='1'
<if test="entity.createDateBegin !=null">
and vi.create_date >= #{entity.createDateBegin}
</if>
......@@ -103,6 +110,12 @@
<if test="entity.visitStatus !=null and entity.visitStatus != ''">
and vi.visit_status = #{entity.visitStatus}
</if>
<if test="entity.visitStatus !=null and entity.visitStatus != ''">
and vi.visit_status = #{entity.visitStatus}
</if>
<if test="entity.phone !=null and entity.phone != ''">
and vu.visit_phone = #{entity.phone}
</if>
<if test="entity.sort !=null and entity.sort != ''">
order by
<if test="entity.sort == '0'">
......@@ -112,13 +125,15 @@
vi.create_date
</if>
<if test="entity.sort == '2'">
vi.visit_time
vi.visit_real_time
</if>
</if>
</select>
<select id="queryVisitList" resultMap="BaseResultMap">
select vi.business_id,vi.user_name,vi.dept_name,vi.post_name,vi.create_date,vi.visit_reason,vi.visit_region,vi.visit_date,vi.visit_time,vi.visit_status,vu.user_name vu_user_name,vu.visit_phone vu_visit_phone from visit_infomation vi
select
vi.business_id,vi.user_name,vi.dept_name,vi.post_name,vi.create_date,vi.visit_reason,vi.visit_region,vi.visit_date,vi.visit_time,vi.visit_status,vu.user_name
vu_user_name,vu.visit_phone vu_visit_phone from visit_infomation vi
right join visit_user vu on vi.business_id=vu.visit_id
where 1=1
<if test="entity.createDateBegin !=null">
......@@ -161,7 +176,7 @@
</if>
<if test="entity.boolVisit !=null and entity.boolVisit != ''">
<if test="entity.boolVisit == '0'">
and vi.visit_date >= current_date
and vi.visit_real_time >= now()
</if>
<if test="entity.boolVisit == '1'">
and vi.visit_date &lt;= current_date
......@@ -176,17 +191,39 @@
vi.create_date
</if>
<if test="entity.sort == '2'">
vi.visit_time
vi.visit_real_time
</if>
</if>
</select>
<select id="queryVisitById" resultMap="BaseResultMap">
select vi.business_id,vi.user_name,vi.dept_name,vi.post_name,vi.create_date,vi.visit_reason,vi.visit_region,vi.visit_date,vi.visit_time,vi.visit_status,vu.user_name vu_user_name,vu.visit_phone vu_visit_phone from visit_infomation vi
right join visit_user vu on vi.business_id=vu.visit_id
where 1=1
select vi.business_id,vi.user_name,vi.dept_name,vi.post_name,vi.create_date,vi.visit_reason,vi.visit_region,
vi.visit_date,vi.visit_time,vi.visit_status,vu.user_name vu_user_name,vu.visit_phone vu_visit_phone
from visit_infomation vi
left join visit_user vu on vi.business_id=vu.visit_id
where vi.del_flag='0' and vi.flag='1'
<if test="id !=null">
and vi.business_id = #{id}
</if>
</select>
<select id="lastDetail" resultMap="BaseResultMap">
select vi.business_id,
vi.user_name,
vi.dept_name,
vi.post_name,
vi.create_date,
vi.visit_reason,
vi.visit_region,
vi.visit_date,
vi.visit_time,
vi.visit_status,
vu.user_name vu_user_name,
vu.visit_phone vu_visit_phone
from visit_infomation vi
left join visit_user vu on vi.business_id = vu.visit_id
where vi.del_flag = '0'
and vi.flag = '1'
and vu.visit_phone = #{phone}
order by vi.create_date desc
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment