首页>代码>springboot+sqlite3+iceEditor开发网页版记事本>/myMark/src/main/java/com/xf/mymark/MarkController.java
package com.xf.mymark;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCallback;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Base64;
import java.util.List;
import java.util.Map;
import java.util.UUID;

@Controller
public class MarkController {

    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private HttpServletRequest request;
    @Autowired
    private HttpServletResponse response;

    @GetMapping("/")
    public String hello(){
        return "hello" ;
    }

    @RequestMapping("/showDatas")
    @ResponseBody
    public String showDatas(){
        initTables();
        String sql2 = "select id,pid,name, 'javascript:openMark('|| id ||');' url from markinfo order by pid ,id ";
        List<Map<String, Object>> datas = jdbcTemplate.queryForList(sql2);
        return JSONArray.toJSONString(datas);
    }

    @RequestMapping(value="/uploadImgs")
    @ResponseBody
    public JSONArray uploadImgs(@RequestParam(value="file[]")MultipartFile file[]) throws IOException {
        //创建JSON数组,返回一组url和name,告诉编辑器上传的图片路径
        JSONArray jsonArray = new JSONArray();
        try {
            //循环为编辑器传来的图片改名
            for(int i=0;i<file.length;i++) {
                String uuid = UUID.randomUUID().toString().replaceAll("-","");
                //获取文件后缀名,并拼接UUID和后缀名
                String suffix = file[i].getOriginalFilename().substring(file[i].getOriginalFilename().lastIndexOf("."));
                File newFile = new File(uuid + suffix);
                byte[] bytes = file[i].getBytes();
                String contentType = file[i].getContentType();
                String imgbase64 = Base64.getEncoder().encodeToString(bytes);
                String base64EncoderImg = "data:" + contentType + ";base64," + imgbase64;
                //创建JSON对象并加入JSON数组
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("url", base64EncoderImg);
                jsonObject.put("name", file[i].getOriginalFilename());
                jsonObject.put("error", 0);
                jsonArray.add(jsonObject);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsonArray;
    }

    @RequestMapping("/updatePid")
    @ResponseBody
    public String updatePid(){
        String pid = request.getParameter("pid");
        String id = request.getParameter("id");
        if(id.equals(pid)) return "不能选择自身作为上级!";
        String sql2 = "update markinfo set pid = ? where id = ? ";
        jdbcTemplate.execute(sql2, new PreparedStatementCallback<Object>() {
            @Override
            public Object doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
                ps.setString(1,pid);
                ps.setString(2,id);
                return ps.execute();
            }
        });
        return "ok";
    }

    @RequestMapping("/del")
    @ResponseBody
    public String delMark(){
        String id = request.getParameter("id");
        String sql2 = "delete from markinfo where id = "+id ;
        jdbcTemplate.execute(sql2);
        return "ok";
    }
    @RequestMapping("/addMarkName")
    @ResponseBody
    public String addMarkName(){
        String name = request.getParameter("name");
        String pid = request.getParameter("pid");
        String sql = "select 1 from markinfo where pid = "+pid +" and name='"+name+"'";
        List<Map<String, Object>> datas = jdbcTemplate.queryForList(sql);
        if(datas.size()>0){
            return "名称:"+name+" 已存在,请勿重复创建!";
        }else{
            String sql2 = "insert into markinfo (pid,name)values (?,?)";
            jdbcTemplate.execute(sql2, new PreparedStatementCallback<Object>() {
                @Override
                public Object doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
                    ps.setString(1,pid);
                    ps.setString(2,name);
                    return ps.execute();
                }
            });
            return "ok";
        }
    }

    @RequestMapping("/saveDatas")
    @ResponseBody
    public String saveDatas(){
        String textInfo = request.getParameter("textInfo");
        String id = request.getParameter("id");
        String sql2 = "update markinfo set textInfo = ? where id = ? ";
        jdbcTemplate.execute(sql2, new PreparedStatementCallback<Object>() {
            @Override
            public Object doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
                ps.setString(1,textInfo);
                ps.setString(2,id);
                return ps.execute();
            }
        });
        return "ok";
    }

    @RequestMapping("/getData")
    @ResponseBody
    public String getData(){
        String id = request.getParameter("id");
        String sql2 = "select textinfo  from markinfo where id = "+id;
        List<Map<String,Object>> m = jdbcTemplate.queryForList(sql2);
        if(m.size()>0) {
            return (String) m.get(0).get("textinfo");
        }else{
            return "";
        }
    }


    private void initTables(){
        String sql = "create table if not exists markinfo(id INTEGER PRIMARY KEY , pid INTEGER ,name varchar(20),textInfo text)";
        jdbcTemplate.execute(sql);
        String sql2 = "insert into markinfo(pid,name) select '0','ROOT' where not exists (select 1 from markinfo)";
        jdbcTemplate.execute(sql2);
    }


}
最近下载更多
Seaskye  LV14 2023年11月4日
笑得很美  LV11 2023年10月12日
DeanYao  LV2 2023年10月11日
1483259138  LV1 2023年9月18日
最代码官方  LV167 2023年9月16日
最近浏览更多
hmf1989 4月30日
暂无贡献等级
kenhomeliu  LV29 4月30日
lo8lukoukoum  LV4 4月11日
玖零定制问题修复  LV34 4月4日
阿时23428  LV15 3月23日
chenlie  LV2 3月18日
wanglinddad  LV55 3月13日
quartz  LV7 3月13日
Iterman  LV2 3月12日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友