国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于SpringBoot的醫(yī)院管理系統(tǒng)

這篇具有很好參考價(jià)值的文章主要介紹了基于SpringBoot的醫(yī)院管理系統(tǒng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

前言

?一、技術(shù)棧

二、系統(tǒng)功能介紹

病床信息管理

藥房信息管理

個(gè)人中心管理

藥房信息

病床類別

科室信息管理

三、核心代碼

1、登錄模塊

?2、文件上傳模塊

3、代碼封裝


前言

隨著信息互聯(lián)網(wǎng)信息的飛速發(fā)展,醫(yī)院也在創(chuàng)建著屬于自己的管理系統(tǒng)。本文介紹了醫(yī)院管理系統(tǒng)的開(kāi)發(fā)全過(guò)程。通過(guò)分析企業(yè)對(duì)于醫(yī)院管理系統(tǒng)的需求,創(chuàng)建了一個(gè)計(jì)算機(jī)管理醫(yī)院管理系統(tǒng)的方案。文章介紹了醫(yī)院管理系統(tǒng)的系統(tǒng)分析部分,包括可行性分析等,系統(tǒng)設(shè)計(jì)部分主要介紹了系統(tǒng)功能設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)。

本醫(yī)院管理系統(tǒng)管理員功能,個(gè)人中心,醫(yī)生管理,護(hù)士管理,病床類別管理,藥品類別管理,科室信息管理,內(nèi)部論壇管理,系統(tǒng)管理。醫(yī)生功能,個(gè)人中心,病床管理,藥房管理,病人信息管理,藥方信息管理。護(hù)士功能修改個(gè)人中心,查看病床管理,查看藥房管理,查看病人信息管理,查看藥方信息管理。因而具有一定的實(shí)用性。

本站是一個(gè)B/S模式系統(tǒng),采用Spring Boot框架作為開(kāi)發(fā)技術(shù),MYSQL數(shù)據(jù)庫(kù)設(shè)計(jì)開(kāi)發(fā),充分保證系統(tǒng)的穩(wěn)定性。系統(tǒng)具有界面清晰、操作簡(jiǎn)單,功能齊全的特點(diǎn),使得醫(yī)院管理系統(tǒng)管理工作系統(tǒng)化、規(guī)范化。

?一、技術(shù)棧

末尾獲取源碼
SpringBoot+Vue+JS+?jQuery+Ajax...

二、系統(tǒng)功能介紹

病床信息管理

醫(yī)院管理系統(tǒng)的醫(yī)生可以管理病床信息,可以對(duì)病床信息添加修改刪除操作。

基于SpringBoot的醫(yī)院管理系統(tǒng),spring boot,后端,java

藥房信息管理

醫(yī)生可以對(duì)藥房信息進(jìn)行添加,修改,刪除操作。

基于SpringBoot的醫(yī)院管理系統(tǒng),spring boot,后端,java?

個(gè)人中心管理

護(hù)士可以對(duì)個(gè)人中心里面的屬于自己的信息進(jìn)行修改操作。

基于SpringBoot的醫(yī)院管理系統(tǒng),spring boot,后端,java

藥房信息

護(hù)士登錄后,可以查看藥房信息,可以在藥房信息界面進(jìn)行查詢操作。

基于SpringBoot的醫(yī)院管理系統(tǒng),spring boot,后端,java?

病床類別

管理員可以對(duì)病床類別進(jìn)行添加,修改查詢以及刪除操作。

基于SpringBoot的醫(yī)院管理系統(tǒng),spring boot,后端,java

科室信息管理

管理員登錄后可以對(duì)科室信息進(jìn)行添加,修改,查詢以及刪除操作。

基于SpringBoot的醫(yī)院管理系統(tǒng),spring boot,后端,java?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-730471.html

三、核心代碼

1、登錄模塊

 
package com.controller;
 
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登錄相關(guān)
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登錄
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("賬號(hào)或密碼不正確");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注冊(cè)
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用戶已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密碼重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("賬號(hào)不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密碼已重置為:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 獲取用戶的session用戶信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用戶已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 刪除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

?2、文件上傳模塊

package com.controller;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;
 
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;
 
/**
 * 上傳文件映射表
 */
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
	@Autowired
    private ConfigService configService;
	/**
	 * 上傳文件
	 */
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("上傳文件不能為空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		File path = new File(ResourceUtils.getURL("classpath:static").getPath());
		if(!path.exists()) {
		    path = new File("");
		}
		File upload = new File(path.getAbsolutePath(),"/upload/");
		if(!upload.exists()) {
		    upload.mkdirs();
		}
		String fileName = new Date().getTime()+"."+fileExt;
		File dest = new File(upload.getAbsolutePath()+"/"+fileName);
		file.transferTo(dest);
		FileUtils.copyFile(dest, new File("C:\\Users\\Desktop\\jiadian\\springbootl7own\\src\\main\\resources\\static\\upload"+"/"+fileName));
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	/**
	 * 下載文件
	 */
	@IgnoreAuth
	@RequestMapping("/download")
	public ResponseEntity<byte[]> download(@RequestParam String fileName) {
		try {
			File path = new File(ResourceUtils.getURL("classpath:static").getPath());
			if(!path.exists()) {
			    path = new File("");
			}
			File upload = new File(path.getAbsolutePath(),"/upload/");
			if(!upload.exists()) {
			    upload.mkdirs();
			}
			File file = new File(upload.getAbsolutePath()+"/"+fileName);
			if(file.exists()){
				/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
					getResponse().sendError(403);
				}*/
				HttpHeaders headers = new HttpHeaders();
			    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    
			    headers.setContentDispositionFormData("attachment", fileName);    
			    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
	}
	
}

3、代碼封裝

package com.utils;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * 返回?cái)?shù)據(jù)
 */
public class R extends HashMap<String, Object> {
	private static final long serialVersionUID = 1L;
	
	public R() {
		put("code", 0);
	}
	
	public static R error() {
		return error(500, "未知異常,請(qǐng)聯(lián)系管理員");
	}
	
	public static R error(String msg) {
		return error(500, msg);
	}
	
	public static R error(int code, String msg) {
		R r = new R();
		r.put("code", code);
		r.put("msg", msg);
		return r;
	}
 
	public static R ok(String msg) {
		R r = new R();
		r.put("msg", msg);
		return r;
	}
	
	public static R ok(Map<String, Object> map) {
		R r = new R();
		r.putAll(map);
		return r;
	}
	
	public static R ok() {
		return new R();
	}
 
	public R put(String key, Object value) {
		super.put(key, value);
		return this;
	}
}

到了這里,關(guān)于基于SpringBoot的醫(yī)院管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 小型醫(yī)院醫(yī)療設(shè)備管理系統(tǒng)|基于springboot小型醫(yī)院醫(yī)療設(shè)備管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(源碼+數(shù)據(jù)庫(kù)+文檔)

    小型醫(yī)院醫(yī)療設(shè)備管理系統(tǒng)|基于springboot小型醫(yī)院醫(yī)療設(shè)備管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(源碼+數(shù)據(jù)庫(kù)+文檔)

    小型醫(yī)院醫(yī)療設(shè)備管理系統(tǒng)目錄 目錄 基于springboot小型醫(yī)院醫(yī)療設(shè)備管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 一、前言 二、系統(tǒng)功能設(shè)計(jì) 三、系統(tǒng)實(shí)現(xiàn) 1、職員信息管理 2、設(shè)備信息管理 3、庫(kù)房信息管理 4、公告信息管理 四、數(shù)據(jù)庫(kù)設(shè)計(jì) 1、實(shí)體ER圖 ?五、核心代碼? 六、論文參考 七、最新計(jì)

    2024年02月21日
    瀏覽(26)
  • 基于SpringBoot+VUE的寵物醫(yī)院后臺(tái)管理系統(tǒng)【源碼開(kāi)源】【建議收藏】

    基于SpringBoot+VUE的寵物醫(yī)院后臺(tái)管理系統(tǒng)【源碼開(kāi)源】【建議收藏】

    今天給大家開(kāi)源一個(gè)基于SpringBoot+VUE的寵物醫(yī)院后臺(tái)管理系統(tǒng),系統(tǒng)基于腳手架工程,花了大概1周時(shí)間做出來(lái)的。 該系統(tǒng)完全開(kāi)源。 系統(tǒng)完美運(yùn)行,無(wú)任何的bug,技術(shù)較多,可以當(dāng)做 面試的項(xiàng)目或者作為畢設(shè)的項(xiàng)目。 通過(guò)本項(xiàng)目你可以學(xué)到: 項(xiàng)目是怎樣前后端分離的 vue 是

    2024年02月07日
    瀏覽(23)
  • springboot基于Web的社區(qū)醫(yī)院管理服務(wù)系統(tǒng)源碼和論文

    springboot基于Web的社區(qū)醫(yī)院管理服務(wù)系統(tǒng)源碼和論文

    在Internet高速發(fā)展的今天,我們生活的各個(gè)領(lǐng)域都涉及到計(jì)算機(jī)的應(yīng)用,其中包括 社區(qū)醫(yī)院管理服務(wù)系統(tǒng) 的網(wǎng)絡(luò)應(yīng)用,在外國(guó)線上管理系統(tǒng)已經(jīng)是很普遍的方式,不過(guò) 國(guó)內(nèi)的 管理系統(tǒng) 可能 還處于起步階段 。社區(qū)醫(yī)院管理服務(wù)系統(tǒng) 具有社區(qū)醫(yī)院信息管理功能的選擇。社區(qū)醫(yī)

    2024年01月20日
    瀏覽(34)
  • 基于Java+SpringBoot+Vue前后端分離醫(yī)院后臺(tái)管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

    基于Java+SpringBoot+Vue前后端分離醫(yī)院后臺(tái)管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

    博主介紹 : ? 全網(wǎng)粉絲30W+,csdn特邀作者、博客專家、CSDN新星計(jì)劃導(dǎo)師、Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn) ? ?? 文末獲取源碼聯(lián)系 ?? ?????精彩專欄 推薦訂閱 ?????不然下次找不到喲 2022-2024年

    2024年02月11日
    瀏覽(96)
  • 基于springboot+vue的醫(yī)院信息管理系統(tǒng)(附源碼+視頻介紹) 前后端分類

    基于springboot+vue的醫(yī)院信息管理系統(tǒng)(附源碼+視頻介紹) 前后端分類

    ?全網(wǎng)粉絲20W+,csdn特邀作者、博客專家、CSDN新星計(jì)劃導(dǎo)師、java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn)? ?? 文末獲取項(xiàng)目下載方式 ?? 一、項(xiàng)目背景介紹: 醫(yī)院管理系統(tǒng)從整個(gè)社會(huì)實(shí)踐過(guò)程來(lái)看,對(duì)醫(yī)院進(jìn)行

    2024年04月25日
    瀏覽(31)
  • 基于SpringBoot+Thymeleaf的醫(yī)院掛號(hào)管理系統(tǒng)(有文檔、Java畢業(yè)設(shè)計(jì))

    基于SpringBoot+Thymeleaf的醫(yī)院掛號(hào)管理系統(tǒng)(有文檔、Java畢業(yè)設(shè)計(jì))

    ?大家好,我是DeBug,很高興你能來(lái)閱讀!作為一名熱愛(ài)編程的程序員,我希望通過(guò)這些教學(xué)筆記與大家分享我的編程經(jīng)驗(yàn)和知識(shí)。在這里,我將會(huì)結(jié)合實(shí)際項(xiàng)目經(jīng)驗(yàn),分享編程技巧、最佳實(shí)踐以及解決問(wèn)題的方法。無(wú)論你是初學(xué)者還是有一定經(jīng)驗(yàn)的程序員,我都希望能夠?yàn)槟?/p>

    2024年02月02日
    瀏覽(23)
  • 基于Java+SpringBoot+Vue前后端分離社區(qū)醫(yī)院管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

    基于Java+SpringBoot+Vue前后端分離社區(qū)醫(yī)院管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

    博主介紹 : ? 全網(wǎng)粉絲30W+,csdn特邀作者、博客專家、CSDN新星計(jì)劃導(dǎo)師、Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn) ? ?? 文末獲取源碼聯(lián)系 ?? ?????精彩專欄 推薦訂閱 ?????不然下次找不到喲 2022-2024年

    2024年02月11日
    瀏覽(97)
  • 今天給大家介紹一篇基于springboot的醫(yī)院管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    今天給大家介紹一篇基于springboot的醫(yī)院管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    臨近學(xué)期結(jié)束,你還在做java程序網(wǎng)絡(luò)編程,期末作業(yè),老師的作業(yè)要求覺(jué)得大了嗎?不知道畢業(yè)設(shè)計(jì)該怎么辦?網(wǎng)頁(yè)功能的數(shù)量是否太多?沒(méi)有合適的類型或系統(tǒng)?等等。這里根據(jù)疫情當(dāng)下,你想解決的問(wèn)題,今天給大家介紹一篇基于springboot的醫(yī)院管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。 隨著科

    2023年04月14日
    瀏覽(25)
  • 基于Springboot+Vue的醫(yī)院hrp物資管理系統(tǒng)(源代碼+數(shù)據(jù)庫(kù)+16000字論文)066

    基于Springboot+Vue的醫(yī)院hrp物資管理系統(tǒng)(源代碼+數(shù)據(jù)庫(kù)+16000字論文)066

    本系統(tǒng)分為管理員、醫(yī)院、供應(yīng)商三種角色 供應(yīng)商角色包含以下功能: 注冊(cè)登錄、個(gè)人中心、招標(biāo)信息管理、合同簽訂管理、產(chǎn)品信息管理、采購(gòu)訂單管理、訂單配送管理、條碼維護(hù)管理、查看招標(biāo)公告、密碼修改 醫(yī)院角色包含以下功能: 注冊(cè)登錄、個(gè)人中心、密碼修改、

    2024年02月16日
    瀏覽(24)
  • 基于Spring Boot的酒店客房管理系統(tǒng)

    ?? 作者主頁(yè):超級(jí)無(wú)敵暴龍戰(zhàn)士塔塔開(kāi) ?? 簡(jiǎn)介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者??、 簡(jiǎn)歷模板、學(xué)習(xí)資料、面試題庫(kù)【關(guān)注我,都給你】 ??文末獲取源碼聯(lián)系?? 基于Spring Boot的酒店客房管理系統(tǒng),java項(xiàng)目。 eclipse和idea都能打開(kāi)運(yùn)行。 推薦環(huán)境配置:eclipse/idea jdk1.8 maven mysql 前端技術(shù)

    2024年02月09日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包