|
@@ -2,8 +2,13 @@ package customerService
|
|
|
|
|
|
import (
|
|
import (
|
|
"config"
|
|
"config"
|
|
|
|
+ "database/sql"
|
|
"errors"
|
|
"errors"
|
|
|
|
+ "fmt"
|
|
|
|
+ "github.com/tealeg/xlsx"
|
|
"log"
|
|
"log"
|
|
|
|
+ "order"
|
|
|
|
+ "os"
|
|
qutil "qfw/util"
|
|
qutil "qfw/util"
|
|
"strconv"
|
|
"strconv"
|
|
"strings"
|
|
"strings"
|
|
@@ -20,23 +25,38 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
|
|
}
|
|
}
|
|
// 更新消息
|
|
// 更新消息
|
|
if param.Id != 0 {
|
|
if param.Id != 0 {
|
|
|
|
+
|
|
msgLogId = strconv.Itoa(param.Id)
|
|
msgLogId = strconv.Itoa(param.Id)
|
|
- ok := util.JysqlDB.Update("message_send_log", map[string]interface{}{"id": param.Id}, map[string]interface{}{
|
|
|
|
- "send_usergroup_id": "",
|
|
|
|
- "send_usergroup_name": "",
|
|
|
|
- "receive_user_id": param.UserIds,
|
|
|
|
- "msg_type": param.MsgType,
|
|
|
|
- "title": param.Title,
|
|
|
|
- "content": param.Content,
|
|
|
|
- "send_mode": param.SendMode,
|
|
|
|
- "send_time": param.SendTime,
|
|
|
|
- "send_status": sendStatus,
|
|
|
|
- "update_time": time.Now().Format(qutil.Date_Full_Layout),
|
|
|
|
- "link": param.Link,
|
|
|
|
- "isdel": 1,
|
|
|
|
- "send_userid": loginUserId,
|
|
|
|
|
|
+ isOk := util.JysqlDB.ExecTx("更新消息出错", func(tx *sql.Tx) bool {
|
|
|
|
+ ok1 := util.JysqlDB.Delete("sendmsg_customer_info", map[string]interface{}{"msg_id": param.Id})
|
|
|
|
+ var fields []string
|
|
|
|
+ var args []interface{}
|
|
|
|
+ for _, val := range param.UserArr {
|
|
|
|
+ for k, v := range val {
|
|
|
|
+ fields = append(fields, k)
|
|
|
|
+ args = append(args, v)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ count, _ := util.JysqlDB.InsertBatch("sendmsg_customer_info", fields, args)
|
|
|
|
+ ok := util.JysqlDB.Update("message_send_log", map[string]interface{}{"id": param.Id}, map[string]interface{}{
|
|
|
|
+ "send_usergroup_id": "",
|
|
|
|
+ "send_usergroup_name": "",
|
|
|
|
+ "receive_user_id": param.UserIds,
|
|
|
|
+ "msg_type": param.MsgType,
|
|
|
|
+ "title": param.Title,
|
|
|
|
+ "content": param.Content,
|
|
|
|
+ "send_mode": param.SendMode,
|
|
|
|
+ "send_time": param.SendTime,
|
|
|
|
+ "send_status": sendStatus,
|
|
|
|
+ "update_time": time.Now().Format(qutil.Date_Full_Layout),
|
|
|
|
+ "link": param.Link,
|
|
|
|
+ "isdel": 1,
|
|
|
|
+ "send_userid": loginUserId,
|
|
|
|
+ })
|
|
|
|
+ return ok1 && ok && count > 0
|
|
})
|
|
})
|
|
- if !ok {
|
|
|
|
|
|
+
|
|
|
|
+ if !isOk {
|
|
return 0, errors.New("发送消息出错")
|
|
return 0, errors.New("发送消息出错")
|
|
}
|
|
}
|
|
if param.SendMode == 1 {
|
|
if param.SendMode == 1 {
|
|
@@ -79,6 +99,8 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
|
|
"link": param.Link,
|
|
"link": param.Link,
|
|
"isdel": 1,
|
|
"isdel": 1,
|
|
"send_userid": loginUserId,
|
|
"send_userid": loginUserId,
|
|
|
|
+ "send_name": loginUserName,
|
|
|
|
+ "sign": 1,
|
|
})
|
|
})
|
|
msgLogId = strconv.FormatInt(msgId, 10)
|
|
msgLogId = strconv.FormatInt(msgId, 10)
|
|
//如果是定时发送
|
|
//如果是定时发送
|
|
@@ -107,7 +129,7 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
|
|
orm := util.Tidb.NewSession()
|
|
orm := util.Tidb.NewSession()
|
|
err := orm.Begin()
|
|
err := orm.Begin()
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.Println("简历数据库连接出错:", err)
|
|
|
|
|
|
+ log.Println("建立数据库连接出错:", err)
|
|
}
|
|
}
|
|
log.Println("--------", sendStatus)
|
|
log.Println("--------", sendStatus)
|
|
userNames := ""
|
|
userNames := ""
|
|
@@ -126,7 +148,6 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
|
|
}
|
|
}
|
|
userIdArr := strings.Split(param.UserIds, ",")
|
|
userIdArr := strings.Split(param.UserIds, ",")
|
|
for _, val := range userIdArr {
|
|
for _, val := range userIdArr {
|
|
- i++
|
|
|
|
userId := val
|
|
userId := val
|
|
if config.SysConfigs.UserIdMap[userId] != "" {
|
|
if config.SysConfigs.UserIdMap[userId] != "" {
|
|
userId = config.SysConfigs.UserIdMap[userId]
|
|
userId = config.SysConfigs.UserIdMap[userId]
|
|
@@ -137,6 +158,7 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
|
|
} else {
|
|
} else {
|
|
projectIdMap.Store(userId, true)
|
|
projectIdMap.Store(userId, true)
|
|
}
|
|
}
|
|
|
|
+ i++
|
|
userIds += userId + ","
|
|
userIds += userId + ","
|
|
|
|
|
|
//查询mongo库用户信息
|
|
//查询mongo库用户信息
|
|
@@ -200,3 +222,84 @@ func CustomSendMsgService(param *customMsg, sendStatus int, loginUserName string
|
|
}
|
|
}
|
|
return 0, errors.New("发送消息出错")
|
|
return 0, errors.New("发送消息出错")
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+func MyCustomerService(state, updateTimeStart, updateTimeEnd, companyName, phone, adminPhone string, offSet, pageSize int) (count int64, data *[]map[string]interface{}) {
|
|
|
|
+ sql := "SELECT * FROM customer where owner = '" + adminPhone + "' "
|
|
|
|
+ str := ""
|
|
|
|
+ sqlc := "SELECT COUNt(id) FROM customer where owner = '" + adminPhone + "' "
|
|
|
|
+
|
|
|
|
+ if state != "" {
|
|
|
|
+ str += " and status999 = " + state
|
|
|
|
+ }
|
|
|
|
+ if updateTimeStart != "" {
|
|
|
|
+ str += " and lastUpdateTime >= " + updateTimeStart
|
|
|
|
+ }
|
|
|
|
+ if updateTimeEnd != "" {
|
|
|
|
+ str += " and lastUpdateTime < " + updateTimeEnd
|
|
|
|
+ }
|
|
|
|
+ if companyName != "" {
|
|
|
|
+ str += " and company = " + companyName
|
|
|
|
+ }
|
|
|
|
+ if phone != "" {
|
|
|
|
+ str += " and phone = " + phone
|
|
|
|
+ }
|
|
|
|
+ log.Println(sql, sqlc)
|
|
|
|
+ if str != "" {
|
|
|
|
+ sql += str + " order by id desc limit " + fmt.Sprint(offSet) + " " + "," + " " + fmt.Sprint(pageSize)
|
|
|
|
+ sqlc += str
|
|
|
|
+ }
|
|
|
|
+ log.Println("sql:", sql)
|
|
|
|
+ log.Println("sqlc:", sqlc)
|
|
|
|
+ count = util.CusTiDb.CountBySql(sqlc)
|
|
|
|
+ if count > 0 {
|
|
|
|
+ data = util.CusTiDb.SelectBySql(sql)
|
|
|
|
+ }
|
|
|
|
+ return count, data
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func SaveFile(rdata [][]interface{}, templatePath string, savePath string, saveName string, domainPath string) (url string, err error) {
|
|
|
|
+ var xf *xlsx.File
|
|
|
|
+ if templatePath != "" {
|
|
|
|
+ xf, err = xlsx.OpenFile(templatePath)
|
|
|
|
+ if err != nil {
|
|
|
|
+ log.Println("fields file not foud", err.Error())
|
|
|
|
+ return "", err
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ sh := xf.Sheets[0]
|
|
|
|
+
|
|
|
|
+ for _, data := range rdata {
|
|
|
|
+ row := sh.AddRow()
|
|
|
|
+ for j := 0; j < len(data); j++ {
|
|
|
|
+ row.AddCell().SetValue(data[j])
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ now := time.Now()
|
|
|
|
+ t := fmt.Sprintf("%d%d%d", now.Year(), now.Month(), now.Day())
|
|
|
|
+ dir := savePath + t + "/"
|
|
|
|
+ dirs := domainPath + t + "/"
|
|
|
|
+ if b := order.PathExists(savePath); !b {
|
|
|
|
+ err1 := os.MkdirAll(dir, os.ModePerm)
|
|
|
|
+ if err1 != nil {
|
|
|
|
+ log.Println("mkdir err", dir)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ t2 := fmt.Sprintf("%d%d%d%d%d%d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
|
|
|
|
+
|
|
|
|
+ fileName := saveName + t2 + ".xlsx"
|
|
|
|
+ err = xf.Save(dir + fileName)
|
|
|
|
+ url = qutil.ObjToString(config.SysConfigs.Domain) + dirs + fileName
|
|
|
|
+ return url, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func GetUserById(id string) (userData *map[string]interface{}, ok bool) {
|
|
|
|
+ userData, ok = util.MQFW.FindById("user", id, `phone,s_phone`)
|
|
|
|
+ //log.Println(userData, ok)
|
|
|
|
+ return userData, ok
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func FindUserInfo(msgId int, offSet, pageSize int) *[]map[string]interface{} {
|
|
|
|
+ users := util.JysqlDB.Find("sendmsg_customer_info", map[string]interface{}{"msg_id": msgId}, "", "createtime desc", offSet, pageSize)
|
|
|
|
+ return users
|
|
|
|
+}
|