基于springboot+vue的IT技术交流和分享平台系统

基于springboot+vue的IT技术交流和分享平台系统(前后端分离)

博主主页
博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战
主要内容:毕业设计(|等)、、学习资料、面试题库、技术咨询
文末联系获取

研究背景:

一个行业发展起来,自然会诞生相关的交流和分享网站,随着计算机技术的发展,IT技术学习的人越来越多,人们在进行IT技术交流和分享的时候,都是基于线下好友间的沟通交流、互相分享,有时间地点的限制,在当今社会已经无法满足用户的需求,针对这一情况,结合目前计算机技术的发展,特开发了本基于Spring Boot的IT技术交流和分享平台。IT技术交流和分享平台与传统的交流和分享方式相比,有着无法比拟的优点,网络共享、传播速度快的特点,用户可以随时随地进行IT技术交流和分享,同时管理员通过计算机对系统信息进行管理,大大提高了IT技术交流和分享效率。 

功能介绍:

系统包含技术:

后端:springboot,mybatis 前端:element-ui、js、css等 开发工具:idea/vscode 数据库:mysql 5.7 JDK版本:jdk1.8

部分截图说明:

用户在系统前台可查看系统信息,系统前台主界面展示如图所示。 

没有账号的用户可进行注册操作,用户注册界面展示如图所示。 

用户在登录界面可输入登录信息,点击登录按钮进行登录系统,用户登录界面展示如图所示。

用户可选择笔记分享查看详情信息,笔记分享详情界面展示如图所示。 

管理员要想进入系统后台对系统进行管理操作,必须登录系统后台,管理员登录界面展示如图所示。 

管理员在用户管理界面可查看所有用户信息,并可对其进行编辑和删除操作,用户管理界面展示如图所示。

管理员可增删改查笔记类型信息,笔记类型管理界面展示如图所示。

管理员可增删改查笔记分享信息,笔记分享管理界面展示如图所示。 

部分代码:

/**
 * 笔记分享
 * 后端接口
 * @author 
 * @email 
 * @date 2021-04-02 22:11:50
 */
@RestController
@RequestMapping("/bijifenxiang")
public class BijifenxiangController {
    @Autowired
    private BijifenxiangService bijifenxiangService;



    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,BijifenxiangEntity bijifenxiang,
        HttpServletRequest request){
        EntityWrapper<BijifenxiangEntity> ew = new EntityWrapper<BijifenxiangEntity>();
        PageUtils page = bijifenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bijifenxiang), params), params));

        return R.ok().put("data", page);
    }

    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,BijifenxiangEntity bijifenxiang, HttpServletRequest request){
        EntityWrapper<BijifenxiangEntity> ew = new EntityWrapper<BijifenxiangEntity>();
        PageUtils page = bijifenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bijifenxiang), params), params));
        return R.ok().put("data", page);
    }

    /**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( BijifenxiangEntity bijifenxiang){
        EntityWrapper<BijifenxiangEntity> ew = new EntityWrapper<BijifenxiangEntity>();
        ew.allEq(MPUtil.allEQMapPre( bijifenxiang, "bijifenxiang")); 
        return R.ok().put("data", bijifenxiangService.selectListView(ew));
    }

     /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(BijifenxiangEntity bijifenxiang){
        EntityWrapper< BijifenxiangEntity> ew = new EntityWrapper< BijifenxiangEntity>();
        ew.allEq(MPUtil.allEQMapPre( bijifenxiang, "bijifenxiang")); 
        BijifenxiangView bijifenxiangView =  bijifenxiangService.selectView(ew);
        return R.ok("查询笔记分享成功").put("data", bijifenxiangView);
    }

    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        BijifenxiangEntity bijifenxiang = bijifenxiangService.selectById(id);
        bijifenxiang.setClicknum(bijifenxiang.getClicknum()+1);
        bijifenxiang.setClicktime(new Date());
        bijifenxiangService.updateById(bijifenxiang);
        return R.ok().put("data", bijifenxiang);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        BijifenxiangEntity bijifenxiang = bijifenxiangService.selectById(id);
        bijifenxiang.setClicknum(bijifenxiang.getClicknum()+1);
        bijifenxiang.setClicktime(new Date());
        bijifenxiangService.updateById(bijifenxiang);
        return R.ok().put("data", bijifenxiang);
    }



    /**
     * 赞或踩
     */
    @RequestMapping("/thumbsup/{id}")
    public R vote(@PathVariable("id") String id,String type){
        BijifenxiangEntity bijifenxiang = bijifenxiangService.selectById(id);
        if(type.equals("1")) {
            bijifenxiang.setThumbsupnum(bijifenxiang.getThumbsupnum()+1);
        } else {
            bijifenxiang.setCrazilynum(bijifenxiang.getCrazilynum()+1);
        }
        bijifenxiangService.updateById(bijifenxiang);
        return R.ok("投票成功");
    }

    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody BijifenxiangEntity bijifenxiang, HttpServletRequest request){
        bijifenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
        //ValidatorUtils.validateEntity(bijifenxiang);
        bijifenxiangService.insert(bijifenxiang);
        return R.ok();
    }

    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody BijifenxiangEntity bijifenxiang, HttpServletRequest request){
        bijifenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
        //ValidatorUtils.validateEntity(bijifenxiang);
        bijifenxiangService.insert(bijifenxiang);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody BijifenxiangEntity bijifenxiang, HttpServletRequest request){
        //ValidatorUtils.validateEntity(bijifenxiang);
        bijifenxiangService.updateById(bijifenxiang);//全部更新
        return R.ok();
    }


    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        bijifenxiangService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }

    /**
     * 提醒接口
     */
    @RequestMapping("/remind/{columnName}/{type}")
    public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
                         @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
        map.put("column", columnName);
        map.put("type", type);

        if(type.equals("2")) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = Calendar.getInstance();
            Date remindStartDate = null;
            Date remindEndDate = null;
            if(map.get("remindstart")!=null) {
                Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
                c.setTime(new Date()); 
                c.add(Calendar.DAY_OF_MONTH,remindStart);
                remindStartDate = c.getTime();
                map.put("remindstart", sdf.format(remindStartDate));
            }
            if(map.get("remindend")!=null) {
                Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
                c.setTime(new Date());
                c.add(Calendar.DAY_OF_MONTH,remindEnd);
                remindEndDate = c.getTime();
                map.put("remindend", sdf.format(remindEndDate));
            }
        }

        Wrapper<BijifenxiangEntity> wrapper = new EntityWrapper<BijifenxiangEntity>();
        if(map.get("remindstart")!=null) {
            wrapper.ge(columnName, map.get("remindstart"));
        }
        if(map.get("remindend")!=null) {
            wrapper.le(columnName, map.get("remindend"));
        }


        int count = bijifenxiangService.selectCount(wrapper);
        return R.ok().put("count", count);
    }

    /**
     * 前端智能排序
     */
    @IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params,BijifenxiangEntity bijifenxiang, HttpServletRequest request,String pre){
        EntityWrapper<BijifenxiangEntity> ew = new EntityWrapper<BijifenxiangEntity>();
        Map<String, Object> newMap = new HashMap<String, Object>();
        Map<String, Object> param = new HashMap<String, Object>();
        Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<String, Object> entry = it.next();
            String key = entry.getKey();
            String newKey = entry.getKey();
            if (pre.endsWith(".")) {
                newMap.put(pre + newKey, entry.getValue());
            } else if (StringUtils.isEmpty(pre)) {
                newMap.put(newKey, entry.getValue());
            } else {
                newMap.put(pre + "." + newKey, entry.getValue());
            }
        }
        params.put("sort", "clicknum");
        params.put("order", "desc");
        PageUtils page = bijifenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bijifenxiang), params), params));
        return R.ok().put("data", page);
    }

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

原文链接:https://www.mtycode.com/935.html,转载请注明出处,更多项目请进入官网:www.maotouyingcc.com。

0

评论0

请先

显示验证码
没有账号? 注册  忘记密码?