Skip to content

Commit

Permalink
update source code about iNote
Browse files Browse the repository at this point in the history
  • Loading branch information
lizelu committed Dec 7, 2016
1 parent bae0270 commit 4e3c2e5
Show file tree
Hide file tree
Showing 8 changed files with 190 additions and 65 deletions.
99 changes: 98 additions & 1 deletion Sources/DataBaseOperator/PerfectNoteOperator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,103 @@ class ContentOperator: BaseOperator {
return nil
}
return josn

}

func queryContentList(userId: String) -> String? {
let statement = "select id, title, content, create_time from \(contentTableName) where userID='\(userId)'"
LogFile.info("执行SQL:\(statement)")

if !mysql.query(statement: statement) {
self.responseJson[ResultKey] = RequestResultFaile
self.responseJson[ErrorMessageKey] = "查询失败"
LogFile.error("\(statement)查询失败")
} else {
LogFile.info("SQL:\(statement)查询成功")

// 在当前会话过程中保存查询结果
let results = mysql.storeResults()! //因为上一步已经验证查询是成功的,因此这里我们认为结果记录集可以强制转换为期望的数据结果。当然您如果需要也可以用if-let来调整这一段代码。

var ary = [[String:String]]() //创建一个字典数组用于存储结果
if results.numRows() == 0 {
self.responseJson[ResultKey] = RequestResultFaile
self.responseJson[ErrorMessageKey] = "尚没有录入新的Note, 请添加!"
LogFile.error("\(statement)尚没有录入新的Note, 请添加!")
} else {
results.forEachRow { row in
var dic = [String:String]() //创建一个字典用于存储结果
dic["contentId"] = "\(row[0]!)"
dic["title"] = "\(row[1]!)"
dic["content"] = "\(row[2]!)"
dic["time"] = "\(row[3]!)"
ary.append(dic)
}

self.responseJson[ResultKey] = RequestResultSuccess
self.responseJson[ResultListKey] = ary
}
}
guard let josn = try? responseJson.jsonEncodedString() else {
return nil
}
return josn
}


func queryContentDetail(contentId: String) -> String? {
let statement = "select content from \(contentTableName) where id='\(contentId)'"
LogFile.info("执行SQL:\(statement)")

if !mysql.query(statement: statement) {
self.responseJson[ResultKey] = RequestResultFaile
self.responseJson[ErrorMessageKey] = "查询失败"
LogFile.error("\(statement)查询失败")
} else {
LogFile.info("SQL:\(statement)查询成功")

// 在当前会话过程中保存查询结果
let results = mysql.storeResults()!

var dic = [String:String]() //创建一个字典数于存储结果
if results.numRows() == 0 {
self.responseJson[ResultKey] = RequestResultFaile
self.responseJson[ErrorMessageKey] = "获取Note详情失败!"
LogFile.error("\(statement)获取Note详情失败!")
} else {
results.forEachRow { row in
guard let content = row.first! else {
return
}
dic["content"] = "\(content)"
}

self.responseJson[ResultKey] = RequestResultSuccess
self.responseJson[ResultListKey] = dic
}
}

guard let josn = try? responseJson.jsonEncodedString() else {
return nil
}
return josn
}

func updateContent(contentId: String, title: String, content: String) -> String? {
let statement = "update \(contentTableName) set title='\(title)', content='\(content)', create_time=now() where id='\(contentId)'"
LogFile.info("执行SQL:\(statement)")

if !mysql.query(statement: statement) {
self.responseJson[ResultKey] = RequestResultFaile
self.responseJson[ErrorMessageKey] = "更新失败"
LogFile.error("\(statement)更新失败")
} else {
LogFile.info("SQL:\(statement) 更新成功")
self.responseJson[ResultKey] = RequestResultSuccess
}

guard let josn = try? responseJson.jsonEncodedString() else {
return nil
}
return josn
}

}
47 changes: 46 additions & 1 deletion Sources/main.swift
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,32 @@ routes.add(method: .post, uri: "/login") { (request, response) in

//获取内容列表
routes.add(method: .post, uri: "/contentList") { (request, response) in
guard let userId: String = request.param(name: "userId") else {
LogFile.error("userId为nil")
return
}

guard let json = ContentOperator().queryContentList(userId: userId) else {
LogFile.error("josn为nil")
return
}
LogFile.info(json)
response.setBody(string: json)
response.completed()
}

routes.add(method: .post, uri: "/contentDetail") { (request, response) in

guard let contentId: String = request.param(name: "contentId") else {
LogFile.error("contentId为nil")
return
}
guard let json = ContentOperator().queryContentDetail(contentId: contentId) else {
LogFile.error("josn为nil")
return
}
LogFile.info(json)
response.setBody(string: json)
response.completed()
}

routes.add(method: .post, uri: "/contentAdd") { (request, response) in
Expand Down Expand Up @@ -117,6 +139,29 @@ routes.add(method: .post, uri: "/contentAdd") { (request, response) in
}

routes.add(method: .post, uri: "/contentUpdate") { (request, response) in
guard let contentId: String = request.param(name: "contentId") else {
LogFile.error("contentId为nil")
return
}

guard let title: String = request.param(name: "title") else {
LogFile.error("title为nil")
return
}

guard let content: String = request.param(name: "content") else {
LogFile.error("content为nil")
return
}

guard let json = ContentOperator().updateContent(contentId: contentId, title: title, content: content) else {
LogFile.error("josn为nil")
return
}
LogFile.info(json)
response.setBody(string: json)
response.completed()

}


Expand Down
18 changes: 13 additions & 5 deletions iOSClientForPerfect/iOSClientForPerfect/Base.lproj/Main.storyboard
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11524"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
<capability name="Navigation items with more than one left or right bar item" minToolsVersion="7.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
Expand Down Expand Up @@ -314,11 +315,18 @@
<action selector="tapLoginOutButton:" destination="fDL-DA-Mb4" id="zCM-5W-usX"/>
</connections>
</barButtonItem>
<barButtonItem key="rightBarButtonItem" systemItem="add" id="gBx-4E-DB4">
<connections>
<action selector="tapAddButton:" destination="fDL-DA-Mb4" id="JeF-tc-v2n"/>
</connections>
</barButtonItem>
<rightBarButtonItems>
<barButtonItem systemItem="add" id="gBx-4E-DB4">
<connections>
<action selector="tapAddButton:" destination="fDL-DA-Mb4" id="JeF-tc-v2n"/>
</connections>
</barButtonItem>
<barButtonItem systemItem="refresh" id="1TY-pi-pcn">
<connections>
<action selector="tapRefreshButton:" destination="fDL-DA-Mb4" id="hIF-Sp-0XY"/>
</connections>
</barButtonItem>
</rightBarButtonItems>
</navigationItem>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="QYS-Q8-65f" userLabel="First Responder" sceneMemberID="firstResponder"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,6 @@
import Foundation
class ContentRequest: BaseRequest {
func fetchContentList(userId: String){

//Mark: - test
var contents: Array<ContentModel> = []

for i in 0..<30 {
let contentModels = ContentModel()

contentModels.title = "标题\(i)"
contentModels.createTime = "\(Date())"

contents.append(contentModels)
}
self.success(contents)
return



let requestPath = "\(RequestHome)\(RequestContentList)"
let request = Request(start: {
self.start()
Expand Down Expand Up @@ -54,6 +37,7 @@ return
}
contentModels.title = title


guard let time = item["time"] else {
continue
}
Expand All @@ -72,16 +56,8 @@ return
request.postRequest(path: "\(requestPath)", parameters: params)
}


func fetchContentDetail(contentId: String){

let contentModel = ContentModel()

contentModel.content = "内容"
self.success(contentModel)

return


let requestPath = "\(RequestHome)\(RequestContentDetail)"
let request = Request(start: {
self.start()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
//

import Foundation

let LoginUserNameKey = "UserName"
let LoginPasswordKey = "Password"
let loginTokenKey = "key" //尚未实现,此Demo的二次登录先记录Password来实现


let RequestHome = "http://127.0.0.1:8181"
let RequestUserInfoPath = "/queryUserInfoByUserName"
let RequestUserLogin = "/login"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,39 +39,14 @@ class UserInfoRequest: BaseRequest {
}

func login(userName: String, password: String){
let requestPath = "\(RequestHome)\(RequestUserLogin)"
let request = Request(start: {
self.start()
}, success: { (json) in
guard let userInfos = json as? [String: Any] else {
return
}

let userModel: UserModel = UserModel()

if userInfos["list"] != nil {
guard let userInfo = userInfos["list"]! as? [String:String] else {
return
}

userModel.userId = userInfo["userId"] ?? ""
userModel.userName = userInfo["userName"] ?? ""
userModel.password = userInfo["password"] ?? ""
userModel.regestTime = userInfo["registerTime"] ?? ""

}
AccountManager.share().userInfo = userModel
self.success(userModel)

}) { (errorMessage) in
self.faile(errorMessage)
}
let params: [String:String] = ["userName": userName, "password": password]
request.postRequest(path: "\(requestPath)", parameters: params)
loginOrRegister(requestPath: "\(RequestHome)\(RequestUserLogin)", userName: userName, password: password)
}

func register(userName: String, password: String){
let requestPath = "\(RequestHome)\(RequestUserRegister)"
loginOrRegister(requestPath: "\(RequestHome)\(RequestUserRegister)", userName: userName, password: password)
}

func loginOrRegister(requestPath: String, userName: String, password: String) {
let request = Request(start: {
self.start()
}, success: { (json) in
Expand All @@ -92,6 +67,7 @@ class UserInfoRequest: BaseRequest {
userModel.regestTime = userInfo["registerTime"] ?? ""
}
AccountManager.share().userInfo = userModel
self.recoderUserInfo(userModel: userModel)
self.success(userModel)

}) { (errorMessage) in
Expand All @@ -100,4 +76,14 @@ class UserInfoRequest: BaseRequest {
let params: [String:String] = ["userName": userName, "password": password]
request.postRequest(path: "\(requestPath)", parameters: params)
}

func recoderUserInfo(userModel: UserModel) {
UserDefaults.standard.setValue(userModel.userName, forUndefinedKey: LoginUserNameKey)
UserDefaults.standard.setValue(userModel.password, forUndefinedKey: LoginPasswordKey)
}

static func loginOut() {
UserDefaults.standard.removeObject(forKey: LoginUserNameKey)
UserDefaults.standard.removeObject(forKey: LoginPasswordKey)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ class ContentDetailViewController: UIViewController {
Tools.showTap(message: errorMessage, superVC: self)
}
}

print(self.content.contentId)
listRequest.fetchContentDetail(contentId: self.content.contentId)
}

Expand All @@ -93,10 +95,11 @@ class ContentDetailViewController: UIViewController {

if self.content == nil {
self.content = ContentModel()
self.content.title = self.titleTextField.text!
self.content.content = self.contentTextView.text!
}

self.content.title = self.titleTextField.text!
self.content.content = self.contentTextView.text!

let request = ContentRequest(start: {
}, success: { (content) in
DispatchQueue.main.async {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,14 @@ class MainTableViewController: UITableViewController {
}

@IBAction func tapLoginOutButton(_ sender: Any) {
UserInfoRequest.loginOut()
self.dismiss(animated: true) {
}
}

@IBAction func tapRefreshButton(_ sender: Any) {
self.fetchList()
}
@IBAction func tapAddButton(_ sender: Any) {
guard let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "ContentDetailViewController") as? ContentDetailViewController else {
return
Expand Down

0 comments on commit 4e3c2e5

Please sign in to comment.