需求是这样的:
有个外部app给我们小程序做推广,在他们那领取优惠券码。然后到我们小程序领取优惠券,使用优惠券下单。同时,需要我们推送订单。还要接受他们那变更优惠券的状态。
参考地址:https://go-zero.dev/cn/docs/quick-start/micro-service#%E5%88%9B%E5%BB%BAuser-rpc%E6%9C%8D%E5%8A%A1
go-zero(收录于 CNCF 云原生技术全景图:https://landscape.cncf.io/?selected=go-zero)是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。
beego中数据库分页
func PageDB(limit int, page int, count int64) (int, int) {
pageSetNum := limit // 每页条数
pageCount := math.Ceil((float64(count)) / (float64(pageSetNum))) // 总页数
pageNum := page // 当前页码
if pageNum > int(pageCount) { // 如果传入的页码超出范围
pageNum = int(pageCount)
}
offset := pageSetNum * (pageNum - 1)
if offset < 0 {
offset = 0
}
return pageSetNum, offset
}
func YunDaSign(structData interface{}) ([]byte, string, string) {
jsonData, _ := json.Marshal(structData)
appKey := "你的key"
appSecret := "你的秘钥"
newStr := string(jsonData) + "_" + appSecret
md := md5.New()
md.Write([]byte(newStr))
md5Str := hex.EncodeToString(md.Sum(nil))
return jsonData, appKey, md5Str
}
获取部分时间范围
//获得当前月的初始和结束日期
func GetMonthDay(types int) (string, string) {
now := time.Now()
currentYear, currentMonth, _ := now.Date()
currentLocation := now.Location()
firstOfMonth := time.Date(currentYear, currentMonth, 1, 0, 0, 0, 0, currentLocation)
lastOfMonth := firstOfMonth.AddDate(0, 1, -1)
f := firstOfMonth.Unix()
l := lastOfMonth.Unix()
if types == 1 {
return time.Unix(f, 0).Format("2006-01-02"), time.Unix(l, 0).Format("2006-01-02")
}
return time.Unix(f, 0).Format("2006-01-02") + " 00:00:00", time.Unix(l, 0).Format("2006-01-02") + " 23:59:59"
}
package main
import (
"encoding/json"
"net/http"
)
func main() {
http.HandleFunc("/", ExampleHandler)
if err := http.ListenAndServe(":8080", nil); err != nil {
panic(err)
}
}
func ExampleHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Add("Content-Type", "application/json")
resp, _ := json.Marshal(map[string]string{
"ip": GetIP(r),
})
w.Write(resp)
}
func GetIP(r *http.Request) string {
forwarded := r.Header.Get("X-FORWARDED-FOR")
if forwarded != "" {
return forwarded
}
return r.RemoteAddr
}
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true