package service import ( "fmt" "gin-vue-admin/global" "gin-vue-admin/model" "gin-vue-admin/model/request" "gin-vue-admin/utils" "strconv" "time" ) func GetVipUser(userId int) (error, model.VipUser) { data := new(model.VipUser) table := " vip_user " field := " id, maturity_time, vip_level " sqlStr := "SELECT " + field + " FROM " + table + " WHERE delflag=0 AND user_id =?" global.GVA_DB.Raw(sqlStr, userId).Find(&data) if global.GVA_DB.Error != nil { return global.GVA_DB.Error, model.VipUser{} } return nil, *data } func CreateVipUser(req model.VipUser) error { sqlStr := "INSERT INTO vip_user(user_id, maturity_time, vip_level) VALUE(?,?,?)" global.GVA_DB.Exec(sqlStr, req.UserId, req.MaturityTime, req.VipLevel) return global.GVA_DB.Error } func UpdateVipUser(req model.VipUser, userId int) error { sqlStr := "UPDATE vip_user SET maturity_time='" + utils.Time2Str(req.MaturityTime) + "', vip_level=? WHERE user_id=?" global.GVA_DB.Exec(sqlStr, req.VipLevel, userId) return global.GVA_DB.Error } func IsVipUser(userId int) int64 { var totalItem int64 = 0 sqlStr := "SELECT count(id) as totalItem FROM vip_user where user_id=?" global.GVA_DB.Raw(sqlStr, userId).Count(&totalItem) //获取总条数 return totalItem } func IsNewUser(userId int) int64 { //now := time.Now().Format("2006-01-02 15:04:05") var totalItem int64 = 0 sqlStr := "SELECT count(id) as totalItem FROM vip_order where user_id='" + strconv.Itoa(userId) + "' and status = 2 " global.GVA_DB.Raw(sqlStr).Count(&totalItem) //获取总条数 return totalItem } func GetVipConf(id int) (error, *model.VipConf) { data := new(model.VipConf) table := " vip_conf " field := " id, title, content, vip_level, vip_money, vip_day, vip_type, remark " sqlStr := "SELECT " + field + " FROM " + table + " WHERE delflag=0 AND id =?" global.GVA_DB.Raw(sqlStr, id).Find(&data) if global.GVA_DB.Error != nil { return global.GVA_DB.Error, nil } return nil, data } func GetVipConfList(req request.GetVipConfListReq) (error, []model.VipConf, int64) { pagesize := 10 page := 1 currentpage := pagesize * (page - 1) field := " id, title, content, vip_money, vip_day, vip_type, remark " table := " vip_conf" conditions := " AND delflag=0 AND is_show=1" orderby := "" orderby += " sort asc" if req.IsNewUser != 1 { conditions += " AND vip_type != 2 " } list := make([]model.VipConf, 0) //@@总条数,总页数 var totalItem int64 = 0 sqlStr := "SELECT count(id) as totalItem FROM " + table + " where 1=1 " + conditions global.GVA_DB.Raw(sqlStr).Count(&totalItem) //获取总条数 sqlStr2 := "SELECT " + field + " FROM " + table + " where 1>0 " + conditions + " ORDER BY " + orderby + " LIMIT " + strconv.Itoa(currentpage) + "," + strconv.Itoa(pagesize) global.GVA_DB.Raw(sqlStr2).Scan(&list) return nil, list, totalItem } func CreateVipOrder(req model.VipOrder) error { sqlStr := "INSERT INTO vip_order(order_no, user_id, vip_conf_id, vip_day, vip_level, vip_money, pay_money, status, is_points, points_num, remark) VALUE(?,?,?,?,?,?,?,?,?,?,?)" global.GVA_DB.Exec(sqlStr, req.OrderNo, req.UserId, req.VipConfId, req.VipDay, req.VipLevel, req.VipMoney, req.PayMoney, req.Status, req.IsPoints, req.PointsNum, req.Remark) return global.GVA_DB.Error } func UpdateVipOrder(req request.CallBackReq) error { payTime := time.Now().Format("2006-01-02 15:04:05") sqlStr := "UPDATE vip_order SET status=2, pay_time='" + payTime + "', out_trade_no=?, transaction_id=? WHERE order_no=?" global.GVA_DB.Exec(sqlStr, req.OutTradeNo, req.TransactionId, req.AttachInfo) return global.GVA_DB.Error } func GetVipOrder(orderNo string) (error, model.VipOrder) { data := new(model.VipOrder) table := " vip_order " field := " id, user_id, vip_level, vip_day, status, is_points, points_num " sqlStr := "SELECT " + field + " FROM " + table + " WHERE delflag=0 AND order_no =?" global.GVA_DB.Raw(sqlStr, orderNo).Find(&data) if global.GVA_DB.Error != nil { return global.GVA_DB.Error, model.VipOrder{} } return nil, *data } func GetVipOrderList(req request.GetVipOrderListReq) (error, []request.VipOrderList, int64) { pagesize := 10 page := 1 if req.PageSize != 0 { pagesize = req.PageSize } if req.Page != 0 { page = req.Page } currentpage := pagesize * (page - 1) list := make([]request.VipOrderList, 0) field := " vo.id, vo.vip_money, vo.pay_money, vo.vip_level, vo.is_points" + ", vo.points_num, vo.create_time, vo.remark, vo.vip_day " + ", su.mobile, su.nick_name, sua.name" table := " vip_order as vo " + " left join sys_users as su on vo.user_id=su.id " + " left join sys_user_authe as sua on su.id = sua.user_id and sua.delflag=0 " conditions := " AND vo.delflag = 0 AND vo.status = 2 " orderby := " create_time desc " if req.Mobile != "" { conditions += " AND su.mobile like '%" + req.Mobile + "%'" } if req.UserType != "" { conditions += " AND su.user_type = " + req.UserType } if req.StartCreateTime != "" { conditions += " AND vo.create_time >'" + req.StartCreateTime + "'" } if req.EndCreateTime != "" { conditions += " AND vo.create_time <='" + req.EndCreateTime + "'" } if req.VipLevel != "" { conditions += " AND vo.vip_level in (" + req.VipLevel + ")" } //@@总条数,总页数 var totalItem int64 = 0 sqlStr := "SELECT count(vo.id) as totalItem FROM " + table + " where 1=1 " + conditions global.GVA_DB.Raw(sqlStr).Count(&totalItem) //获取总条数 sqlStr2 := "SELECT " + field + " FROM " + table + " WHERE 1>0 " + conditions + " ORDER BY " + orderby + " LIMIT " + strconv.Itoa(currentpage) + "," + strconv.Itoa(pagesize) fmt.Println(sqlStr2) global.GVA_DB.Raw(sqlStr2).Scan(&list) if global.GVA_DB.Error != nil { return global.GVA_DB.Error, nil, 0 } return nil, list, totalItem }