package logic import ( "app.yhyue.com/moapp/jybase/common" "bp.jydev.jianyu360.cn/BaseService/biService/entity" "bp.jydev.jianyu360.cn/BaseService/biService/service" "context" "github.com/tjfoc/gmsm/sm4" "regexp" "bp.jydev.jianyu360.cn/BaseService/biService/rpc/internal/svc" "bp.jydev.jianyu360.cn/BaseService/biService/rpc/pb" "github.com/zeromicro/go-zero/core/logx" ) type SendMailLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewSendMailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SendMailLogic { return &SendMailLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } var reg1 = regexp.MustCompile("(?i)(insert|delete|update|master|truncate|declare|exec|alter|use)\\s") var reg2 = regexp.MustCompile("(?i)(select|from)\\s") func (l *SendMailLogic) SendMail(in *pb.ExportByDbReq) (*pb.BiReply, error) { if in.Query == "" || in.Token == "" || in.Title == "" || in.Content == "" || in.Mails == "" { return &pb.BiReply{ ErrorCode: 1, ErrorMsg: "参数不能为空", Data: nil, }, nil } if reg1.MatchString(in.Query) && !reg2.MatchString(in.Query) { return &pb.BiReply{ ErrorCode: 1, ErrorMsg: "查询语句不合法", Data: nil, }, nil } //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 { // return &pb.BiReply{ // ErrorCode: 1, // ErrorMsg: "token验证不通过", // Data: nil, // }, nil //} res := (&service.ExportByDbReq{ Token: in.Token, Title: in.Title, Content: in.Content, Mails: in.Mails, Query: in.Query, Stype: in.Stype, }).ExportDataByDb() return &pb.BiReply{ ErrorCode: 0, ErrorMsg: "", Data: res, }, nil } func RsaEncrypt(data []byte) string { key := []byte(entity.PublicKey) b, _ := sm4.Sm4Ecb(key, data, true) return common.GetMd5String(string(b)) }