123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package services
- import (
- "fmt"
- "hongze/hz_crm_api/models/company"
- "hongze/hz_crm_api/models/eta_business"
- roadshowService "hongze/hz_crm_api/services/roadshow"
- "hongze/hz_crm_api/utils"
- "time"
- )
- func Task() {
- fmt.Println("task start")
- go AutoInsertLogToDB()
- go AutoInsertAdminOperateRecordToDB()
- go roadshowService.InsertSyncCalendarFromShanghai() // 上海路演数据同步到自系统 从Redis获取
- //go FixEtaBusinessCodeEncrypt()
- //InitContractUnusual()
- fmt.Println("task end")
- }
- // FixEtaBusinessCodeEncrypt 修复商家编码
- func FixEtaBusinessCodeEncrypt() {
- ob := new(eta_business.EtaBusiness)
- list, e := ob.GetItemsByCondition("", make([]interface{}, 0), []string{}, "")
- if e != nil {
- fmt.Println(e.Error())
- return
- }
- for _, v := range list {
- v.CodeEncrypt = utils.MD5(fmt.Sprintf("%s%s", v.BusinessCode, utils.BusinessCodeSalt))
- if e = v.Update([]string{"CodeEncrypt"}); e != nil {
- fmt.Println(e.Error())
- return
- }
- }
- }
- // InitContractUnusual 补全续约统计异常的客户
- func InitContractUnusual() (err error) {
- defer func() {
- if err != nil {
- fmt.Println("initYearContractUnusual 补全未续约合同记录,Err:" + err.Error())
- utils.FileLog.Info("initYearContractUnusual 补全未续约合同记录,Err:" + err.Error())
- }
- }()
- addList := make([]*company.CompanyRenewalRecord, 0)
- // 整理时间表
- startDate, _ := time.ParseInLocation(utils.FormatDate, "2023-01-01", time.Local)
- endDate, _ := time.ParseInLocation(utils.FormatDate, "2023-12-07", time.Local)
- for startDate.Before(endDate) || startDate == endDate {
- tmpC := ` AND end_date = ? AND status = 1 AND contract_type IN ( "新签合同", "续约合同" ) AND product_id = 1`
- var tmpP []interface{}
- before61 := startDate.AddDate(0, 0, -61)
- tmpP = append(tmpP, before61)
- contractList, e := company.GetCompanyContractList(tmpC, tmpP)
- if e != nil {
- err = fmt.Errorf("查询合同列表失败, ERR:%s", e)
- return
- }
- if len(contractList) > 0 {
- contractMap := make(map[int]*company.CompanyContractResp)
- for _, v := range contractList {
- //查询这个合同是否存在续约合同,起始日大于今日,或者截止日
- contractMap[v.CompanyId] = v
- }
- ficcNormalMap := make(map[int]struct{})
- tmpC = ` AND start_date >= ? AND start_date <= ? AND status = 1 AND contract_type="续约合同" AND product_id = 1`
- tmpP = make([]interface{}, 0)
- tmpP = append(tmpP, before61, startDate)
- contractNormalList, e := company.GetCompanyContractList(tmpC, tmpP)
- if e != nil {
- err = fmt.Errorf("查询合同列表失败, ERR:%s", e)
- return
- }
- for _, v := range contractNormalList {
- ficcNormalMap[v.CompanyId] = struct{}{}
- }
- for _, v := range contractList {
- sellers, tErr := company.GetCompanyProductByCompanyIdAndProductId(v.CompanyId, v.ProductId)
- if tErr != nil {
- err = tErr
- return
- }
- //查询这个合同是否存在续约合同,起始日大于今日,或者截止日
- if _, ok := ficcNormalMap[v.CompanyId]; !ok {
- tmp := &company.CompanyRenewalRecord{
- CompanyId: v.CompanyId,
- ProductId: v.ProductId,
- Source: 1,
- SellerId: sellers.SellerId,
- SellerName: sellers.SellerName,
- CreateTime: startDate,
- ModifyTime: startDate,
- }
- addList = append(addList, tmp)
- }
- }
- }
- startDate = startDate.AddDate(0, 0, 1)
- }
- if len(addList) > 0 {
- item := new(company.CompanyRenewalRecord)
- err = item.InsertMulti(addList)
- }
- return
- }
|