基于java+ssm+vue的作品集展示微信小程序

项目介绍

随着计算机技术的成熟,互联网的建立,如今,PC平台上有许多关于作品集展示方面的应用程序,但由于使用时间和地点上的限制,用户在使用上存在着种种不方便,而开发一款作品集展示微信小程序,能够有效地解决这个问题。

本作品集展示微信小程序采用WXML 、WXS、JS小程序编写语言、微信开发者工具进行微信端开发,采用MySQL数据库进行系统数据的储存,以微信为入口的,具有快捷、轻便的特点,不占内存,不用下载、安装,而且访问速度很快。系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了作品集、优秀作品、我的分享等重要功能。

“操作简单,功能实用”这是本软件设计的核心理念,本系统力求创造最好的用户体验。
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,微信开发者工具,jdk1.8,maven
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net

系统实现

5.1用户功能模块的实现
5.1.1用户注册登录界面
用户要想进入本系统,必须进行登录操作,未有账号的用户可进行注册操作,用户注册登录界面展示如图5-1所示。
在这里插入图片描述

图5-1 用户注册登录界面图

5.1.2首页界面
用户登录后进入首页界面可查看首页信息,首页界面展示如图5-2所示。
在这里插入图片描述

图5-2 首页界面图

5.1.3作品集界面
用户通过本平台还可查看作品集信息,并可选择查看详情,作品集界面展示如图5-3所示。
在这里插入图片描述

图5-3 作品集界面图

5.1.4优秀作者界面
用户在优秀作者界面可查看所有优秀作者信息,并可选择查看详情,优秀作者界面如图5-4所示。
在这里插入图片描述

图5-4 优秀作者界面图

5.1.5我的分享界面
用户可增删改查个人分享信息,我的分享界面如图5-5所示。
在这里插入图片描述

图5-5 我的分享界面图

5.2管理员功能模块的实现
5.2.1管理员登录界面
管理员可以通过正确的登录账号和密码进行登录系统后台,管理员登录界面展示如图5-6所示。
在这里插入图片描述

图5-6 管理员登录界面图

5.2.2用户管理界面
管理员可进行用户管理操作,可查询、添加、修改和删除用户信息,用户管理界面展示如图5-7所示。
在这里插入图片描述

图5-7 用户管理界面图

5.2.3作品管理界面
管理员可新增、修改和删除作品信息,并可加入作品集和查看评论,作品管理界面展示如图5-8所示,添加作品界面展示如图5-9所示。
在这里插入图片描述

图5-8 作品管理界面图
在这里插入图片描述

图5-9 添加作品界面图

5.2.4作品集管理界面
管理员可新增、修改和删除作品集信息,作品集管理界面展示如图5-10所示。
在这里插入图片描述

图5-10 作品集管理界面图

5.2.5优秀作者管理界面
管理员可新增、修改和删除优秀作者信息,优秀作者管理界面展示如图5-11所示,添加优秀作者界面展示如图5-12所示。
在这里插入图片描述

图5-11 优秀作者管理界面图
在这里插入图片描述

图5-12 添加优秀作者界面图

核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.WodefenxiangEntity;
import com.entity.view.WodefenxiangView;

import com.service.WodefenxiangService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 我的分享
 * 后端接口
 * @author 
 * @email 
 * @date 
 */
@RestController
@RequestMapping("/wodefenxiang")
public class WodefenxiangController {
    @Autowired
    private WodefenxiangService wodefenxiangService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,WodefenxiangEntity wodefenxiang, 
		HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			wodefenxiang.setZhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<WodefenxiangEntity> ew = new EntityWrapper<WodefenxiangEntity>();
		PageUtils page = wodefenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, wodefenxiang), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,WodefenxiangEntity wodefenxiang, HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			wodefenxiang.setZhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<WodefenxiangEntity> ew = new EntityWrapper<WodefenxiangEntity>();
		PageUtils page = wodefenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, wodefenxiang), params), params));
        return R.ok().put("data", page);
    }

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(WodefenxiangEntity wodefenxiang){
        EntityWrapper< WodefenxiangEntity> ew = new EntityWrapper< WodefenxiangEntity>();
 		ew.allEq(MPUtil.allEQMapPre( wodefenxiang, "wodefenxiang")); 
		WodefenxiangView wodefenxiangView =  wodefenxiangService.selectView(ew);
		return R.ok("查询我的分享成功").put("data", wodefenxiangView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        WodefenxiangEntity wodefenxiang = wodefenxiangService.selectById(id);
        return R.ok().put("data", wodefenxiang);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        WodefenxiangEntity wodefenxiang = wodefenxiangService.selectById(id);
        return R.ok().put("data", wodefenxiang);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody WodefenxiangEntity wodefenxiang, HttpServletRequest request){
    	wodefenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(wodefenxiang);

        wodefenxiangService.insert(wodefenxiang);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody WodefenxiangEntity wodefenxiang, HttpServletRequest request){
    	wodefenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(wodefenxiang);
    	wodefenxiang.setUserid((Long)request.getSession().getAttribute("userId"));

        wodefenxiangService.insert(wodefenxiang);
        return R.ok();
    }

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

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

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));
		}

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


}

论文参考

在这里插入图片描述

目 录
1 绪 论 1
1.1课题研究背景 1
1.2设计原则 1
1.3研究内容 2
2系统关键技术 3
2.1 微信小程序 3
2.2微信Web开发者工具 3
2.3微信小程序API接口 3
2.4 WXML 、WXS、JS小程序编写语言 4
2.5 MYSQL数据库 4
3系统分析 1
3.1可行性分析 1
3.1.1 技术可行性 1
3.1.2经济可行性 1
3.1.3操作可行性 1
3.1.4法律可行性 2
3.2系统性能分析 2
3.3 系统功能分析 2
3.3.1用户功能分析 2
3.3.2管理员功能分析 3
3.4用户体验需求分析 4
3.5系统流程分析 5
3.5.1注册流程 5
3.5.2登录流程 5
3.5.3录入信息流程 6
4系统设计 7
4.1系统设计要求 7
4.2系统开发流程设计 7
4.3系统结构设计 7
4.4数据库设计 8
4.4.1数据库E-R图设计 8
4.4.2数据库表设计 10
5 系统的实现 12
5.1用户功能模块的实现 12
5.1.1用户注册登录界面 12
5.1.2首页界面 12
5.1.3作品集界面 13
5.1.4优秀作者界面 14
5.1.5我的分享界面 14
5.2管理员功能模块的实现 15
5.2.1管理员登录界面 15
5.2.2用户管理界面 15
5.2.3作品管理界面 16
5.2.4作品集管理界面 17
5.2.5优秀作者管理界面 17
6系统测试 19
6.1测试定义 19
6.2测试特性 19
6.3测试方案 20
6.4测试结论 21
结 论 1
参考文献 2
谢 辞 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qq_3306428634

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

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

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

打赏作者

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

抵扣说明:

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

余额充值