sendmaillogic.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package logic
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "bp.jydev.jianyu360.cn/BaseService/biService/entity"
  5. "bp.jydev.jianyu360.cn/BaseService/biService/service"
  6. "context"
  7. "github.com/tjfoc/gmsm/sm4"
  8. "regexp"
  9. "bp.jydev.jianyu360.cn/BaseService/biService/rpc/internal/svc"
  10. "bp.jydev.jianyu360.cn/BaseService/biService/rpc/pb"
  11. "github.com/zeromicro/go-zero/core/logx"
  12. )
  13. type SendMailLogic struct {
  14. ctx context.Context
  15. svcCtx *svc.ServiceContext
  16. logx.Logger
  17. }
  18. func NewSendMailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SendMailLogic {
  19. return &SendMailLogic{
  20. ctx: ctx,
  21. svcCtx: svcCtx,
  22. Logger: logx.WithContext(ctx),
  23. }
  24. }
  25. var reg1 = regexp.MustCompile("(?i)(insert|delete|update|master|truncate|declare|exec|alter|use)\\s")
  26. var reg2 = regexp.MustCompile("(?i)(select|from)\\s")
  27. func (l *SendMailLogic) SendMail(in *pb.ExportByDbReq) (*pb.BiReply, error) {
  28. if in.Query == "" || in.Token == "" || in.Title == "" || in.Content == "" || in.Mails == "" {
  29. return &pb.BiReply{
  30. ErrorCode: 1,
  31. ErrorMsg: "参数不能为空",
  32. Data: nil,
  33. }, nil
  34. }
  35. if reg1.MatchString(in.Query) && !reg2.MatchString(in.Query) {
  36. return &pb.BiReply{
  37. ErrorCode: 1,
  38. ErrorMsg: "查询语句不合法",
  39. Data: nil,
  40. }, nil
  41. }
  42. //if RsaEncrypt([]byte(fmt.Sprintf("%s&%s&%s&%s", gconv.String(in.Content), gconv.String(in.Mails), gconv.String(in.Query), gconv.String(in.Title)))) == in.Token {
  43. // return &pb.BiReply{
  44. // ErrorCode: 1,
  45. // ErrorMsg: "token验证不通过",
  46. // Data: nil,
  47. // }, nil
  48. //}
  49. res := (&service.ExportByDbReq{
  50. Token: in.Token,
  51. Title: in.Title,
  52. Content: in.Content,
  53. Mails: in.Mails,
  54. Query: in.Query,
  55. Stype: in.Stype,
  56. }).ExportDataByDb()
  57. return &pb.BiReply{
  58. ErrorCode: 0,
  59. ErrorMsg: "",
  60. Data: res,
  61. }, nil
  62. }
  63. func RsaEncrypt(data []byte) string {
  64. key := []byte(entity.PublicKey)
  65. b, _ := sm4.Sm4Ecb(key, data, true)
  66. return common.GetMd5String(string(b))
  67. }