人臉識別SpringBoot快遞代取平臺系統 珍貴的一次開發經驗分享給大家

 

最近上海理工大學光電學院的拉吉研究生張逸風全家出了車禍,他媽媽住進了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快遞代拿系統 快遞代取平臺 校園快遞代拿系統 校園快遞代取平臺

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章