人脸识别SpringBoot快递代取平台系统 珍贵的一次开发经验分享给大家

两盒软妹~` 提交于 2021-01-23 10:56:37

 

最近上海理工大学光电学院的拉吉研究生张逸风全家出了车祸,他妈妈住进了ICU脑袋也不好使了,他爹害也不好意思过世了,这孩子挺坚强的,媳妇被人绿了,自己也住进去了,他委托我帮他开发一个系统,帮他圆梦,因此我开始了如下的创作,帮大家快速入门开发,奥利给

 

相关技术栈

  1. 前端: Thymeleaf、Bootstrap、Ajax、JQuery
  2. 开发环境: IDEA 、SpringBoot 2.1、Maven
  3. 数据库与缓存:MySQL 5.7、Redis、Guava Cache
  4. 三方服务:阿里云云短信服务、支付宝支付(沙箱)、百度人脸识别
  5. 安全框架:Spring Security
  6. 其他技术:API 接口限速、二级缓存

主要功能

  1. 登陆与注册: 用户名密码、短信验证码、人脸识别登录、QQ登录
  2. 权限: 普通用户、配送员、后台管理员
  3. 普通用户:下单支付、订单查询、意见反馈、订单评价
  4. 配送员:接单、订单管理、意见反馈、订单评价
  5. 系统管理员:用户管理、订单管理、反馈管理

 

核心代码解析

短信接口代码解析

    public SendSmsResponse sendSms(String mobile,String template_code,String sign_name,String param) throws ClientException {
//        String accessKeyId =env.getProperty("aliyun.sms.accessKeyId");
//        String accessKeySecret = env.getProperty("aliyun.sms.accessKeySecret");
        //可自助调整超时时间
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");
        //初始化acsClient,暂不支持region化
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);
        //组装请求对象-具体描述见控制台-文档部分内容
        SendSmsRequest request = new SendSmsRequest();
        //必填:待发送手机号
        request.setPhoneNumbers(mobile);
        //必填:短信签名-可在短信控制台中找到
        request.setSignName(sign_name);
        //必填:短信模板-可在短信控制台中找到
        request.setTemplateCode(template_code);
        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
        request.setTemplateParam(param);
        //选填-上行短信扩展码(无特殊需求用户请忽略此字段)
        //request.setSmsUpExtendCode("90997");
        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
        request.setOutId("yourOutId");
        //hint 此处可能会抛出异常,注意catch
        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
        return sendSmsResponse;
    }

 

支付宝沙箱支付核心代码如下

    @Override
    public ResponseResult batchAllotOrder(String[] ids, String courierId) {
        int success = 0;
        for(String orderId : ids) {
            OrderInfo orderInfo = orderInfoMapper.selectById(orderId);

            // 限定订单状态,未接单
            if(orderInfo.getOrderStatus() != OrderStatusEnum.WAIT_DIST) {
                continue;
            }
           // 订单状态为支付成功、支付结束
            OrderPayment payment = orderPaymentService.getById(orderId);
            if(payment.getPaymentStatus() != PaymentStatusEnum.TRADE_SUCCESS && payment.getPaymentStatus() != PaymentStatusEnum.TRADE_FINISHED) {
                continue;
            }

            orderInfo.setCourierId(courierId);
            orderInfo.setOrderStatus(OrderStatusEnum.TRANSPORT);
            if(this.retBool(orderInfoMapper.updateById(orderInfo))) {
                success++;
            }
        }

        int finalSuccess = success;
        Map<String, Integer> count = new HashMap<String, Integer>(16) {
  
  {
            put("success", finalSuccess);
            put("error", ids.length - finalSuccess);
        }};

        return ResponseResult.success(count);
    }

 

 

学习总结

通过以上知识,我们学会代码开发了,特别是在代码假如创新点如:短信接口、支付宝沙箱支付、人脸识别登录,学会了这些面试写在简历中是加分项哦

 

源代码开源地址

掉炸天人脸识别SpringBoot快递代拿系统 快递代取平台 校园快递代拿系统 校园快递代取平台

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!