infodetaillogic.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package logic
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/encrypt"
  5. T "bp.jydev.jianyu360.cn/CRM/application/api/common"
  6. "context"
  7. "fmt"
  8. "bp.jydev.jianyu360.cn/CRM/application/api/internal/svc"
  9. "bp.jydev.jianyu360.cn/CRM/application/api/internal/types"
  10. "github.com/zeromicro/go-zero/core/logx"
  11. )
  12. type InfoDetailLogic struct {
  13. logx.Logger
  14. ctx context.Context
  15. svcCtx *svc.ServiceContext
  16. }
  17. func NewInfoDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *InfoDetailLogic {
  18. return &InfoDetailLogic{
  19. Logger: logx.WithContext(ctx),
  20. ctx: ctx,
  21. svcCtx: svcCtx,
  22. }
  23. }
  24. type Infomation struct {
  25. Title string `ch:"title"`
  26. Summary string `ch:"summary"`
  27. Content string `ch:"content"`
  28. Basis string `ch:"basis"`
  29. Area string `ch:"area"`
  30. City string `ch:"city"`
  31. DataJsonId string `ch:"datajson_id"`
  32. ProjectName string `json:"project_name"`
  33. Href string `json:"href"`
  34. IsIgnore int `json:"isIgnore"`
  35. IsCreate int `json:"isCreate"`
  36. }
  37. func (l *InfoDetailLogic) InfoDetail(req *types.InfoDetailReq) (resp *types.Reply, err error) {
  38. logx.Info(fmt.Sprintf("%+v", req))
  39. resp = &types.Reply{}
  40. sql := `SELECT title, summary, content, basis, area, city, datajson_id FROM information.information WHERE id = ?`
  41. info := Infomation{}
  42. row := T.ClickhouseConn.QueryRow(context.TODO(), sql, req.InfoId)
  43. err1 := row.ScanStruct(&info)
  44. if err1 == nil {
  45. info.DataJsonId = encrypt.EncodeArticleId2ByCheck(info.DataJsonId)
  46. binfo, b := T.MgoBidding.FindById("bidding", info.DataJsonId, map[string]interface{}{"title": 1, "projectname": 1})
  47. if b && binfo != nil && len(*binfo) > 0 {
  48. info.ProjectName = common.ObjToString((*binfo)["projectname"])
  49. info.Href = fmt.Sprintf("/article/content/%s.html", encrypt.EncodeArticleId2ByCheck(info.DataJsonId))
  50. }
  51. q1 := `SELECT relate_id, is_ignore, is_create FROM crm.connection_status WHERE position_id = ? AND relate_id = ? AND itype = 2`
  52. cinfo := T.CrmMysql.SelectBySql(q1, req.PositionId, req.InfoId)
  53. if cinfo != nil && len(*cinfo) > 0 {
  54. info.IsIgnore = common.IntAll((*cinfo)[0]["is_ignore"])
  55. info.IsCreate = common.IntAll((*cinfo)[0]["is_create"])
  56. }
  57. resp.Data = info
  58. } else {
  59. resp.Error_code = -1
  60. resp.Error_msg = "未查询到情报信息"
  61. }
  62. return
  63. }