Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,197 @@
package v2
import (
"context"
v2pb "go-common/app/service/live/resource/api/grpc/v2"
"go-common/app/service/live/resource/conf"
"go-common/app/service/live/resource/dao"
"go-common/app/service/live/resource/model"
"go-common/library/ecode"
"go-common/library/log"
)
// UserResourceService struct
type UserResourceService struct {
conf *conf.Config
// optionally add other properties here, such as dao
dao *dao.Dao
}
//NewUserResourceService init
func NewUserResourceService(c *conf.Config) (s *UserResourceService) {
s = &UserResourceService{
conf: c,
dao: dao.New(c),
}
return s
}
// Add implementation
// Add 添加资源接口
func (s *UserResourceService) Add(ctx context.Context, req *v2pb.AddReq) (resp *v2pb.AddResp, err error) {
resp = &v2pb.AddResp{}
// 查询新的资源新的资源ID = 现有的最大ID + 1
customID, err := s.dao.GetMaxCustomID(ctx, req.ResType)
if err != nil {
log.Error("查找最大的资源ID res_type : %d : %v", req.ResType, err)
return
}
customID++
res := &model.UserResource{
ResType: req.ResType,
CustomID: customID,
Title: req.Title,
URL: req.Url,
Weight: req.Weight,
Status: 0,
Creator: req.Creator,
}
// 插入新资源
info, err := s.dao.AddUserResource(ctx, res)
if err != nil {
log.Error("resource.addSResource d.db.Exec err: %v", err)
}
resp.Id = info.ID
resp.ResType = info.ResType
resp.CustomId = info.CustomID
resp.Title = info.Title
resp.Url = info.URL
resp.Weight = info.Weight
resp.Creator = info.Creator
resp.Status = info.Status
resp.Ctime = info.Ctime.Format("2006-01-02 15:04:05")
resp.Mtime = info.Mtime.Format("2006-01-02 15:04:05")
return
}
// Edit 编辑现有资源
func (s *UserResourceService) Edit(ctx context.Context, req *v2pb.EditReq) (resp *v2pb.EditResp, err error) {
resp = &v2pb.EditResp{}
info, err := s.dao.GetUserResourceInfo(ctx, req.ResType, req.CustomId)
if info.ID <= 0 {
err = ecode.EditResErr
return
}
update := make(map[string]interface{})
// 名称
if req.Title != "" {
update["title"] = req.Title
}
// 链接
if req.Url != "" {
update["url"] = req.Url
}
// 权重
if req.Weight > 0 {
update["weight"] = req.Weight
}
effectRow, info, err := s.dao.EditUserResource(ctx, req.ResType, req.CustomId, update)
if err != nil || effectRow <= 0 {
err = ecode.EditResErr
return
}
resp.Id = info.ID
resp.ResType = info.ResType
resp.CustomId = info.CustomID
resp.Title = info.Title
resp.Url = info.URL
resp.Weight = info.Weight
resp.Creator = info.Creator
resp.Status = info.Status
resp.Ctime = info.Ctime.Format("2006-01-02 15:04:05")
resp.Mtime = info.Mtime.Format("2006-01-02 15:04:05")
return
}
// Query 请求单个资源
func (s *UserResourceService) Query(ctx context.Context, req *v2pb.QueryReq) (resp *v2pb.QueryResp, err error) {
resp = &v2pb.QueryResp{}
info, err := s.dao.GetUserResourceInfo(ctx, req.ResType, req.CustomId)
if err != nil {
return
}
resp.Id = info.ID
resp.ResType = info.ResType
resp.CustomId = info.CustomID
resp.Title = info.Title
resp.Url = info.URL
resp.Weight = info.Weight
resp.Creator = info.Creator
resp.Status = info.Status
resp.Ctime = info.Ctime.Format("2006-01-02 15:04:05")
resp.Mtime = info.Mtime.Format("2006-01-02 15:04:05")
return
}
// List 获取资源列表
func (s *UserResourceService) List(ctx context.Context, req *v2pb.ListReq) (resp *v2pb.ListResp, err error) {
var Page int32 = 1
var pageSize int32 = 50
if req.Page > 0 {
Page = req.Page
}
if req.PageSize > 0 {
pageSize = req.PageSize
}
resp = &v2pb.ListResp{}
resp.CurrentPage = Page
resp.TotalCount, _ = s.dao.GetMaxCustomID(ctx, req.ResType)
list, err := s.dao.ListUserResourceInfo(ctx, req.ResType, Page, pageSize)
if len(list) <= 0 {
return
}
for _, v := range list {
elem := &v2pb.ListResp_List{}
elem.Id = v.ID
elem.ResType = v.ResType
elem.CustomId = v.CustomID
elem.Title = v.Title
elem.Url = v.URL
elem.Weight = v.Weight
elem.Creator = v.Creator
elem.Status = v.Status
elem.Ctime = v.Ctime.Format("2006-01-02 15:04:05")
elem.Mtime = v.Mtime.Format("2006-01-02 15:04:05")
resp.List = append(resp.List, elem)
}
return
}
// SetStatus implementation
// SetStatus 更改资源状态
func (s *UserResourceService) SetStatus(ctx context.Context, req *v2pb.SetStatusReq) (resp *v2pb.SetStatusResp, err error) {
resp = &v2pb.SetStatusResp{}
effectRow, err := s.dao.SetUserResourceStatus(ctx, req.ResType, req.CustomId, req.Status)
if err != nil || effectRow == 0 {
err = ecode.EditResErr
return
}
return
}