From f11e462285c8542a1364c55995434ede9a433b30 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 24 二月 2025 00:08:14 +0800
Subject: [PATCH] 首页接口

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java              |   75 +++++++++++++++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java                    |   30 ++++++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml                                              |   18 +++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java           |   44 ++++++++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java                    |   24 ++++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java |    9 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java                   |   10 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java                   |   38 +++++++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java                         |   11 ++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java         |    5 +
 10 files changed, 260 insertions(+), 4 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
index d6f809c..fdc0547 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
@@ -1,12 +1,23 @@
 package com.panzhihua.sangeshenbian.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.sangeshenbian.model.entity.Banner;
+import com.panzhihua.sangeshenbian.model.query.BasePage;
+import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
+import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
+import com.panzhihua.sangeshenbian.model.vo.PartyCardInfoVO;
 import com.panzhihua.sangeshenbian.service.IBannerService;
+import com.panzhihua.sangeshenbian.service.IComplaintService;
+import com.panzhihua.sangeshenbian.service.IMessageNotificationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -20,12 +31,33 @@
 @RequestMapping("/applet/home")
 @RequiredArgsConstructor
 @Api(tags = "首页相关接口")
-public class HomeController {
-    private IBannerService bannerService;
+public class HomeController extends BaseController {
+    private final IBannerService bannerService;
+    private final IMessageNotificationService messageNotificationService;
+    private final IComplaintService complaintService;
     @ApiOperation("获取banner列表")
     @GetMapping("/banner-list")
     public R<List<Banner>> getBannerList() {
         return R.ok(bannerService.list());
     }
-
+    @GetMapping("/party-card-info")
+    @ApiOperation("获取党员证信息")
+    public R<PartyCardInfoVO> getPartyCardInfo() {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        PartyCardInfoVO partyCardInfoVO = new PartyCardInfoVO();
+        partyCardInfoVO.setName(loginUserInfo.getName());
+        partyCardInfoVO.setIdCard(loginUserInfo.getIdCard());
+        partyCardInfoVO.setPartyOrganization(loginUserInfo.getCommunityName());
+        return R.ok(partyCardInfoVO);
+    }
+    @PostMapping("/message")
+    @ApiOperation("获取消息列表")
+    public R<Page<MessageNotificationVO>> getMessageList(@RequestBody BasePage page) {
+        return R.ok(messageNotificationService.getMessageList(page,getUserId()));
+    }
+    @PostMapping("/todo-list")
+    @ApiOperation("获取待办诉求")
+    public R<Page<ComplaintTodoVO>> getTodoList(@RequestBody BasePage page) {
+        return R.ok(complaintService.getTodoList(page,getLoginUserInfo()));
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java
index 0875b6a..15a4188 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java
@@ -3,7 +3,9 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.panzhihua.sangeshenbian.model.entity.Complaint;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.sangeshenbian.model.query.BasePage;
 import com.panzhihua.sangeshenbian.model.query.ComplaintQuery;
+import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
 import com.panzhihua.sangeshenbian.model.vo.ComplaintVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -32,4 +34,13 @@
      * @return
      */
     ComplaintVO getDetail(Long id);
+
+    /**
+     * 获取待办诉求
+     * @param page
+     * @param targetId
+     * @param isSuperior
+     * @return
+     */
+    Page<ComplaintTodoVO> getTodoList(Page<ComplaintTodoVO> page, @Param("targetId") String targetId, @Param("isSuperior") int isSuperior);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java
new file mode 100644
index 0000000..79407bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.sangeshenbian.model.vo;
+
+import com.panzhihua.common.model.vos.common.SysUserVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.checkerframework.checker.units.qual.A;
+
+import java.util.Date;
+
+/**
+ * @author mitao
+ * @date 2025/2/23
+ */
+@Data
+@ApiModel("待办述求视图对象")
+public class ComplaintTodoVO extends SysUserVo {
+
+    @ApiModelProperty("诉求id")
+    private Long id;
+
+    @ApiModelProperty("用户头像")
+    private String imageUrl;
+
+    @ApiModelProperty("诉求标题")
+    private String descriptionTitle;
+
+    @ApiModelProperty("最终处理期限")
+    private Date closingTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java
new file mode 100644
index 0000000..5e30418
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.sangeshenbian.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author mitao
+ * @date 2025/2/23
+ */
+@Data
+@ApiModel("消息通知视图对象")
+public class MessageNotificationVO {
+    /**
+     * 数据ID
+     */
+    @ApiModelProperty("数据ID")
+    private Integer id;
+    /**
+     * 标题
+     */
+    @ApiModelProperty("标题")
+    private String title;
+    /**
+     * 承办者用户id
+     */
+    @ApiModelProperty("承办者用户id")
+    private Integer undertakerUserId;
+    /**
+     * 承办者
+     */
+    @ApiModelProperty("承办者")
+    private String undertakerUser;
+    /**
+     * 联系电话
+     */
+    @TableField("phone")
+    @ApiModelProperty("联系电话")
+    private String phone;
+    /**
+     * 所在单位
+     */
+    @ApiModelProperty(value = "所在单位")
+    private String department;
+    /**
+     * 所属职位
+     */
+    @ApiModelProperty("所属职位")
+    private String position;
+    /**
+     * 需求应处理时间
+     */
+    @ApiModelProperty("需求应处理时间")
+    private LocalDateTime responseTime;
+    /**
+     * 提示类型(1=临期提醒,2=超时提醒)
+     */
+    @ApiModelProperty("提示类型(1=临期提醒,2=超时提醒)")
+    private Integer promptType;
+    /**
+     * 阅读状态(0=否,1=是)
+     */
+    @ApiModelProperty("阅读状态(0=否,1=是)")
+    private Integer readStatus;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java
new file mode 100644
index 0000000..ce71a7e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.sangeshenbian.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import net.bytebuddy.implementation.bind.annotation.Pipe;
+
+/**
+ * @author mitao
+ * @date 2025/2/23
+ */
+@Data
+@ApiModel("党员证信息")
+public class PartyCardInfoVO {
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号码")
+    private String idCard;
+
+    @ApiModelProperty(value = "所在党组织")
+    private String partyOrganization;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
index 932372e..85e6e3f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
@@ -6,7 +6,9 @@
 import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO;
 import com.panzhihua.sangeshenbian.model.entity.Complaint;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.query.BasePage;
 import com.panzhihua.sangeshenbian.model.query.ComplaintQuery;
+import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
 import com.panzhihua.sangeshenbian.model.vo.ComplaintVO;
 
 /**
@@ -50,5 +52,11 @@
      */
     void saveResult(ComplaintCompletionDTO dto, LoginUserInfoVO loginUserInfoVO);
 
-
+    /**
+     * 获取待办诉求
+     * @param page
+     * @param loginUserInfo
+     * @return
+     */
+    Page<ComplaintTodoVO> getTodoList(BasePage page, LoginUserInfoVO loginUserInfo);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java
index 43d401e..659ccb1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java
@@ -1,8 +1,11 @@
 package com.panzhihua.sangeshenbian.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
+import com.panzhihua.sangeshenbian.model.query.BasePage;
+import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
 import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
 
 /**
@@ -13,4 +16,6 @@
 	
 	
 	IPage<MessageNotification> list(MessageNotificationList query);
+
+    Page<MessageNotificationVO> getMessageList(BasePage page, Long userId);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
index a2cf0c1..f27bf26 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -12,7 +12,9 @@
 import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow;
 import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress;
 import com.panzhihua.sangeshenbian.model.entity.SystemUser;
+import com.panzhihua.sangeshenbian.model.query.BasePage;
 import com.panzhihua.sangeshenbian.model.query.ComplaintQuery;
+import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
 import com.panzhihua.sangeshenbian.service.IComplaintFlowService;
 import com.panzhihua.sangeshenbian.service.IComplaintProgressService;
 import com.panzhihua.sangeshenbian.service.IComplaintService;
@@ -167,5 +169,47 @@
         complaint.setCompletionTime(new Date());
         this.updateById(complaint);
     }
+
+    /**
+     * 获取待办诉求
+     * @param page
+     * @param loginUserInfo
+     * @return
+     */
+    @Override
+    public Page<ComplaintTodoVO> getTodoList(BasePage basePage, LoginUserInfoVO loginUserInfo) {
+        Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserByPhone(loginUserInfo.getPhone());
+        String targetId = "";
+        int isSuperior = 0;
+        //上级
+        if (systemUserByPhone.isPresent()) {
+            SystemUser systemUser = systemUserByPhone.get();
+            Integer accountLevel = systemUser.getAccountLevel();
+            switch (accountLevel) {
+                case 1:
+                    //市级
+                    targetId = "510400";
+                    break;
+                case 2:
+                    //区县级
+                    targetId = systemUser.getDistrictsCode();
+                    break;
+                case 3:
+                    //街道
+                    targetId = systemUser.getStreetCode();
+                    break;
+                case 4:
+                    //社区
+                    targetId = systemUser.getCommunityCode();
+                    break;
+            }
+            isSuperior = 1;
+        } else {
+            //党员
+            targetId = loginUserInfo.getUserId().toString();
+        }
+        Page<ComplaintTodoVO> page = baseMapper.getTodoList(new Page<>(basePage.getPageNum(), basePage.getPageSize()), targetId,isSuperior);
+        return page;
+    }
 }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java
index ec46ec5..6570f1c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java
@@ -5,6 +5,8 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.sangeshenbian.dao.MessageNotificationMapper;
 import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
+import com.panzhihua.sangeshenbian.model.query.BasePage;
+import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
 import com.panzhihua.sangeshenbian.service.IMessageNotificationService;
 import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
 import org.springframework.stereotype.Service;
@@ -25,4 +27,11 @@
 		IPage<MessageNotification> list = this.baseMapper.list(page, query);
 		return list;
 	}
+
+	@Override
+	public Page<MessageNotificationVO> getMessageList(BasePage basePage, Long userId) {
+		//TODO 待完善
+		Page<MessageNotificationVO> page = new Page<>(basePage.getPageNum(),basePage.getPageSize());
+		return page;
+	}
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
index d13f60b..9402348 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
@@ -125,4 +125,22 @@
             sc.id = #{id}
         </where>
     </select>
+    <select id="getTodoList" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO">
+        SELECT sc.id,
+        sc.description_title,
+        sc.closing_time,
+        su.image_url
+        FROM sgsb_complaint sc
+        LEFT JOIN sys_user su  ON su.user_id = sc.create_by
+        <where>
+            sc.status = 0
+            <if test="isSuperior == 1 and targetId != null">
+                AND sc.superior_id = #{targetId}
+            </if>
+            <if test="isSuperior == 0 and targetId != null">
+                AND sc.create_by = #{targetId}
+            </if>
+        </where>
+        ORDER BY sc.create_time DESC
+    </select>
 </mapper>

--
Gitblit v1.7.1