Переглянути джерело

fix 委员信息,会议通知

Administrator 1 рік тому
батько
коміт
b82314977f

+ 117 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/conference/ZxConferenceController.java

@@ -0,0 +1,117 @@
+package com.ruoyi.web.controller.conference;
+
+
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.conference.ZxConference;
+import com.ruoyi.system.domain.conference.ZxConferenceUser;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.service.IZxConferenceService;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.List;
+
+/**
+ * 政协会议活动Controller
+ *
+ * @author boman
+ * @date 2024-03-06
+ */
+@RestController
+@RequestMapping("/zxConference/conference")
+public class ZxConferenceController extends BaseController {
+    @Autowired
+    private IZxConferenceService zxConferenceService;
+
+    /**
+     * 查询政协会议活动列表
+     */
+    @PreAuthorize("@ss.hasPermi('zxConference:conference:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ZxConference zxConference) {
+        startPage();
+        List<ZxConference> list = zxConferenceService.selectZxConferenceList(zxConference);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出政协会议活动列表
+     */
+    @PreAuthorize("@ss.hasPermi('zxConference:conference:export')")
+    @Log(title = "政协会议活动", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ZxConference zxConference) {
+        List<ZxConference> list = zxConferenceService.selectZxConferenceList(zxConference);
+        ExcelUtil<ZxConference> util = new ExcelUtil<ZxConference>(ZxConference.class);
+        util.exportExcel(response, list, "政协会议活动数据");
+    }
+
+    /**
+     * 获取政协会议活动详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('zxConference:conference:query')")
+    @GetMapping(value = "/{conferenceId}")
+    public AjaxResult getInfo(@PathVariable("conferenceId") Long conferenceId) {
+        return success(zxConferenceService.selectZxConferenceByConferenceId(conferenceId));
+    }
+
+    /**
+     * 获取政协会议活动人员详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('zxConference:conference:getUserInfo')")
+    @GetMapping(value = "/getUserInfo/{conferenceId}")
+    public TableDataInfo getUserInfo(@PathVariable("conferenceId") Long conferenceId) {
+        return getDataTable(zxConferenceService.selectZxConferenceUserByConferenceId(conferenceId));
+    }
+
+    /**
+     * 修改会议答复信息
+     */
+    @PreAuthorize("@ss.hasPermi('zxConference:conference:updateReply')")
+    @PostMapping(value = "/updateReply")
+    public AjaxResult updateReply(@RequestBody ZxConferenceUser zxConferenceUser) {
+        return success(zxConferenceService.updateReply(zxConferenceUser));
+    }
+
+    /**
+     * 新增政协会议活动
+     */
+    @PreAuthorize("@ss.hasPermi('zxConference:conference:add')")
+    @Log(title = "政协会议活动", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ZxConference zxConference) {
+        return toAjax(zxConferenceService.insertZxConference(zxConference));
+    }
+
+    /**
+     * 修改政协会议活动
+     */
+    @PreAuthorize("@ss.hasPermi('zxConference:conference:edit')")
+    @Log(title = "政协会议活动", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody ZxConference zxConference) {
+        return toAjax(zxConferenceService.updateZxConference(zxConference));
+    }
+
+    /**
+     * 删除政协会议活动
+     */
+    @PreAuthorize("@ss.hasPermi('zxConference:conference:remove')")
+    @Log(title = "政协会议活动", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{conferenceIds}")
+    public AjaxResult remove(@PathVariable Long[] conferenceIds) {
+        return toAjax(zxConferenceService.deleteZxConferenceByConferenceIds(conferenceIds));
+    }
+}

+ 108 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/member/MemberInfoController.java

@@ -0,0 +1,108 @@
+package com.ruoyi.web.controller.member;
+
+
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.member.MemberInfo;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.service.IMemberInfoService;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.List;
+
+/**
+ * 委员信息Controller
+ *
+ * @author boman
+ * @date 2024-03-07
+ */
+@RestController
+@RequestMapping("/member/info")
+public class MemberInfoController extends BaseController {
+    @Autowired
+    private IMemberInfoService memberInfoService;
+
+    /**
+     * 查询委员信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('member:info:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(MemberInfo memberInfo) {
+        startPage();
+        List<MemberInfo> list = memberInfoService.selectMemberInfoList(memberInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询委员信息列表不分页
+     */
+    @PreAuthorize("@ss.hasPermi('member:info:listNoPage')")
+    @GetMapping("/listNoPage")
+    public TableDataInfo listNoPage(MemberInfo memberInfo) {
+        List<MemberInfo> list = memberInfoService.selectMemberInfoList(memberInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出委员信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('member:info:export')")
+    @Log(title = "委员信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, MemberInfo memberInfo) {
+        List<MemberInfo> list = memberInfoService.selectMemberInfoList(memberInfo);
+        ExcelUtil<MemberInfo> util = new ExcelUtil<MemberInfo>(MemberInfo.class);
+        util.exportExcel(response, list, "委员信息数据");
+    }
+
+    /**
+     * 获取委员信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('member:info:query')")
+    @GetMapping(value = "/{memberId}")
+    public AjaxResult getInfo(@PathVariable("memberId") Long memberId) {
+        return success(memberInfoService.selectMemberInfoByMemberId(memberId));
+    }
+
+    /**
+     * 新增委员信息
+     */
+    @PreAuthorize("@ss.hasPermi('member:info:add')")
+    @Log(title = "委员信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody MemberInfo memberInfo) {
+        return toAjax(memberInfoService.insertMemberInfo(memberInfo));
+    }
+
+    /**
+     * 修改委员信息
+     */
+    @PreAuthorize("@ss.hasPermi('member:info:edit')")
+    @Log(title = "委员信息", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody MemberInfo memberInfo) {
+        return toAjax(memberInfoService.updateMemberInfo(memberInfo));
+    }
+
+    /**
+     * 删除委员信息
+     */
+    @PreAuthorize("@ss.hasPermi('member:info:remove')")
+    @Log(title = "委员信息", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{memberIds}")
+    public AjaxResult remove(@PathVariable Long[] memberIds) {
+        return toAjax(memberInfoService.deleteMemberInfoByMemberIds(memberIds));
+    }
+}

+ 155 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/conference/ZxConference.java

@@ -0,0 +1,155 @@
+package com.ruoyi.system.domain.conference;
+
+import java.util.List;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 政协会议活动对象 zx_conference
+ * 
+ * @author boman
+ * @date 2024-03-06
+ */
+public class ZxConference extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 会议活动ID */
+    private Long conferenceId;
+
+    /** 会议名称 */
+    @Excel(name = "会议名称")
+    private String conferenceTitle;
+
+    /** 会议日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "会议日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date conferenceDate;
+
+    /** 会议时间 */
+    @Excel(name = "会议时间")
+    private String conferenceTime;
+
+    /** 会议地点 */
+    @Excel(name = "会议地点")
+    private String conferenceAddress;
+    /**
+     * 已读人数
+     */
+    private String read;
+    /**
+     * 未读人数
+     */
+    private String noRead;
+
+    /** 发布时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date publishTime;
+
+    /** 政协会议活动-用户关联信息 */
+    private List<ZxConferenceUser> zxConferenceUserList;
+
+    public String getNoRead() {
+        return noRead;
+    }
+
+    public void setNoRead(String noRead) {
+        this.noRead = noRead;
+    }
+
+    public String getRead() {
+        return read;
+    }
+
+    public void setRead(String read) {
+        this.read = read;
+    }
+
+    public void setConferenceId(Long conferenceId)
+    {
+        this.conferenceId = conferenceId;
+    }
+
+    public Long getConferenceId() 
+    {
+        return conferenceId;
+    }
+    public void setConferenceTitle(String conferenceTitle) 
+    {
+        this.conferenceTitle = conferenceTitle;
+    }
+
+    public String getConferenceTitle() 
+    {
+        return conferenceTitle;
+    }
+    public void setConferenceDate(Date conferenceDate) 
+    {
+        this.conferenceDate = conferenceDate;
+    }
+
+    public Date getConferenceDate() 
+    {
+        return conferenceDate;
+    }
+    public void setConferenceTime(String conferenceTime) 
+    {
+        this.conferenceTime = conferenceTime;
+    }
+
+    public String getConferenceTime() 
+    {
+        return conferenceTime;
+    }
+    public void setConferenceAddress(String conferenceAddress) 
+    {
+        this.conferenceAddress = conferenceAddress;
+    }
+
+    public String getConferenceAddress() 
+    {
+        return conferenceAddress;
+    }
+    public void setPublishTime(Date publishTime) 
+    {
+        this.publishTime = publishTime;
+    }
+
+    public Date getPublishTime() 
+    {
+        return publishTime;
+    }
+
+    public List<ZxConferenceUser> getZxConferenceUserList()
+    {
+        return zxConferenceUserList;
+    }
+
+    public void setZxConferenceUserList(List<ZxConferenceUser> zxConferenceUserList)
+    {
+        this.zxConferenceUserList = zxConferenceUserList;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("conferenceId", getConferenceId())
+            .append("conferenceTitle", getConferenceTitle())
+            .append("conferenceDate", getConferenceDate())
+            .append("conferenceTime", getConferenceTime())
+            .append("conferenceAddress", getConferenceAddress())
+            .append("publishTime", getPublishTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .append("zxConferenceUserList", getZxConferenceUserList())
+            .toString();
+    }
+}

+ 156 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/conference/ZxConferenceUser.java

@@ -0,0 +1,156 @@
+package com.ruoyi.system.domain.conference;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 政协会议活动-用户关联对象 zx_conference_user
+ * 
+ * @author boman
+ * @date 2024-03-06
+ */
+public class ZxConferenceUser extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 会议活动ID */
+    private Long conferenceId;
+
+    /** 用户ID/委员信息表id */
+    private Long userId;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    private String userName;
+
+    /** 委员职务 */
+    @Excel(name = "委员职务")
+    private String postName;
+
+    /** 级别 */
+    @Excel(name = "级别")
+    private String userLevel;
+
+    /** 答复时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "答复时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date replyTime;
+
+    /** 是否参会 N:不参加 Y:参加 */
+    @Excel(name = "是否参会 N:不参加 Y:参加")
+    private String isJoin;
+
+    /** 请假类型 */
+    @Excel(name = "请假类型")
+    private String leaveType;
+
+    /** 请假原因 */
+    @Excel(name = "请假原因")
+    private String leaveReason;
+
+    public void setConferenceId(Long conferenceId) 
+    {
+        this.conferenceId = conferenceId;
+    }
+
+    public Long getConferenceId() 
+    {
+        return conferenceId;
+    }
+    public void setUserId(Long userId) 
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId() 
+    {
+        return userId;
+    }
+    public void setUserName(String userName) 
+    {
+        this.userName = userName;
+    }
+
+    public String getUserName() 
+    {
+        return userName;
+    }
+    public void setPostName(String postName) 
+    {
+        this.postName = postName;
+    }
+
+    public String getPostName() 
+    {
+        return postName;
+    }
+    public void setUserLevel(String userLevel) 
+    {
+        this.userLevel = userLevel;
+    }
+
+    public String getUserLevel() 
+    {
+        return userLevel;
+    }
+    public void setReplyTime(Date replyTime) 
+    {
+        this.replyTime = replyTime;
+    }
+
+    public Date getReplyTime() 
+    {
+        return replyTime;
+    }
+    public void setIsJoin(String isJoin) 
+    {
+        this.isJoin = isJoin;
+    }
+
+    public String getIsJoin() 
+    {
+        return isJoin;
+    }
+    public void setLeaveType(String leaveType) 
+    {
+        this.leaveType = leaveType;
+    }
+
+    public String getLeaveType() 
+    {
+        return leaveType;
+    }
+    public void setLeaveReason(String leaveReason) 
+    {
+        this.leaveReason = leaveReason;
+    }
+
+    public String getLeaveReason() 
+    {
+        return leaveReason;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("conferenceId", getConferenceId())
+            .append("userId", getUserId())
+            .append("userName", getUserName())
+            .append("postName", getPostName())
+            .append("userLevel", getUserLevel())
+            .append("replyTime", getReplyTime())
+            .append("isJoin", getIsJoin())
+            .append("leaveType", getLeaveType())
+            .append("leaveReason", getLeaveReason())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 181 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/member/MemberInfo.java

@@ -0,0 +1,181 @@
+package com.ruoyi.system.domain.member;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 委员信息对象 member_info
+ * 
+ * @author boman
+ * @date 2024-03-07
+ */
+public class MemberInfo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 委员ID */
+    private Long memberId;
+
+    /** 账号表ID */
+    @Excel(name = "账号表ID")
+    private Long userId;
+
+    /** 委员姓名 */
+    @Excel(name = "委员姓名")
+    private String memberName;
+
+    /** 委员身份证号 */
+    @Excel(name = "委员身份证号")
+    private String memberCard;
+
+    /** 界别 */
+    @Excel(name = "界别")
+    private String boundary;
+
+    /** 党派 */
+    @Excel(name = "党派")
+    private String partyAffiliation;
+
+    /** 手机号码 */
+    @Excel(name = "手机号码")
+    private String phonenumber;
+
+    /** 委员照片地址 */
+    @Excel(name = "委员照片地址")
+    private String avatar;
+
+    /** 工作单位及职务 */
+    @Excel(name = "工作单位及职务")
+    private String unit;
+
+    /** 乡镇(经开区)委员工作室 */
+    @Excel(name = "乡镇", readConverterExp = "经=开区")
+    private String studio;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    public void setMemberId(Long memberId) 
+    {
+        this.memberId = memberId;
+    }
+
+    public Long getMemberId() 
+    {
+        return memberId;
+    }
+    public void setUserId(Long userId) 
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId() 
+    {
+        return userId;
+    }
+    public void setMemberName(String memberName) 
+    {
+        this.memberName = memberName;
+    }
+
+    public String getMemberName() 
+    {
+        return memberName;
+    }
+    public void setMemberCard(String memberCard) 
+    {
+        this.memberCard = memberCard;
+    }
+
+    public String getMemberCard() 
+    {
+        return memberCard;
+    }
+    public void setBoundary(String boundary) 
+    {
+        this.boundary = boundary;
+    }
+
+    public String getBoundary() 
+    {
+        return boundary;
+    }
+    public void setPartyAffiliation(String partyAffiliation) 
+    {
+        this.partyAffiliation = partyAffiliation;
+    }
+
+    public String getPartyAffiliation() 
+    {
+        return partyAffiliation;
+    }
+    public void setPhonenumber(String phonenumber) 
+    {
+        this.phonenumber = phonenumber;
+    }
+
+    public String getPhonenumber() 
+    {
+        return phonenumber;
+    }
+    public void setAvatar(String avatar) 
+    {
+        this.avatar = avatar;
+    }
+
+    public String getAvatar() 
+    {
+        return avatar;
+    }
+    public void setUnit(String unit) 
+    {
+        this.unit = unit;
+    }
+
+    public String getUnit() 
+    {
+        return unit;
+    }
+    public void setStudio(String studio) 
+    {
+        this.studio = studio;
+    }
+
+    public String getStudio() 
+    {
+        return studio;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("memberId", getMemberId())
+            .append("userId", getUserId())
+            .append("memberName", getMemberName())
+            .append("memberCard", getMemberCard())
+            .append("boundary", getBoundary())
+            .append("partyAffiliation", getPartyAffiliation())
+            .append("phonenumber", getPhonenumber())
+            .append("avatar", getAvatar())
+            .append("unit", getUnit())
+            .append("studio", getStudio())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/MemberInfoMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper;
+
+
+import com.ruoyi.system.domain.member.MemberInfo;
+
+import java.util.List;
+
+/**
+ * 委员信息Mapper接口
+ * 
+ * @author boman
+ * @date 2024-03-07
+ */
+public interface MemberInfoMapper 
+{
+    /**
+     * 查询委员信息
+     * 
+     * @param memberId 委员信息主键
+     * @return 委员信息
+     */
+    public MemberInfo selectMemberInfoByMemberId(Long memberId);
+
+    /**
+     * 查询委员信息列表
+     * 
+     * @param memberInfo 委员信息
+     * @return 委员信息集合
+     */
+    public List<MemberInfo> selectMemberInfoList(MemberInfo memberInfo);
+
+    /**
+     * 新增委员信息
+     * 
+     * @param memberInfo 委员信息
+     * @return 结果
+     */
+    public int insertMemberInfo(MemberInfo memberInfo);
+
+    /**
+     * 修改委员信息
+     * 
+     * @param memberInfo 委员信息
+     * @return 结果
+     */
+    public int updateMemberInfo(MemberInfo memberInfo);
+
+    /**
+     * 删除委员信息
+     * 
+     * @param memberId 委员信息主键
+     * @return 结果
+     */
+    public int deleteMemberInfoByMemberId(Long memberId);
+
+    /**
+     * 批量删除委员信息
+     * 
+     * @param memberIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMemberInfoByMemberIds(Long[] memberIds);
+}

+ 98 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ZxConferenceMapper.java

@@ -0,0 +1,98 @@
+package com.ruoyi.system.mapper;
+
+
+import com.ruoyi.system.domain.conference.ZxConference;
+import com.ruoyi.system.domain.conference.ZxConferenceUser;
+import java.util.List;
+
+/**
+ * 政协会议活动Mapper接口
+ * 
+ * @author boman
+ * @date 2024-03-06
+ */
+public interface ZxConferenceMapper 
+{
+    /**
+     * 查询政协会议活动
+     * 
+     * @param conferenceId 政协会议活动主键
+     * @return 政协会议活动
+     */
+    public ZxConference selectZxConferenceByConferenceId(Long conferenceId);
+    /**
+     *查询政协会议活动人员详情
+     * @param conferenceId 政协会议活动主键
+     * @return
+     */
+    public List<ZxConferenceUser> selectZxConferenceUserByConferenceId(Long conferenceId);
+
+    /**
+     * 查询政协会议活动列表
+     * 
+     * @param zxConference 政协会议活动
+     * @return 政协会议活动集合
+     */
+    public List<ZxConference> selectZxConferenceList(ZxConference zxConference);
+
+    /**
+     * 新增政协会议活动
+     * 
+     * @param zxConference 政协会议活动
+     * @return 结果
+     */
+    public int insertZxConference(ZxConference zxConference);
+
+    /**
+     * 修改政协会议活动
+     * 
+     * @param zxConference 政协会议活动
+     * @return 结果
+     */
+    public int updateZxConference(ZxConference zxConference);
+    /**
+     * 修改会议答复信息
+     */
+    public int updateReply(ZxConferenceUser zxConferenceUser);
+
+    /**
+     * 删除政协会议活动
+     * 
+     * @param conferenceId 政协会议活动主键
+     * @return 结果
+     */
+    public int deleteZxConferenceByConferenceId(Long conferenceId);
+
+    /**
+     * 批量删除政协会议活动
+     * 
+     * @param conferenceIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteZxConferenceByConferenceIds(Long[] conferenceIds);
+
+    /**
+     * 批量删除政协会议活动-用户关联
+     * 
+     * @param conferenceIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteZxConferenceUserByConferenceIds(Long[] conferenceIds);
+    
+    /**
+     * 批量新增政协会议活动-用户关联
+     * 
+     * @param zxConferenceUserList 政协会议活动-用户关联列表
+     * @return 结果
+     */
+    public int batchZxConferenceUser(List<ZxConferenceUser> zxConferenceUserList);
+    
+
+    /**
+     * 通过政协会议活动主键删除政协会议活动-用户关联信息
+     * 
+     * @param conferenceId 政协会议活动ID
+     * @return 结果
+     */
+    public int deleteZxConferenceUserByConferenceId(Long conferenceId);
+}

+ 62 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IMemberInfoService.java

@@ -0,0 +1,62 @@
+package com.ruoyi.system.service;
+
+
+import com.ruoyi.system.domain.member.MemberInfo;
+import java.util.List;
+
+/**
+ * 委员信息Service接口
+ * 
+ * @author boman
+ * @date 2024-03-07
+ */
+public interface IMemberInfoService 
+{
+    /**
+     * 查询委员信息
+     * 
+     * @param memberId 委员信息主键
+     * @return 委员信息
+     */
+    public MemberInfo selectMemberInfoByMemberId(Long memberId);
+
+    /**
+     * 查询委员信息列表
+     * 
+     * @param memberInfo 委员信息
+     * @return 委员信息集合
+     */
+    public List<MemberInfo> selectMemberInfoList(MemberInfo memberInfo);
+
+    /**
+     * 新增委员信息
+     * 
+     * @param memberInfo 委员信息
+     * @return 结果
+     */
+    public int insertMemberInfo(MemberInfo memberInfo);
+
+    /**
+     * 修改委员信息
+     * 
+     * @param memberInfo 委员信息
+     * @return 结果
+     */
+    public int updateMemberInfo(MemberInfo memberInfo);
+
+    /**
+     * 批量删除委员信息
+     * 
+     * @param memberIds 需要删除的委员信息主键集合
+     * @return 结果
+     */
+    public int deleteMemberInfoByMemberIds(Long[] memberIds);
+
+    /**
+     * 删除委员信息信息
+     * 
+     * @param memberId 委员信息主键
+     * @return 结果
+     */
+    public int deleteMemberInfoByMemberId(Long memberId);
+}

+ 76 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IZxConferenceService.java

@@ -0,0 +1,76 @@
+package com.ruoyi.system.service;
+
+
+import com.ruoyi.system.domain.conference.ZxConference;
+import com.ruoyi.system.domain.conference.ZxConferenceUser;
+
+import java.util.List;
+
+/**
+ * 政协会议活动Service接口
+ * 
+ * @author boman
+ * @date 2024-03-06
+ */
+public interface IZxConferenceService 
+{
+    /**
+     * 查询政协会议活动
+     * 
+     * @param conferenceId 政协会议活动主键
+     * @return 政协会议活动
+     */
+    public ZxConference selectZxConferenceByConferenceId(Long conferenceId);
+
+    /**
+     *查询政协会议活动人员详情
+     * @param conferenceId 政协会议活动主键
+     * @return
+     */
+    public List<ZxConferenceUser> selectZxConferenceUserByConferenceId(Long conferenceId);
+
+    /**
+     * 查询政协会议活动列表
+     * 
+     * @param zxConference 政协会议活动
+     * @return 政协会议活动集合
+     */
+    public List<ZxConference> selectZxConferenceList(ZxConference zxConference);
+
+    /**
+     * 新增政协会议活动
+     * 
+     * @param zxConference 政协会议活动
+     * @return 结果
+     */
+    public int insertZxConference(ZxConference zxConference);
+
+    /**
+     * 修改政协会议活动
+     * 
+     * @param zxConference 政协会议活动
+     * @return 结果
+     */
+    public int updateZxConference(ZxConference zxConference);
+
+    /**
+     * 修改会议答复信息
+     */
+    public int updateReply(ZxConferenceUser zxConferenceUser);
+
+    /**
+     * 批量删除政协会议活动
+     * 
+     * @param conferenceIds 需要删除的政协会议活动主键集合
+     * @return 结果
+     */
+    public int deleteZxConferenceByConferenceIds(Long[] conferenceIds);
+
+    /**
+     * 删除政协会议活动信息
+     * 
+     * @param conferenceId 政协会议活动主键
+     * @return 结果
+     */
+    public int deleteZxConferenceByConferenceId(Long conferenceId);
+}

+ 100 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/MemberInfoServiceImpl.java

@@ -0,0 +1,100 @@
+package com.ruoyi.system.service.impl;
+
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.member.MemberInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.MemberInfoMapper;
+import com.ruoyi.system.service.IMemberInfoService;
+
+import java.util.List;
+
+/**
+ * 委员信息Service业务层处理
+ * 
+ * @author boman
+ * @date 2024-03-07
+ */
+@Service
+public class MemberInfoServiceImpl implements IMemberInfoService 
+{
+    @Autowired
+    private MemberInfoMapper memberInfoMapper;
+
+    /**
+     * 查询委员信息
+     * 
+     * @param memberId 委员信息主键
+     * @return 委员信息
+     */
+    @Override
+    public MemberInfo selectMemberInfoByMemberId(Long memberId)
+    {
+        return memberInfoMapper.selectMemberInfoByMemberId(memberId);
+    }
+
+    /**
+     * 查询委员信息列表
+     * 
+     * @param memberInfo 委员信息
+     * @return 委员信息
+     */
+    @Override
+    public List<MemberInfo> selectMemberInfoList(MemberInfo memberInfo)
+    {
+        return memberInfoMapper.selectMemberInfoList(memberInfo);
+    }
+
+    /**
+     * 新增委员信息
+     * 
+     * @param memberInfo 委员信息
+     * @return 结果
+     */
+    @Override
+    public int insertMemberInfo(MemberInfo memberInfo)
+    {
+        memberInfo.setUserId(SecurityUtils.getUserId());
+        memberInfo.setCreateTime(DateUtils.getNowDate());
+        return memberInfoMapper.insertMemberInfo(memberInfo);
+    }
+
+    /**
+     * 修改委员信息
+     * 
+     * @param memberInfo 委员信息
+     * @return 结果
+     */
+    @Override
+    public int updateMemberInfo(MemberInfo memberInfo)
+    {
+        memberInfo.setUpdateTime(DateUtils.getNowDate());
+        return memberInfoMapper.updateMemberInfo(memberInfo);
+    }
+
+    /**
+     * 批量删除委员信息
+     * 
+     * @param memberIds 需要删除的委员信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMemberInfoByMemberIds(Long[] memberIds)
+    {
+        return memberInfoMapper.deleteMemberInfoByMemberIds(memberIds);
+    }
+
+    /**
+     * 删除委员信息信息
+     * 
+     * @param memberId 委员信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMemberInfoByMemberId(Long memberId)
+    {
+        return memberInfoMapper.deleteMemberInfoByMemberId(memberId);
+    }
+}

+ 155 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ZxConferenceServiceImpl.java

@@ -0,0 +1,155 @@
+package com.ruoyi.system.service.impl;
+
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.domain.conference.ZxConference;
+import com.ruoyi.system.domain.conference.ZxConferenceUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
+import com.ruoyi.system.mapper.ZxConferenceMapper;
+import com.ruoyi.system.service.IZxConferenceService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 政协会议活动Service业务层处理
+ *
+ * @author boman
+ * @date 2024-03-06
+ */
+@Service
+public class ZxConferenceServiceImpl implements IZxConferenceService {
+    @Autowired
+    private ZxConferenceMapper zxConferenceMapper;
+
+    /**
+     * 查询政协会议活动
+     *
+     * @param conferenceId 政协会议活动主键
+     * @return 政协会议活动
+     */
+    @Override
+    public ZxConference selectZxConferenceByConferenceId(Long conferenceId) {
+        return zxConferenceMapper.selectZxConferenceByConferenceId(conferenceId);
+    }
+
+    /**
+     * 查询政协会议活动人员详情
+     *
+     * @param conferenceId 政协会议活动主键
+     * @return
+     */
+    @Override
+    public List<ZxConferenceUser> selectZxConferenceUserByConferenceId(Long conferenceId) {
+        return zxConferenceMapper.selectZxConferenceUserByConferenceId(conferenceId);
+    }
+
+    /**
+     * 查询政协会议活动列表
+     *
+     * @param zxConference 政协会议活动
+     * @return 政协会议活动
+     */
+    @Override
+    public List<ZxConference> selectZxConferenceList(ZxConference zxConference) {
+        //查询是否答复,不答复算未读
+        List<ZxConference> zxConferences = zxConferenceMapper.selectZxConferenceList(zxConference);
+        if (zxConferences != null && zxConferences.size() > 0) {
+            for (ZxConference conference : zxConferences) {
+                List<ZxConferenceUser> zxConferenceUserList = conference.getZxConferenceUserList();
+                //找出答复字段不是null的
+                long count = zxConferenceUserList.stream().filter(e -> e.getIsJoin() != null).count();
+                conference.setRead(count + "");
+                conference.setNoRead(String.valueOf(zxConferenceUserList.size() - count));
+            }
+        }
+        return zxConferences;
+    }
+
+    /**
+     * 新增政协会议活动
+     *
+     * @param zxConference 政协会议活动
+     * @return 结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public int insertZxConference(ZxConference zxConference) {
+        zxConference.setCreateTime(DateUtils.getNowDate());
+        int rows = zxConferenceMapper.insertZxConference(zxConference);
+        insertZxConferenceUser(zxConference);
+        return rows;
+    }
+
+    /**
+     * 修改政协会议活动
+     *
+     * @param zxConference 政协会议活动
+     * @return 结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public int updateZxConference(ZxConference zxConference) {
+        zxConference.setUpdateTime(DateUtils.getNowDate());
+        zxConferenceMapper.deleteZxConferenceUserByConferenceId(zxConference.getConferenceId());
+        insertZxConferenceUser(zxConference);
+        return zxConferenceMapper.updateZxConference(zxConference);
+    }
+
+    /**
+     * 修改会议答复信息
+     */
+    @Override
+    public int updateReply(ZxConferenceUser zxConferenceUser) {
+        return zxConferenceMapper.updateReply(zxConferenceUser);
+    }
+
+    /**
+     * 批量删除政协会议活动
+     *
+     * @param conferenceIds 需要删除的政协会议活动主键
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int deleteZxConferenceByConferenceIds(Long[] conferenceIds) {
+        zxConferenceMapper.deleteZxConferenceUserByConferenceIds(conferenceIds);
+        return zxConferenceMapper.deleteZxConferenceByConferenceIds(conferenceIds);
+    }
+
+    /**
+     * 删除政协会议活动信息
+     *
+     * @param conferenceId 政协会议活动主键
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int deleteZxConferenceByConferenceId(Long conferenceId) {
+        zxConferenceMapper.deleteZxConferenceUserByConferenceId(conferenceId);
+        return zxConferenceMapper.deleteZxConferenceByConferenceId(conferenceId);
+    }
+
+    /**
+     * 新增政协会议活动-用户关联信息
+     *
+     * @param zxConference 政协会议活动对象
+     */
+    public void insertZxConferenceUser(ZxConference zxConference) {
+        List<ZxConferenceUser> zxConferenceUserList = zxConference.getZxConferenceUserList();
+        Long conferenceId = zxConference.getConferenceId();
+        if (StringUtils.isNotNull(zxConferenceUserList)) {
+            List<ZxConferenceUser> list = new ArrayList<ZxConferenceUser>();
+            for (ZxConferenceUser zxConferenceUser : zxConferenceUserList) {
+                zxConferenceUser.setConferenceId(conferenceId);
+                list.add(zxConferenceUser);
+            }
+            if (list.size() > 0) {
+                zxConferenceMapper.batchZxConferenceUser(list);
+            }
+        }
+    }
+}

+ 120 - 0
ruoyi-system/src/main/resources/mapper/system/MemberInfoMapper.xml

@@ -0,0 +1,120 @@
+<?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.ruoyi.system.mapper.MemberInfoMapper">
+    
+    <resultMap type="MemberInfo" id="MemberInfoResult">
+        <result property="memberId"    column="member_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="memberName"    column="member_name"    />
+        <result property="memberCard"    column="member_card"    />
+        <result property="boundary"    column="boundary"    />
+        <result property="partyAffiliation"    column="party_affiliation"    />
+        <result property="phonenumber"    column="phonenumber"    />
+        <result property="avatar"    column="avatar"    />
+        <result property="unit"    column="unit"    />
+        <result property="studio"    column="studio"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectMemberInfoVo">
+        select member_id, user_id, member_name, member_card, boundary, party_affiliation, phonenumber, avatar, unit, studio, del_flag, create_by, create_time, update_by, update_time, remark from member_info
+    </sql>
+
+    <select id="selectMemberInfoList" parameterType="MemberInfo" resultMap="MemberInfoResult">
+        <include refid="selectMemberInfoVo"/>
+        <where>  
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="memberName != null  and memberName != ''"> and member_name like concat('%', #{memberName}, '%')</if>
+            <if test="memberCard != null  and memberCard != ''"> and member_card = #{memberCard}</if>
+            <if test="boundary != null  and boundary != ''"> and boundary = #{boundary}</if>
+            <if test="partyAffiliation != null  and partyAffiliation != ''"> and party_affiliation = #{partyAffiliation}</if>
+            <if test="phonenumber != null  and phonenumber != ''"> and phonenumber = #{phonenumber}</if>
+            <if test="avatar != null  and avatar != ''"> and avatar = #{avatar}</if>
+            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
+            <if test="studio != null  and studio != ''"> and studio = #{studio}</if>
+        </where>
+    </select>
+    
+    <select id="selectMemberInfoByMemberId" parameterType="Long" resultMap="MemberInfoResult">
+        <include refid="selectMemberInfoVo"/>
+        where member_id = #{memberId}
+    </select>
+        
+    <insert id="insertMemberInfo" parameterType="MemberInfo" useGeneratedKeys="true" keyProperty="memberId">
+        insert into member_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="userId != null">user_id,</if>
+            <if test="memberName != null and memberName != ''">member_name,</if>
+            <if test="memberCard != null and memberCard != ''">member_card,</if>
+            <if test="boundary != null">boundary,</if>
+            <if test="partyAffiliation != null">party_affiliation,</if>
+            <if test="phonenumber != null">phonenumber,</if>
+            <if test="avatar != null">avatar,</if>
+            <if test="unit != null">unit,</if>
+            <if test="studio != null">studio,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="userId != null">#{userId},</if>
+            <if test="memberName != null and memberName != ''">#{memberName},</if>
+            <if test="memberCard != null and memberCard != ''">#{memberCard},</if>
+            <if test="boundary != null">#{boundary},</if>
+            <if test="partyAffiliation != null">#{partyAffiliation},</if>
+            <if test="phonenumber != null">#{phonenumber},</if>
+            <if test="avatar != null">#{avatar},</if>
+            <if test="unit != null">#{unit},</if>
+            <if test="studio != null">#{studio},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateMemberInfo" parameterType="MemberInfo">
+        update member_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="memberName != null and memberName != ''">member_name = #{memberName},</if>
+            <if test="memberCard != null and memberCard != ''">member_card = #{memberCard},</if>
+            <if test="boundary != null">boundary = #{boundary},</if>
+            <if test="partyAffiliation != null">party_affiliation = #{partyAffiliation},</if>
+            <if test="phonenumber != null">phonenumber = #{phonenumber},</if>
+            <if test="avatar != null">avatar = #{avatar},</if>
+            <if test="unit != null">unit = #{unit},</if>
+            <if test="studio != null">studio = #{studio},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where member_id = #{memberId}
+    </update>
+
+    <delete id="deleteMemberInfoByMemberId" parameterType="Long">
+        delete from member_info where member_id = #{memberId}
+    </delete>
+
+    <delete id="deleteMemberInfoByMemberIds" parameterType="String">
+        delete from member_info where member_id in 
+        <foreach item="memberId" collection="array" open="(" separator="," close=")">
+            #{memberId}
+        </foreach>
+    </delete>
+</mapper>

+ 156 - 0
ruoyi-system/src/main/resources/mapper/system/ZxConferenceMapper.xml

@@ -0,0 +1,156 @@
+<?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.ruoyi.system.mapper.ZxConferenceMapper">
+    
+    <resultMap type="ZxConference" id="ZxConferenceResult">
+        <result property="conferenceId"    column="conference_id"    />
+        <result property="conferenceTitle"    column="conference_title"    />
+        <result property="conferenceDate"    column="conference_date"    />
+        <result property="conferenceTime"    column="conference_time"    />
+        <result property="conferenceAddress"    column="conference_address"    />
+        <result property="publishTime"    column="publish_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <resultMap id="ZxConferenceZxConferenceUserResult" type="ZxConference" extends="ZxConferenceResult">
+        <collection property="zxConferenceUserList" notNullColumn="sub_conference_id" javaType="java.util.List" resultMap="ZxConferenceUserResult" />
+    </resultMap>
+
+    <resultMap type="ZxConferenceUser" id="ZxConferenceUserResult">
+        <result property="conferenceId"    column="sub_conference_id"    />
+        <result property="userId"    column="sub_user_id"    />
+        <result property="userName"    column="sub_user_name"    />
+        <result property="postName"    column="sub_post_name"    />
+        <result property="userLevel"    column="sub_user_level"    />
+        <result property="replyTime"    column="sub_reply_time"    />
+        <result property="isJoin"    column="sub_is_join"    />
+        <result property="leaveType"    column="sub_leave_type"    />
+        <result property="leaveReason"    column="sub_leave_reason"    />
+        <result property="createBy"    column="sub_create_by"    />
+        <result property="createTime"    column="sub_create_time"    />
+        <result property="updateBy"    column="sub_update_by"    />
+        <result property="updateTime"    column="sub_update_time"    />
+        <result property="remark"    column="sub_remark"    />
+    </resultMap>
+
+    <sql id="selectZxConferenceVo">
+        select conference_id, conference_title, conference_date, conference_time, conference_address, publish_time, create_by, create_time, update_by, update_time, remark from zx_conference
+    </sql>
+
+    <select id="selectZxConferenceList" parameterType="ZxConference" resultMap="ZxConferenceResult">
+        select a.conference_id, a.conference_title, a.conference_date, a.conference_time, a.conference_address, a.publish_time, a.create_by, a.create_time, a.update_by, a.update_time, a.remark,
+        b.conference_id as sub_conference_id, b.user_id as sub_user_id, b.user_name as sub_user_name, b.post_name as sub_post_name, b.user_level as sub_user_level, b.reply_time as sub_reply_time, b.is_join as sub_is_join, b.leave_type as sub_leave_type, b.leave_reason as sub_leave_reason, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time, b.remark as sub_remark
+        from zx_conference a
+        left join zx_conference_user b on b.conference_id = a.conference_id
+        <where>  
+            <if test="conferenceTitle != null  and conferenceTitle != ''"> and a.conference_title = #{conferenceTitle}</if>
+            <if test="conferenceDate != null "> and a.conference_date = #{conferenceDate}</if>
+            <if test="conferenceTime != null  and conferenceTime != ''"> and a.conference_time = #{conferenceTime}</if>
+            <if test="conferenceAddress != null  and conferenceAddress != ''"> and a.conference_address = #{conferenceAddress}</if>
+            <if test="publishTime != null "> and a.publish_time = #{publishTime}</if>
+        </where>
+        order  by a.publish_time DESC
+    </select>
+    
+    <select id="selectZxConferenceByConferenceId" parameterType="Long" resultMap="ZxConferenceZxConferenceUserResult">
+        select a.conference_id, a.conference_title, a.conference_date, a.conference_time, a.conference_address, a.publish_time, a.create_by, a.create_time, a.update_by, a.update_time, a.remark,
+ b.conference_id as sub_conference_id, b.user_id as sub_user_id, b.user_name as sub_user_name, b.post_name as sub_post_name, b.user_level as sub_user_level, b.reply_time as sub_reply_time, b.is_join as sub_is_join, b.leave_type as sub_leave_type, b.leave_reason as sub_leave_reason, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time, b.remark as sub_remark
+        from zx_conference a
+        left join zx_conference_user b on b.conference_id = a.conference_id
+        where a.conference_id = #{conferenceId}
+    </select>
+    <select id="selectZxConferenceUserByConferenceId" resultMap="ZxConferenceUserResult">
+        select b.conference_id as sub_conference_id, b.user_id as sub_user_id, b.user_name as sub_user_name, b.post_name as sub_post_name, b.user_level as sub_user_level, b.reply_time as sub_reply_time, b.is_join as sub_is_join, b.leave_type as sub_leave_type, b.leave_reason as sub_leave_reason, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time, b.remark as sub_remark
+        from  zx_conference_user b
+        where b.conference_id = #{conferenceId}
+    </select>
+
+    <insert id="insertZxConference" parameterType="ZxConference" useGeneratedKeys="true" keyProperty="conferenceId">
+        insert into zx_conference
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="conferenceTitle != null and conferenceTitle != ''">conference_title,</if>
+            <if test="conferenceDate != null">conference_date,</if>
+            <if test="conferenceTime != null">conference_time,</if>
+            <if test="conferenceAddress != null and conferenceAddress != ''">conference_address,</if>
+            <if test="publishTime != null">publish_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="conferenceTitle != null and conferenceTitle != ''">#{conferenceTitle},</if>
+            <if test="conferenceDate != null">#{conferenceDate},</if>
+            <if test="conferenceTime != null">#{conferenceTime},</if>
+            <if test="conferenceAddress != null and conferenceAddress != ''">#{conferenceAddress},</if>
+            <if test="publishTime != null">#{publishTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateZxConference" parameterType="ZxConference">
+        update zx_conference
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="conferenceTitle != null and conferenceTitle != ''">conference_title = #{conferenceTitle},</if>
+            <if test="conferenceDate != null">conference_date = #{conferenceDate},</if>
+            <if test="conferenceTime != null">conference_time = #{conferenceTime},</if>
+            <if test="conferenceAddress != null and conferenceAddress != ''">conference_address = #{conferenceAddress},</if>
+            <if test="publishTime != null">publish_time = #{publishTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where conference_id = #{conferenceId}
+    </update>
+    <update id="updateReply" parameterType="zxConferenceUser">
+        update zx_conference_user
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="isJoin != null and isJoin != ''">is_join = #{isJoin},</if>
+            <if test="leaveType != null and leaveType != ''">leave_type = #{leaveType},</if>
+            <if test="leaveReason != null and leaveReason != ''">leave_reason = #{leaveReason},</if>
+        </trim>
+        where conference_id = #{conferenceId}
+    </update>
+
+    <delete id="deleteZxConferenceByConferenceId" parameterType="Long">
+        delete from zx_conference where conference_id = #{conferenceId}
+    </delete>
+
+    <delete id="deleteZxConferenceByConferenceIds" parameterType="String">
+        delete from zx_conference where conference_id in 
+        <foreach item="conferenceId" collection="array" open="(" separator="," close=")">
+            #{conferenceId}
+        </foreach>
+    </delete>
+    
+    <delete id="deleteZxConferenceUserByConferenceIds" parameterType="String">
+        delete from zx_conference_user where conference_id in 
+        <foreach item="conferenceId" collection="array" open="(" separator="," close=")">
+            #{conferenceId}
+        </foreach>
+    </delete>
+
+    <delete id="deleteZxConferenceUserByConferenceId" parameterType="Long">
+        delete from zx_conference_user where conference_id = #{conferenceId}
+    </delete>
+
+    <insert id="batchZxConferenceUser">
+        insert into zx_conference_user( conference_id, user_id, user_name, post_name, user_level, reply_time, is_join, leave_type, leave_reason, create_by, create_time, update_by, update_time, remark) values
+		<foreach item="item" index="index" collection="list" separator=",">
+            ( #{item.conferenceId}, #{item.userId}, #{item.userName}, #{item.postName}, #{item.userLevel}, #{item.replyTime}, #{item.isJoin}, #{item.leaveType}, #{item.leaveReason}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark})
+        </foreach>
+    </insert>
+</mapper>