基于微信小程序的电子产品租赁平台源码

1.本课题的研究目的和意义

 随着共享单车、共享充电宝等新型共享方式的出现, 人们的关注渐渐聚焦在共享资源的问题上,并引发了一系列的研究。其实共享的概念在早期就存在, 比如同学之间相互借用学习工具、邻居之间互借用品、图书馆借阅图书等都属于共享。但是这种共享是传统方式上的共享,这种共享仅是以个人对外的关系网和个人信用为基础的共享。这种方式是一种简单、无偿小范围的共享方式。而随着互联网的发展,物品共享方式越来越多地出现在大众的眼前,并由“无偿分享”变化到以获得一定报酬为目的,基于陌生人暂时使用的“有偿共享”。

    本系统结合市面出现“有偿共享”的共享方式和校园实际情况进行设计,有前台用户信息管理、订单管理、电子产品管理和后台订单管理、电子产品管理、用户信息管理等功能。本系统将解决校园中,部分大学生群体拥有并闲置的电子产品较多, 而部分群体资源缺乏或有需求的资源分配不平衡的问题。其次,本系统不受时间、空间和参与人数等各个方面的限制,在完整地完成线上电子产品租赁流程的基础上,最大程度上减少了人力和物力资源的浪费。同时,有助于学生树立节约资源的理念,达到优化资源配置地目的。

【596】基于微信小程序的电子产品租赁平台源码和论文开题报告任务书

  1. 本课题的文献综述(不少于1500字)

  2.1课题研究背景和现状

提倡共享发展理念,是不知不扣实现十三五规划目标的重大举措。十三五中全会的会议报告中指出,“要坚持共享发展,发展成果有人民共享,使全体人民在共建发展中有更多获得感”。李克强提出“互联网+”行动计划,其中共享经济便是当前被广泛关注并引起热议的“互联网+”的形式。在“大众创业,万众创新”的新时代背景下,共享经济作为新兴经济模式渗透于社会发展的方方面面。

首先,共享经济对我国经济有发展作用。有效提高存量资源的利用效率。目前我国产能过剩问题严重,如何盘活存量资源成为一个大问题。共享经济的发展恰好为这些闲置资源的利用提供了出路,根据2017年行业报告研究院发布的《中国“共享经济”研究报告》,共享经济目前涉及的领域已逐步扩展到交通、住宿、金融、知识技能等各个行业,2016年我国共享经济已经达到了39450亿元,有效提高了我国存量资源的利用效率。其次,提供就业岗位,拓宽就业渠道。共享经济的发展,随之带来更多的就业岗位,有利于改善当前我国“就业难”的现状。数据报告显示,2016年共享经济平台就业人员已经高达585万人,相比2015年增加了85万人。

但与此同时,共享经济在发展会中遇到阻碍。信用体系不完善。共享经济中,大部分的消费需要建立起供给方和需求方这两个陌生主体之间的信任;相关法律法规不完善。共享经济作为近几年兴起并迅速发展的新兴事物,相关的法律法规并没有及时的跟上;.产业配套设施不足。由于共享经济本身的特征,导致其对于互联网、物流等配套设施有着更高的要求。尽管我国互联网、物流已经相对发达,但是在一些不发达城市和农村中互联网和物流覆盖率仍然不足、上网资费也较高,这些都影响了更多的民众参与到共享经济中

随着共享单车、共享充电宝等新型共享方式的出现, 人们的关注渐渐聚焦在共享资源的问题上,并引发了一系列的研究。其实共享的概念在早期就存在, 比如同学之间相互借用学习工具、邻居之间互借用品、图书馆借阅图书等都属于共享。但是这种共享是传统方式上的共享,这种共享仅是以个人对外的关系网和个人信用为基础的共享。这种方式是一种简单、无偿、小范围的共享方式。而随着互联网的发展,物品共享方式越来越多地出现在大众的眼前,并由“无偿分享”变化到以获得一定报酬为目的,基于陌生人暂时使用的“有偿共享”。从传统意义上讲,共享经济是以获得一定的利益为目标, 将存在的物品的使用权暂时交于陌生人手中的一种商业性的模式。

2.2课题研究技术方案

本系统结合市面出现“有偿共享”的共享方式和校园实际情况进行设计,有前台用户信息管理、订单管理、电子产品管理和后台订单管理、电子产品管理、用户信息管理等功能。本系统将解决校园中,部分大学生群体拥有并闲置的电子产品较多, 而部分群体资源缺乏或有需求的资源分配不平衡的问题。其次,本系统不受时间、空间和参与人数等各个方面的限制,在完整地完成线上电子产品租赁流程的基础上,最大程度上减少了人力和物力资源的浪费。同时,有助于学生树立节约资源的理念,达到优化资源配置地目的。

系统采用SSM框架,SSM是标准的MVC模式,将整个系统划分为View层,Controller层,Service层,DAO层四层,使用Spring MVC负责请求的转发和视图管理,Spring实现业务对象管理,Mybatis作为数据对象的持久化引擎 。界面是用Vue.js实现的。Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue.js 采用自底向上增量开发的设计。Vue.js 的核心库,只关注视图层。这个技术不仅仅比较容易学习,而且非常容易与其它库或已有项目整合。在前端的数据需要用图表的形式展示上,采用了EChart.js。

EChart.js是在这个项目计划使用的图形库,这也是一款基于HTML5的图形库。这款是一个前端数据可视化的插件,在国内的热度比较高。图形的创建也比较简单,直接引用Javascript即可。首先,这个库的项目文档比较详细,每个点都说明都标注得清楚,而且使用的是中文的,因此理解起来较为容易。其次,这个图形库支持的图形非常丰富,并且支持直接切换图形,使用起来非常便利。

2.3结论

构建一个电子产品租赁平台不仅仅可以让闲置或者被遗弃的电子产品发挥他们的作用,而且能够将资源充分利用。因为大学生的群体具有较强的流动性、个性需求多样化和个人可承受消费金额不相同等特点。从而导致而部分学生有需求,但是没有足够的承担能力花费巨额购买电子产品。部分的学生群体能够拥有大量的电子产品资源,又由于个人对电子产品的个性需求、印某方面短暂效用等原因,导致电子产品会随着持有者的需求渐渐被闲置、遗弃。而通过电子产品租赁平台,可以将闲置和遗弃的资源再次利用起来,以实现电子产品互通公用,最远共享的目的。不仅仅满足了出租方的闲置时可将物品租赁从而获得租金的要求,而且满足了求租方以较低成本获得了所需电子产品的使用权。更是从整体来讲,不仅仅促进了校园大学生的节约资源的消费观念和消费习惯的改变。更重要的是能够实现物品资源的循环使用和共享。促使生产者更加注重电子产品的质量与可靠性,实现了资源的更有配置,并符合我国经济结构共给侧改革的要求。

2.4参考文献列表

[1]共享经济:传统经济模式的颠覆者[J]. 刘根荣.经济学家. 2017(05)

[2]共享经济在我国的发展状况及对策[J]. 霍文倩.时代金融. 2018(20)

[3]以共享经济为中心探究互联网金融的创新性[J]. 石秉艳.中国国际财经(中英文). 2018(04)

[4] Rajendra Kumar Roul.A nifty review to text summarization-based recommendation system for electronic products[J]. Soft Computing.2019(24)

[5]Vue.js前端开发快速入门应用[M]. 人民邮电出版社 , 陈陆扬, 2017

[6]深入浅出Vue.js[M]. 人民邮电出版社 , 刘博文, 2019

[7] 胡瑞娟.软件程.大数据架构下的热词发现与可视化技术研究[J]. 2018(05)

[8]基于FreeMarker、ECharts以及SSM的数据可视化平台[J].电脑编程技巧与维护. 夏禹.2019(07)

[9]李先静,张晓梅,李小燕,刘福.校园闲置物品短租平台的研究[J].计算机产品与流通,2019(11):236.

[10]Quan Yuan,Bin Shen. Renting fashion with strategic customers in the sharing economy[J]. International Journal of Production Economics.2019,218.

[11]Alessandro Barattieri. Risk sharing, efficiency of capital allocation, and the connection between banks and the real economy[J]. Journal of Corporate Finance,2019.

[12]马忠贵.大数据背景下“数据库技术及应用”课程体系优化与实践[J].教育现代化,2019,6(68):95-97+106.

[13]李晓华,孙锋申.SQL Server数据库混合式教学设计与研究[J].中国多媒体与网络教学学报(中旬刊),2019(06):7-8.

package com.csmaxwell.srent.core.system;

import com.csmaxwell.srent.core.util.SystemInfoPrinter;
import com.csmaxwell.srent.db.service.SrentSystemConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 系统启动服务,用于设置系统配置信息、检查系统状态及打印系统信息
 */
@Component
class SystemInistService {
    private SystemInistService systemInistService;


    @Autowired
    private Environment environment;

    @PostConstruct
    private void inist() {
        systemInistService = this;
        initConfigs();
        SystemInfoPrinter.printInfo("Srent 初始化信息", getSystemInfo());
    }


    private final static Map<String, String> DEFAULT_CONFIGS = new HashMap<>();
    static {
        // 小程序相关配置默认值
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_WX_INDEX_NEW, "6");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_WX_INDEX_HOT, "6");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_WX_INDEX_BRAND, "4");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_WX_INDEX_TOPIC, "4");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_WX_INDEX_CATLOG_LIST, "4");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_WX_INDEX_CATLOG_GOODS, "4");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_WX_SHARE, "false");
        // 运费相关配置默认值
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_EXPRESS_FREIGHT_VALUE, "8");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_EXPRESS_FREIGHT_MIN, "88");
        // 订单相关配置默认值
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_ORDER_UNPAID, "30");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_ORDER_UNCONFIRM, "7");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_ORDER_COMMENT, "7");
        // 订单相关配置默认值
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_MALL_NAME, "srent");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_MALL_ADDRESS, "上海");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_MALL_PHONE, "021-xxxx-xxxx");
        DEFAULT_CONFIGS.put(SystemConfig.LITEMALL_MALL_QQ, "738696120");
    }

    @Autowired
    private SrentSystemConfigService srentSystemConfigService;

    private void initConfigs() {
        // 1. 读取数据库全部配置信息
        Map<String, String> configs = srentSystemConfigService.queryAll();

        // 2. 分析DEFAULT_CONFIGS
        for (Map.Entry<String, String> entry : DEFAULT_CONFIGS.entrySet()) {
            if(configs.containsKey(entry.getKey())){
                continue;
            }

            configs.put(entry.getKey(), entry.getValue());
            srentSystemConfigService.addConfig(entry.getKey(), entry.getValue());
        }

        SystemConfig.setConfigs(configs);
    }

    private Map<String, String> getSystemInfo() {

        Map<String, String> infos = new LinkedHashMap<>();

        infos.put(SystemInfoPrinter.CREATE_PART_COPPER + 0, "系统信息");
        // 测试获取application-db.yml配置信息
        infos.put("服务器端口", environment.getProperty("server.port"));
        infos.put("数据库USER", environment.getProperty("spring.datasource.druid.username"));
        infos.put("数据库地址", environment.getProperty("spring.datasource.druid.url"));

        infos.put("对象存储", environment.getProperty("srent.storage.active"));
        infos.put("本地对象存储路径", environment.getProperty("srent.storage.local" +
                ".storagePath"));
        infos.put("本地对象访问地址", environment.getProperty("srent.storage.local" +
                ".address"));
        infos.put("本地对象访问端口", environment.getProperty("srent.storage.local" +
                ".port"));

        // 微信相关信息
        infos.put(SystemInfoPrinter.CREATE_PART_COPPER + 2, "微信相关");
        infos.put("微信APP KEY", environment.getProperty("srent.wx.app-id"));
        infos.put("微信APP-SECRET", environment.getProperty("srent.wx" +
                ".app-secret"));


        return infos;
    }
}

 

package com.csmaxwell.srent.core.storage;

import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import org.springframework.core.io.Resource;
import org.springframework.core.io.UrlResource;

import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Path;
import java.util.stream.Stream;

public class QiniuStorage implements Storage {

    private String endpoint;
    private String accessKey;
    private String secretKey;
    private String bucketName;
    private Auth auth;
    private UploadManager uploadManager;
    private BucketManager bucketManager;

    public String getEndpoint() {
        return endpoint;
    }

    public void setEndpoint(String endpoint) {
        this.endpoint = endpoint;
    }

    public String getAccessKey() {
        return accessKey;
    }

    public void setAccessKey(String accessKey) {
        this.accessKey = accessKey;
    }

    public String getSecretKey() {
        return secretKey;
    }

    public void setSecretKey(String secretKey) {
        this.secretKey = secretKey;
    }

    public String getBucketName() {
        return bucketName;
    }

    public void setBucketName(String bucketName) {
        this.bucketName = bucketName;
    }

    /**
     * 七牛云OSS对象存储简单上传实现
     */
    @Override
    public void store(InputStream inputStream, long contentLength, String contentType, String keyName) {
        if (uploadManager == null) {
            if (auth == null) {
                auth = Auth.create(accessKey, secretKey);
            }
            uploadManager = new UploadManager(new Configuration());
        }

        try {
            String upToken = auth.uploadToken(bucketName);
            Response response = uploadManager.put(inputStream, keyName, upToken, null, contentType);
        } catch (QiniuException ex) {
            ex.printStackTrace();
        }
    }

    @Override
    public Stream<Path> loadALL() {
        return null;
    }

    @Override
    public Path load(String keyName) {
        return null;
    }

    @Override
    public Resource loadAsResource(String keyName) {
        try {
            URL url = new URL(generateUrl(keyName));
            Resource resource = new UrlResource(url);
            if (resource.exists() || resource.isReadable()) {
                return resource;
            } else {
                return null;
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
            return null;
        }
    }

    @Override
    public void delete(String keyName) {
        if (bucketManager == null) {
            if (auth == null) {
                auth = Auth.create(accessKey, secretKey);
            }
            bucketManager = new BucketManager(auth, new Configuration());
        }

        try {
            bucketManager.delete(bucketName, keyName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public String generateUrl(String keyName) {
        return endpoint + "/" + keyName;
    }
}

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿毕业分享网

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

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

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

打赏作者

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

抵扣说明:

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

余额充值