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

查询最新邀请

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