基于SpringBoot的生鲜管理系统的设计与实现

背景

困扰交易市场的许多问题当中,生鲜交易管理一定是交易市场不敢忽视的一块。但是管理好生鲜交易又面临很多麻烦需要解决,例如有几个方面:第一,生鲜市场往往人数都比较多,如何保证能够管理到每一个商家,如何在工作琐碎,记录繁多的情况下将生鲜交易的当前情况反应给领导相关部门决策,等等。在此情况下开发一款生鲜交易系统,于是乎变得非常合乎时宜。

系统架构

考虑到实际生活中在生鲜交易方面的需要以及对该系统认真的分析,将系统权限按管理员,用户这两类涉及用户划分。

(a) 管理员;管理员使用本系统涉到的功能主要有:首页,个人中心,用户管理,商家管理,生鲜信息管理,生鲜分类管理,广告信息管理,生鲜仓库管理,生鲜出库管理,管理等功能。管理员用例图如图:

在这里插入图片描述
(b) 商家;商家使用本系统涉到的功能主要有:首页,个人中心,生鲜信息管理,广告信息管理,生鲜仓库管理,生鲜出库管理,订单管理等功能。商家用例图如图:
在这里插入图片描述
©用户主要包括首页、个人中心功能。用户用例图如图:

在这里插入图片描述
网站整体功能如下图所示:

在这里插入图片描述

数据库设计

系统ER图

生鲜信息实体图如图:

在这里插入图片描述
用户注册实体图如图:
在这里插入图片描述

数据库表设计

由于涉及的数据库表较多,此处只展示部分的数据库表。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统实现

生鲜交易系统分为前台功能和后台功能,包括管理员、用户和商家三个角色,根据每个用户权限的不同,操作的功能也会不一样,接下来对生鲜交易系统的功能模块进行分析。

系统功能模块

用户系统,在系统首页可以查看首页,生鲜信息,公告信息,个人中心,后台管理,购物车等内容,并进行详细操作,如图:

在这里插入图片描述

生鲜信息,在生鲜信息页面可以查看生鲜名称,价格,生鲜类型,打捞日期,保质期,商店编号,商店名称,联系电话,点击次数等内容,并进行评论,添加到购物车,立即购买,点我收藏等操作,如图:

在这里插入图片描述

商家功能

商家登录系统后,可以对首页,个人中心,生鲜信息管理,广告信息管理,生鲜仓库管理,生鲜出库管理,订单管理等进行相应的操作管理,如图:

在这里插入图片描述
生鲜信息管理,在生鲜信息管理页面可以对索引,生鲜名称,生鲜类型,保质期,打捞日期,生鲜图片,商店编号,商店名称,联系电话,价格,审核回复,审核状态,等内容进行详情,修改,查看评论和删除等操作,如图:

在这里插入图片描述

代码实现

由于涉及的代码较多,此处只展示部分代码。

生鲜信息

@RestController
@RequestMapping("/shengxianxinxi")
public class ShengxianxinxiController {
    @Autowired
    private ShengxianxinxiService shengxianxinxiService;

    @Autowired
    private StoreupService storeupService;

    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ShengxianxinxiEntity shengxianxinxi,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("shangjia")) {
			shengxianxinxi.setShangdianbianhao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<ShengxianxinxiEntity> ew = new EntityWrapper<ShengxianxinxiEntity>();
		PageUtils page = shengxianxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shengxianxinxi), params), params));

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ShengxianxinxiEntity shengxianxinxi){
        EntityWrapper< ShengxianxinxiEntity> ew = new EntityWrapper< ShengxianxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( shengxianxinxi, "shengxianxinxi")); 
		ShengxianxinxiView shengxianxinxiView =  shengxianxinxiService.selectView(ew);
		return R.ok("查询生鲜信息成功").put("data", shengxianxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ShengxianxinxiEntity shengxianxinxi = shengxianxinxiService.selectById(id);
		shengxianxinxi.setClicknum(shengxianxinxi.getClicknum()+1);
		shengxianxinxi.setClicktime(new Date());
		shengxianxinxiService.updateById(shengxianxinxi);
        return R.ok().put("data", shengxianxinxi);
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱coding的同学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值