|
|
@@ -0,0 +1,157 @@
|
|
|
+package typeManage
|
|
|
+
|
|
|
+import (
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "gorm.io/gorm"
|
|
|
+ "log-server/global"
|
|
|
+ "log-server/model/common/request"
|
|
|
+ "log-server/model/typeManage"
|
|
|
+ "math/rand"
|
|
|
+)
|
|
|
+
|
|
|
+func RandomString(n int) string {
|
|
|
+ var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
|
|
|
+
|
|
|
+ b := make([]rune, n)
|
|
|
+ for i := range b {
|
|
|
+ b[i] = letterRunes[rand.Intn(len(letterRunes))]
|
|
|
+ }
|
|
|
+ return string(b)
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+type ResponsiblePersonService struct {
|
|
|
+}
|
|
|
+
|
|
|
+//创建负责人
|
|
|
+func (r *ResponsiblePersonService) CreateResponsiblePerson(person typeManage.ResponsiblePerson) (err error) {
|
|
|
+ //先查找是否存在同名员工
|
|
|
+ err = global.GVA_DB.Table("responsible_person").Where("name = ? and mobile_phone_number = ?", person.Name, person.MobilePhoneNumber).First(&typeManage.ResponsiblePerson{}).Error
|
|
|
+ if !errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
+ return errors.New("已存在同名员工,请勿重复添加")
|
|
|
+ }
|
|
|
+ //不存在同名员工
|
|
|
+ //根据image是否为空来判断是否需要图片处理
|
|
|
+ fmt.Println(person.Img)
|
|
|
+ //if person.Img != "" {
|
|
|
+ // var (
|
|
|
+ // enc = base64.StdEncoding
|
|
|
+ // path string
|
|
|
+ // )
|
|
|
+ // img := person.Img
|
|
|
+ // timestamp:=strconv.Itoa(int(time.Now().UnixNano()))
|
|
|
+ // randomStr := (RandomString(5))
|
|
|
+ // imgId := timestamp+"_"+randomStr
|
|
|
+ //
|
|
|
+ // if img[11] == 'j' {
|
|
|
+ // img = img[23:]
|
|
|
+ // path = fmt.Sprintf("/img/%s.jpg", imgId)
|
|
|
+ // } else if img[11] == 'p' {
|
|
|
+ // img = img[22:]
|
|
|
+ // path = fmt.Sprintf("/img/%s.png", imgId)
|
|
|
+ // } else if img[11] == 'g' {
|
|
|
+ // img = img[22:]
|
|
|
+ // path = fmt.Sprintf("/img/%s.gif", imgId)
|
|
|
+ // } else {
|
|
|
+ // fmt.Println("不支持该文件类型")
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // data, err := enc.DecodeString(img)
|
|
|
+ // if err != nil {
|
|
|
+ // log.Println(err.Error())
|
|
|
+ // }
|
|
|
+ // // 图片写入文件
|
|
|
+ // f, _ := os.OpenFile(path, os.O_RDWR|os.O_CREATE, os.ModePerm)
|
|
|
+ // defer f.Close()
|
|
|
+ // if _, err := f.Write(data); err != nil {
|
|
|
+ // log.Println(err)
|
|
|
+ // }
|
|
|
+ // //记录图片保存的地址
|
|
|
+ // path = "https://qmplusimg.henrongyi.top" + path
|
|
|
+ // person.Img = path
|
|
|
+ //
|
|
|
+ //}
|
|
|
+ //数据库插入
|
|
|
+ return global.GVA_DB.Table("responsible_person").Omit("create_time", "update_time").Create(&person).Error
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//删除负责人
|
|
|
+func (r *ResponsiblePersonService) DeleteResponsiblePerson(person typeManage.ResponsiblePerson) (err error) {
|
|
|
+ var entity typeManage.ResponsiblePerson
|
|
|
+ err = global.GVA_DB.Table("responsible_person").Where("id = ?", person.Id).First(&entity).Error
|
|
|
+ if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
+ return errors.New("未找到记录,删除失败")
|
|
|
+ }
|
|
|
+ return global.GVA_DB.Table("responsible_person").Delete(&entity).Error
|
|
|
+}
|
|
|
+
|
|
|
+//批量删除
|
|
|
+func (r *ResponsiblePersonService) DeleteResponsiblePersonsByIds(ids request.IdsReq) (err error) {
|
|
|
+ err = global.GVA_DB.Table("responsible_person").Delete(&[]typeManage.ResponsiblePerson{}, "id in ?", ids.Ids).Error
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//更改记录
|
|
|
+func (r *ResponsiblePersonService) UpdateResponsiblePerson(person typeManage.ResponsiblePerson) (err error) {
|
|
|
+ err = global.GVA_DB.Table("responsible_person").Where("id != ? and name = ?", person.Id, person.Name).First(&typeManage.ResponsiblePerson{}).Error
|
|
|
+ if !errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
+ return errors.New("已存在相同名字,无法更改")
|
|
|
+ }
|
|
|
+ return global.GVA_DB.Table("responsible_person").Updates(&person).Error
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//通过id查询负责人
|
|
|
+func (r *ResponsiblePersonService) GetResponsiblePersonById(id int) (person typeManage.ResponsiblePerson, err error) {
|
|
|
+ err = global.GVA_DB.Table("responsible_person").Where("id = ?", id).First(&person).Error
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//条件查询负责人
|
|
|
+func(r *ResponsiblePersonService) GetResponsiblePerson(person typeManage.ResponsiblePerson, info request.PageInfo, order string, desc bool) (list interface{}, total int64, err error) {
|
|
|
+ //获取分页数据
|
|
|
+ limit := info.PageSize
|
|
|
+ offset := (info.Page - 1) * info.PageSize
|
|
|
+ //绑定操作结构体
|
|
|
+ db := global.GVA_DB.Table("responsible_person").Model(&typeManage.ResponsiblePerson{})
|
|
|
+ var personList []typeManage.ResponsiblePerson
|
|
|
+ //条件查询
|
|
|
+ if person.Name != "" {
|
|
|
+ db.Where("name like ?","%"+person.Name+"%")
|
|
|
+ }
|
|
|
+ //先过滤在排序
|
|
|
+ if err = db.Count(&total).Error;err != nil{
|
|
|
+ return personList, total, err
|
|
|
+ } else {
|
|
|
+ //分页
|
|
|
+ db.Limit(limit).Offset(offset)
|
|
|
+ //判断是否有排序字段
|
|
|
+ if order != ""{
|
|
|
+ var orderStr string
|
|
|
+ orderMap := make(map[string]bool, 1)
|
|
|
+ orderMap["create_time"] = true
|
|
|
+ if orderMap[order] {
|
|
|
+ //合法排序字符
|
|
|
+ if desc {
|
|
|
+ orderStr = order + " desc"
|
|
|
+ } else {
|
|
|
+ orderStr = order
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //传入排序字段非法
|
|
|
+ err = fmt.Errorf("传入非法字段 %v", order)
|
|
|
+ return personList, total, err
|
|
|
+ }
|
|
|
+ err = db.Order(orderStr).Find(&personList).Error
|
|
|
+ } else {
|
|
|
+ //默认按照名字升序排序
|
|
|
+ err = db.Order("name").Find(&personList).Error
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return personList, total, err
|
|
|
+}
|