Przeglądaj źródła

Merge branch 'master' of http://8.136.199.33:3000/hongze/hongze_mobile_admin

xingzai 2 lat temu
rodzic
commit
208f68c7df

+ 49 - 17
controllers/admin_wx.go

@@ -3,6 +3,7 @@ package controllers
 import (
 	"encoding/json"
 	"hongze/hongze_mobile_admin/models/tables/admin"
+	"hongze/hongze_mobile_admin/models/tables/company_remind_record"
 	"hongze/hongze_mobile_admin/services"
 	"hongze/hongze_mobile_admin/utils"
 	"time"
@@ -19,7 +20,7 @@ type AdminWxController struct {
 // @Param   Token   query   string  true       "授权token"
 // @Success 200 {object} wechat.WxLoginResp
 // @router /send_sms_code [post]
-func (c *AdminWxController) SendSmsCode()  {
+func (c *AdminWxController) SendSmsCode() {
 	var req admin.SmsCodeReq
 	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
 	if err != nil {
@@ -37,12 +38,12 @@ func (c *AdminWxController) SendSmsCode()  {
 
 	areaNum := req.AreaNum
 	//获取token,如果没有token不允许发送验证码
-	infoJson, err := utils.Rc.RedisString(utils.HZ_MOBILE_ADMIN_WXLOGIN_TOKEN+req.Token)
+	infoJson, err := utils.Rc.RedisString(utils.HZ_MOBILE_ADMIN_WXLOGIN_TOKEN + req.Token)
 	if err != nil {
 		c.FailWithMessage("授权信息不存在", "授权信息不存在"+err.Error())
 		return
 	}
-	info := map[string]string{"open_id":"", "union_id":""}
+	info := map[string]string{"open_id": "", "union_id": ""}
 	err = json.Unmarshal([]byte(infoJson), &info)
 	if err != nil {
 		c.FailWithMessage("授权信息解析失败", "授权信息解析失败"+err.Error())
@@ -58,17 +59,17 @@ func (c *AdminWxController) SendSmsCode()  {
 	if err != nil {
 		if err.Error() == utils.ErrNoRow() {
 			err = nil
-		}else{
+		} else {
 			c.FailWithMessage("查询管理员信息失败", "查询管理员信息失败"+err.Error())
 			return
 		}
-	}else{
+	} else {
 		if adminInfo.Mobile != req.Mobile {
 			c.FailWithMessage("该微信已被其他账号绑定", "该微信已被其他账号绑定")
 			return
-		}else{
+		} else {
 			resp := &admin.WxSmsResp{
-				BindFlag:  true,
+				BindFlag: true,
 			}
 			c.OkDetailed(resp, "已绑定")
 			return
@@ -87,7 +88,7 @@ func (c *AdminWxController) SendSmsCode()  {
 	}
 	if adminMobileInfo.OpenId == openId {
 		resp := &admin.WxSmsResp{
-			BindFlag:  true,
+			BindFlag: true,
 		}
 		c.OkDetailed(resp, "已绑定")
 		return
@@ -95,7 +96,7 @@ func (c *AdminWxController) SendSmsCode()  {
 
 	//发送短信
 	var sendRet bool
-	code :=  utils.GetRandDigit(4)
+	code := utils.GetRandDigit(4)
 	if areaNum == "86" || areaNum == "" || areaNum == "0" {
 		//国内的短信
 		sendRet = services.SendSmsCode(req.Mobile, code)
@@ -115,7 +116,7 @@ func (c *AdminWxController) SendSmsCode()  {
 		return
 	}
 	resp := &admin.WxSmsResp{
-		SmsFlag:  true,
+		SmsFlag: true,
 	}
 	c.OkDetailed(resp, "发送成功")
 	return
@@ -129,7 +130,7 @@ func (c *AdminWxController) SendSmsCode()  {
 // @Param   Code     query   string  true       "短信验证码"
 // @Success 200 {object} wechat.WxLoginResp
 // @router /bind_mobile [post]
-func (c *AdminWxController) BindMobile()  {
+func (c *AdminWxController) BindMobile() {
 	var req admin.BindMobileReq
 	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
 	if err != nil {
@@ -154,17 +155,17 @@ func (c *AdminWxController) BindMobile()  {
 		c.FailWithMessage("验证码错误或者已过期", "验证码错误或者已过期"+err.Error())
 		return
 	}
-	if  req.Code != code {
+	if req.Code != code {
 		c.FailWithMessage("验证码错误", "验证码错误")
 		return
 	}
 	//获取token,如果没有token不允许发送验证码
-	infoJson, err := utils.Rc.RedisString(utils.HZ_MOBILE_ADMIN_WXLOGIN_TOKEN+req.Token)
+	infoJson, err := utils.Rc.RedisString(utils.HZ_MOBILE_ADMIN_WXLOGIN_TOKEN + req.Token)
 	if err != nil {
 		c.FailWithMessage("授权信息不存在", "授权信息不存在"+err.Error())
 		return
 	}
-	info := map[string]string{"open_id":"", "union_id":""}
+	info := map[string]string{"open_id": "", "union_id": ""}
 	err = json.Unmarshal([]byte(infoJson), &info)
 	if err != nil {
 		c.FailWithMessage("授权信息解析失败", "授权信息解析失败"+err.Error())
@@ -181,15 +182,15 @@ func (c *AdminWxController) BindMobile()  {
 	if err != nil {
 		if err.Error() == utils.ErrNoRow() {
 			err = nil
-		}else{
+		} else {
 			c.FailWithMessage("查询管理员信息失败", "查询管理员信息失败"+err.Error())
 			return
 		}
-	}else{
+	} else {
 		if adminInfo.Mobile != req.Mobile {
 			c.FailWithMessage("该微信已被其他账号绑定", "该微信已被其他账号绑定")
 			return
-		}else{
+		} else {
 			c.Ok()
 			return
 		}
@@ -220,3 +221,34 @@ func (c *AdminWxController) BindMobile()  {
 	c.Ok()
 	return
 }
+
+// CompanyRemindList
+// @Title 客户过期提醒记录
+// @Description 客户过期提醒记录
+// @Param   UniqueCode   query   string  true       "唯一编码"
+// @Success 200 {object} company_remind_record.CompanyRemindRecordResp
+// @router /company_remind/list [get]
+func (c *AdminWxController) CompanyRemindList() {
+	uniqueCode := c.GetString("UniqueCode")
+	if uniqueCode == "" {
+		c.FailWithMessage("来源异常", "UniqueCode异常")
+		return
+	}
+
+	list, err := company_remind_record.GetAllCompanyRemindRecordList(uniqueCode)
+	if err != nil {
+		c.FailWithMessage("获取失败", "获取客户即将过期提醒失败:"+err.Error())
+		return
+	}
+	lenList := len(list)
+	response := company_remind_record.CompanyRemindRecordResp{
+		Total: lenList,
+		List:  list,
+	}
+	if len(list) > 0 {
+		response.RemindType = list[0].Type
+		response.EndDate = list[0].EndDate
+	}
+	c.OkDetailed(response, "获取成功")
+	return
+}

+ 8 - 6
controllers/business_trip/business_apply.go

@@ -221,12 +221,13 @@ func (this *BusinessTrip) ApplyAdd() {
 		first := "您好,有新的申请待处理"
 		keyword1 := sysUser.RealName
 		keyword2 := "--" //sysUser.Mobile
-		keyword3 := time.Now().Format(utils.FormatDateTime)
+		//keyword3 := time.Now().Format(utils.FormatDateTime)
+		keyword3 := req.ArriveDate + "至" + req.ReturnDate
 		var keyword4 string
 		if req.PeerPeopleId != "" {
-			keyword4 = req.ArriveDate + "至" + req.ReturnDate + "," + req.Transportation + "前往" + req.Province + req.City + "," + "同行人" + req.PeerPeopleName
+			keyword4 = req.Transportation + "前往" + req.Province + req.City + "," + "同行人" + req.PeerPeopleName
 		} else {
-			keyword4 = req.ArriveDate + "至" + req.ReturnDate + "," + req.Transportation + "前往" + req.Province + req.City
+			keyword4 = req.Transportation + "前往" + req.Province + req.City
 		}
 		remark := "请尽快完成审批"
 		go services.SendWxMsgWithRoadshowPending(first, keyword1, keyword2, keyword3, keyword4, remark, wxAppPath, approveItem.Mobile)
@@ -465,12 +466,13 @@ func (this *BusinessTrip) ApplyEdit() {
 		first := "您好,有新的申请待处理"
 		keyword1 := sysUser.RealName
 		keyword2 := "--" //sysUser.Mobile
-		keyword3 := time.Now().Format(utils.FormatDateTime)
+		//keyword3 := time.Now().Format(utils.FormatDateTime)
+		keyword3 := req.ArriveDate + "至" + req.ReturnDate
 		var keyword4 string
 		if req.PeerPeopleId != "" {
-			keyword4 = req.ArriveDate + "至" + req.ReturnDate + "," + req.Transportation + "前往" + req.Province + req.City + "," + "同行人" + req.PeerPeopleName
+			keyword4 = req.Transportation + "前往" + req.Province + req.City + "," + "同行人" + req.PeerPeopleName
 		} else {
-			keyword4 = req.ArriveDate + "至" + req.ReturnDate + "," + req.Transportation + "前往" + req.Province + req.City
+			keyword4 = req.Transportation + "前往" + req.Province + req.City
 		}
 		remark := "请尽快完成审批"
 		go services.SendWxMsgWithRoadshowPending(first, keyword1, keyword2, keyword3, keyword4, remark, wxAppPath, approveItem.Mobile)

+ 1 - 0
controllers/business_trip/business_approve.go

@@ -160,6 +160,7 @@ func (this *BusinessTrip) ApplyApprove() {
 		var remark string
 		if status == "已驳回" {
 			remark = req.RefuseReason
+			keyword2 = status + `(` + req.RefuseReason + `)`
 		}
 		go services.SendWxMsgWithRoadshowDeleteNotice(first, keyword1, keyword2, remark, wxAppPath, applyItem.Mobile)
 	}

+ 36 - 35
controllers/roadshow/calendar.go

@@ -218,7 +218,7 @@ func (this *CalendarController) Add() {
 
 		//模板消息通知
 		{
-			go func(researcherId,tmpRsCalendarId,tmpRsCalendarResearcherId int) {
+			go func(researcherId, tmpRsCalendarId, tmpRsCalendarResearcherId int) {
 				var wxAppPath string
 				sysAdmin, _ := admin.GetAdminWxById(researcherId)
 				if sysAdmin != nil {
@@ -227,14 +227,15 @@ func (this *CalendarController) Add() {
 						first := "您收到一个新的【" + req.ActivityType + "】申请,请及时处理"
 						keyword1 := sysUser.RealName
 						keyword2 := "--"
-						keyword3 := time.Now().Format(utils.FormatDateTime)
+						//keyword3 := time.Now().Format(utils.FormatDateTime)
 						startDateSub := v.StartDate[5:]
 						startDateSub = strings.Replace(startDateSub, "-", ".", -1)
+						keyword3 := startDateSub + "(" + v.StartWeek + ")" + " " + v.StartTime[:5] + "~" + v.EndTime[:5]
 						var keyword4 string
 						if req.ActivityType == "路演" {
-							keyword4 = startDateSub + "(" + v.StartWeek + ")" + " " + v.StartTime[:5] + "~" + v.EndTime[:5] + " ," + req.CompanyName + "(" + req.RoadshowType + req.ActivityType + ")"
+							keyword4 = req.CompanyName + "(" + req.RoadshowType + req.ActivityType + ")"
 						} else {
-							keyword4 = startDateSub + "(" + v.StartWeek + ")" + " " + v.StartTime[:5] + "~" + v.EndTime[:5] + " ," + req.Theme + "(" + req.RoadshowType + req.ActivityType + ")"
+							keyword4 = req.Theme + "(" + req.RoadshowType + req.ActivityType + ")"
 						}
 						remark := "请尽快完成审批"
 						//wxAppPath := "pages-approve/activity/detail?RsCalendarId=" + strconv.Itoa(int(rsCalendarId)) + "&RsCalendarResearcherId=" + strconv.Itoa(int(rsCalendarResearcherId))
@@ -246,14 +247,14 @@ func (this *CalendarController) Add() {
 						first := sysUser.RealName + "为你添加了一场【" + req.ActivityType + "】"
 						startDate := researcher.StartDate[5:]
 						startDate = strings.Replace(startDate, "-", ".", -1)
-						keyword1 := "会议时间:" + startDate + "(" + researcher.StartWeek + ")" + " " + researcher.StartTime[:5] + "-" + researcher.EndTime[:5]
-						keyword2 := "--"
+						keyword1 := startDate + "(" + researcher.StartWeek + ")" + " " + researcher.StartTime[:5] + "-" + researcher.EndTime[:5]
+						keyword2 := sysUser.RealName + "为你添加了【" + req.ActivityType + "】"
 						if sysAdmin.OpenId != "" {
 							go services.SendWxMsgWithRoadshowDeleteNotice(first, keyword1, keyword2, "", wxAppPath, sysAdmin.Mobile)
 						}
 					}
 				}
-			}(v.ResearcherId,int(rsCalendarId),int(rsCalendarResearcherId))
+			}(v.ResearcherId, int(rsCalendarId), int(rsCalendarResearcherId))
 		}
 	}
 	this.OkDetailed(nil, "保存成功")
@@ -496,16 +497,13 @@ func (this *CalendarController) Accept() {
 		if rsCalendar != nil {
 			sysAdmin, _ := admin.GetAdminById(rsCalendar.SysUserId)
 			first := "【" + this.AdminWx.RealName + "】接受了你的【" + rsCalendar.ActivityType + "】申请"
-			var keyword1 string
-			if rsCalendar.ActivityType == "路演" {
-				keyword1 = rsCalendar.CompanyName + "," + rsCalendar.RoadshowType + rsCalendar.ActivityType
-			} else {
-				keyword1 = rsCalendar.Theme + "," + rsCalendar.RoadshowType + rsCalendar.ActivityType
-			}
-			keyword2 := "已接受"
+			var keyword1, keyword2, keyword3, keyword4, keyword5 string
+			keyword1 = rsCalendar.CompanyName + "(" + rsCalendar.RoadshowType + rsCalendar.ActivityType + ")"
+			keyword2 = rsCalendar.ActivityType
+			keyword4 = `【` + this.AdminWx.RealName + `】已接受`
 			remark := ""
 			if sysAdmin.Mobile != "" {
-				go services.SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, remark, sysAdmin.Mobile, "", "")
+				go services.SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, keyword3, keyword4, keyword5, remark, sysAdmin.Mobile, "", "")
 			}
 		}
 	}
@@ -582,16 +580,15 @@ func (this *CalendarController) Refuse() {
 		if rsCalendar != nil {
 			sysAdmin, _ := admin.GetAdminById(rsCalendar.SysUserId)
 			first := "【" + this.AdminWx.RealName + "】拒绝了你的【" + rsCalendar.ActivityType + "】申请"
-			var keyword1 string
-			if rsCalendar.ActivityType == "路演" {
-				keyword1 = rsCalendar.CompanyName + "," + rsCalendar.RoadshowType + rsCalendar.ActivityType
-			} else {
-				keyword1 = rsCalendar.Theme + "," + rsCalendar.RoadshowType + rsCalendar.ActivityType
-			}
-			keyword2 := "已拒绝"
+			var keyword1, keyword2, keyword3, keyword4, keyword5 string
+			keyword1 = rsCalendar.CompanyName + "(" + rsCalendar.RoadshowType + rsCalendar.ActivityType + ")"
+			keyword2 = rsCalendar.ActivityType
+			keyword4 = `【` + this.AdminWx.RealName + `】已拒绝`
+			keyword5 = req.RefuseReason
+
 			remark := req.RefuseReason
 			if sysAdmin.Mobile != "" {
-				go services.SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, remark, sysAdmin.Mobile, "", "")
+				go services.SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, keyword3, keyword4, keyword5, remark, sysAdmin.Mobile, "", "")
 			}
 		}
 	}
@@ -1399,20 +1396,21 @@ func (this *CalendarController) Edit() {
 
 			if req.EditType == 2 {
 				//模板消息通知
-				go func(researcherId,tmpRsCalendarId,tmpRsCalendarResearcherId int) {
+				go func(researcherId, tmpRsCalendarId, tmpRsCalendarResearcherId int) {
 					sysAdmin, _ := admin.GetAdminById(researcherId)
 					if sysAdmin != nil && req.ActivityType != "内部会议" && req.ActivityType != "报告电话会" {
 						first := "您收到一个新的【" + req.ActivityType + "】申请,请及时处理"
 						keyword1 := sysUser.RealName
 						keyword2 := "--"
-						keyword3 := time.Now().Format(utils.FormatDateTime)
+						//keyword3 := time.Now().Format(utils.FormatDateTime)
 						startDateSub := v.StartDate[5:]
 						startDateSub = strings.Replace(startDateSub, "-", ".", -1)
+						keyword3 := startDateSub + "(" + v.StartWeek + ")" + " " + v.StartTime[:5] + "~" + v.EndTime[:5]
 						var keyword4 string
 						if req.ActivityType == "路演" {
-							keyword4 = startDateSub + "(" + v.StartWeek + ")" + " " + v.StartTime[:5] + "~" + v.EndTime[:5] + " ," + req.CompanyName + "(" + req.RoadshowType + req.ActivityType + ")"
+							keyword4 = req.CompanyName + "(" + req.RoadshowType + req.ActivityType + ")"
 						} else {
-							keyword4 = startDateSub + "(" + v.StartWeek + ")" + " " + v.StartTime[:5] + "~" + v.EndTime[:5] + " ," + req.Theme + "(" + req.RoadshowType + req.ActivityType + ")"
+							keyword4 = req.Theme + "(" + req.RoadshowType + req.ActivityType + ")"
 						}
 						remark := "请尽快完成审批"
 						wxAppPath := "pages-approve/activity/detail?RsCalendarId=" + strconv.Itoa(req.RsCalendarId) + "&RsCalendarResearcherId=" + strconv.Itoa(tmpRsCalendarResearcherId)
@@ -1420,7 +1418,7 @@ func (this *CalendarController) Edit() {
 							services.SendWxMsgWithRoadshowPending(first, keyword1, keyword2, keyword3, keyword4, remark, wxAppPath, sysAdmin.Mobile)
 						}
 					}
-				}(v.ResearcherId,req.RsCalendarId,rsCalendarResearcherItem.RsCalendarResearcherId)
+				}(v.ResearcherId, req.RsCalendarId, rsCalendarResearcherItem.RsCalendarResearcherId)
 			}
 		}
 	} else {
@@ -1477,7 +1475,7 @@ func (this *CalendarController) Edit() {
 			researcher.RsCalendarResearcherId = int(rsCalendarResearcherId)
 			go rs.CalendarToSH(calendar, *researcher)
 
-			go func(researcherId,tmpRsCalendarId,tmpRsCalendarResearcherId int) {
+			go func(researcherId, tmpRsCalendarId, tmpRsCalendarResearcherId int) {
 				sysAdmin, _ := admin.GetAdminById(researcherId)
 				if sysAdmin != nil && req.ActivityType != "内部会议" && req.ActivityType != "报告电话会" {
 					first := "您收到一个新的【" + req.ActivityType + "】申请,请及时处理"
@@ -1486,11 +1484,12 @@ func (this *CalendarController) Edit() {
 					keyword3 := time.Now().Format(utils.FormatDateTime)
 					startDateSub := v.StartDate[5:]
 					startDateSub = strings.Replace(startDateSub, "-", ".", -1)
+					//keyword3 := startDateSub + "(" + v.StartWeek + ")" + " " + v.StartTime[:5] + "~" + v.EndTime[:5]
 					var keyword4 string
 					if req.ActivityType == "路演" {
-						keyword4 = startDateSub + "(" + v.StartWeek + ")" + " " + v.StartTime[:5] + "~" + v.EndTime[:5] + " ," + req.CompanyName + "(" + req.RoadshowType + req.ActivityType + ")"
+						keyword4 = req.CompanyName + "(" + req.RoadshowType + req.ActivityType + ")"
 					} else {
-						keyword4 = startDateSub + "(" + v.StartWeek + ")" + " " + v.StartTime[:5] + "~" + v.EndTime[:5] + " ," + req.Theme + "(" + req.RoadshowType + req.ActivityType + ")"
+						keyword4 = req.Theme + "(" + req.RoadshowType + req.ActivityType + ")"
 					}
 					remark := "请尽快完成审批"
 					wxAppPath := "pages-approve/activity/detail?RsCalendarId=" + strconv.Itoa(tmpRsCalendarId) + "&RsCalendarResearcherId=" + strconv.Itoa(tmpRsCalendarResearcherId)
@@ -1499,7 +1498,7 @@ func (this *CalendarController) Edit() {
 					}
 				}
 
-			}(v.ResearcherId,req.RsCalendarId,int(rsCalendarResearcherId))
+			}(v.ResearcherId, req.RsCalendarId, int(rsCalendarResearcherId))
 		}
 	}
 	this.OkDetailed(nil, "保存成功")
@@ -1717,7 +1716,7 @@ func (this *CalendarController) Delete() {
 		//模板消息通知
 		{
 			if rsCalendarItem != nil && rsCalendarResearcherItem != nil {
-				go func(tmpRsCalendarItem roadshow.RsCalendar,tmpRsCalendarResearcherItem roadshow.RsCalendarResearcher) {
+				go func(tmpRsCalendarItem roadshow.RsCalendar, tmpRsCalendarResearcherItem roadshow.RsCalendarResearcher) {
 					sysAdmin, _ := admin.GetAdminById(tmpRsCalendarResearcherItem.ResearcherId)
 					var first string
 					var wxAppPath string
@@ -1727,6 +1726,7 @@ func (this *CalendarController) Delete() {
 
 					first = "【" + sysUser.RealName + "】删除了你的【" + tmpRsCalendarItem.ActivityType + "】安排"
 
+					keyword2 := "【" + sysUser.RealName + "】已删除(" + req.DeleteReason + ")"
 					var keyword1 string
 					if tmpRsCalendarItem.ActivityType == "路演" {
 						keyword1 = tmpRsCalendarItem.CompanyName + "," + tmpRsCalendarItem.RoadshowType + tmpRsCalendarItem.ActivityType
@@ -1736,14 +1736,15 @@ func (this *CalendarController) Delete() {
 						startDate := tmpRsCalendarResearcherItem.StartDate[5:]
 						startDate = strings.Replace(startDate, "-", ".", -1)
 						keyword1 = "会议时间:" + startDate + "(" + tmpRsCalendarResearcherItem.StartWeek + ")" + " " + tmpRsCalendarResearcherItem.StartTime[:5] + "-" + tmpRsCalendarResearcherItem.EndTime[:5]
+						keyword2 = "【" + sysUser.RealName + "】已删除" + "【" + tmpRsCalendarItem.ActivityType + ")"
 					}
-					keyword2 := "已删除"
+					//keyword2 := "已删除"
 					remark := req.DeleteReason
 
 					if sysAdmin.OpenId != "" {
 						go services.SendWxMsgWithRoadshowDeleteNotice(first, keyword1, keyword2, remark, wxAppPath, sysAdmin.Mobile)
 					}
-				}(*rsCalendarItem,*rsCalendarResearcherItem)
+				}(*rsCalendarItem, *rsCalendarResearcherItem)
 			}
 		}
 	}

+ 37 - 0
models/tables/company_remind_record/company_remind_record.go

@@ -0,0 +1,37 @@
+package company_remind_record
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// CompanyRemindRecord 客户到期提醒记录
+type CompanyRemindRecord struct {
+	CompanyRemindRecordId int    `orm:"column(company_remind_record_id);pk"`
+	Type                  int    `description:"过期类型,1:1天,2:7天,3:15天;4:30天"`
+	SellerId              int    `description:"销售id"`
+	SellerName            string `description:"销售名称"`
+	CompanyId             int    `description:"客户id"`
+	CompanyName           string `description:"客户名称"`
+	Status                string `description:"客户状态"`
+	EndDate               string `description:"到期日期"`
+	UniqueCode            string `description:"唯一code"`
+	CreateTime            time.Time
+}
+
+// GetAllCompanyRemindRecordList 获取所有的客户到期提醒记录
+func GetAllCompanyRemindRecordList(uniqueCode string) (list []*CompanyRemindRecord, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM company_remind_record WHERE unique_code=? `
+
+	_, err = o.Raw(sql, uniqueCode).QueryRows(&list)
+	return
+}
+
+// CompanyRemindRecordResp 客户即将过期列表返回
+type CompanyRemindRecordResp struct {
+	RemindType int                    `description:"过期类型,1:1天,2:7天,3:15天;4:30天"`
+	Total      int                    `description:"总数量"`
+	EndDate    string                 `description:"到期日期"`
+	List       []*CompanyRemindRecord `description:"数据列表"`
+}

+ 9 - 0
routers/commentsRouter.go

@@ -376,6 +376,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_mobile_admin/controllers:AdminWxController"] = append(beego.GlobalControllerRouter["hongze/hongze_mobile_admin/controllers:AdminWxController"],
+        beego.ControllerComments{
+            Method: "CompanyRemindList",
+            Router: `/company_remind/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_mobile_admin/controllers:AdminWxController"] = append(beego.GlobalControllerRouter["hongze/hongze_mobile_admin/controllers:AdminWxController"],
         beego.ControllerComments{
             Method: "SendSmsCode",

+ 12 - 9
services/wechat_send_msg.go

@@ -2,6 +2,7 @@ package services
 
 import (
 	"encoding/json"
+	"errors"
 	"fmt"
 	"hongze/hongze_mobile_admin/models"
 	"hongze/hongze_mobile_admin/models/tables/admin"
@@ -11,8 +12,8 @@ import (
 	"net/http"
 	"strings"
 	"time"
-	"errors"
 )
+
 type SendWxTemplate struct {
 	WxAppId        string   `description:"公众号appId"`
 	First          string   `description:"模板消息first字段"`
@@ -20,6 +21,7 @@ type SendWxTemplate struct {
 	Keyword2       string   `description:"模板消息keyword2字段"`
 	Keyword3       string   `description:"模板消息keyword3字段"`
 	Keyword4       string   `description:"模板消息keyword4字段"`
+	Keyword5       string   `description:"模板消息keyword5字段"`
 	Remark         string   `description:"模板消息remark字段"`
 	TemplateId     string   `description:"模板id"`
 	RedirectUrl    string   `description:"跳转地址"`
@@ -113,7 +115,6 @@ func SendCompanyApplyWxTemplateMsg(mobile, redirectUrl, wxAppPath string, wxMsgM
 		//}
 		//sendTemplateMsg(sendUrl, sendMap, openIdList, mobile, utils.TEMPLATE_MSG_APPLY)
 
-
 		openIdArr := make([]string, len(openIdList))
 		for i, v := range openIdList {
 			openIdArr[i] = v.OpenId
@@ -142,7 +143,7 @@ func SendCompanyApplyWxTemplateMsg(mobile, redirectUrl, wxAppPath string, wxMsgM
 }
 
 // SendWxMsgWithRoadshowDetailResult 路演->销售收到处理结果
-func SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, remark, mobile, redirectUrl, wxAppPath string) (err error) {
+func SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, keyword3, keyword4, keyword5, remark, mobile, redirectUrl, wxAppPath string) (err error) {
 	var msg string
 	defer func() {
 		if err != nil {
@@ -199,6 +200,9 @@ func SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, remark, mobile
 		sendInfo.First = first
 		sendInfo.Keyword1 = keyword1
 		sendInfo.Keyword2 = keyword2
+		sendInfo.Keyword3 = keyword3
+		sendInfo.Keyword4 = keyword4
+		sendInfo.Keyword5 = keyword5
 		sendInfo.Remark = remark
 		sendInfo.TemplateId = utils.WxMsgTemplateIdWithRoadshowDetailResult
 		if wxAppPath != "" && utils.RunMode == "release" {
@@ -390,7 +394,8 @@ func SendSealFinishedWxTemplateMsg(mobile string, companyName string, sealId int
 		//sendData := make(map[string]interface{})
 		first := "您的用印申请已签回,可前往提交转正/续约申请"
 		keyword1 := companyName
-		keyword2 := "已签回"
+		//keyword2 := "已签回"
+		keyword2 := "用印申请已签回,可前往提交转正/续约申请"
 		remark := "点击查看用印详情"
 		//
 		//sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
@@ -443,7 +448,7 @@ func SendYbQuestionDistributeWxMsg(questionId, adminId int, openid, questionTitl
 	}()
 	openIdList := make([]*admin.OpenIdList, 0)
 	openIdList = append(openIdList, &admin.OpenIdList{
-		OpenId: openid,
+		OpenId:  openid,
 		AdminId: adminId,
 	})
 
@@ -492,8 +497,7 @@ func SendYbQuestionDistributeWxMsg(questionId, adminId int, openid, questionTitl
 	return
 }
 
-
-//推送模板消息
+// 推送模板消息
 func SendTemplateMsg(sendInfo *SendWxTemplate) (err error) {
 	postData, err := json.Marshal(sendInfo)
 	if err != nil {
@@ -532,7 +536,6 @@ func SendTemplateMsg(sendInfo *SendWxTemplate) (err error) {
 	return
 }
 
-
 // SendWxMsgWithRaiSell 权益销售客户申请转正后,消息群发给所有销售
 func SendWxMsgWithRaiSell(first, keyword1, keyword2, keyword3, keyword4 string, openIdList []*models.OpenIdList) (err error) {
 	var msg string
@@ -564,4 +567,4 @@ func SendWxMsgWithRaiSell(first, keyword1, keyword2, keyword3, keyword4 string,
 	fmt.Println(sendInfo)
 	err = SendTemplateMsg(sendInfo)
 	return
-}
+}

+ 10 - 11
utils/config.go

@@ -18,7 +18,7 @@ var (
 	Re          error        //redis错误
 )
 
-//微信配置信息
+// 微信配置信息
 var (
 	WxId                            string //微信原始ID
 	WxAppId                         string
@@ -30,8 +30,8 @@ var (
 	TemplateCompanyApplyRedirectUrl string //审批单模板消息跳转地址
 
 	//内部员工公众号(弘则部门)
-	AdminWxAppId                    string
-	AdminWxAppSecret                string
+	AdminWxAppId     string
+	AdminWxAppSecret string
 
 	//微信小程序appid
 	WxId2        string //微信原始ID
@@ -44,9 +44,9 @@ var (
 	WxMsgTemplateIdWithRoadshowPending      string //路演->研究员收到待处理的申请
 	WxMsgTemplateIdWithRoadshowDetailResult string //路演->销售收到处理结果
 	WxMsgTemplateIdWithRoadshowDeleteNotice string //路演->研究员收到活动删除通知
-	WxMsgTemplateIdWithSealApplyFinished      string // 用印申请-已签回通知
+	WxMsgTemplateIdWithSealApplyFinished    string // 用印申请-已签回通知
 	WxMsgTemplateIdWithYbCommunityQuestion  string // 研报小程序->问答社区回复通知
-	SendWxTemplateMsgUrl string  //模板消息推送
+	SendWxTemplateMsgUrl                    string //模板消息推送
 
 	//查研观向
 	WxMsgTemplateIdCompanyApprovalMessageRai string //权益销售签约成功通知查研观向小助手模版消息
@@ -187,10 +187,10 @@ func wxConfig() {
 
 		//路演
 		WxMsgTemplateIdWithRoadshowPending = "1JG9fvKx9o9B-wkZe_gBFQQzMBnp07-hvpZI9QiFcKQ"      //路演->研究员收到待处理的申请
-		WxMsgTemplateIdWithRoadshowDetailResult = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" //路演->销售收到处理结果
+		WxMsgTemplateIdWithRoadshowDetailResult = "D6AFTJ7CbDDFBYg1R-HRir5bBXkIqGrwUtb2bjN-Wr4" //路演->销售收到处理结果
 		WxMsgTemplateIdWithRoadshowDeleteNotice = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" //路演->研究员收到活动删除通知
 
-		WxMsgTemplateIdWithSealApplyFinished   = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450"   // 用印申请-已签回通知
+		WxMsgTemplateIdWithSealApplyFinished = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" // 用印申请-已签回通知
 
 		// 研报小程序
 		WxMsgTemplateIdWithYbCommunityQuestion = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" // 研报小程序->问答社区回复通知
@@ -217,15 +217,14 @@ func wxConfig() {
 
 		//路演
 		WxMsgTemplateIdWithRoadshowPending = "1JG9fvKx9o9B-wkZe_gBFQQzMBnp07-hvpZI9QiFcKQ"      //路演->研究员收到待处理的申请
-		WxMsgTemplateIdWithRoadshowDetailResult = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" //路演->销售收到处理结果
+		WxMsgTemplateIdWithRoadshowDetailResult = "D6AFTJ7CbDDFBYg1R-HRir5bBXkIqGrwUtb2bjN-Wr4" //路演->销售收到处理结果
 		WxMsgTemplateIdWithRoadshowDeleteNotice = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" //路演->研究员收到活动删除通知
 
-		WxMsgTemplateIdWithSealApplyFinished   = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450"   // 用印申请-已签回通知
-		
+		WxMsgTemplateIdWithSealApplyFinished = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" // 用印申请-已签回通知
+
 		// 研报小程序
 		WxMsgTemplateIdWithYbCommunityQuestion = "rciDm9ThigRBGi1SZ4TFd74XA4aoAxSz_ugdv_tZ450" // 研报小程序->问答社区回复通知
 
-
 		//查研观向小助手原有的模板ID
 		{
 			WxMsgTemplateIdCompanyApprovalMessageRai = "RcV2uM5nFSiUtOHsq4SdYz2Fhk-OVfg5rutWz2IsSJQ" //权益销售签约成功通知查研观向小助手模版消息-模板ID