129 lines
3.5 KiB
Go
129 lines
3.5 KiB
Go
package common
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
"strings"
|
|
|
|
"mongo.games.com/goserver/core/admin"
|
|
"mongo.games.com/goserver/core/logger"
|
|
)
|
|
|
|
const (
|
|
ResponseTag_Ok int = iota //0
|
|
ResponseTag_ParamError //1
|
|
ResponseTag_NoFindService //2
|
|
ResponseTag_NoFindUser //3
|
|
ResponseTag_DataMarshalError //4
|
|
ResponseTag_TransactYield //5
|
|
ResponseTag_Unsupport //6
|
|
ResponseTag_NoFindRoom //7
|
|
ResponseTag_NoData //8
|
|
ResponseTag_NoFindClub //9
|
|
ResponseTag_ClubHadCreated //10
|
|
ResponseTag_SrcCardCntNotEnough //11
|
|
ResponseTag_SrcPlayerNotExist //12
|
|
ResponseTag_DestPlayerNotExist //13
|
|
ResponseTag_TransferCardFailed //14
|
|
ResponseTag_OpFailed //15
|
|
ResponseTag_InviterNotExist //16
|
|
ResponseTag_HadSetInviter //17
|
|
ResponseTag_CreateNewPlayerFailed //18
|
|
ResponseTag_ClubAdminCountReachLimit //19
|
|
ResponseTag_OnlyBeClubMember //20
|
|
ResponseTag_FetchNiceIdFail //21
|
|
ResponseTag_MoneyNotEnough //22
|
|
ResponseTag_TransferMoneyFailed //23
|
|
ResponseTag_SrcMoneyCntNotEnough //24
|
|
ResponseTag_CoinNotEnough //25
|
|
ResponseTag_CoinInUse //26
|
|
ResponseTag_RMBNotEnough //27
|
|
ResponseTag_AgentNotExist //28
|
|
)
|
|
|
|
type HttpResult struct {
|
|
Tag int
|
|
Msg interface{}
|
|
}
|
|
|
|
func ResponseMsg(req *http.Request, res http.ResponseWriter, tag int, msg interface{}) bool {
|
|
result := &HttpResult{
|
|
Tag: tag,
|
|
Msg: msg,
|
|
}
|
|
|
|
data, err := json.Marshal(&result)
|
|
if err != nil {
|
|
logger.Logger.Info(req.RemoteAddr, " Marshal error:", err)
|
|
return false
|
|
}
|
|
|
|
fmt.Println(string(data[:]))
|
|
dataLen := len(data)
|
|
res.Header().Set("Content-Length", fmt.Sprintf("%v", dataLen))
|
|
res.Header().Set("Access-Control-Allow-Origin", "*")
|
|
res.WriteHeader(http.StatusOK)
|
|
pos := 0
|
|
for pos < dataLen {
|
|
writeLen, err := res.Write(data[pos:])
|
|
if err != nil {
|
|
logger.Logger.Info(req.RemoteAddr, " SendData error:", err)
|
|
return false
|
|
}
|
|
pos += writeLen
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
func responseMsg2(req *http.Request, res http.ResponseWriter, params map[string]interface{}) bool {
|
|
data, err := json.Marshal(params)
|
|
if err != nil {
|
|
logger.Logger.Info(req.RemoteAddr, " Marshal error:", err)
|
|
return false
|
|
}
|
|
|
|
fmt.Println(string(data[:]))
|
|
dataLen := len(data)
|
|
res.Header().Set("Content-Length", fmt.Sprintf("%v", dataLen))
|
|
res.Header().Set("Access-Control-Allow-Origin", "*")
|
|
res.WriteHeader(http.StatusOK)
|
|
pos := 0
|
|
for pos < dataLen {
|
|
writeLen, err := res.Write(data[pos:])
|
|
if err != nil {
|
|
logger.Logger.Info(req.RemoteAddr, " SendData error:", err)
|
|
return false
|
|
}
|
|
pos += writeLen
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
func RequestCheck(req *http.Request, whitelist []string) bool {
|
|
strs := strings.Split(req.RemoteAddr, ":")
|
|
if len(strs) != 2 {
|
|
return false
|
|
}
|
|
|
|
if len(admin.Config.WhiteHttpAddr) > 0 {
|
|
for _, value := range admin.Config.WhiteHttpAddr {
|
|
if value == strs[0] {
|
|
return true
|
|
}
|
|
}
|
|
}
|
|
|
|
if len(whitelist) > 0 {
|
|
for _, value := range whitelist {
|
|
if value == strs[0] {
|
|
return true
|
|
}
|
|
}
|
|
}
|
|
//都没设置也让过
|
|
return len(whitelist) == 0 && len(admin.Config.WhiteHttpAddr) == 0
|
|
}
|