大棚用户关联表

master
xce 2026-01-26 16:43:05 +08:00
parent fb5067dda8
commit 61a0ede957
12 changed files with 855 additions and 10 deletions

View File

@ -1,17 +1,18 @@
package com.agri.common.utils; package com.agri.common.utils;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.util.PatternMatchUtils;
import com.agri.common.constant.Constants; import com.agri.common.constant.Constants;
import com.agri.common.constant.HttpStatus; import com.agri.common.constant.HttpStatus;
import com.agri.common.core.domain.entity.SysRole; import com.agri.common.core.domain.entity.SysRole;
import com.agri.common.core.domain.model.LoginUser; import com.agri.common.core.domain.model.LoginUser;
import com.agri.common.exception.ServiceException; import com.agri.common.exception.ServiceException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.util.PatternMatchUtils;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* *
@ -114,6 +115,15 @@ public class SecurityUtils
return passwordEncoder.matches(rawPassword, encodedPassword); return passwordEncoder.matches(rawPassword, encodedPassword);
} }
/**
*
*
* @return
*/
public static boolean isAdmin()
{
return isAdmin(getUserId());
}
/** /**
* *
* *

View File

@ -43,10 +43,16 @@ public class SysAgriInfoController extends BaseController
public TableDataInfo list(SysAgriInfo sysAgriInfo) public TableDataInfo list(SysAgriInfo sysAgriInfo)
{ {
startPage(); startPage();
List<SysAgriInfo> list = sysAgriInfoService.selectSysAgriInfoList(sysAgriInfo); List<SysAgriInfo> list = sysAgriInfoService.findAgriByUser(sysAgriInfo);
return getDataTable(list); return getDataTable(list);
} }
@PreAuthorize("@ss.hasPermi('assets:agri:list')")
@GetMapping("/findAgriByUser")
public AjaxResult findAgriByUser(SysAgriInfo sysAgriInfo) {
List<SysAgriInfo> list = sysAgriInfoService.findAgriByUser(sysAgriInfo);
return success(list);
}
/** /**
* *
*/ */

View File

@ -0,0 +1,105 @@
package com.agri.system.controller;
import com.agri.common.annotation.Log;
import com.agri.common.core.controller.BaseController;
import com.agri.common.core.domain.AjaxResult;
import com.agri.common.core.page.TableDataInfo;
import com.agri.common.enums.BusinessType;
import com.agri.common.utils.poi.ExcelUtil;
import com.agri.system.domain.SysUserAgri;
import com.agri.system.service.ISysUserAgriService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* -Controller
*
* @author lld
* @date 2026-01-25
*/
@RestController
@RequestMapping("/assets/userAgri")
public class SysUserAgriController extends BaseController
{
@Autowired
private ISysUserAgriService sysUserAgriService;
/**
* -
*/
@PreAuthorize("@ss.hasPermi('assets:userAgri:list')")
@GetMapping("/list")
public TableDataInfo list(SysUserAgri sysUserAgri)
{
startPage();
List<SysUserAgri> list = sysUserAgriService.selectSysUserAgriList(sysUserAgri);
return getDataTable(list);
}
/**
* -
*/
@PreAuthorize("@ss.hasPermi('assets:userAgri:export')")
@Log(title = "大棚信息(用户-设备关联)", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SysUserAgri sysUserAgri)
{
List<SysUserAgri> list = sysUserAgriService.selectSysUserAgriList(sysUserAgri);
ExcelUtil<SysUserAgri> util = new ExcelUtil<SysUserAgri>(SysUserAgri.class);
util.exportExcel(response, list, "大棚信息(用户-设备关联)数据");
}
/**
* -
*/
@PreAuthorize("@ss.hasPermi('assets:userAgri:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(sysUserAgriService.selectSysUserAgriById(id));
}
/**
* -
*/
@PreAuthorize("@ss.hasPermi('assets:userAgri:add')")
@Log(title = "大棚信息(用户-设备关联)", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SysUserAgri sysUserAgri)
{
return toAjax(sysUserAgriService.save(sysUserAgri));
}
/**
* -
*/
@PreAuthorize("@ss.hasPermi('assets:userAgri:edit')")
@Log(title = "大棚信息(用户-设备关联)", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SysUserAgri sysUserAgri)
{
return toAjax(sysUserAgriService.updateSysUserAgri(sysUserAgri));
}
/**
* -
*/
@PreAuthorize("@ss.hasPermi('assets:userAgri:remove')")
@Log(title = "大棚信息(用户-设备关联)", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(sysUserAgriService.deleteSysUserAgriByIds(ids));
}
}

View File

@ -0,0 +1,215 @@
package com.agri.system.domain;
import com.agri.common.annotation.Excel;
import com.agri.common.core.domain.BaseEntity;
import com.agri.common.core.domain.entity.SysUser;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* - sys_user_agri
*
* @author lld
* @date 2026-01-25
*/
@TableName("sys_user_agri")
public class SysUserAgri extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** 主键ID雪花 */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 大棚ID */
@Excel(name = "大棚ID")
private Long agriId;
/** 协同用户ID */
@Excel(name = "协同用户ID")
private Long userId;
/** 角色3-OWNER/2-ADMIN/1-OPERATOR/0-VIEWER */
@Excel(name = "角色3-OWNER/2-ADMIN/1-OPERATOR/0-VIEWER")
private Long role;
/** 权限位位运算1=查看 2=控制 4=配置 8=分享/成员管理 16=导出等 */
@Excel(name = "权限位", readConverterExp = "位=运算")
private Long permMask;
/** 状态0=禁用 1=启用 2=待接受邀请 */
@Excel(name = "状态0=禁用 1=启用 2=待接受邀请")
private Long status;
/** 邀请人用户ID */
@Excel(name = "邀请人用户ID")
private Long inviteBy;
/** 邀请时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@Excel(name = "邀请时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date inviteTime;
/** 接受时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@Excel(name = "接受时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date acceptTime;
/** 版本号(乐观锁) */
@Excel(name = "版本号", readConverterExp = "乐=观锁")
@Version
private Long version;
@TableField(exist = false)
private SysUser sysUser;
@TableField(exist = false)
private String imei;
public String getImei() {
return imei;
}
public void setImei(String imei) {
this.imei = imei;
}
public SysUser getSysUser() {
return sysUser;
}
public void setSysUser(SysUser sysUser) {
this.sysUser = sysUser;
}
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setAgriId(Long agriId)
{
this.agriId = agriId;
}
public Long getAgriId()
{
return agriId;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Long getUserId()
{
return userId;
}
public void setRole(Long role)
{
this.role = role;
}
public Long getRole()
{
return role;
}
public void setPermMask(Long permMask)
{
this.permMask = permMask;
}
public Long getPermMask()
{
return permMask;
}
public void setStatus(Long status)
{
this.status = status;
}
public Long getStatus()
{
return status;
}
public void setInviteBy(Long inviteBy)
{
this.inviteBy = inviteBy;
}
public Long getInviteBy()
{
return inviteBy;
}
public void setInviteTime(Date inviteTime)
{
this.inviteTime = inviteTime;
}
public Date getInviteTime()
{
return inviteTime;
}
public void setAcceptTime(Date acceptTime)
{
this.acceptTime = acceptTime;
}
public Date getAcceptTime()
{
return acceptTime;
}
public void setVersion(Long version)
{
this.version = version;
}
public Long getVersion()
{
return version;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("agriId", getAgriId())
.append("userId", getUserId())
.append("role", getRole())
.append("permMask", getPermMask())
.append("status", getStatus())
.append("inviteBy", getInviteBy())
.append("inviteTime", getInviteTime())
.append("acceptTime", getAcceptTime())
.append("remark", getRemark())
.append("createTime", getCreateTime())
.append("createBy", getCreateBy())
.append("updateTime", getUpdateTime())
.append("updateBy", getUpdateBy())
.append("version", getVersion())
.toString();
}
}

View File

@ -11,8 +11,7 @@ import java.util.List;
* @author agri * @author agri
* @date 2026-01-08 * @date 2026-01-08
*/ */
public interface SysAgriInfoMapper extends BaseMapper<SysAgriInfo> public interface SysAgriInfoMapper extends BaseMapper<SysAgriInfo> {
{
/** /**
* *
* *
@ -60,4 +59,12 @@ public interface SysAgriInfoMapper extends BaseMapper<SysAgriInfo>
* @return * @return
*/ */
public int deleteSysAgriInfoByIds(Long[] ids); public int deleteSysAgriInfoByIds(Long[] ids);
/**
*
* @param sysAgriInfo
* @return
*/
public List<SysAgriInfo> findAgriByUser(SysAgriInfo sysAgriInfo);
} }

View File

@ -0,0 +1,70 @@
package com.agri.system.mapper;
import com.agri.system.domain.SysUserAgri;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* -Mapper
*
* @author lld
* @date 2026-01-25
*/
public interface SysUserAgriMapper extends BaseMapper<SysUserAgri>
{
/**
* -
*
* @param id -
* @return -
*/
public SysUserAgri selectSysUserAgriById(Long id);
/**
* -
*
* @param sysUserAgri -
* @return -
*/
public List<SysUserAgri> selectSysUserAgriList(SysUserAgri sysUserAgri);
/**
* -
*
* @param sysUserAgri -
* @return
*/
public int insertSysUserAgri(SysUserAgri sysUserAgri);
/**
* -
*
* @param sysUserAgri -
* @return
*/
public int updateSysUserAgri(SysUserAgri sysUserAgri);
/**
* -
*
* @param id -
* @return
*/
public int deleteSysUserAgriById(Long id);
/**
* -
*
* @param ids
* @return
*/
public int deleteSysUserAgriByIds(Long[] ids);
/**
*
* @param sysUserAgri
* @return
*/
List<SysUserAgri> findAgriUser(SysUserAgri sysUserAgri);
}

View File

@ -59,4 +59,8 @@ public interface ISysAgriInfoService extends IService<SysAgriInfo> {
* @return * @return
*/ */
public int deleteSysAgriInfoById(Long id); public int deleteSysAgriInfoById(Long id);
public List<SysAgriInfo> findAgriByUser(SysAgriInfo sysAgriInfo);
} }

View File

@ -0,0 +1,68 @@
package com.agri.system.service;
import com.agri.system.domain.SysUserAgri;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* -Service
*
* @author lld
* @date 2026-01-25
*/
public interface ISysUserAgriService extends IService<SysUserAgri> {
/**
* -
*
* @param id -
* @return -
*/
public SysUserAgri selectSysUserAgriById(Long id);
/**
* -
*
* @param sysUserAgri -
* @return -
*/
public List<SysUserAgri> selectSysUserAgriList(SysUserAgri sysUserAgri);
public List<SysUserAgri> findAgriUser(SysUserAgri sysUserAgri);
/**
* -
*
* @param sysUserAgri -
* @return
*/
public int insertSysUserAgri(SysUserAgri sysUserAgri);
/**
* -
*
* @param sysUserAgri -
* @return
*/
public int updateSysUserAgri(SysUserAgri sysUserAgri);
/**
* -
*
* @param ids -
* @return
*/
public int deleteSysUserAgriByIds(Long[] ids);
/**
* -
*
* @param id -
* @return
*/
public int deleteSysUserAgriById(Long id);
}

View File

@ -1,6 +1,7 @@
package com.agri.system.service.impl; package com.agri.system.service.impl;
import com.agri.common.utils.DateUtils; import com.agri.common.utils.DateUtils;
import com.agri.common.utils.SecurityUtils;
import com.agri.system.domain.SysAgriInfo; import com.agri.system.domain.SysAgriInfo;
import com.agri.system.mapper.SysAgriInfoMapper; import com.agri.system.mapper.SysAgriInfoMapper;
import com.agri.system.service.ISysAgriInfoService; import com.agri.system.service.ISysAgriInfoService;
@ -91,4 +92,13 @@ public class SysAgriInfoServiceImpl extends ServiceImpl<SysAgriInfoMapper, SysAg
{ {
return baseMapper.deleteSysAgriInfoById(id); return baseMapper.deleteSysAgriInfoById(id);
} }
@Override
public List<SysAgriInfo> findAgriByUser(SysAgriInfo sysAgriInfo) {
if (!SecurityUtils.isAdmin()) {
sysAgriInfo.setUserId(SecurityUtils.getUserId());
}
return baseMapper.findAgriByUser(sysAgriInfo);
}
} }

View File

@ -0,0 +1,101 @@
package com.agri.system.service.impl;
import com.agri.common.utils.DateUtils;
import com.agri.system.domain.SysUserAgri;
import com.agri.system.mapper.SysUserAgriMapper;
import com.agri.system.service.ISysUserAgriService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* -Service
*
* @author lld
* @date 2026-01-25
*/
@Service
public class SysUserAgriServiceImpl extends ServiceImpl<SysUserAgriMapper, SysUserAgri> implements ISysUserAgriService
{
/**
* -
*
* @param id -
* @return -
*/
@Override
public SysUserAgri selectSysUserAgriById(Long id)
{
return baseMapper.selectSysUserAgriById(id);
}
/**
* -
*
* @param sysUserAgri -
* @return -
*/
@Override
public List<SysUserAgri> selectSysUserAgriList(SysUserAgri sysUserAgri)
{
return baseMapper.selectSysUserAgriList(sysUserAgri);
}
/**
* -
*
* @param sysUserAgri -
* @return
*/
@Override
public int insertSysUserAgri(SysUserAgri sysUserAgri)
{
sysUserAgri.setCreateTime(DateUtils.getNowDate());
return baseMapper.insertSysUserAgri(sysUserAgri);
}
/**
* -
*
* @param sysUserAgri -
* @return
*/
@Override
public int updateSysUserAgri(SysUserAgri sysUserAgri)
{
sysUserAgri.setUpdateTime(DateUtils.getNowDate());
return baseMapper.updateSysUserAgri(sysUserAgri);
}
/**
* -
*
* @param ids -
* @return
*/
@Override
public int deleteSysUserAgriByIds(Long[] ids)
{
return baseMapper.deleteSysUserAgriByIds(ids);
}
/**
* -
*
* @param id -
* @return
*/
@Override
public int deleteSysUserAgriById(Long id)
{
return baseMapper.deleteSysUserAgriById(id);
}
@Override
public List<SysUserAgri> findAgriUser(SysUserAgri sysUserAgri) {
return baseMapper.findAgriUser(sysUserAgri);
}
}

View File

@ -29,6 +29,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, imei, agri_name, user_id, temp_upper, temp_lower, humi_upper, humi_lower, alarm_status, device_status, install_time, location, remark, create_time, create_by, update_time, update_by, is_deleted from sys_agri_info select id, imei, agri_name, user_id, temp_upper, temp_lower, humi_upper, humi_lower, alarm_status, device_status, install_time, location, remark, create_time, create_by, update_time, update_by, is_deleted from sys_agri_info
</sql> </sql>
<sql id="agriUserVo">
SELECT
agri.id,
agri.imei,
agri.agri_name,
agri.temp_upper,
agri.temp_lower,
agri.humi_upper,
agri.humi_lower,
agri.alarm_status,
agri.device_status,
agri.install_time,
agri.location,
agri.remark,
agri.create_time,
agri.create_by,
agri.update_time,
agri.update_by,
agri.is_deleted,
user_agri.user_id
FROM
sys_agri_info agri
LEFT JOIN sys_user_agri user_agri ON user_agri.agri_id = agri.id
<if test="userId != null"> and user_agri.user_id = #{userId}</if>
</sql>
<select id="selectSysAgriInfoList" parameterType="SysAgriInfo" resultMap="SysAgriInfoResult"> <select id="selectSysAgriInfoList" parameterType="SysAgriInfo" resultMap="SysAgriInfoResult">
<include refid="selectSysAgriInfoVo"/> <include refid="selectSysAgriInfoVo"/>
<where> <where>
@ -128,4 +154,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<select id="findAgriByUser" parameterType="SysAgriInfo" resultMap="SysAgriInfoResult">
<include refid="agriUserVo"/>
<where>
<if test="imei != null and imei != ''"> and agri.imei = #{imei}</if>
<if test="agriName != null and agriName != ''"> and agri.agri_name like concat('%', #{agriName}, '%')</if>
<if test="tempUpper != null "> and agri.temp_upper = #{tempUpper}</if>
<if test="tempLower != null "> and agri.temp_lower = #{tempLower}</if>
<if test="humiUpper != null "> and agri.humi_upper = #{humiUpper}</if>
<if test="humiLower != null "> and agri.humi_lower = #{humiLower}</if>
<if test="alarmStatus != null "> and agri.alarm_status = #{alarmStatus}</if>
<if test="deviceStatus != null "> and agri.device_status = #{deviceStatus}</if>
<if test="installTime != null "> and agri.install_time = #{installTime}</if>
<if test="location != null and location != ''"> and agri.location = #{location}</if>
<if test="isDeleted != null "> and agri.is_deleted = #{isDeleted}</if>
</where>
</select>
</mapper> </mapper>

View File

@ -0,0 +1,205 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.agri.system.mapper.SysUserAgriMapper">
<resultMap type="SysUserAgri" id="SysUserAgriResult">
<result property="id" column="id" />
<result property="agriId" column="agri_id" />
<result property="userId" column="user_id" />
<result property="role" column="role" />
<result property="permMask" column="perm_mask" />
<result property="status" column="status" />
<result property="inviteBy" column="invite_by" />
<result property="inviteTime" column="invite_time" />
<result property="acceptTime" column="accept_time" />
<result property="remark" column="remark" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" />
<result property="version" column="version" />
<association property="sysUser" javaType="java.util.List" resultMap="SysUserResult" />
</resultMap>
<resultMap type="SysUser" id="SysUserResult">
<id property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="nickName" column="nick_name" />
<result property="email" column="email" />
<result property="phonenumber" column="phonenumber" />
<result property="sex" column="sex" />
<result property="avatar" column="avatar" />
<result property="status" column="status" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectSysUserAgriVo">
SELECT
id,
agri_id,
user_id,
role,
perm_mask,
STATUS,
invite_by,
invite_time,
accept_time,
remark,
create_time,
create_by,
update_time,
update_by,
version
FROM
sys_user_agri
</sql>
<sql id="userVo">
</sql>
<select id="selectSysUserAgriList" parameterType="SysUserAgri" resultMap="SysUserAgriResult">
<include refid="selectSysUserAgriVo"/>
<where>
<if test="agriId != null "> and agri_id = #{agriId}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="role != null "> and role = #{role}</if>
<if test="permMask != null "> and perm_mask = #{permMask}</if>
<if test="status != null "> and status = #{status}</if>
<if test="inviteBy != null "> and invite_by = #{inviteBy}</if>
<if test="inviteTime != null "> and invite_time = #{inviteTime}</if>
<if test="acceptTime != null "> and accept_time = #{acceptTime}</if>
<if test="version != null "> and version = #{version}</if>
</where>
</select>
<select id="selectSysUserAgriById" parameterType="Long" resultMap="SysUserAgriResult">
<include refid="selectSysUserAgriVo"/>
where id = #{id}
</select>
<insert id="insertSysUserAgri" parameterType="SysUserAgri">
insert into sys_user_agri
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="agriId != null">agri_id,</if>
<if test="userId != null">user_id,</if>
<if test="role != null">role,</if>
<if test="permMask != null">perm_mask,</if>
<if test="status != null">status,</if>
<if test="inviteBy != null">invite_by,</if>
<if test="inviteTime != null">invite_time,</if>
<if test="acceptTime != null">accept_time,</if>
<if test="remark != null">remark,</if>
create_time,
create_by,
update_time,
update_by,
<if test="version != null">version,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="agriId != null">#{agriId},</if>
<if test="userId != null">#{userId},</if>
<if test="role != null">#{role},</if>
<if test="permMask != null">#{permMask},</if>
<if test="status != null">#{status},</if>
<if test="inviteBy != null">#{inviteBy},</if>
<if test="inviteTime != null">#{inviteTime},</if>
<if test="acceptTime != null">#{acceptTime},</if>
<if test="remark != null">#{remark},</if>
#{createTime},
#{createBy},
#{updateTime},
#{updateBy},
<if test="version != null">#{version},</if>
</trim>
</insert>
<update id="updateSysUserAgri" parameterType="SysUserAgri">
update sys_user_agri
<trim prefix="SET" suffixOverrides=",">
<if test="agriId != null">agri_id = #{agriId},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="role != null">role = #{role},</if>
<if test="permMask != null">perm_mask = #{permMask},</if>
<if test="status != null">status = #{status},</if>
<if test="inviteBy != null">invite_by = #{inviteBy},</if>
<if test="inviteTime != null">invite_time = #{inviteTime},</if>
<if test="acceptTime != null">accept_time = #{acceptTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="version != null">version = #{version},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSysUserAgriById" parameterType="Long">
delete from sys_user_agri where id = #{id}
</delete>
<delete id="deleteSysUserAgriByIds" parameterType="String">
delete from sys_user_agri where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<sql id="agriUserVo">
SELECT
user_agri.id,
user_agri.agri_id,
user_agri.user_id,
user_agri.role,
user_agri.perm_mask,
user_agri.STATUS,
user_agri.invite_by,
user_agri.invite_time,
user_agri.accept_time,
user_agri.remark,
user_agri.create_time,
user_agri.create_by,
user_agri.update_time,
user_agri.update_by,
user_agri.version
`user`.user_id,
`user`.user_name,
`user`.nick_name,
`user`.email,
`user`.phonenumber,
`user`.sex,
`user`.status,
`user`.del_flag
FROM
sys_user_agri user_agri
LEFT JOIN sys_user `user` ON user_agri.user_id = `user`.user_id and `user`.del_flag=0
<if test="agriId != null "> and user_agri.agri_id = #{agriId}</if>
</sql>
<select id="findAgriUser" parameterType="SysUserAgri" resultMap="SysUserAgriResult">
<include refid="agriUserVo"/>
<where>
<if test="userId != null "> and user_agri.user_id = #{userId}</if>
<if test="role != null "> and user_agri.role = #{role}</if>
<if test="permMask != null "> and user_agri.perm_mask = #{permMask}</if>
<if test="status != null "> and user_agri.status = #{status}</if>
<if test="inviteBy != null "> and user_agri.invite_by = #{inviteBy}</if>
<if test="inviteTime != null "> and user_agri.invite_time = #{inviteTime}</if>
<if test="acceptTime != null "> and user_agri.accept_time = #{acceptTime}</if>
<if test="version != null "> and user_agri.version = #{version}</if>
<if test="userId != null and userId != 0">
AND `user`.user_id = #{userId}
</if>
<if test="userName != null and userName != ''">
AND `user`.user_name like concat('%', #{userName}, '%')
</if>
<if test="status != null and status != ''">
AND `user`.status = #{status}
</if>
<if test="phonenumber != null and phonenumber != ''">
AND `user`.phonenumber like concat('%', #{phonenumber}, '%')
</if>
</where>
</select>
</mapper>