forked from golang/hotime
155 lines
4.1 KiB
Go
155 lines
4.1 KiB
Go
package app
|
|
|
|
import (
|
|
. "code.hoteas.com/golang/hotime"
|
|
. "code.hoteas.com/golang/hotime/common"
|
|
"errors"
|
|
"strings"
|
|
"time"
|
|
"unicode/utf8"
|
|
)
|
|
|
|
// Project 管理端项目
|
|
var Project = Proj{
|
|
"article": ArticleCtr,
|
|
"company": CompanyCtr,
|
|
"declare": DeclareCtr,
|
|
"favorite": FavoriteCtr,
|
|
"lxcx": Lxcx,
|
|
"matters": MattersCtr,
|
|
"notify": NotifyCtr,
|
|
"order": OrderCtr,
|
|
"policy": PolicyCtr,
|
|
"provider": ProviderCtr,
|
|
"search_record": SearchRecordCtr,
|
|
"sms": Sms,
|
|
"tag": TagCtr,
|
|
"upan": UpanCtr,
|
|
"user": UserCtr,
|
|
"vip_order": VipOrderCtr,
|
|
"websocket": WebsocketCtr,
|
|
"wechath5": Wechath5,
|
|
"wechatmini": Wechath5,
|
|
"coupon": CouponCtr,
|
|
}
|
|
|
|
//生成随机码的6位md5
|
|
func getSn() string {
|
|
x := Rand(8)
|
|
return Substr(Md5(ObjToStr(int64(x)+time.Now().UnixNano()+int64(Rand(6)))), 0, 6)
|
|
}
|
|
|
|
//生成随机码的4位随机数
|
|
func getCode() string {
|
|
//res := ""
|
|
//for i := 0; i < 4; i++ {
|
|
res := ObjToStr(RandX(1000, 9999))
|
|
//}
|
|
return res
|
|
}
|
|
|
|
func strToArray(str string) Slice {
|
|
s := Slice{}
|
|
|
|
olds := strings.Split(str, ",")
|
|
for _, v := range olds {
|
|
if v != "" {
|
|
s = append(s, v)
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
|
|
func arrayToStr(ars Slice) string {
|
|
s := ","
|
|
if ars == nil {
|
|
return s
|
|
}
|
|
for k, _ := range ars {
|
|
s = s + ars.GetString(k) + ","
|
|
}
|
|
return s
|
|
}
|
|
|
|
//认证公共方案
|
|
func auth(that *Context, phone, companyName, userName string) error {
|
|
|
|
user := that.Db.Get("user", "id,phone,salesman_id,company_id,provider_id,name", Map{"id": that.Session("user_id").ToCeilInt()})
|
|
if user == nil {
|
|
return errors.New("找不到用户")
|
|
}
|
|
company := that.Db.Get("company", "name,id", Map{"id": user.GetCeilInt("company_id")})
|
|
|
|
if company == nil {
|
|
return errors.New("找不到企业")
|
|
}
|
|
//手机号与原来的不同则进行绑定
|
|
if phone != user.GetString("phone") || companyName != company.GetString("name") || user.GetString("name") != userName {
|
|
//微信验证成功
|
|
if that.Session("wechat_phone").ToStr() == phone {
|
|
that.Db.Update("user", Map{"phone": phone}, Map{"id": user.GetCeilInt("id")})
|
|
if user.GetCeilInt("company_id") != 0 {
|
|
that.Db.Update("company", Map{"phone": phone}, Map{"id": user.GetCeilInt("company_id")})
|
|
}
|
|
user["phone"] = phone
|
|
} else if that.Req.FormValue("code") == "" || that.Session("phone").ToStr() != phone || that.Session("code").ToStr() != that.Req.FormValue("code") {
|
|
|
|
return errors.New("验证码错误")
|
|
} else {
|
|
that.Db.Update("user", Map{"phone": phone, "name": userName}, Map{"id": user.GetCeilInt("id")})
|
|
if user.GetCeilInt("company_id") != 0 {
|
|
that.Db.Update("company", Map{"phone": phone}, Map{"id": user.GetCeilInt("company_id")})
|
|
}
|
|
user["phone"] = phone
|
|
}
|
|
|
|
}
|
|
//
|
|
//company := that.Db.Get("company", "name,id", Map{"id": user.GetCeilInt("company_id")})
|
|
if company != nil {
|
|
that.Db.Update("company", Map{"name": companyName}, Map{"id": company.GetCeilInt64("id")})
|
|
if user.GetCeilInt64("salesman_id") != 0 {
|
|
that.Db.Update("user", Map{"certification_flag": 1}, Map{"id": user.GetCeilInt("id")})
|
|
}
|
|
return nil
|
|
}
|
|
|
|
company = Map{"name": companyName,
|
|
"user_id": user.GetCeilInt("id"),
|
|
}
|
|
if user.GetCeilInt("salesman_id") != 0 {
|
|
company["salesman_id"] = user.GetCeilInt("salesman_id")
|
|
}
|
|
if user.GetCeilInt("provider_id") != 0 {
|
|
company["provider_id"] = user.GetCeilInt("provider_id")
|
|
}
|
|
if user.GetString("phone") != "" {
|
|
company["phone"] = user.GetString("phone")
|
|
}
|
|
company["id"] = that.Db.Insert("company", company)
|
|
if company.GetCeilInt64("id") == 0 {
|
|
return errors.New("新建企业失败")
|
|
}
|
|
upUser := Map{"company_id": company.GetCeilInt64("id")}
|
|
if user.GetCeilInt64("salesman_id") != 0 {
|
|
upUser["certification_flag"] = 1
|
|
|
|
}
|
|
that.Db.Update("user", upUser, Map{"id": that.Session("user_id").Data})
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
// FilterEmoji 过滤 emoji 表情
|
|
func FilterEmoji(content string) string {
|
|
new_content := ""
|
|
for _, value := range content {
|
|
_, size := utf8.DecodeRuneInString(string(value))
|
|
if size <= 3 {
|
|
new_content += string(value)
|
|
}
|
|
}
|
|
return new_content
|
|
}
|