Files
ClassContent/历届学生/front-end-team-11/项目开发/上课项目/nodejs博客/backendv2/src/dao/UserDao.ts
2024-09-27 02:06:13 +08:00

84 lines
2.6 KiB
TypeScript

import { User, selectUserField } from '@/entity/User';
import { User as UserType } from '@/m_res/user'
import { Service, Inject } from 'typedi'
import { Entity } from '@/utils/orm'
import { addUser } from '@/model/request/User';
import moment from 'moment';
import md5 from 'md5';
import { JsonResult, msgList, res } from '@/utils/jsonResult';
import jsonwebtoken from 'jsonwebtoken'
import config from '@/config'
@Service()
export class UserDao {
@Inject()
entity!: Entity
@Inject()
json!: JsonResult<any>;
async GetOneUser(id: number): Promise<res<UserType | null>> {
let data = <UserType>await this.entity.get(User).findOne({
select: selectUserField,
where: { user_id: id }
});
if (data) {
return this.json.success(data)
} else {
return this.json.success(null,msgList.NoFound)
}
}
async addUserDao(params: addUser): Promise<res<null>> {
let isHave = await this.entity.get(User).findOne({
where: { "user_name": params.name }
});
console.log("isHave: ", isHave);
if (isHave != null) {
return this.json.success(null, msgList.UserNameExist)
} else {
await this.entity.source()
.insert()
.into(User)
.values([
{
user_name: params.name,
user_img: "https://upload.jianshu.io/users/upload_avatars/3136195/484e32c3504a.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240",
user_pwd: md5(params.pwd),
user_type: 0,
user_addtime: moment().valueOf()
},
])
.execute()
return this.json.success(null, msgList.addUserSuccess)
}
}
async LoginDao(params: addUser): Promise<res<UserType | null>> {
// const user = await this.entity.get(User).findOneBy({
// user_name: params.name,
// user_pwd: md5(params.pwd),
// })
const user = await this.entity.repository(User)
.where("user.user_name = :user_name", { user_name: params.name })
.andWhere('user.user_pwd = :user_pwd', { user_pwd: md5(params.pwd) })
.getOne()
if (user) {
var token = jsonwebtoken.sign({
user_id: user.user_id,
user_name: user.user_name
}, config.jwtKey);
return this.json.success(token)
} else {
return this.json.error(null,msgList.PasswordError)
}
}
}