sendmaillogic.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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/rpc/internal/svc"
  6. "bp.jydev.jianyu360.cn/BaseService/biService/rpc/pb"
  7. "bp.jydev.jianyu360.cn/BaseService/biService/service"
  8. "context"
  9. "fmt"
  10. "github.com/gogf/gf/v2/util/gconv"
  11. "github.com/tjfoc/gmsm/sm4"
  12. "github.com/zeromicro/go-zero/core/logx"
  13. )
  14. type SendMailLogic struct {
  15. ctx context.Context
  16. svcCtx *svc.ServiceContext
  17. logx.Logger
  18. }
  19. func NewSendMailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SendMailLogic {
  20. return &SendMailLogic{
  21. ctx: ctx,
  22. svcCtx: svcCtx,
  23. Logger: logx.WithContext(ctx),
  24. }
  25. }
  26. func (l *SendMailLogic) SendMail(in *pb.ExportByDbReq) (*pb.BiReply, error) {
  27. if in.Token == "" || in.Title == "" || in.Content == "" || in.Mails == "" {
  28. return &pb.BiReply{
  29. ErrorCode: 1,
  30. ErrorMsg: "参数不能为空",
  31. Data: nil,
  32. }, nil
  33. }
  34. logx.Info("加密token:", RsaEncrypt([]byte(fmt.Sprintf("%s&%s&%s&%s", gconv.String(in.Content), gconv.String(in.Mails), gconv.String(in.FileName), gconv.String(in.Title)))))
  35. if RsaEncrypt([]byte(fmt.Sprintf("%s&%s&%s&%s", gconv.String(in.Content), gconv.String(in.Mails), gconv.String(in.FileName), gconv.String(in.Title)))) != in.Token {
  36. return &pb.BiReply{
  37. ErrorCode: 1,
  38. ErrorMsg: "token验证不通过",
  39. Data: nil,
  40. }, nil
  41. }
  42. res := (&service.ExportByDbReq{
  43. Token: in.Token,
  44. Title: in.Title,
  45. Content: in.Content,
  46. Mails: in.Mails,
  47. FileName: in.FileName,
  48. Datas: in.Datas,
  49. }).ExportDataByDb()
  50. return &pb.BiReply{
  51. ErrorCode: 0,
  52. ErrorMsg: "",
  53. Data: res,
  54. }, nil
  55. }
  56. func RsaEncrypt(data []byte) string {
  57. key := []byte(entity.PublicKey)
  58. b, _ := sm4.Sm4Ecb(key, data, true)
  59. return common.GetMd5String(string(b))
  60. }