個人實習週報2019-11-11

週報描述

  1. 開發問卷調查系統

下週計劃

週報筆記

  1. JAVA後臺獲取訪問者ip

    @RequestMapping("/answer")
    @RestController
    public class AnswerController {
        @PostMapping(value = "/submitAnswer")
    	public void submitAnswer(@RequestBody JSONObject para) {
    		//獲取ip
    		HttpServletRequest req = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
    		String ip = getIP(req);
    	}
    }
    
    public String getIP(HttpServletRequest request) {
    	String ip = request.getHeader("x-forwarded-for");
    	if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    		ip = request.getHeader("Proxy-Client-IP");
    	}
    	if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    		ip = request.getHeader("WL-Proxy-Client-IP");
    	}
    	if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    		ip = request.getHeader("X-Real-IP");
    	}
    	if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    		ip = request.getRemoteAddr();
    	}
    	return ip;
    }
    
  2. 附件題minio邏輯

    數據庫中附件的表爲 SELECT * FROM t_an_attach,上傳minio的邏輯爲:先根據文件名跟bucketName(寫死了),去獲取一個上傳附件的鏈接,然後再通過http請求將文件上傳到這個鏈接,上傳完了以後,再根據文件名跟bucketName再去獲取一個下載的鏈接。答卷的時候把這個下載的鏈接存到數據庫,然後打開問卷詳情的時候查出來。

  3. ElementUI自帶組件

    評分題el-rate,上傳el-upload。

  4. MySQL中isnull()用法

    isnull(exper) 判斷exper是否爲空,是則返回1,否則返回0。

    ifnull(exper1,exper2)判斷exper1是否爲空,是則用exper2代替。

    nullif(exper1,exper2)如果expr1= expr2 成立,那麼返回值爲NULL,否則返回值爲expr1。

    --如果值爲null,則設置爲0再加一:
    update t_survey_directory set answer_num=ifnull(answer_num,0)+1 where id = #{surveyId}
    
  5. 判斷語句導致報錯

    變量quType在前,當quType=null時,判斷將出錯:

    if(quType.equals("RADIO"))
    

    應改正爲:

    if("RADIO".equals(quType))
    
  6. 參數傳遞

    發送參數:

    let routeUrl = this.$router.resolve({
        path:'./answerSurvey',
        query:{
    		surveyId:obj,
        }
    });
    window.open(routeUrl.href, '_blank');     //在新窗口打開頁面
    

    另一個頁面接收參數:

    var param = this.$route.query.surveyId;
    
  7. vue-draggable

    README:https://github.com/SortableJS/Sortable#options

    演示: https://sortablejs.github.io/Vue.Draggable/

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