• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发 - demo例子集 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发

基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发

代码地址如下:
http://www.demodashi.com/demo/13867.html

1 概述

笔者做的一个后端基于spring-boot的社区社交微信小程序,可以作为开发的脚手架,开发速度快,灵活,前后端分离,很适合二次开发。数据主要存储在MySQL上,笔者封装了一个MysqlGenerator.java工具类,结合spring jdbc,做数据库操作很方便。另外提供了一个文档系统,后端人员产出接口直接写出markdown文件就行,和前端沟通很方便。

2 详细

笔者所在的小区有很多居民,我觉得可以提供一个平台给大家,方便进行信息共享、闲置买卖等,也提供一些常用便民工具,例如电话查询,交通信息查询,另外一些商家也可以发布自己的服务让更多人知晓,例如汽车年审,废品回收,特产,搬家服务等。

笔者做的这个后端,是基于spring-boot的,主要特点如下:

  1. 方便开发部署,支持一键发布,配置好git之后发送一个http请求,就执行一个脚本,自动拉取最新代码并发布,脚本都在工程根目录。
  2. 自建文档系统,直接写markdown文件丢进指定文件夹即可,方便给前端人员查阅(暂未做登录验证,请注意保护文档地址url不泄露)。
  3. spring jdbc封装,数据库操作便捷,会写sql就能做后端业务,方便修改排查问题,速度快,方便性能调优(工具类MysqlGenerator.java源码也简单,可以根据自己业务情况做修改)。

3 配置说明

3-1 环境、物料准备

1.微信小程序账号
2.腾讯COS平台账号(我们图片存在这里,50G免费)
3.Java8,maven 3.5+,Git,MySQL 5.6+,Redis 3.2+
4.微信Web开发者工具(用于调试小程序代码)-> 微信小程序开发文档

3-2 工程目录

4 配置

4-1 账号配置

4-2 一键部署配置

首先要配置好Git,把代码上传到你的仓库,并切换到分支dev,然后请求http接口http://host:port/common/shell/pullrun,会自动运行脚本pullrun.sh,该脚本会拉取最新代码并重新部署,具体原理请查阅pullrun.sh内容及src/main/java/com/shop/modules/apicommon/controller/CommonController.runScript()方法

5 功能说明

5-1 工具类MysqlGenerator.java的使用

5-1-1 开发前准备

5-1-1-0 建表

在MySQL数据库中建好表,例如一个cuser表,有id,login_name,nickname字段。

5-1-1-0 编写2种Java Bean

一种是普通的bean,用于返回结果或其他一般用途,另一种是特殊的bean,用于接收请求参数,配合MysqlGenerator工具类生产sql语句。

特殊bean主要是putter方法特殊,举例如下

package com.shop.beans.param;

import java.io.Serializable;
import com.shop.beans.basic.MyParams;

public class ParamCUser extends MyParams implements Serializable {

	// id,login_name,nickname
    private static final long serialVersionUID = 1L;

    private int id;
    private String login_name;
    private String nickname;

    //getter
    public int getId() { 
        return id;
    }
    public String getLogin_name() { 
        return login_name;
    }
    public String getNickname() { 
        return nickname;
    }

    //setter
    public void setId(int id) { 
        put("id",id);
        this.id = id;
    }
    public void setLogin_name(String login_name) { 
        put("login_name",login_name);
        this.login_name = login_name;
    }
    public void setNickname(String nickname) { 
        put("nickname",nickname);
        this.nickname = nickname;
    }
    

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", login_name=").append(login_name);
        sb.append(", nickname=").append(nickname);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }

}

这种特殊的bean,可以手写,也可以使用这个工具,可以根据mysql表直接生成,非常方便,具体请查看开源项目:JavaBeanGenerator

5-1-2 增

有了特殊的bean,从Controller中接收了参数之后,就可以开始开发了,有3种新增的方式,请查阅例子

@Autowired
    private UserDao dao;
    /**
     *
     * @param cuser 特殊bean
     * @return
     */
    public JsonBase addCUser(ParamCUser cuser){

        cuser.setCreate_time(DateUtil.getCurrentTimestamp());//特殊bean可以像普通bean那样set值
        cuser.setLast_login_time(DateUtil.getCurrentTimestamp());
        // allFieldsInsertSQL,所有字段都会插入
        String sql = MysqlGenerator.allFieldsInsertSQL(cuser, TableName.C_USER);
        // 除去指定字段插入,第三个参数指定即可,多个字段可以用英文逗号隔开
        String sql2 = MysqlGenerator.exceptFieldsInsertSQL(cuser, TableName.C_USER, "id,login_name");
        // 指定字段插入,第三个参数指定即可,多个可以用英文逗号隔开
        String sql3 = MysqlGenerator.specificFieldsInsertSQL(cuser, TableName.C_USER, "id,login_name,nickname");
        Debugger.so(sql);
        Debugger.so(sql2);
        Debugger.so(sql3);
        int reInt = dao.insert(sql, cuser.getParams());
        return reInt > 0 ? CM.getReturnInfo("新增成功") : CM.getFailInfo(CS.UNCONFIRM_ERROR, "新增失败");
    }

5-1-3 删

根据id去删,不怕把整个表都删了,支持根据多个字段删除,具体原理可以直接看源码,很容易理解。

/**
     * 
     * @param paramPostLike 特殊bean
     * @return
     */
    public JsonBase remove_like(ParamPostLike paramPostLike) {
        String sql = MysqlGenerator.deleteSQL(TableName.POST_LIKE, "openid,post_id");
        int ret = dao.delete(sql, paramPostLike.getParams());
        return ret > 0 ? CM.getReturnInfo("unlike ok") : CM.getFailInfo(CS.UNCONFIRM_ERROR, "unlike 失败");
    }

5-1-4 改

具体参数和用法可以直接看方法源码,很容易理解

//所以字段都更新
MysqlGenerator.allFieldsUpdateSQL()
//指定字段更新
MysqlGenerator.specificFieldsUpdateSQL()
//出去某字段,其余都更新
MysqlGenerator.exceptFieldsUpdateSQL()

5-1-5 查

我们查询主要靠手写,可以在Navicat或者类似工具上编写好,复制到代码里,如果不想写太多字符串拼接,可以用@Multiline注解,这样就可以在注释里使用多行文本了

/**
     SELECT cm.*, cu.`nickname`, cu.`avatar`
     FROM post_comment AS cm
     LEFT JOIN c_user AS cu ON (cu.`openid` = cm.`from_openid`)
     WHERE 1=1
     AND cm.to_post_id = :to_post_id AND cm.to_comment_id = 0
     ORDER BY cm.create_time DESC
     */
    @Multiline private String GET_COMMENTS_BY_ID;

编写好查询sql之后,直接调用spring-jdbc的方法就可以查询了。

微信小程序配置

工程名shop-mp,如果需要发布小程序,需要有https证书,就需要配置好服务器域名,登录小程序账号之后,在【设置】-【开发设置】下找到。需要配置模板消息的话,还要自己申请一下模块消息。预览的话可以直接使用微信的【微信Web开发者工具】打开即可,主要需要配置好请求的地址url,在小程序/shop-mp/config/global_config.js里配置。

// 开发状态
const isDebug = false;
// const localhost = \'127.0.0.1\';
const localhost = \'192.168.1.161\';

module.exports = {
  
  isDebug: isDebug,
  //版本号。
  VERSION_CODE: 44,
  //签名的字符串
  SIGN_KEY: \'foobar\',
  // A用户(小区)id,每个小区有一个id
  AUSER_ID: 1,
  // 小程序码的链接
  MPCODE_URL: \'http://wx2.sinaimg.cn/mw690/8f8f5f45gy1fr5xyj7im8j2076076q43.jpg\',
  // 小程序web-view URL业务域名
  BUSINESS_DOMAIN: \'xxx.com\',
  //这里配置为你的url,本地就localhost
  URL_BASE: isDebug ? \'http://\' + localhost +\':8000\' : \'https://xxxxxxxx\'

}

5-2 文档系统的使用

把编写好的markdown文件丢进apidoc/md里面就行了,工程部署之后可以在http://host:port/apidoc/yourdocname.html查看,支持子文件夹,记得修改文档的名称,防止url泄露。有时间也可以做一个验证。

6 项目展示

6-1 顺碧小圈-微信小程序

6-2 文档模块效果图

7 联系作者


基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发

代码地址如下:
http://www.demodashi.com/demo/13867.html

注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
python+appium微信小程序自动化实现发布时间:2022-07-18
下一篇:
微信小程序自动化发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap