12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package stdlib
- import (
- elastic "app.yhyue.com/moapp/jybase/esv7"
- jyDocsRpcUtil "app.yhyue.com/moapp/jydocs/services/util"
- "errors"
- "gorm.io/gorm"
- "log"
- "time"
- )
- const DocOn = 1
- const DocOff = 0
- // 上架文档
- func ChangeDocumentOn(id string, reason int32) bool {
- // 查文档
- docData := map[string]interface{}{}
- rs := jyDocsRpcUtil.GetJyDocsDB().Table("doc").Where("id=? and isDelete=0", id).Find(&docData)
- if rs.Error != nil {
- log.Println("上架文档 error:"+id, rs.Error)
- return false
- } else {
- if docData["id"] == nil {
- log.Println("上架文档 error:"+id, "文档不存在")
- return false
- }
- }
- // 上架
- err := jyDocsRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
- // 更新大库状态为上架 1-上架
- if err := tx.Exec("update doc set downOrUp=? where id=? ", DocOn, id).Error; err != nil {
- return err
- }
- // 存上架记录
- date := time.Now().Local().Format("2006-01-02 15:04:05")
- if err := tx.Exec("insert into doc_change_record (docId,date,downOrUp,reason) values (?,?,?,?)", id, date, DocOn, reason).Error; err != nil {
- return err
- }
- docData["_id"] = docData["id"]
- // todo es加数据 索引待替换 测试
- if rs := elastic.Save("doc_lib", "doc", docData); rs != true {
- return errors.New("发布到检索库失败")
- }
- return nil
- })
- log.Println("上架文档 error:"+id, err)
- if err != nil {
- return false
- }
- return true
- }
- // 下架文档
- func ChangeDocumentOff(id string, reason int32) bool {
- // 查文档
- docData := map[string]interface{}{}
- rs := jyDocsRpcUtil.GetJyDocsDB().Table("doc").Where("id=? and isDelete=0", id).Find(&docData)
- if rs.Error != nil {
- log.Println("下架文档 error:"+id, rs.Error)
- return false
- } else {
- if docData["id"] == nil {
- log.Println("下架文档 error:"+id, "文档不存在")
- return false
- }
- }
- // 下架
- err := jyDocsRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
- // 更新大库状态为下架 0-下架
- if err := tx.Exec("update doc set downOrUp=? where id=? ", DocOff, id).Error; err != nil {
- return err
- }
- // 存下架记录
- date := time.Now().Local().Format("2006-01-02 15:04:05")
- if err := tx.Exec("insert into doc_change_record (docId,date,downOrUp,reason) values (?,?,?,?)", id, date, DocOff, reason).Error; err != nil {
- return err
- }
- //todo 从es删除数据 索引待替换 及测试
- if rs := elastic.DelById("doc_lib", "doc", id); rs != true {
- return errors.New("从检索库删除失败")
- }
- return nil
- })
- if err != nil {
- log.Println("上架文档 error:"+id, err)
- return false
- }
- return true
- }
|