基于SpringBoot的预约挂号微信小程序

一、运用的技术

主要运用的技术为微信小程序原生开发、springboot、mybatis-plus和mysql。这个项目主要完成了学校的毕业设计课程内容。

二、项目中的亮点

        (1)、通过微信小程序的授权登录,完成对小程序登录的验证,话不多说,上图解释。以下代码通过AES算法解密将微信小程序端加密的用户的个人信息解密出来,返回其信息数据,保存至数据库。

public class AesUtil{

    public static String decrypt(String data, String key, String iv) {
        String result = "";
        // 被加密的数据
        byte[] dataByte = Base64.decode(data);
        // 加密秘钥
        byte[] keyByte = Base64.decode(key);
        // 偏移量
        byte[] ivByte = Base64.decode(iv);
        System.out.println("进入了解密算法");
        try {
            // 如果密钥不足16位,那么就补足. 这个if 中的内容很重要
            int base = 16;
            if (keyByte.length % base != 0) {
                int groups = keyByte.length / base + (keyByte.length % base != 0 ? 1 : 0);
                byte[] temp = new byte[groups * base];
                Arrays.fill(temp, (byte) 0);
                System.arraycopy(keyByte, 0, temp, 0, keyByte.length);
                keyByte = temp;
            }
            // 初始化
            Security.addProvider(new BouncyCastleProvider());
            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC");
            SecretKeySpec spec = new SecretKeySpec(keyByte, "AES");
            AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES");
            parameters.init(new IvParameterSpec(ivByte));
            // 初始化
            cipher.init(Cipher.DECRYPT_MODE, spec, parameters);
            byte[] resultByte = cipher.doFinal(dataByte);
            if (null != resultByte && resultByte.length > 0) {
                result = new String(resultByte, "UTF-8");
            }
            System.out.println(result);
            System.out.println(111);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (BadPaddingException e) {
            e.printStackTrace();
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (InvalidAlgorithmParameterException e) {
            e.printStackTrace();
        } catch (NoSuchPaddingException e) {
            e.printStackTrace();
        } catch (InvalidParameterSpecException e) {
            e.printStackTrace();
        } catch (NoSuchProviderException e) {
            e.printStackTrace();
        } catch (IllegalBlockSizeException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return result;
    }

        (2)、通过微信小程序来获取当前用户所在城市,首先需要在腾讯地图申请一个key,我选择的是微信小程序中的,然后下载该网站提供js,引用到自己的项目中,将申请的key放在新建的QQMapWX对象中。如下代码块中,通过这些代码即可获取用户当前所在位置,首先需要用户授权wx.getLocation(),可以获取到用户当前所在的经纬度,然后通过定义的qqmapsdk对象,通过获取的经纬度反转来获取当前用户所在的城市,即可成功获取当前用户所在的城市。可去官网查看具体步骤:微信小程序JavaScript SDK | 腾讯位置服务 (qq.com)

 

getLocations:function() {
      if(this.data.currentLocation == '') {
        var that = this;
        wx.getLocation({
          type: 'wgs84',
          success: function (res) {
              var lat = res.latitude;
              var lng = res.longitude;
              qqmapsdk.reverseGeocoder({
                location: {
                    latitude: lat,
                    longitude: lng
                },
                success: function (res) {
                    //获取详细地址
                    // console.log(res.result)
                    var citys = res.result.address_component.city;
                    let province = res.result.ad_info.province
                    var cityid = res.result.ad_info.adcode;
                    var cityObj = {
                      fullname: citys,
                      lat: lat,
                      lng: lng,
                      id: cityid
                    };
                    let location = province  + citys
                    that.setData({
                      location:location,
                      is_option:true,
                      currentLocation:location,
                      change_location:location
                    })
                }
              })
          },
          fail: e => {
              that.refuserr();
          }
        })
      } else {
        let after_location = this.data.currentLocation
        this.setData({
          location:after_location
        })
      }
    },

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用户首次登陆系统需要注册一个用户或直接使用微信作为账号,用户在登录平台后,可以进行平台的操作。主要模块包括以下几点:(1)登录功能:注册普通账号登录;也可以直接使用微信登录;登录后可以修改用户的基本信息,也可以退出。(2)资讯功能:后台录入资讯,在微信小程序医院预约挂号系统的资讯模板展示,用户可以任意浏览资讯列表和详细信息   (3)医院信息和详情:后台录入医院简介、机构设置、医院领导、联系我们等信息,点击可以查看对应详情。(4)医院科室信息和详情:后台录入了医院各个科室的信息,在小程序中点击可以查看详情。(5)医生库:后台录入医生的相关信息,可以在小程序医生列表里面一个一个点击进去查看医生详细信息;支持通过查询来查找所需要的医生。(6)医生信息: 点击到医生详情页面,可以查看医生姓名、头像、职称、擅长等。(7)科室列表:点击预约,可以查看医院所有的科室。(8)医生预约:点击科室,选择该科室下面某个医生,查看对应的排班信息,在需要预约的日期后面,如果有号院,点击链接提交预约。(9)我的预约挂号列表:包含待付款、已经付款的预约挂号信息(10)取消预约:在“我的预约挂号”列表中,点击“取消预约”,删除预约信息,只有待付款的预约信息可以取消。(11)去付款:在“我的预约挂号”列表中,点击“去付款”,模拟付款(12)用户信息:填写姓名、qq、邮箱、备注等信息,在后台会员中心列表查看(13)退出登录:清除登录的cookie,跳转会首页(14)留言功能:点击留言,填写要留言的信息,在后台其他管理-留言列表查看  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值