def edit_user(uid): data = request.get_data() j_data = json.loads(data) user=db.session.query(Admin).filter_by(admin=j_data['admin']).filter(Admin.id != uid).first() if user is not None: return r({},0,'',{'admin':'账号已存在'}) #修改账号表 user = db.session.query(Admin).filter_by(id=uid).first() user.name = j_data['name'] if 'status' in j_data: if j_data['status']: user.status = 1 else: user.status = 0 if 'password' in j_data and j_data['password'] != '':#提交了修改密码 local_salt=app.config.get("SALT") salt=hashlib.md5(str(time.time()).encode(encoding='UTF-8')).hexdigest() temp=j_data['password']+local_salt+salt user.password=hashlib.md5(temp.encode(encoding='UTF-8')).hexdigest() user.salt=salt #修改教师表 tc = db.session.query(Teacher).filter_by(a_id=uid).first() tc.name=j_data['name'] tc.cid=j_data['cid'] tc.in_time=j_data['in_time'] tc.out_time=j_data['out_time'] tc.oa_time=j_data['oa_time'] tc.info=j_data['info'] db.session.commit() return r({},0,'修改成功')
def edit_user(cid): data = request.get_data() j_data = json.loads(data) user = db.session.query(Student).filter_by(cid=j_data['cid']).filter( Student.id != cid).first() if user is not None: return r({}, 0, '', {'cid': '身份证已经存在'}) tc = db.session.query(Student).filter_by(id=cid).first() old_class_id = 0 flag = False if tc.class_id != j_data['class_id']: old_class_id = tc.class_id flag = True pass tc.name = j_data['name'], tc.class_id = j_data['class_id'], tc.code = j_data['code'], tc.cid = j_data['cid'], tc.in_time = j_data['in_time'], tc.out_time = j_data['out_time'], tc.l_name = j_data['l_name'], tc.l_phone = j_data['l_phone'], tc.l2_name = j_data['l2_name'], tc.l2_phone = j_data['l2_phone'], tc.add = j_data['add'], tc.info = j_data['info'], db.session.commit() if flag: set_class_count(j_data['class_id']) if old_class_id > 0: set_class_count(old_class_id) return r({}, 0, '修改成功')
def add_class(): data = request.get_data() j_data = json.loads(data) user = db.session.query(Class).filter_by(name=j_data['name']).first() if user is not None: return r({}, 0, '', {'admin': '名称已存在'}) cl = Class(j_data['t_id'], j_data['name'], int(time.time()), 0) db.session.add(cl) db.session.commit() return r({}, 0, '添加成功')
def edit_class(cid): data = request.get_data() j_data = json.loads(data) cl = db.session.query(Class).filter_by(name=j_data['name']).filter( Class.id != cid).first() if cl is not None: return r({}, 1, '班级已经存在') cl = db.session.query(Class).filter_by(id=cid).first() if 'name' in j_data: cl.name = j_data['name'] if 't_id' in j_data: cl.t_id = j_data['t_id'] db.session.commit() return r({}, 0, '修改成功')
def get_minlist(): data = db.session.query(Class.id, Class.name).order_by(Class.id.desc()).all() re = [] for x in data: re.append({'label': x[1], 'value': x[0]}) return r({'options': re})
def edit_user(cid): data = request.get_data() j_data = json.loads(data) tc = db.session.query(Score).filter_by(id=cid).first() tc.score = j_data['score'], db.session.commit() return r({}, 0, '修改成功')
def add_class(): class_id = request.values.get('class_id') kskc = request.values.get('kskc') k_time = request.values.get('k_time') file = request.files['file'] if not file: return r({}, 1, '没有上传文件') file_contents = file.stream.read().decode("utf-8", "ignore") li = file_contents.split("\n") del li[0] for x in li: data = x.split(',') if isinstance(data, list) and is_number(data[0]) and len(data) == 5: uid = int(data[0]) sc = float(data[4]) db.session.add(Score(uid, sc, k_time, kskc)) db.session.commit() return r({}, 0, '成功')
def editpwd(): if request.method == 'GET': return render_template('/account/editpwd.html') data = request.get_data() j_data = json.loads(data) if j_data['pwd'] != j_data['pwd2']: return r({}, 1, '两次输入的密码不一致') local_salt = app.config.get("SALT") salt = hashlib.md5(str(time.time()).encode(encoding='UTF-8')).hexdigest() temp = j_data['pwd'] + local_salt + salt pwd = hashlib.md5(temp.encode(encoding='UTF-8')).hexdigest() db.session.query(Admin).filter(Admin.id == session['uid']).update({ "salt": salt, 'password': pwd }) status = db.session.commit() return r({'salt': salt, 'status': status}, 0)
def add_class(): data = request.get_data() j_data = json.loads(data) user = db.session.query(Student).filter_by(cid=j_data['cid']).first() if user is not None: return r({}, 0, '', {'cid': '身份证已经存在'}) j_data.setdefault('l2_name', '') j_data.setdefault('l2_phone', '') j_data.setdefault('add', '') j_data.setdefault('code', '') j_data.setdefault('info', '') cl = Student(j_data['class_id'], j_data['name'], j_data['code'], j_data['cid'], j_data['in_time'], 0, j_data['info'], j_data['l_name'], j_data['l_phone'], j_data['l2_name'], j_data['l2_phone'], j_data['add']) db.session.add(cl) db.session.commit() set_class_count(j_data['class_id']) return r({}, 0, '添加成功')
def repwd_user(uid): #重置密码为123456 user = db.session.query(Admin).filter_by(id=uid).first() local_salt=app.config.get("SALT") salt=hashlib.md5(str(time.time()).encode(encoding='UTF-8')).hexdigest() temp='123456'+local_salt+salt pwd=hashlib.md5(temp.encode(encoding='UTF-8')).hexdigest() user.password=pwd user.salt=salt db.session.commit() return r({},0,'重置成功')
def login(): if request.method == 'GET': data = {} return render_template('login.html', **data) data = request.get_data() j_data = json.loads(data) user = db.session.query(Admin).filter_by(admin=j_data['admin']).first() if user is not None: if user.status == 0: return r({}, 1, '账号已锁定') local_salt = app.config.get("SALT") db_salt = user.salt temp = j_data['pwd'] + local_salt + db_salt jmd5 = hashlib.md5(temp.encode(encoding='UTF-8')).hexdigest() if jmd5 == user.password: session['uid'] = user.id session['name'] = user.name session['level'] = user.level session['logged_in'] = True return r({'is_login': 0}, 0, '欢迎登录:' + (user.name)) return r({}, 1, '账号密码错误')
def add_user(): data = request.get_data() j_data = json.loads(data) user=db.session.query(Admin).filter_by(admin=j_data['admin']).first() if user is not None: return r({},0,'',{'admin':'账号已存在'}) # admin, password,salt,level,name,status local_salt=app.config.get("SALT") salt=hashlib.md5(str(time.time()).encode(encoding='UTF-8')).hexdigest() temp=j_data['password']+local_salt+salt pwd=hashlib.md5(temp.encode(encoding='UTF-8')).hexdigest() admin = Admin(j_data['admin'], pwd,salt,2,j_data['name'],1) db.session.add(admin) db.session.flush() j_data.setdefault('in_time',0) j_data.setdefault('oa_time',0) j_data.setdefault('out_time',0) j_data.setdefault('info','') tc = Teacher(admin.id, j_data['name'], j_data['cid'], j_data['in_time'], j_data['out_time'], j_data['oa_time'], j_data['info']) db.session.add(tc) db.session.commit() return r({},0,'添加成功')
def get_class(): perPage = int(request.values.get('perPage')) page = int(request.values.get('page')) name = request.values.get('name') t_id = request.values.get('t_id') addtime = request.values.get('addtime') orderBy = request.values.get('orderBy') orderDir = request.values.get('orderDir') count = db.session.query(Class).count() db_tc = db.session.query(Class) offset = ((page - 1) * perPage) rt = {} ids = [] temp = [] order = Class.id.desc() if orderBy and orderDir: #排序 temp1 = getattr(Class, orderBy) order = getattr(temp1, orderDir)() where = [Class.id > 0] if name: where.append(Class.name.like("%" + name + "%")) if t_id: where.append(Class.t_id == t_id) if addtime: temptime = addtime.split(',') where.append(Class.addtime >= temptime[0]) where.append(Class.addtime <= temptime[1]) tc = db_tc.order_by(order).filter(*where).limit(perPage).offset( offset) #.all() print(tc) for t in tc: temp.append({ 'id': t.id, 'name': t.name, 'addtime': t.addtime, 'user_count': t.user_count, 't_id': t.t_id, }) rt['count'] = count rt['rows'] = temp # rt['hasNext']=1 return r(rt) pass
def userdata(): perPage=int(request.values.get('perPage')) page=int(request.values.get('page')) orderBy=request.values.get('orderBy') orderDir=request.values.get('orderDir') name=request.values.get('name') cid=request.values.get('cid') in_time=request.values.get('in_time') oa_time=request.values.get('oa_time') count=db.session.query(Teacher).count() db_tc=db.session.query(Teacher) offset=((page-1)*perPage) rt={} ids=[] temp=[] order=Teacher.id.desc() if orderBy and orderDir:#排序 temp1=getattr(Teacher,orderBy) order=getattr(temp1,orderDir)() db_tc.order_by(order) where=[Teacher.id>0] if name : where.append(Teacher.name.like("%" + name + "%")) if cid : where.append(Teacher.cid.like("%" + cid + "%")) if in_time : temptime=in_time.split(',') where.append(Teacher.in_time>=temptime[0]) where.append(Teacher.in_time<=temptime[1]) if oa_time : temptime=oa_time.split(',') where.append(Teacher.oa_time>=temptime[0]) where.append(Teacher.oa_time<=temptime[1]) tc = db_tc.filter(*where).limit(perPage).offset(offset).all() # print(tc) for t in tc: ids.append(t.a_id) user = db.session.query(Admin).filter(Admin.id.in_(ids)).all() for t in tc: for u in user: if u.id==t.a_id: temp.append({ 'id':u.id, 'name':u.name, 'admin':u.admin, 'level':u.level, 'status':u.status, 'cid':t.cid, 'in_time':t.in_time, 'out_time':t.out_time, 'oa_time':t.oa_time, 'info':t.info, }) rt['count']=count rt['rows']=temp # rt['hasNext']=1 return r(rt)
def delete_user(uid): sql=db.session.query(Admin).filter_by(id=uid).filter(Admin.level != 1).delete() sql2=db.session.query(Teacher).filter_by(a_id=uid).delete() db.session.commit() return r({},0,'删除成功')
def delete_class(cid): sql2 = db.session.query(Class).filter_by(id=cid).delete() db.session.commit() return r({}, 0, '删除成功')
def delete_user(cid): sql2 = db.session.query(Score).filter_by(id=cid).delete() db.session.commit() return r({}, 0, '删除成功')
def get_score(): perPage = int(request.values.get('perPage')) page = int(request.values.get('page')) k_time = request.values.get('k_time') score = request.values.get('score') stu_search = {} stu_search['name'] = request.values.get('name') stu_search['code'] = request.values.get('code') stu_search['c_id'] = request.values.get('c_id') sco_search = {} sco_search['kskc'] = request.values.get('kskc') class_id = request.values.get('class_id') orderBy = request.values.get('orderBy') orderDir = request.values.get('orderDir') count = db.session.query(Score).count() offset = ((page - 1) * perPage) rt = {} ids = [] temp = [] order = Score.id.desc() if orderBy and orderDir: #排序 temp1 = getattr(Score, orderBy) order = getattr(temp1, orderDir)() where = [Score.id > 0] for k, v in sco_search.items(): if v: temp1 = getattr(Score, k).like("%" + v + "%") where.append(temp1) #搜索了学生 start stu_where = [] for k, v in stu_search.items(): if v: temp1 = getattr(Student, k).like("%" + v + "%") stu_where.append(temp1) if len(stu_where) > 0: sids = db.session.query(Student.id).filter(*stu_where).all() tempsid = [] for x in sids: tempsid.append(x[0]) pass where.append(Score.uid.in_(tempsid)) #搜索了学生 end #搜索了班级 start if class_id: sids = db.session.query( Student.id).filter(Student.class_id == class_id).all() tempsid = [] for x in sids: tempsid.append(x[0]) pass where.append(Score.uid.in_(tempsid)) pass #搜索了班级 end db_tc = db.session.query(Score) if k_time: temptime = k_time.split(',') where.append(Score.k_time >= temptime[0]) where.append(Score.k_time <= temptime[1]) if score: temptime = score.split(',') where.append(Score.score >= temptime[0]) where.append(Score.score <= temptime[1]) tc = db_tc.order_by(order).filter( *where).limit(perPage).offset(offset).all() ids = [] for t in tc: ids.append(t.uid) stu = db.session.query(Student).filter(Student.id.in_(ids)).all() data = db.session.query(Class.id, Class.name).order_by(Class.id.desc()).all() re = {} for x in data: re[x[0]] = x[1] for t in tc: for u in stu: if u.id == t.uid: temp.append({ 'id': t.id, 'uid': t.uid, 'k_time': t.k_time, 'score': t.score, 'kskc': t.kskc, 'name': u.name, 'cid': u.cid, 'code': u.code, 'class_id': re[u.class_id], }) rt['count'] = count rt['rows'] = temp # print(rt) return r(rt, 0, '删除成功')
def get_student(): perPage = int(request.values.get('perPage')) page = int(request.values.get('page')) in_time = request.values.get('in_time') search = {} search['name'] = request.values.get('name') search['t_id'] = request.values.get('t_id') search['code'] = request.values.get('code') search['cid'] = request.values.get('cid') search['l_name'] = request.values.get('l_name') search['l_phone'] = request.values.get('l_phone') search['l2_name'] = request.values.get('l2_name') search['l2_phone'] = request.values.get('l2_phone') search['add'] = request.values.get('add') orderBy = request.values.get('orderBy') orderDir = request.values.get('orderDir') count = db.session.query(Student).count() db_tc = db.session.query(Student) offset = ((page - 1) * perPage) rt = {} ids = [] temp = [] order = Student.id.desc() if orderBy and orderDir: #排序 temp1 = getattr(Student, orderBy) order = getattr(temp1, orderDir)() where = [Student.id > 0] for k, v in search.items(): if v: temp1 = getattr(Student, k).like("%" + v + "%") where.append(temp1) if in_time: temptime = in_time.split(',') where.append(Student.in_time >= temptime[0]) where.append(Student.in_time <= temptime[1]) tc = db_tc.order_by(order).filter(*where).limit(perPage).offset( offset) #.all() print(tc) for t in tc: temp.append({ 'id': t.id, 'class_id': t.class_id, 'name': t.name, 'code': t.code, 'cid': t.cid, 'in_time': t.in_time, 'out_time': t.out_time, 'info': t.info, 'l_name': t.l_name, 'l_phone': t.l_phone, 'l2_name': t.l2_name, 'l2_phone': t.l2_phone, 'add': t.add }) rt['count'] = count rt['rows'] = temp # rt['hasNext']=1 return r(rt) pass
def delete_user(cid): tc = db.session.query(Student).filter_by(id=cid).first() sql2 = db.session.query(Student).filter_by(id=cid).delete() db.session.commit() set_class_count(tc.class_id) return r({}, 0, '删除成功')