最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

(附源碼)Springboot寵物領(lǐng)養(yǎng)系統(tǒng)畢業(yè)設(shè)計(jì)

2023-06-13 16:01 作者:編程小宇e  | 我要投稿

如今,隨著人們生活水平不斷提高,人們的生活在物質(zhì)滿(mǎn)足的基礎(chǔ)上,更多的人將生活的重點(diǎn)放在追求精神享受的過(guò)程中。于此同時(shí),Internet鋪天蓋地的普及,使得這樣的人紛紛通過(guò)Internet的方式去尋找精神的滿(mǎn)足。然而領(lǐng)養(yǎng)寵物正是人們現(xiàn)在炙手可熱的一種精神寄托。對(duì)于寵物的熱愛(ài)讓他們的生活更加充滿(mǎn)愛(ài)心和向往。Internet和領(lǐng)養(yǎng)寵物的兩者結(jié)合,大大推動(dòng)了電子商務(wù)的發(fā)展,促進(jìn)了該行業(yè)的崛起。這正是寵物領(lǐng)養(yǎng)系統(tǒng)誕生的緣由。該系統(tǒng)不僅解決了地理隔離的問(wèn)題,同時(shí)也跟上了網(wǎng)絡(luò)快速發(fā)展的腳步,實(shí)現(xiàn)愛(ài)寵人士足不出戶(hù)的領(lǐng)養(yǎng)到心儀的愛(ài)寵。

寵物領(lǐng)養(yǎng)系統(tǒng)是基于瀏覽器與服務(wù)器架構(gòu)平臺(tái),采用跨平臺(tái)的JAVA語(yǔ)言開(kāi)發(fā),利用springboot框架進(jìn)行邏輯控制,MySQL數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),最后Tomcat服務(wù)器完成發(fā)布,系統(tǒng)可在多個(gè)環(huán)境下運(yùn)行。

關(guān)鍵詞:寵物領(lǐng)養(yǎng),Springboot框架,MySQL數(shù)據(jù)庫(kù)

系統(tǒng)分析

可行性分析

法律可行性分析

開(kāi)發(fā)軟件有沒(méi)有觸犯法律,這涉及到軟件或者系統(tǒng)能不能發(fā)布的問(wèn)題。如果觸犯了法律,就必將會(huì)受到法律的制裁。常見(jiàn)法律問(wèn)題就是軟件抄襲問(wèn)題,若是抄襲別人軟件,將會(huì)受到嚴(yán)厲懲罰。

技術(shù)可行性分析

軟件產(chǎn)業(yè)經(jīng)過(guò)多年的發(fā)展,現(xiàn)在已經(jīng)達(dá)到了很大的規(guī)模,從事軟件開(kāi)發(fā)的專(zhuān)業(yè)人員不計(jì)其數(shù),軟件產(chǎn)業(yè)的重要性已經(jīng)上升到了影響和推動(dòng)國(guó)民經(jīng)濟(jì)發(fā)展的核心地位。本系統(tǒng)基于的架構(gòu),目前技術(shù)已經(jīng)非常的成熟,是不存在技術(shù)上面難以實(shí)現(xiàn)的麻煩。

經(jīng)濟(jì)可行性分析

開(kāi)發(fā)軟件所需的時(shí)間、人力和物力成本,開(kāi)發(fā)完成后的收益如何,從投資回報(bào)的角度軟件所需功能在現(xiàn)有經(jīng)濟(jì)條件能不能實(shí)現(xiàn)等進(jìn)行深入的考慮,都符合實(shí)際的要求。所以寵物領(lǐng)養(yǎng)系統(tǒng)具有經(jīng)濟(jì)可行性和實(shí)用性,可以節(jié)約管理成本

功能需求分析

寵物領(lǐng)養(yǎng)系統(tǒng)主要是為了更加地完善寵物領(lǐng)養(yǎng)的服務(wù)情況,對(duì)用戶(hù)的信息、寵物信息、寵物領(lǐng)養(yǎng)、寵物轉(zhuǎn)讓等提供了方便的機(jī)制。本系統(tǒng)有多類(lèi)使用者,分別是管理員和用戶(hù)注冊(cè)。以下是從這兩種用戶(hù)的角度分別介紹本系統(tǒng)所要實(shí)現(xiàn)的功能。

用戶(hù):

注冊(cè):首先檢查用戶(hù)名和郵箱是否存在,如不存在即可進(jìn)行注冊(cè),并將用戶(hù)輸入的密碼進(jìn)行MD5加密,注冊(cè)成功后提示注冊(cè)成功,并將用戶(hù)信息保存到數(shù)據(jù)庫(kù)中。

登錄:使用寵物領(lǐng)養(yǎng)系統(tǒng)前是需要用戶(hù)登錄個(gè)人賬號(hào)。

寵物秀:用戶(hù)登錄寵物領(lǐng)養(yǎng)系統(tǒng)首頁(yè)時(shí),可以瀏覽系統(tǒng)發(fā)布的寵物秀信息等。

寵物領(lǐng)養(yǎng):用戶(hù)可以進(jìn)行寵物信息瀏覽,選擇自己想要領(lǐng)養(yǎng)的寵物進(jìn)行領(lǐng)養(yǎng)申請(qǐng)。

管理員:

用戶(hù)管理:對(duì)用戶(hù)進(jìn)行管理,用戶(hù)的注冊(cè),包括用戶(hù)昵稱(chēng)、用戶(hù)名、用戶(hù)的寵物信息(寵物類(lèi)別、寵物性別、年齡等)用戶(hù)的賬號(hào)信息:

寵物秀管理:對(duì)寵物秀信息進(jìn)行發(fā)布管理。

寵物信息管理:對(duì)寵物信息進(jìn)行維護(hù)管理。

領(lǐng)養(yǎng)管理:對(duì)領(lǐng)養(yǎng)信息進(jìn)行維護(hù)管理。

寵物轉(zhuǎn)讓管理:對(duì)寵物轉(zhuǎn)信息進(jìn)行維護(hù)管理。

非功能需求分析

系統(tǒng)非功能需求有非常多,比如性能需求、可承載最大用戶(hù)數(shù)、穩(wěn)定性、易用性需求等。本系統(tǒng)分析時(shí)考慮到易用性需求,因?yàn)橄到y(tǒng)是給人使用的,所以必須充分從用戶(hù)的角度出發(fā),考慮用戶(hù)體驗(yàn),使系統(tǒng)易理解易上手易操作。

用例分析

1.普通用戶(hù)主要使用系統(tǒng)進(jìn)行寵物領(lǐng)養(yǎng)以及寵物轉(zhuǎn)讓?zhuān)聢D所示為普通用戶(hù)的用例? ? ? ? ? ? ? ?

圖3-1 普通用戶(hù)用例圖

2.管理員主要負(fù)責(zé)用戶(hù)管理、寵物信息管理、寵物領(lǐng)養(yǎng)管理、寵物轉(zhuǎn)讓管理,下圖所示描述管理員的用例圖。

圖3-2 管理員用例圖

  1. 業(yè)務(wù)流程分析

系統(tǒng)業(yè)務(wù)流程圖如下所示。

圖3-3 系統(tǒng)業(yè)務(wù)流程圖


業(yè)務(wù)流程圖(TFD)通過(guò)一些特定的符號(hào)描述業(yè)務(wù)的處理過(guò)程,它重點(diǎn)強(qiáng)調(diào)業(yè)務(wù)過(guò)程中每一項(xiàng)處理活動(dòng)和具體業(yè)務(wù)部門(mén)的關(guān)系,選擇部分模塊進(jìn)行具體描述。重點(diǎn)對(duì)本系統(tǒng)整體業(yè)務(wù)中最為主要的寵物交易及訂單業(yè)務(wù)進(jìn)行描述,用戶(hù)進(jìn)入寵物領(lǐng)養(yǎng)系統(tǒng)后進(jìn)行各種模塊信息的瀏覽,另外,管理人員進(jìn)入后端管理,以執(zhí)行寵物領(lǐng)養(yǎng)模塊的相關(guān)管理方法,并在解決后向客戶(hù)提供反饋機(jī)制。

數(shù)據(jù)流程分析

如下為系統(tǒng)的頂層數(shù)據(jù)流圖,外部實(shí)體有用戶(hù)和管理員,分別對(duì)系統(tǒng)輸入數(shù)據(jù),從而得到要輸出的數(shù)據(jù)。

圖3-4系統(tǒng)頂層數(shù)據(jù)流圖

如下圖所示為系統(tǒng)底層數(shù)據(jù)流圖。

圖3-5系統(tǒng)底層數(shù)據(jù)流圖

寵物領(lǐng)養(yǎng)系統(tǒng)底層數(shù)據(jù)流圖主要描述系統(tǒng)底層模塊的數(shù)據(jù)流、數(shù)據(jù)載體、數(shù)據(jù)處理、外部實(shí)體的具體交互。本系統(tǒng)就是管理員和普通用戶(hù)在用戶(hù)管理、寵物信息、寵物領(lǐng)養(yǎng)、寵物轉(zhuǎn)讓管理等模塊上的數(shù)據(jù)交互。

系統(tǒng)設(shè)計(jì)

系統(tǒng)架構(gòu)設(shè)計(jì)

本系統(tǒng)架構(gòu)設(shè)計(jì)主要分為可以3層,主要有Web層,業(yè)務(wù)層,Model層。其中web層還包括View層和Controller層,Model層包括元數(shù)據(jù)擴(kuò)展層和數(shù)據(jù)訪問(wèn)層。

圖4-1系統(tǒng)架構(gòu)圖

  1. 系統(tǒng)功能結(jié)構(gòu)

為了將系統(tǒng)從“做什么”落實(shí)到“怎么做”,基于系統(tǒng)設(shè)計(jì)原則,對(duì)系統(tǒng)功能進(jìn)行更適合編碼實(shí)現(xiàn)的功能劃分。根據(jù)上圖的系統(tǒng)架構(gòu)設(shè)計(jì),整理出規(guī)范的系統(tǒng)功能結(jié)構(gòu)圖,為系統(tǒng)的實(shí)現(xiàn)編碼做好準(zhǔn)備。

如下圖所示為系統(tǒng)功能結(jié)構(gòu)圖。

圖4-2系統(tǒng)功能結(jié)構(gòu)圖

  1. 功能模塊設(shè)計(jì)

用戶(hù)管理針對(duì)所有用戶(hù)和管理員。未注冊(cè)用戶(hù)點(diǎn)擊注冊(cè),進(jìn)入注冊(cè)頁(yè)面填寫(xiě)新用戶(hù)信息,得到自定義生成賬號(hào)后,注冊(cè)完成。未注冊(cè)用戶(hù)注冊(cè)的活動(dòng)圖如下圖所示。


圖4-3未注冊(cè)用戶(hù)注冊(cè)活動(dòng)圖

用戶(hù)可進(jìn)行登錄使用更多功能,首先進(jìn)入用戶(hù)登錄界面,輸入用戶(hù)賬號(hào)和密碼,后臺(tái)對(duì)賬號(hào)和密碼信息進(jìn)行核對(duì)驗(yàn)證,驗(yàn)證成功則頁(yè)面直接顯示登錄用戶(hù)昵稱(chēng)代表登錄成功,否則返回用戶(hù)登錄界面。用戶(hù)登錄活動(dòng)圖如下圖。

圖4-4用戶(hù)登錄活動(dòng)圖

用戶(hù)登錄后,進(jìn)入功能頁(yè)面,進(jìn)行寵物秀瀏覽,寵物信息搜索、寵物領(lǐng)養(yǎng)、寵物轉(zhuǎn)讓。用戶(hù)使用功能活動(dòng)圖如下圖所示。

圖4-5用戶(hù)使用功能活動(dòng)圖

用戶(hù)功能界面可對(duì)自己的密碼進(jìn)行修改。進(jìn)入修改密碼界面后核對(duì)當(dāng)前密碼,核對(duì)成功后填寫(xiě)新密碼。修改密碼活動(dòng)圖如下圖所示。

圖4-6修改密碼活動(dòng)圖

數(shù)據(jù)庫(kù)設(shè)計(jì)

寵物領(lǐng)養(yǎng)系統(tǒng)采用的數(shù)據(jù)庫(kù)是MySQL,該部分將根據(jù)系統(tǒng)需求和設(shè)計(jì),設(shè)計(jì)合理的數(shù)據(jù)庫(kù)。本系統(tǒng)考慮到之后系統(tǒng)的擴(kuò)展集群,數(shù)據(jù)庫(kù)將不使用外鍵。此外,不用外鍵時(shí)數(shù)據(jù)管理也較為簡(jiǎn)單,操作更加方便,性能更高。

E-R圖

E-R圖,更加直觀的告訴開(kāi)發(fā)人員系統(tǒng)的各個(gè)數(shù)據(jù)的屬性,各個(gè)數(shù)據(jù)之間的聯(lián)系,各個(gè)數(shù)據(jù)的類(lèi)型。能通過(guò)該模型更直觀地了解數(shù)據(jù)庫(kù)的設(shè)計(jì),并根據(jù)對(duì)其逐漸改善。

本系統(tǒng)圖設(shè)計(jì),如下圖所示。


圖4-7系統(tǒng)E-R圖

  1. 表結(jié)構(gòu)設(shè)計(jì)


本系統(tǒng)根據(jù)第三范式的思想設(shè)計(jì)數(shù)據(jù)庫(kù),減少最大程度的冗余,總共建立有多個(gè)表,用戶(hù)注冊(cè)表、管理員表、寵物信息表、寵物領(lǐng)養(yǎng)表、寵物轉(zhuǎn)讓表、寵物秀表等。

表結(jié)構(gòu)如下所示。

  1. 系統(tǒng)實(shí)現(xiàn)

    1. 開(kāi)發(fā)工具

系統(tǒng)中應(yīng)用的開(kāi)發(fā)工具總結(jié)如下表所示。

表5-1開(kāi)發(fā)工具

注冊(cè)模塊

未注冊(cè)用戶(hù)在用戶(hù)注冊(cè)界面uerRegister.jsp,輸入新用戶(hù)信息,點(diǎn)擊注冊(cè)后,新用戶(hù)信息由界面?zhèn)魅肟刂茖觰serAction,調(diào)用addUser(user)方法,通過(guò)userDAOImp向數(shù)據(jù)庫(kù)用戶(hù)表插入用戶(hù)信息,由于用戶(hù)賬號(hào)是自動(dòng)生成的,若成功則反饋?zhàn)?cè)成功,并提示新用戶(hù)的用戶(hù)賬號(hào);若失敗則回到登錄界面,并顯示登錄失敗。

注冊(cè)界面如下所示。

圖5-1注冊(cè)界面


用戶(hù)注冊(cè)關(guān)鍵代碼如下所示。


/**


? ? ?* 注冊(cè)


? ? ?* @param user


? ? ?* @return


? ? ?*/


? ? @PostMapping("register")


? ? public Map<String, Object> signUp(@RequestBody User user) {


? ? ? ? // 查詢(xún)用戶(hù)


? ? ? ? Map<String, String> query = new HashMap<>();


? ? ? ? query.put("username",user.getUsername());


? ? ? ? List list = service.select(query, new HashMap<>()).getResultList();


? ? ? ? if (list.size()>0){


? ? ? ? ? ? return error(30000, "用戶(hù)已存在");


? ? ? ? }


? ? ? ? user.setUserId(null);


? ? ? ? user.setPassword(service.encryption(user.getPassword()));


? ? ? ? service.save(user);


? ? ? ? return success(1);


}


/**


? ? ?* 用戶(hù)ID:[0,8388607]用戶(hù)獲取其他與用戶(hù)相關(guān)的數(shù)據(jù)


? ? ?*/


? ? @Id


? ? @GeneratedValue(strategy = GenerationType.IDENTITY)


? ? @Column(name = "user_id")


? ? private Integer userId;


? ? /**


? ? ?* 賬戶(hù)狀態(tài):[0,10](1可用|2異常|3已凍結(jié)|4已注銷(xiāo))


? ? ?*/


? ? @Basic


? ? @Column(name = "state")


? ? private Integer state;


? ? /**


? ? ?* 所在用戶(hù)組:[0,32767]決定用戶(hù)身份和權(quán)限


? ? ?*/


? ? @Basic


? ? @Column(name = "user_group")


? ? private String userGroup;


? ? /**


? ? ?* 上次登錄時(shí)間:


? ? ?*/


? ? @Basic


? ? @Column(name = "login_time")


? ? private Timestamp loginTime;


? ? /**


? ? ?* 手機(jī)號(hào)碼:[0,11]用戶(hù)的手機(jī)號(hào)碼,用于找回密碼時(shí)或登錄時(shí)


? ? ?*/


? ? @Basic


? ? @Column(name = "phone")


? ? private String phone;


? ? /**


? ? ?* 手機(jī)認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)


? ? ?*/


? ? @Basic


? ? @Column(name = "phone_state")


? ? private Integer phoneState;


? ? /**


? ? ?* 用戶(hù)名:[0,16]用戶(hù)登錄時(shí)所用的賬戶(hù)名稱(chēng)


? ? ?*/


? ? @Basic


? ? @Column(name = "username")


? ? private String username;


? ? /**


? ? ?* 昵稱(chēng):[0,16]


? ? ?*/


? ? @Basic


? ? @Column(name = "nickname")


? ? private String nickname;


? ? /**


? ? ?* 密碼:[0,32]用戶(hù)登錄所需的密碼,由6-16位數(shù)字或英文組成


? ? ?*/


? ? @Basic


? ? @Column(name = "password")


? ? private String password;


? ? /**


? ? ?* 郵箱:[0,64]用戶(hù)的郵箱,用于找回密碼時(shí)或登錄時(shí)


? ? ?*/


? ? @Basic


? ? @Column(name = "email")


? ? private String email;


? ? /**


? ? ?* 郵箱認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)


? ? ?*/


? ? @Basic


? ? @Column(name = "email_state")


? ? private Integer emailState;


? ? /**


? ? ?* 頭像地址:[0,255]


? ? ?*/


? ? @Basic


? ? @Column(name = "avatar")


? ? private String avatar;


? ? /**


? ? ?* 創(chuàng)建時(shí)間:


? ? ?*/


? ? @Basic


? ? @Column(name = "create_time")


? ? @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")


? ? private Timestamp createTime;


? ? @Basic


? ? @Transient


? ? private String code;


}


登錄/注銷(xiāo)模塊

用戶(hù)在首頁(yè)點(diǎn)擊登錄,進(jìn)入用戶(hù)登錄界面uerLogin.jsp,輸入用戶(hù)賬號(hào)和密碼,點(diǎn)擊登錄,用戶(hù)賬號(hào)和密碼信息由界面?zhèn)魅肟刂茖觰serAction,調(diào)用userLogin(user)方法,通過(guò)userDAOImp向數(shù)據(jù)庫(kù)用戶(hù)表搜索該用戶(hù)賬號(hào)與密碼,將最終結(jié)果反饋到前端。若成功則回到首頁(yè);用戶(hù)成功登錄,若失敗則回到登錄界面,并顯示登錄失敗。

用戶(hù)點(diǎn)擊注銷(xiāo),清空瀏覽器session值,然后返回登錄頁(yè)或者首頁(yè)。

登錄界面如下所示。

圖5-2登錄界面

登錄界面關(guān)鍵代碼如下所示。

/**


? ? ?* 登錄


? ? ?* @param data


? ? ?* @param httpServletRequest


? ? ?* @return


? ? ?*/


? ? @PostMapping("login")


? ? public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {


? ? ? ? log.info("[執(zhí)行登錄接口]");


? ? ? ? String username = data.get("username");


? ? ? ? String email = data.get("email");


? ? ? ? String phone = data.get("phone");


? ? ? ? String password = data.get("password");


? ? ? ? List resultList = null;


? ? ? ? Map<String, String> map = new HashMap<>();


? ? ? ? if(username != null && "".equals(username) == false){


? ? ? ? ? ? map.put("username", username);


? ? ? ? ? ? resultList = service.select(map, new HashMap<>()).getResultList();


? ? ? ? }


? ? ? ? else if(email != null && "".equals(email) == false){


? ? ? ? ? ? map.put("email", email);


? ? ? ? ? ? resultList = service.select(map, new HashMap<>()).getResultList();


? ? ? ? }


? ? ? ? else if(phone != null && "".equals(phone) == false){


? ? ? ? ? ? map.put("phone", phone);


? ? ? ? ? ? resultList = service.select(map, new HashMap<>()).getResultList();


? ? ? ? }else{


? ? ? ? ? ? return error(30000, "賬號(hào)或密碼不能為空");


? ? ? ? }


? ? ? ? if (resultList == null || password == null) {


? ? ? ? ? ? return error(30000, "賬號(hào)或密碼不能為空");


? ? ? ? }


? ? ? ? //判斷是否有這個(gè)用戶(hù)


? ? ? ? if (resultList.size()<=0){


? ? ? ? ? ? return error(30000,"用戶(hù)不存在");


? ? ? ? }


? ? ? ? User byUsername = (User) resultList.get(0);


? ? ? ? Map<String, String> groupMap = new HashMap<>();


? ? ? ? groupMap.put("name",byUsername.getUserGroup());


? ? ? ? List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();


? ? ? ? if (groupList.size()<1){


? ? ? ? ? ? return error(30000,"用戶(hù)組不存在");


? ? ? ? }


? ? ? ? UserGroup userGroup = (UserGroup) groupList.get(0);


? ? ? ? //查詢(xún)用戶(hù)審核狀態(tài)


? ? ? ? if (!StringUtils.isEmpty(userGroup.getSourceTable())){


? ? ? ? ? ? String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();


? ? ? ? ? ? String res = String.valueOf(service.runCountSql(sql).getSingleResult());


? ? ? ? ? ? if (res==null){


? ? ? ? ? ? ? ? return error(30000,"用戶(hù)不存在");


? ? ? ? ? ? }


? ? ? ? ? ? if (!res.equals("已通過(guò)")){


? ? ? ? ? ? ? ? return error(30000,"該用戶(hù)審核未通過(guò)");


? ? ? ? ? ? }


? ? ? ? }


? ? ? ? //查詢(xún)用戶(hù)狀態(tài)


? ? ? ? if (byUsername.getState()!=1){


? ? ? ? ? ? return error(30000,"用戶(hù)非可用狀態(tài),不能登錄");


? ? ? ? }


? ? ? ? String md5password = service.encryption(password);


? ? ? ? if (byUsername.getPassword().equals(md5password)) {


? ? ? ? ? ? // 存儲(chǔ)Token到數(shù)據(jù)庫(kù)


? ? ? ? ? ? AccessToken accessToken = new AccessToken();


? ? ? ? ? ? accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));


? ? ? ? ? ? accessToken.setUser_id(byUsername.getUserId());


? ? ? ? ? ? tokenService.save(accessToken);


? ? ? ? ? ? // 返回用戶(hù)信息


? ? ? ? ? ? JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));


? ? ? ? ? ? user.put("token", accessToken.getToken());


? ? ? ? ? ? JSONObject ret = new JSONObject();


? ? ? ? ? ? ret.put("obj",user);


? ? ? ? ? ? return success(ret);


? ? ? ? } else {


? ? ? ? ? ? return error(30000, "賬號(hào)或密碼不正確");


? ? ? ? }


}


用戶(hù)模塊

個(gè)人資料模塊

登錄用戶(hù)在首頁(yè)點(diǎn)擊進(jìn)入用戶(hù)中心userCenter.jsp,再點(diǎn)擊修改個(gè)人信息按鈕進(jìn)入userChangeInfo.jsp界面,系統(tǒng)根據(jù)session中存儲(chǔ)的目前登錄的用戶(hù)的賬號(hào),向控制層userAction發(fā)送請(qǐng)求,搜索當(dāng)前用戶(hù)信息,userAction向userDAOImp調(diào)用queryByUserId(user),向數(shù)據(jù)庫(kù)的用戶(hù)表搜索當(dāng)前用戶(hù)信息并將用戶(hù)信息以對(duì)象的形式層層返回到userChangeInfo.jsp界面,顯示出當(dāng)前用戶(hù)的個(gè)人信息。


若用戶(hù)要對(duì)個(gè)人信息進(jìn)行修改,則通過(guò)修改當(dāng)前信息之后點(diǎn)擊確認(rèn),向控制層userAction發(fā)送更改后的用戶(hù)信息,調(diào)用changeUser(user)方法,通過(guò)userDAOImp向數(shù)據(jù)庫(kù)用戶(hù)表更新用戶(hù)信息,若成功則反饋?zhàn)?cè)成功,則返回的userChangeInfo.jsp界面被更改成功;若失敗則顯示修改失敗。

寵物秀模塊

用戶(hù)在登錄狀態(tài)下瀏覽寵物秀時(shí),點(diǎn)擊加入寵物秀信息后前臺(tái)發(fā)起請(qǐng)求,將對(duì)應(yīng)的寵物shuliang、id參數(shù)信息從前臺(tái)傳遞GoumaiController類(lèi)里,匹配到add()方法,add()方法調(diào)用GoumaiServiceImpl類(lèi)的add()方法。

寵物秀界面如下所示。

圖5-3寵物秀界面


寵物領(lǐng)養(yǎng)模塊

用戶(hù)在登錄狀態(tài)下點(diǎn)擊寵物領(lǐng)養(yǎng)頁(yè)面可將進(jìn)行寵物領(lǐng)養(yǎng)申請(qǐng)?zhí)峤?,從session中取出該寵物領(lǐng)養(yǎng)的信息,點(diǎn)擊加入寵物領(lǐng)養(yǎng),發(fā)起請(qǐng)求,將對(duì)應(yīng)的寵物領(lǐng)養(yǎng)信息shichang、id參數(shù)信息從前臺(tái)傳遞XiadanController類(lèi)里,匹配到add()方法,add()方法調(diào)用XiadanServiceImpl類(lèi)的add()方法。


寵物領(lǐng)養(yǎng)信息界面如下所示。

圖5-4寵物領(lǐng)養(yǎng)界面


管理員模塊

密碼修改模塊

管理員選擇個(gè)人中心的修改本人密碼。通過(guò)密碼框輸入現(xiàn)密碼和2次新密碼,如果現(xiàn)密碼錯(cuò)誤,則提示修改失敗。如果2次新密碼不一致,則提示修改失敗。都沒(méi)問(wèn)題的話,系統(tǒng)提示修改成功,并返回登錄界面。


公告欄管理界面圖如下所示。

圖5-5公告欄管理界面

用戶(hù)信息界面如下所示。

圖5-6用戶(hù)信息界面

寵物秀管理模塊

根據(jù)需求,需要對(duì)寵物秀進(jìn)行添加、刪除或修改詳情信息。刪除或修改寵物秀時(shí),系統(tǒng)根據(jù)寵物秀的狀態(tài)判定為可刪除狀態(tài)下,才會(huì)給出刪除和修改鏈接,點(diǎn)擊刪除鏈接按鈕時(shí),請(qǐng)求到達(dá)后臺(tái),還會(huì)先查詢(xún)寵物秀狀態(tài)再次做出判定能否刪除。點(diǎn)擊修改鏈接按鈕時(shí),會(huì)跳轉(zhuǎn)到修改信息的頁(yè)面,重新填寫(xiě)好數(shù)據(jù)后,數(shù)據(jù)提交到后臺(tái)會(huì)對(duì)數(shù)據(jù)庫(kù)中相應(yīng)的記錄做出修改。

添加寵物秀時(shí),會(huì)給出數(shù)據(jù)填寫(xiě)的頁(yè)面,該頁(yè)面根據(jù)填寫(xiě)好的寵物秀編號(hào)同樣會(huì)事先發(fā)送Ajax請(qǐng)求查詢(xún)編號(hào)是否已存在,數(shù)據(jù)填寫(xiě)好之后提交到后臺(tái),會(huì)調(diào)用相關(guān)服務(wù)在數(shù)據(jù)庫(kù)中插入記錄。

寵物秀頁(yè)面設(shè)計(jì)效果如下圖所示。




(附源碼)Springboot寵物領(lǐng)養(yǎng)系統(tǒng)畢業(yè)設(shè)計(jì)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
南澳县| 湖南省| 秭归县| 莱芜市| 惠州市| 东乌珠穆沁旗| 苍南县| 泌阳县| 锡林郭勒盟| 屯门区| 巴彦县| 延津县| 邻水| 商都县| 宜兰市| 南康市| 友谊县| 元朗区| 兴仁县| 兴义市| 邵东县| 富顺县| 松江区| 阜平县| 九龙城区| 龙陵县| 曲沃县| 盐边县| 柳林县| 定兴县| 会同县| 城固县| 荔波县| 原平市| 沙湾县| 黄山市| 林甸县| 张掖市| 新竹县| 渭南市| 板桥市|