mitao
2025-02-24 f11e462285c8542a1364c55995434ede9a433b30
首页接口
7个文件已修改
3个文件已添加
264 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>