基于Java的ssm菜匣子优选系统源码和论文

基于Java的ssm菜匣子优选系统039


 开发工具:idea 
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等
  技术:ssm

摘  要

随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于菜匣子优选生鲜电商系统当然也不能排除在外,随着网络技术的不断成熟,带动了菜匣子优选生鲜电商系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对菜匣子优选生鲜电商系统而言非常有利。

本系统采用的数据库是Mysql,使用JSP技术开发,运行环境使用Tomcat服务器,ECLIPSE 是本系统的开发平台。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

关键字菜匣子优选生鲜电商系统  Mysql数据库  JSP技术

package com.controller;

import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;

import com.annotation.IgnoreAuth;
import com.service.TokenService;
import org.apache.commons.lang3.StringUtils;
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.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;

import com.entity.XueshengxinxiEntity;

import com.service.XueshengxinxiService;
import com.utils.PageUtils;
import com.utils.R;

/**
 * 
 * 后端接口
 * @author
 * @email
 * @date 2023-02-22
*/
@RestController
@Controller
@RequestMapping("/xueshengxinxi")
public class XueshengxinxiController {
    private static final Logger logger = LoggerFactory.getLogger(XueshengxinxiController.class);

    @Autowired
    private XueshengxinxiService xueshengxinxiService;

    @Autowired
    private TokenService tokenService;

    /**
     * 登录
     */
    @IgnoreAuth
    @PostMapping(value = "/login")
    public R login(String username, String password, String role, HttpServletRequest request) {
        XueshengxinxiEntity user = xueshengxinxiService.selectOne(new EntityWrapper<XueshengxinxiEntity>().eq("account", username));
        if(user != null){
            if(!user.getRole().equals(role)){
                return R.error("权限不正常");
            }
            if(user==null || !user.getPassword().equals(password)) {
                return R.error("账号或密码不正确");
            }
            String token = tokenService.generateToken(user.getId(),user.getName(), "users", user.getRole());
            return R.ok().put("token", token);
        }else{
            return R.error("账号或密码或权限不对");
        }

    }

    /**
     * 注册
     */
    @IgnoreAuth
    @PostMapping(value = "/register")
    public R register(@RequestBody XueshengxinxiEntity user){
        if(xueshengxinxiService.selectOne(new EntityWrapper<XueshengxinxiEntity>().eq("account", user.getAccount())) !=null) {
            return R.error("学生已存在");
        }
        user.setRole("学生");
        xueshengxinxiService.insert(user);
        return R.ok();
    }

    /**
     * 退出
     */
    @GetMapping(value = "logout")
    public R logout(HttpServletRequest request) {
        request.getSession().invalidate();
        return R.ok("退出成功");
    }

    /**
     * 密码重置
     */
    @IgnoreAuth
    @RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
        XueshengxinxiEntity user = xueshengxinxiService.selectOne(new EntityWrapper<XueshengxinxiEntity>().eq("username", username));
        if(user==null) {
            return R.error("账号不存在");
        }
        user.setPassword("123456");
        xueshengxinxiService.update(user,null);
        return R.ok("密码已重置为:123456");
    }

    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
        Integer id = (Integer)request.getSession().getAttribute("userId");
        XueshengxinxiEntity user = xueshengxinxiService.selectById(id);
        return R.ok().put("data", user);
    }
    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",page方法");
        Object role = request.getSession().getAttribute("role");
        PageUtils page = null;
        if(role.equals("学生")){
            params.put("yh",request.getSession().getAttribute("userId"));
            page = xueshengxinxiService.queryPage(params);
        }else{
            page = xueshengxinxiService.queryPage(params);
        }
        return R.ok().put("data", page);
    }
    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        logger.debug("Controller:"+this.getClass().getName()+",info方法");
        XueshengxinxiEntity xueshengxinxi = xueshengxinxiService.selectById(id);
        if(xueshengxinxi!=null){
            return R.ok().put("data", xueshengxinxi);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @IgnoreAuth
    @RequestMapping("/save")
    public R save(@RequestBody XueshengxinxiEntity xueshengxinxi, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",save");
        Wrapper<XueshengxinxiEntity> queryWrapper = new EntityWrapper<XueshengxinxiEntity>()
            .eq("name", xueshengxinxi.getName())
            .eq("account", xueshengxinxi.getAccount())
            .eq("password", xueshengxinxi.getPassword())
            .eq("sex_types", xueshengxinxi.getSexTypes())
            .eq("role", xueshengxinxi.getRole())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        XueshengxinxiEntity xueshengxinxiEntity = xueshengxinxiService.selectOne(queryWrapper);
        if("".equals(xueshengxinxi.getImgPhoto()) || "null".equals(xueshengxinxi.getImgPhoto())){
            xueshengxinxi.setImgPhoto(null);
        }
        xueshengxinxi.setRole("学生");
        if(xueshengxinxiEntity==null){
            xueshengxinxiService.insert(xueshengxinxi);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody XueshengxinxiEntity xueshengxinxi, HttpServletRequest request){
        logger.debug("Controller:"+this.getClass().getName()+",update");
        //根据字段查询是否有相同数据
        Wrapper<XueshengxinxiEntity> queryWrapper = new EntityWrapper<XueshengxinxiEntity>()
            .notIn("id",xueshengxinxi.getId())
            .eq("name", xueshengxinxi.getName())
            .eq("account", xueshengxinxi.getAccount())
            .eq("password", xueshengxinxi.getPassword())
            .eq("sex_types", xueshengxinxi.getSexTypes())
            .eq("role", xueshengxinxi.getRole())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        XueshengxinxiEntity xueshengxinxiEntity = xueshengxinxiService.selectOne(queryWrapper);
        if("".equals(xueshengxinxi.getImgPhoto()) || "null".equals(xueshengxinxi.getImgPhoto())){
                xueshengxinxi.setImgPhoto(null);
        }
        if(xueshengxinxiEntity==null){
            xueshengxinxiService.updateById(xueshengxinxi);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }


    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        logger.debug("Controller:"+this.getClass().getName()+",delete");
        xueshengxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

 

章 绪 论

1.1背景及意义

系统管理也都将通过计算机进行整体智能化操作,对于菜匣子优选生鲜电商系统所牵扯的管理及数据保存都是非常多的,例如管理员;主页、个人中心用户管理、商品分类管理商品信息管理系统管理订单管理,用户;主页、个人中心、我的收藏管理、订单管理,前台首页;商品信息、新闻资讯、我的、跳转到后台、购物车等,这给管理者的工作带来了巨大的挑战,面对大量的信息,传统的管理系统,都是通过笔记的方式进行详细信息的统计,后来出现电脑,通过电脑输入软件将纸质的信息统计到电脑上,这种方式比较传统,而且想要统计数据信息比较麻烦,还受时间和空间的影响,所以为此开发了菜匣子优选生鲜电商系统;为用户提供了方便管理平台,方便管理员查看及维护,并且可以通过需求进行商品信息内容的编辑及维护等;对于用户而言,可以随时进行查看商品分类订单信息等,管理员可以足不出户就可以获取到系统的数据信息等,而且还能节省用户很多时间,所以开发菜匣子优选生鲜电商系统给管理者带来了很大的方便,同时也方便管理员对用户信息进行处理。

本论文菜匣子优选生鲜电商系统主要牵扯到的程序,数据库与计算机技术等。覆盖知识面大,可以大大的提高工作人员的效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值