123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package service
- import (
- "bytes"
- "context"
- "encoding/csv"
- "io"
- "strconv"
- "time"
- coinclient "go-common/app/service/main/coin/api"
- "go-common/library/log"
- )
- // FormatCSV format csv data.
- func (s *Service) FormatCSV(records [][]string) (res []byte) {
- buf := new(bytes.Buffer)
- w := csv.NewWriter(buf)
- for _, record := range records {
- if err := w.Write(record); err != nil {
- log.Error("error(%+v) writing record to csv:", err)
- return
- }
- }
- w.Flush()
- res = buf.Bytes()
- return
- }
- // Upload http upload file.
- func (s *Service) Upload(c context.Context, fileName, fileType string, expire int64, body io.Reader) (location string, err error) {
- if location, err = s.uploadDao.Upload(c, fileName, fileType, expire, body); err != nil {
- log.Error("s.upload.Upload() error(%v)", err)
- }
- return
- }
- // AnnualCoins .
- func (s *Service) AnnualCoins(c context.Context, reader *csv.Reader) (fmid []int64) {
- for {
- record, err := reader.Read()
- if err == io.EOF {
- log.Warn("AnnualCoins is over!")
- err = nil
- break
- }
- if err != nil {
- log.Error("AnnualCoins(%+v) Error(%+v)", record, err)
- err = nil
- continue
- }
- log.Info("AnnualCoins record(%+v)", record)
- if len(record) < 2 {
- log.Error("AnnualCoins record(%+v) len<2", record)
- continue
- }
- mid, err := strconv.ParseInt(record[0], 10, 64)
- if err != nil {
- log.Error("AnnualCoins strconv.ParseInt mid(%+v) err(%+v)", record, err)
- err = nil
- continue
- }
- coins, err := strconv.ParseInt(record[1], 10, 64)
- if err != nil {
- log.Error("AnnualCoins strconv.ParseInt coins(%+v) err(%+v)", record, err)
- err = nil
- continue
- }
- arg := &coinclient.ModifyCoinsReq{
- Mid: mid,
- Count: float64(coins),
- Reason: "风纪委奖励",
- IP: "",
- Operator: "credit",
- CheckZero: 1,
- Ts: time.Now().Unix(),
- }
- _, err = s.coinClient.ModifyCoins(context.Background(), arg)
- if err != nil {
- fmid = append(fmid, mid)
- log.Error("ModifyCoins arg(%+v), err(%+v)", arg, err)
- continue
- }
- if err = s.msgDao.SendSysMsg(context.Background(), mid, "您的风纪委硬币礼包已到账", "Hi 风纪委员你好,你的2018年风纪委硬币礼包已到账!快进入你的硬币账户看看吧!"); err != nil {
- log.Error("SendSysMsg mid(%d), err(%+v)", mid, err)
- }
- time.Sleep(time.Duration(50) * time.Millisecond)
- }
- return
- }
|