SpringBoot+Mybatis實現接口的增查改,以及json中拼接json數組

增改查的評價表

DROP TABLE IF EXISTS `hpkh_police_review`;
CREATE TABLE `hpkh_police_review` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `police_code` varchar(255) NOT NULL COMMENT '警員編號',
  `review_content` text COMMENT '點評內容',
  `timestamp_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '條目插入時間',
  `timestamp_modify` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '最後一次修改條目時間戳',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

INSERT INTO `hpkh_police_review` VALUES ('1', '209762', '今天辛苦了', '2020-05-26 11:22:01', '2020-05-26 11:22:01');
INSERT INTO `hpkh_police_review` VALUES ('2', '209762', '交通處罰很好', '2020-05-26 11:32:59', '2020-05-26 15:51:02');
INSERT INTO `hpkh_police_review` VALUES ('3', '017591', 'good', '2020-05-29 10:31:01', '2020-05-29 10:31:01');

增查改部分

實體類

package com.ruoyi.system.domain;

import java.sql.Timestamp;

/**
 * @Author zhang dongchao
 * @Date 2020/5/25 19:44
 * @title 點評實體類
 */
public class PoliceReview {
    private int id;
    private String police_code;// 警員編號
    private String review_content;// 點評內容
    private Timestamp timestamp_create;//條目插入時間

    private Timestamp timestamp_modify;//條目修改時間

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getPolice_code() {
        return police_code;
    }

    public void setPolice_code(String police_code) {
        this.police_code = police_code;
    }

    public String getReview_content() {
        return review_content;
    }

    public void setReview_content(String review_content) {
        this.review_content = review_content;
    }

    public Timestamp getTimestamp_create() {
        return timestamp_create;
    }

    public void setTimestamp_create(Timestamp timestamp_create) {
        this.timestamp_create = timestamp_create;
    }

    public Timestamp getTimestamp_modify() {
        return timestamp_modify;
    }

    public void setTimestamp_modify(Timestamp timestamp_modify) {
        this.timestamp_modify = timestamp_modify;
    }


}

Mapepr.xml

<?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.PersonalResumeMapper">

    <!--添加留言                 hpkh_police_review 增-->
    <insert id="addReviews" parameterType="String">
       insert into hpkh_police_review(police_code,review_content)values (#{policeCode},#{reviewContent});
    </insert>

    <!--根據警員編號獲取相關留言列表 hpkh_police_review 查-->
    <select id="getReviewsListByCode" parameterType="String" resultType="PoliceReview">
        select
            id,police_code,review_content,timestamp_create,timestamp_modify
        from hpkh_police_review
        where police_code=#{policeCode}
        order by timestamp_create desc limit 4
    </select>

    <!--更新留言                hpkh_police_review  更新-->
    <update id="updateReviewsById">
        update hpkh_police_review set review_content=#{reviewContent},timestamp_modify=CURRENT_TIMESTAMP where id=#{id}
    </update>


    <!--下面三個查詢了三張表  拼接成個人履歷-->
    <!--根據警員編號獲取警員概要-->
    <select id="getPoliceInfo" parameterType="String" resultType="java.util.Map">
       SELECT
            user_name,
            user_code,
            user_id_card,
            YEAR (NOW()) - SUBSTR(user_id_card, 7, 4) age,
            sex_name,
            user_type_name
       FROM
            ism_user
       WHERE
            user_code = #{policeCode}
    </select>

    <!--// 根據警員編號獲取警員履歷  -->
    <select id="getPoliceProcessList" parameterType="String" resultType="java.util.Map">
        SELECT
            qsrq,
            jsrq,
            dw,
            zw,
            zwsm
        FROM
            hp_mj_ll
        WHERE
	        jh = #{policeCode} order by qsrq asc
    </select>

    <!--// 根據警員編號獲取警員嘉獎-->
    <select id="getCommendOfPolice" parameterType="String" resultType="java.util.Map">
        SELECT
          jlmc,
          pzrq
        from
         hp_mj_jl
        where
        jh=#{policeCode} order by pzrq asc
    </select>

mapper

注意:不使用@Param註解時,參數只能有一個,當參數超過兩個時,要用@Param

package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.PoliceEvaluate;
import com.ruoyi.system.domain.PoliceReview;
import com.ruoyi.system.domain.SysPoliceAnalysis;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;
/**
 * @Author zhang dongchao
 * @Date 2020/5/27 18:02
 * @title 個人簡歷持久層接口
 */
@Repository
public interface PersonalResumeMapper {
    // 添加留言
    int addReviews(@Param("policeCode") String policeCode, @Param("reviewContent") String reviewContent);

    // 根據警員編號獲取相關留言列表
    List<PoliceReview> getReviewsListByCode(String policeCode);

    // 更新留言
    int updateReviewsById(@Param("id") int id, @Param("reviewContent") String reviewContent);

    //下面三個拼接成簡歷
    // 根據警員編號獲取警員概要
    Map<String,Object> getPoliceInfo(String policeCode);

    // 根據警員編號獲取警員履歷
    List<Map<String,String>> getPoliceProcessList(String policeCode);

    // 根據警員編號獲取警員嘉獎
    List<Map<String,String>> getCommendOfPolice(String policeCode);
}

service和impl

package com.ruoyi.system.service;

import org.springframework.web.multipart.MultipartFile;

import java.util.Map;
/**
 * @Author zhang dongchao
 * @Date 2020/5/27 18:02
 * @title 個人簡歷頁面服務層接口
 */
public interface IPersonalResumeService {

    // 添加留言
    Map<String,Object> addReviews(String policeCode, String reviewContent);

    // 根據警員編號獲取相關留言列表
    Map<String,Object> getReviewsListByCode(String policeCode);

    // 更新留言
    Map<String,Object> updateReviewsById(int id, String reviewContent);


    // 根據警員編號獲取個人簡歷
    Map<String,Object> getPersonalResumeByCode(String policeCode);
}
package com.ruoyi.system.service.impl;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.PoliceReview;
import com.ruoyi.system.domain.SysPoliceAnalysis;
import com.ruoyi.system.mapper.PersonalResumeMapper;
import com.ruoyi.system.service.IPersonalResumeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @Author zhang dongchao
 * @Date 2020/5/27 18:02
 * @title 個人簡歷頁面服務層接口實現類
 */
@Service
public class PersonalResumeServiceImpl implements IPersonalResumeService {
    @Autowired
    private PersonalResumeMapper personalResumeMapper;

    Map<String,Object> result = new HashMap<String,Object>();

    // 留言
    @Override
    public Map<String, Object> addReviews(String policeCode, String reviewContent) {
        result.clear();
        // 添加留言
        personalResumeMapper.addReviews(policeCode,reviewContent);
        result.put("status",200);
        result.put("msg","成功點評!");
        return result;
    }

    // 根據警員編號獲取相關留言列表
    @Override
    public Map<String, Object> getReviewsListByCode(String policeCode) {
        List<PoliceReview> policeReviewList = personalResumeMapper.getReviewsListByCode(policeCode);
        result.clear();
        result.put("reviewlist",policeReviewList);
        result.put("status",200);
        return result;
    }

    // 更新留言信息
    @Override
    public Map<String, Object> updateReviewsById(int id,String reviewContent) {
        personalResumeMapper.updateReviewsById(id, reviewContent);
        result.clear();
        result.put("msg","成功更新");
        result.put("status",200);
        return result;
    }

    //系統分析導入Excel文件,將條目存庫,並封裝返回
    @Override
    public Map<String, Object> importAnalysis(MultipartFile file) throws Exception {
        // 創建excel工具類
        ExcelUtil<SysPoliceAnalysis> excelUtil = new ExcelUtil<SysPoliceAnalysis>(SysPoliceAnalysis.class);
        // 解析excel數據
        List<SysPoliceAnalysis> sysAnalysisList = excelUtil.importExcel(file.getInputStream());
        // 將集合插入數據庫
        personalResumeMapper.importAnalysis(sysAnalysisList);
        result.clear();
        result.put("list",sysAnalysisList);
        result.put("status",200);
        return result;
    }

    // 根據警員編號獲取個人簡歷   調用了mapper中的三個方法拼接成一個自己要的
    @Override
    public Map<String, Object> getPersonalResumeByCode(String policeCode) {
        // 獲取警員信息概要   第一個方法返回了一條數據,一個map即可
        Map<String,Object> policeInfo = personalResumeMapper.getPoliceInfo(policeCode);

        // 獲取警員履歷       第二個方法返回了多條數據成了list<map<string,string>>,下面拼接成list
        List<Map<String,String>> policeProcessList = personalResumeMapper.getPoliceProcessList(policeCode);
        List<StringBuffer> policeProcessContent = new ArrayList<StringBuffer>();
        // 遍歷履歷拼接封裝
        if(policeProcessList.size()>0 && !policeProcessList.isEmpty()){
            for (Map<String, String> map : policeProcessList) {
                if(map!=null){
                    StringBuffer content = new StringBuffer();
                    // 如果結束日期爲空,則至今
                    if(map.get("jsrq")==null || map.get("jsrq").equals("")){
                        content.append(map.get("qsrq")+" 至今").append("\n").append(map.get("dw")).append("\t").append(map.get("zwsm"));
                    }else{
                        content.append(map.get("qsrq")+" 至 ").append(map.get("jsrq")).append("\n").append(map.get("dw")).append("\t").append(map.get("zwsm"));
                    }
                    policeProcessContent.add(content);
                }
            }
        }
        // 加入履歷   第二個方法的數據組成了jsonArray
        policeInfo.put("policeProcess",policeProcessContent);

        // 獲取警員嘉獎列表   第三個方法返回了多條數據,要用list<map<string,string>>,下面重組成list
        List<Map<String,String>> commendOfPoliceList = personalResumeMapper.getCommendOfPolice(policeCode);
        List<StringBuffer> policeCommendContent = new ArrayList<StringBuffer>();
        // 遍歷嘉獎,拼接封裝
        if(commendOfPoliceList.size()>0 && !commendOfPoliceList.isEmpty()) {
            for (Map<String, String> map : commendOfPoliceList) {
                if(map != null){
                    StringBuffer content = new StringBuffer();
                    content.append(map.get("jlmc")).append("\t").append(map.get("pzrq"));
                    policeCommendContent.add(content);
                }
            }
        }
        // 加入警員嘉獎列表  第三個方法的數據組成了jsonArray
        policeInfo.put("policeCommend",policeCommendContent);

        policeInfo.put("status",200);
        return policeInfo;
    }
}

controller。事務處理PostMapping,查詢GetMapping

package com.ruoyi.web.controller.system;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.system.service.IPersonalResumeService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;
/**
 * @Author zhang dongchao
 * @Date 2020/5/27 18:02
 * @title 個人簡歷頁面接口控制器
 */
@Controller
@RequestMapping("/system/personalresume")
@ResponseBody
public class PersonalResumeController extends BaseController {

    @Autowired
    private IPersonalResumeService personalResumeService;
    //LoggerFactory.getLogger可以在IDE控制檯打印日誌,便於開發,一般加在最上面。調試日誌
    private static final Logger log = LoggerFactory.getLogger(PersonalResumeController.class);
    /**
     * 添加留言
     * @Param policeCode 警員的編號
     * @Param reviewContent 留言內容
     */
    @PostMapping("/addReviews")
    public Map<String,Object> addReviews(String policeCode,String reviewContent){
        return personalResumeService.addReviews(policeCode,reviewContent);
    }

    /**
     * 根據警員編號獲取相關留言列表,查詢最新四條,按時間降序
     * @Param policeCode 警員的編號
     */
    @GetMapping("/reviewsList")
    public Map<String, Object> getReviewsListByCode(String policeCode){
        return personalResumeService.getReviewsListByCode(policeCode);
    }

    /**
     *  根據點評id修改點評信息
     * @Param id 被修改的點評id
     */
    @PostMapping("/updateReviewsById")
    public Map<String,Object> updateReviewsById(int id,String reviewContent){
        log.info("更新點評事件");
        return personalResumeService.updateReviewsById(id, reviewContent);
    }


    /**
     * 根據警員編號獲取個人簡歷
     * @param policeCode 警員編號
     * @return
     */
    @GetMapping("/getPersonalResumeByCode")
    public Map<String,Object> getPersonalResumeByCode(String policeCode){
        return personalResumeService.getPersonalResumeByCode(policeCode);
    }
}

mapper中的三個方法在某條件下取得數據如下

 

 

結果爲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章