基于Java+SpringBoot+vue+element实现扶贫助农政策平台系统

前言介绍:

         随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对扶农助农政策管理方面的要求也在不断提高,扶农助农政策管理的数量更是不断增加,使得扶农助农政策管理系统的开发成为必需而且紧迫的事情。扶农助农政策管理系统主要是借助计算机,通过对扶农助农政策管理系统所需的信息管理,增加用户选择,同时也方便对广大用户信息的及时查询、修改以及对贫困户的及时了解。扶农助农政策管理系统对用户带来了更多的便利, 该系统通过和数据库管理系统软件协作来满足用户的需求。

功能设计:

系统业务流程图,如图所示:

 系统架构图属于系统设计阶段,系统架构图只是这个阶段一个产物,系统的总体架构决定了整个系统的模式,是系统的基础。扶农助农政策管理系统的整体结构设计如图所示

功能截图:

系统首页: 在系统的首页可以查看首页、贫困户、扶贫政策、志愿者招聘、留言反馈、个人中心、后台管理等信息进行详细操作

登录注册: 通过输入用户名、密码进行登陆或注册信息

贫困户信息:

 在贫困户页面中可以查看编号、家庭成员、成员人数、家庭住址、家庭状况、封面、人均收入、账号、姓名、详细介绍等信息

扶农政策信息:

 

志愿者招聘:

在志愿者招聘页面中可以查看招聘标题、职位、工资待遇、工作地点、工作时间、招聘人数、招聘时间、截止时间、负责人、联系方式、图片、发布日期等信息,并进行收藏操作 

留言反馈: 在留言反馈页面输入留言内容并立即提交或重置操作

个人中心: 在个人中心页面通过填写账号、密码、姓名、年龄、性别、手机、邮箱、上传图片等信息进行个人信息修改,还可对我的收藏进行详细操作

后台管理端:

用户管理: 在用户管理页面中可以对索引、账号、姓名、年龄、性别、手机、邮箱、照片等信息进行详情或删除等操作

贫困户管理: 在贫困户管理页面中可以对索引、编号、家庭成员、成员人数、家庭住址、封面、人均收入、账号、姓名、审核回复、审核状态、审核等信息进行详情或删除等操作

扶农政策信息: 在扶贫政策管理页面中可以对索引、标题、扶贫类型、发布时间、封面等信息进行详情,修改或删除等操作

志愿者招聘: 在志愿者招聘管理页面中可以对索引、招聘标题、职位、工资待遇、工作地点、工作时间、招聘人数、招聘时间、截止时间、负责人、联系方式、图片、发布日期等信息进行详情,修改或删除等操作

志愿者应聘: 用户应聘管理,在用户应聘管理页面中可以对索引、招聘标题、职位、是否应聘、应聘时间、账号、姓名、手机、审核回复、审核状态、审核等信息进行详情或删除等操作

留言板管理: 在留言板管理页面中可以对索引、用户名、留言内容、回复内容等信息进行详情,回复,修改或删除等操作

轮播图管理: 在轮播图管理页面中可以对索引、名称、值等信息进行详情,修改等操作

代码实现:



/**
 * 热门新闻
 * 后端接口
 * @author 
 * @email 
 * @date 2022-03-07 09:32:05
 */
@RestController
@RequestMapping("/remenxinwen")
public class RemenxinwenController {
    @Autowired
    private RemenxinwenService remenxinwenService;
    


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

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(RemenxinwenEntity remenxinwen){
        EntityWrapper< RemenxinwenEntity> ew = new EntityWrapper< RemenxinwenEntity>();
 		ew.allEq(MPUtil.allEQMapPre( remenxinwen, "remenxinwen")); 
		RemenxinwenView remenxinwenView =  remenxinwenService.selectView(ew);
		return R.ok("查询热门新闻成功").put("data", remenxinwenView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        RemenxinwenEntity remenxinwen = remenxinwenService.selectById(id);
		remenxinwen.setClicknum(remenxinwen.getClicknum()+1);
		remenxinwen.setClicktime(new Date());
		remenxinwenService.updateById(remenxinwen);
        return R.ok().put("data", remenxinwen);
    }

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



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

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

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        remenxinwenService.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<RemenxinwenEntity> wrapper = new EntityWrapper<RemenxinwenEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = remenxinwenService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	/**
     * 前端智能排序
     */
	@IgnoreAuth
    @RequestMapping("/autoSort")
    public R autoSort(@RequestParam Map<String, Object> params,RemenxinwenEntity remenxinwen, HttpServletRequest request,String pre){
        EntityWrapper<RemenxinwenEntity> ew = new EntityWrapper<RemenxinwenEntity>();
        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 = remenxinwenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, remenxinwen), params), params));
        return R.ok().put("data", page);
    }


}
复制代码

数据库设计:

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。数据库字段名称为方便快捷编写、不推荐这种写法、请参考数据库表字段设计规范编写

表4-1:收藏表

字段名称 类型 长度 字段说明
id bigint 主键
addtime timestamp 创建时间
userid bigint 用户id
refid bigint 收藏id
tablename varchar 200 表名
name varchar 200 收藏名称
picture varchar 200 收藏图片
type varchar 200 类型(1:收藏,21:赞,22:踩)
inteltype varchar 200 推荐类型

表4-2:扶贫政策

字段名称 类型 长度 字段说明
id bigint 主键
addtime timestamp 创建时间
biaoti varchar 200 标题
xinwenleixing varchar 200 扶贫类型
neirong longtext 4294967295 内容
fabushijian date 发布时间
fengmian varchar 200 封面
clicktime datetime 最近点击时间
clicknum int 点击次数

表4-3:贫困户

字段名称 类型 长度 字段说明
id bigint 主键
addtime timestamp 创建时间
bianhao varchar 200 编号
jiatingchengyuan varchar 200 家庭成员
chengyuanrenshu int 成员人数
jiatingzhuzhi varchar 200 家庭住址
jiatingzhuangkuang longtext 4294967295 家庭状况
fengmian varchar 200 封面
renjunshouru int 人均收入
xiangxijieshao longtext 4294967295 详细介绍
zhanghao varchar 200 账号
xingming varchar 200 姓名
sfsh varchar 200 是否审核
shhf longtext 4294967295 审核回复
clicktime datetime 最近点击时间
clicknum int 点击次数

表4-4:留言板

字段名称 类型 长度 字段说明
id bigint 主键
addtime timestamp 创建时间
userid bigint 留言人id
username varchar 200 用户名
content longtext 4294967295 留言内容
cpicture varchar 200 留言图片
reply longtext 4294967295 回复内容
rpicture varchar 200 回复图片

表4-6:志愿者招聘

字段名称 类型 长度 字段说明
id bigint 主键
addtime timestamp 创建时间
zhaopinbiaoti varchar 200 招聘标题
zhiwei varchar 200 职位
zhaopinyaoqiu longtext 4294967295 招聘要求
gongzidaiyu varchar 200 工资待遇
gongzuodidian varchar 200 工作地点
gongzuoshijian varchar 200 工作时间
zhaopinrenshu int 招聘人数
zhaopinshijian date 招聘时间
jiezhishijian date 截止时间
fuzeren varchar 200 负责人
lianxifangshi varchar 200 联系方式
tupian varchar 200 图片
faburiqi date 发布日期
clicktime datetime 最近点击时间
clicknum int 点击次数

表4-7:用户应聘

字段名称 类型 长度 字段说明
id bigint 主键
addtime timestamp 创建时间
zhaopinbiaoti varchar 200 招聘标题
zhiwei varchar 200 职位
shifouyingpin varchar 200 是否应聘
yingpinyuanyin longtext 4294967295 应聘原因
yingpinshijian date 应聘时间
zhanghao varchar 200 账号
xingming varchar 200 姓名
shouji varchar 200 手机
sfsh varchar 200 是否审核
shhf longtext 4294967295 审核回复

表4-8:用户

字段名称 类型 长度 字段说明
id bigint 主键
addtime timestamp 创建时间
zhanghao varchar 200 账号
mima varchar 200 密码
xingming varchar 200 姓名
nianling varchar 200 年龄
xingbie varchar 200 性别
shouji varchar 200 手机
youxiang varchar 200 邮箱
zhaopian varchar 200 照片

论文参考:

猜你喜欢

转载自juejin.im/post/7073661194568990734