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())); } } 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); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java
New file @@ -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; } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java
New file @@ -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; } 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); } 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); } 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; } } 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; } } 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>