Kaynağa Gözat

fix: 渠道管理功能优化

liuyaqi 2 yıl önce
ebeveyn
işleme
0a82b136db

+ 20 - 0
opms_parent/app/service/base.go

@@ -374,3 +374,23 @@ func StringsContains(s []string, ele string) bool {
 	}
 	return false
 }
+
+func UserIdByRoles(db gdb.DB, roles ...string) ([]int, error) {
+	roleId, err := ColumnInt(db.Table("sys_role").Where("role_key in (?)", roles), "id")
+	if err != nil {
+		return nil, err
+	}
+	return ColumnInt(db.Table("sys_user_role").Where("role_id in (?)", roleId), "user_id")
+}
+
+func SliceIntDeduplication(elems []int) []int {
+	emap := map[int]struct{}{}
+	for _, i := range elems {
+		emap[i] = struct{}{}
+	}
+	ret := []int{}
+	for i := range emap {
+		ret = append(ret, i)
+	}
+	return ret
+}

+ 19 - 1
opms_parent/app/service/base/base_distributor.go

@@ -1321,12 +1321,30 @@ func notifyToComplete() {
 		glog.Errorf("完善经销商定时提醒异常 %s", err.Error())
 		return
 	}
+	if len(dist) == 0 {
+		return
+	}
+
+	extraUserId, err := service.UserIdByRoles(dao.DB, "SalesDirector", "SaleAssociate")
+	if err != nil {
+		glog.Errorf("查询销售助理销售总监异常 %s", err.Error())
+		return
+	}
+	glog.Infof("销售助理销售总监 %v", extraUserId)
+
 	for _, d := range dist {
+		recvUserIds := service.SliceIntDeduplication(extraUserId)
+		recvUserIds = append(recvUserIds, d.BelongSaleId)
+		recvUserIdString := []string{}
+		for _, uid := range recvUserIds {
+			recvUserIdString = append(recvUserIdString, strconv.Itoa(uid))
+		}
+
 		msg := g.MapStrStr{
 			"msgTitle":    "经销商信息完善提醒",
 			"msgContent":  fmt.Sprintf("<p>经销商:%s 的必要信息未填写完整,请及时完善</p>", d.DistName),
 			"msgType":     "20",
-			"recvUserIds": strconv.Itoa(d.BelongSaleId),
+			"recvUserIds": strings.Join(recvUserIdString, ","),
 			"msgStatus":   "10",
 			"sendType":    "10",
 		}