예제 #1
0
    def UserButtonCicked(self):
        UserId = self.UserIdEdit.text()
        if (UserId == ''):
            print(
                QMessageBox.warning(self, "警告", "有字段为空", QMessageBox.Yes,
                                    QMessageBox.Yes))
        else:
            # 组装json数据
            data = {'messageId': 5002, 'userNum': UserId}
            # SingletonTcpSocket().connect("10.2.8.3", 9999)
            # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')
            str = json.dumps(data)
            print('json dumps:%s' % str)
            SingletonTcpSocket().send(bytes(str, encoding="utf8"))

            # 获取json数据
            str = SingletonTcpSocket().recv(1024)
            print('recv from server:%s' % str)

            # 解析json数据
            resData = json.loads(str.decode('utf8'))
            if (resData['errorCode'] == 0):
                print(
                    QMessageBox.information(self, "提醒", "鉴权用户成功!",
                                            QMessageBox.Yes, QMessageBox.Yes))
                self.User_signal.emit(UserId)
                self.close()
                # self.clearEdit()
            else:
                print(
                    QMessageBox.information(self, "提示", resData['errorDetail'],
                                            QMessageBox.Yes, QMessageBox.Yes))

            return
    def addBookButtonCicked(self):
        bookName = self.bookNameEdit.text()
        bookId = self.bookIdEdit.text()
        authName = self.authNameEdit.text()
        bookCategory = self.categoryComboBox.currentText()
        publisher = self.publisherEdit.text()
        publishTime = self.publishTime.text()
        addBookNum = self.addNumEdit.text()
        if (bookName == "" or bookId == "" or authName == ""
                or bookCategory == "" or publisher == "" or publishTime == ""
                or addBookNum == ""):
            print(
                QMessageBox.warning(self, "警告", "有字段为空,添加失败", QMessageBox.Yes,
                                    QMessageBox.Yes))
            return
        else:
            addBookNum = int(addBookNum)

            # 组装json数据
            data = {
                'messageId': 2002,
                'bookId': bookId,
                'bookName': bookName,
                'bookAuthor': authName,
                'bookAddNumber': addBookNum,
                'bookCategory': bookCategory,
                'bookPublisher': publisher,
                'bookPublicationDate': publishTime
            }
            # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')
            # SingletonTcpSocket().connect("10.2.8.96", 9999)
            str = json.dumps(data)
            print('json dumps:%s' % str)
            SingletonTcpSocket().send(bytes(str, encoding="utf8"))

            # 获取json数据
            str = SingletonTcpSocket().recv(1024)
            print('recv from server:%s' % str)

            # 解析json数据
            resData = json.loads(str.decode('utf8'))
            if (resData['errorCode'] == 0):
                print(
                    QMessageBox.information(self, "提示", "添加书籍成功!",
                                            QMessageBox.Yes, QMessageBox.Yes))
                self.add_book_success_signal.emit()
                self.close()
                self.clearEdit()
            else:
                print(
                    QMessageBox.information(self, "提示", resData['errorDetail'],
                                            QMessageBox.Yes, QMessageBox.Yes))

            return
    def signInCheck(self):
        IP = self.lineEdit0.text()
        studentId = self.lineEdit1.text()
        password = self.lineEdit2.text()
        if (studentId == "" or password == "" or IP == ""):
            print(
                QMessageBox.warning(self, "警告", "表单不可为空!", QMessageBox.Yes,
                                    QMessageBox.Yes))
            return

        if not SingletonTcpSocket().connect(IP, 9999):
            print(
                QMessageBox.warning(self, "提示", "网络连接异常,请检查网络",
                                    QMessageBox.Yes, QMessageBox.Yes))
            return

        # 组装json数据
        data = {
            'messageId': 1001,
            'adminId': studentId,
            'adminPasswd': password,
            'adminName': ''
        }
        # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')
        str = json.dumps(data)
        print('json dumps:%s' % str)

        # 发送接收消息
        if (SingletonTcpSocket().send(bytes(str, encoding="utf8")) > 0):
            # 获取json数据
            str = SingletonTcpSocket().recv(4096)
            print('recv from server:%s' % str)
            if not str:
                print(
                    QMessageBox.information(self, "提示", '数据获取不正确',
                                            QMessageBox.Yes, QMessageBox.Yes))
                return

        # 解析json数据
        resData = json.loads(str.decode('utf8'))
        if ('errorCode' in resData.keys() and resData['errorCode'] == 0):
            self.is_admin_signal.emit()
        else:
            if ('errorDetail' in resData.keys()):
                print(
                    QMessageBox.information(self, "提示", resData['errorDetail'],
                                            QMessageBox.Yes, QMessageBox.Yes))
            else:
                print(
                    QMessageBox.information(self, "提示", '数据获取格式错误',
                                            QMessageBox.Yes, QMessageBox.Yes))

        return
예제 #4
0
    def SignUp(self):
        studentId = self.studentIdEdit.text()
        studentName = self.studentNameEdit.text()
        sex = self.sexEdit.text()
        remark = self.studentReamrkEdit.text()
        if (studentId == "" or studentName == "" or sex == ""):
            print(
                QMessageBox.warning(self, "警告", "表单不可为空(备注除外),请重新输入",
                                    QMessageBox.Yes, QMessageBox.Yes))
            return
        elif (sex != "男" and sex != "女"):
            print(
                QMessageBox.warning(self, "警告", "性别输入男/女,请重新输入",
                                    QMessageBox.Yes, QMessageBox.Yes))
            return
        else:  # 需要处理逻辑,1.账号已存在;2.密码不匹配;3.插入user表

            if (sex == '男'):
                userSex = '0'
            else:
                userSex = '1'
            # 组装json数据
            data = {
                'messageId': 5001,
                'userNum': studentId,
                'userName': studentName,
                'userSex': userSex,
                'userRemark': remark
            }
            # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')
            SingletonTcpSocket().connect("10.2.8.3", 9999)
            str = json.dumps(data)
            print('json dumps:%s' % str)
            SingletonTcpSocket().send(bytes(str, encoding="utf8"))

            # 获取json数据
            str = SingletonTcpSocket().recv(1024)
            print('recv from server:%s' % str)

            # 解析json数据
            resData = json.loads(str.decode('utf8'))
            if (resData['errorCode'] == 0):
                print(
                    QMessageBox.information(self, "提醒", "您已成功添加用户!",
                                            QMessageBox.Yes, QMessageBox.Yes))
                self.close()
            else:
                print(
                    QMessageBox.information(self, "提示", resData['errorDetail'],
                                            QMessageBox.Yes, QMessageBox.Yes))

            return
    def returnedQuery(self):
        # #组装json数据
        data = {'messageId' : 4002, 'userNum' : self.studentId}
        # SingletonTcpSocket().connect("10.2.8.96", 9999)
        str = json.dumps(data)
        print('json dumps:%s' % str)
        SingletonTcpSocket().send(bytes(str, encoding="utf8"))

        # 获取json数据
        str = SingletonTcpSocket().recv(40960)
        print('recv from server:str%s' % str)

        # 解析json数据
        resData = json.loads(str.decode('utf8'))
        str_first = resData['item']
        print('recv from server:str_first%s' % str_first)
        if (resData['errorCode'] == 0):
            line = 0

            for one in str_first:
                if one and 'bookName' in one.keys():
                    self.returnedQueryModel.setItem(line, 0, QStandardItem(one['bookName']))
                if one and 'bookId' in one.keys():
                    self.returnedQueryModel.setItem(line, 1, QStandardItem(one['bookId']))
                if one and 'bookAuthor' in one.keys():
                    self.returnedQueryModel.setItem(line, 2, QStandardItem(one['bookAuthor']))
                if one and 'bookCategory' in one.keys():
                    self.returnedQueryModel.setItem(line, 3, QStandardItem(one['bookCategory']))
                if one and 'bookPublisher' in one.keys():
                    self.returnedQueryModel.setItem(line, 4, QStandardItem(one['bookPublisher']))
                if one and 'bookPublicationDate' in one.keys():
                    self.returnedQueryModel.setItem(line, 5, QStandardItem(one['bookPublicationDate']))
                if one and 'borDate' in one.keys():
                    self.returnedQueryModel.setItem(line, 6, QStandardItem(one['borDate']))
                if one and 'retDate' in one.keys():
                    self.returnedQueryModel.setItem(line, 7, QStandardItem(one['retDate']))
                if one and 'borRetDateLimit' in one.keys():
                    self.returnedQueryModel.setItem(line, 8, QStandardItem(one['borRetDateLimit']))
                print('222')
                line += 1

        else:
            print(QMessageBox.information(self, "提示", resData['errorDetail'], QMessageBox.Yes, QMessageBox.Yes))

        return
예제 #6
0
    def deleteUserclicked(self):
        UserId = self.UserIdEdit.text()
        if (UserId == ""):
            print(
                QMessageBox.warning(self, "警告", "请输入要删除的用户", QMessageBox.Yes,
                                    QMessageBox.Yes))
            return
        #直接删了········································
        else:

            # 组装json数据
            data = {'messageId': 5003, 'userNum': UserId}
            # SingletonTcpSocket().connect("192.168.126.130", 9999)
            # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')
            str = json.dumps(data)
            print('json dumps:%s' % str)
            SingletonTcpSocket().send(bytes(str, encoding="utf8"))

            # 获取json数据
            str = SingletonTcpSocket().recv(1024)
            print('recv from server:%s' % str)

            # 解析json数据
            resData = json.loads(str.decode('utf8'))
            if (resData['errorCode'] == 0):
                print(
                    QMessageBox.information(self, "提醒", "删除用户成功!",
                                            QMessageBox.Yes, QMessageBox.Yes))
                # self.updateUI()
                self.close()
            else:
                print(
                    QMessageBox.information(self, "提示", resData['errorDetail'],
                                            QMessageBox.Yes, QMessageBox.Yes))

            return
    def SignUp(self):
        studentId = self.studentIdLineEdit.text()
        studentName = self.studentNameLineEdit.text()
        password = self.passwordLineEdit.text()
        confirmPassword = self.passwordConfirmLineEdit.text()
        if (studentId == "" or password == "" or confirmPassword == ""):
            print(
                QMessageBox.warning(self, "警告", "表单不可为空(姓名除外),请重新输入",
                                    QMessageBox.Yes, QMessageBox.Yes))
            return
        else:
            if (confirmPassword != password):
                print(
                    QMessageBox.warning(self, "警告", "两次输入密码不一致,请重新输入",
                                        QMessageBox.Yes, QMessageBox.Yes))
                return

            # 组装json数据
            data = {
                'messageId': 1002,
                'adminId': studentId,
                'adminPasswd': password,
                'adminName': studentName
            }
            # SingletonTcpSocket().connect("10.2.8.96",9999)
            # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')
            str = json.dumps(data)
            print('json dumps:%s' % str)

            # 发送接收消息
            if (SingletonTcpSocket().send(bytes(str, encoding="utf8")) > 0):
                # 获取json数据
                str = SingletonTcpSocket().recv(1024)
                print('recv from server:%s' % str)
                if not str:
                    print(
                        QMessageBox.information(self, "提示", '数据获取不正确',
                                                QMessageBox.Yes,
                                                QMessageBox.Yes))
                    return

            # 解析json数据
            resData = json.loads(str.decode('utf8'))
            if ('errorCode' in resData.keys() and resData['errorCode'] == 0):
                print(
                    QMessageBox.information(self, "提醒", "您已成功注册账号!请登录",
                                            QMessageBox.Yes, QMessageBox.Yes))
            else:
                if ('errorDetail' in resData.keys()):
                    print(
                        QMessageBox.information(self, "提示",
                                                resData['errorDetail'],
                                                QMessageBox.Yes,
                                                QMessageBox.Yes))
                else:
                    print(
                        QMessageBox.information(self, "提示", '数据获取格式错误',
                                                QMessageBox.Yes,
                                                QMessageBox.Yes))

            return
    def setUpUI(self):
        self.layout = QVBoxLayout()
        self.Hlayout1 = QHBoxLayout()
        self.Hlayout2 = QHBoxLayout()

        # Hlayout1控件的初始化
        self.searchEdit = QLineEdit()
        self.searchEdit.setFixedHeight(32)
        font = QFont()
        font.setPixelSize(15)
        self.searchEdit.setFont(font)

        self.searchButton = QPushButton("查询")
        self.searchButton.setFixedHeight(32)
        self.searchButton.setFont(font)
        self.searchButton.setIcon(QIcon(QPixmap("./images/search.png")))

        self.condisionComboBox = QComboBox()
        searchCondision = ['按书名查询', '按书号查询', '按作者查询']
        self.condisionComboBox.setFixedHeight(32)
        self.condisionComboBox.setFont(font)
        self.condisionComboBox.addItems(searchCondision)

        self.Hlayout1.addWidget(self.searchEdit)
        self.Hlayout1.addWidget(self.searchButton)
        self.Hlayout1.addWidget(self.condisionComboBox)

        # Hlayout2初始化
        self.jumpToLabel = QLabel("跳转到第")
        self.pageEdit = QLineEdit()
        self.pageEdit.setFixedWidth(30)
        s = "/" + str(self.totalPage) + "页"
        self.pageLabel = QLabel(s)
        self.jumpToButton = QPushButton("跳转")
        self.prevButton = QPushButton("前一页")
        self.prevButton.setFixedWidth(60)
        self.backButton = QPushButton("后一页")
        self.backButton.setFixedWidth(60)

        Hlayout = QHBoxLayout()
        Hlayout.addWidget(self.jumpToLabel)
        Hlayout.addWidget(self.pageEdit)
        Hlayout.addWidget(self.pageLabel)
        Hlayout.addWidget(self.jumpToButton)
        Hlayout.addWidget(self.prevButton)
        Hlayout.addWidget(self.backButton)
        widget = QWidget()
        widget.setLayout(Hlayout)
        widget.setFixedWidth(300)
        self.Hlayout2.addWidget(widget)

        # tableView
        # 序号,书名,书号,作者,分类,出版社,出版时间,库存,剩余可借
        # self.db = QSqlDatabase.addDatabase("QSQLITE")
        # self.db.setDatabaseName('./db/LibraryManagement.db')
        # self.db.open()

        self.tableView = QTableView()
        self.tableView.horizontalHeader().setStretchLastSection(True)
        self.tableView.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)
        self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
        # self.queryModel = QSqlQueryModel()

        # SingletonTcpSocket().connect("10.2.8.3", 9999)
        data = {
            "messageId": 2001,
            "start": self.currentPage * 10,
            "end": (self.currentPage + 1) * 10
        }
        send_str = json.dumps(data)

        # 发送接收消息
        # self.recv_str = ''
        # self.recv_dictionaries = ''
        if (SingletonTcpSocket().send(bytes(send_str, encoding="utf8")) > 0):
            # 获取json数据
            strs = SingletonTcpSocket().recv(40960)
            if strs:
                self.recv_str = json.loads(strs.decode('utf8'))
                print('recv from server:%s' % strs)
        if self.recv_str and ('item' in self.recv_str.keys()) and (
                'total' in self.recv_str.keys()):
            self.recv_dictionaries = self.recv_str['item']
            self.totalRecord = self.recv_str['total']
        print(self.recv_dictionaries)

        self.queryModel = QStandardItemModel(10, 9)
        self.searchButtonClicked()
        self.tableView.setModel(self.queryModel)

        if self.recv_dictionaries:
            self.disply(self.currentPage, self.recv_dictionaries)

        self.queryModel.setHeaderData(0, Qt.Horizontal, "书名")
        self.queryModel.setHeaderData(1, Qt.Horizontal, "书号")
        self.queryModel.setHeaderData(2, Qt.Horizontal, "作者")
        self.queryModel.setHeaderData(3, Qt.Horizontal, "分类")
        self.queryModel.setHeaderData(4, Qt.Horizontal, "出版社")
        self.queryModel.setHeaderData(5, Qt.Horizontal, "出版时间")
        self.queryModel.setHeaderData(6, Qt.Horizontal, "库存")
        self.queryModel.setHeaderData(7, Qt.Horizontal, "剩余可借")
        self.queryModel.setHeaderData(8, Qt.Horizontal, "总借阅次数")

        self.layout.addLayout(self.Hlayout1)
        self.layout.addWidget(self.tableView)
        self.layout.addLayout(self.Hlayout2)
        self.setLayout(self.layout)
        self.searchButton.clicked.connect(self.searchButtonClicked)
        self.prevButton.clicked.connect(self.prevButtonClicked)
        self.backButton.clicked.connect(self.backButtonClicked)
        self.jumpToButton.clicked.connect(self.jumpToButtonClicked)
        self.searchEdit.returnPressed.connect(self.searchButtonClicked)