123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- package card
-
- import (
- "encoding/json"
- "errors"
- "net/http"
- "spaceofcheng/services/controllers"
- cardModel "spaceofcheng/services/models/card"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/service/card"
- "spaceofcheng/services/utils"
- "strings"
- )
-
- // CardController 商品
- type CardController struct {
- serv *card.CardServ
- controllers.BaseController
- }
-
- // Constructor 初始化 Controller
- // @Title Constructor
- // @Description 初始化 Controller, 系统自动调用
- func (c *CardController) Constructor() {
- c.serv = card.NewCardServ(c.Context)
- }
-
- // ListByCase 获取卡列表
- func (c *CardController) ListByCase() {
- caseid := c.GetString("caseid")
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
- if page < 0 {
- page = 1
- }
-
- if pagesize <= 0 {
- pagesize = 10
- }
-
- sendtype := c.GetString("sendtype")
- usetype := c.GetString("usetype")
- usedid := c.GetString("usedid")
-
- list, total, err := c.serv.GetCardList(caseid, sendtype, usetype, usedid, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(map[string]interface{}{
- "list": list,
- "page": page,
- "pagesize": pagesize,
- "pagenum": total,
- })
- }
-
- // GetCardByIDForAdmin 获取卡
- // 管理端
- func (c *CardController) GetCardByIDForAdmin() {
- id := c.GetString(":id")
- if id == "" {
- c.ResponseError(errors.New("未指定卡"))
- }
-
- card, err := c.serv.GetCardByIDWithCheck(id)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(map[string]interface{}{
- "Card": card,
- })
- }
-
- // GetCardByID 获取卡
- // 微信端
- func (c *CardController) GetCardByID() {
- id := c.GetString(":id")
- if id == "" {
- c.ResponseError(errors.New("未指定卡"))
- }
-
- card, err := c.serv.GetCardByID(id)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(map[string]interface{}{
- "Card": card,
- })
- }
-
- // SaveCard 保存卡
- func (c *CardController) SaveCard() {
- jsnStr := c.GetString("info")
- if jsnStr == "" {
- c.ResponseError(errors.New("未接收到保存内容"))
- }
-
- card := cardModel.CardInfo{}
-
- if err := json.Unmarshal([]byte(jsnStr), &card); err != nil {
- utils.LogError("接收卡信息失败: " + err.Error())
- c.ResponseError(errors.New("接收参数失败"), http.StatusInternalServerError)
- }
-
- // TODO
- // 校验各字段不能为空
-
- // 入库
- card.CardId = ""
- if err := c.serv.SaveCard(&card); err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(map[string]interface{}{
- "Card": card,
- })
- }
-
- // UpdateCard 更新卡
- func (c *CardController) UpdateCard() {
- jsnStr := c.GetString("info")
- if jsnStr == "" {
- c.ResponseError(errors.New("未接收到更新内容"))
- }
-
- id := c.GetString(":id")
- if id == "" {
- c.ResponseError(errors.New("未指定卡"))
- }
-
- card := cardModel.CardInfo{}
-
- if err := json.Unmarshal([]byte(jsnStr), &card); err != nil {
- utils.LogError("接收卡信息失败: " + err.Error())
- c.ResponseError(errors.New("接收参数失败"), http.StatusInternalServerError)
- }
-
- // TODO
- // 校验各字段不能为空
-
- // 入库
- card.CardId = id
- if err := c.serv.UpdateCard(&card); err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(map[string]interface{}{
- "Card": card,
- })
- }
-
- // GiveCard 赠送卡
- func (c *CardController) GiveCard() {
- id := c.GetString(":id")
- if id == "" {
- c.ResponseError(errors.New("未指定卡"))
- }
-
- uids := c.GetString(":users")
- if uids == "" {
- c.ResponseError(errors.New("未指定赠送人"))
- }
-
- err := c.serv.GiveCard(id, strings.Split(uids, ","))
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON("ok")
- }
-
- // GetCardWithCustomer 获取卡及领取信息
- func (c *CardController) GetCardWithCustomer() {
- cardid := c.GetString(":id")
- cardDetail, err := c.serv.GetCardWithCustomer(cardid)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(cardDetail)
- }
-
- // GetCardByCustomer 获取我的卡信息
- func (c *CardController) GetCardByCustomer() {
- cards, err := c.serv.GetCardByCustomer()
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(cards)
- }
-
- // GetCustomerCardByID 获取我的卡详情
- func (c *CardController) GetCustomerCardByID() {
- id := c.GetString(":id")
- card, err := c.serv.GetCustomerCardByID(id)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(card)
- }
-
- // GetCaseUsableCard 获取案场可用券
- func (c *CardController) GetCaseUsableCard() {
- page, _ := c.GetInt("page")
- pageSize, _ := c.GetInt("pagesize")
- cards, err := c.serv.GetCaseUsableCard(page, pageSize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(cards)
- }
-
- // ReceiveCard 卡领取
- func (c *CardController) ReceiveCard() {
- id := c.GetString(":id")
- saleid := c.GetString("saleid")
- serialcode := c.GetString("serialcode")
- cust := c.Context.Get("customer").(model.TaCustomer)
-
- if cust.Phone == "" {
- c.ResponseError(
- errors.New("用户未登录或绑定"),
- http.StatusNotAcceptable,
- )
- }
-
- err := c.serv.ReceiveCard(id, saleid, serialcode)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON("领取成功!")
- }
-
- // ChannelReceiveCard 渠道端卡领取
- func (c *CardController) ChannelReceiveCard() {
- id := c.GetString(":id")
- cust := c.Context.Get("customer").(model.TaCustomer)
-
- if cust.Phone == "" {
- c.ResponseError(
- errors.New("用户未登录或绑定"),
- http.StatusNotAcceptable,
- )
- }
-
- err := c.serv.ChannelReceiveCard(id)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON("领取成功!")
- }
-
- // GetCustomerCardByCustomerAndSale 获取我的卡信息
- func (c *CardController) GetCustomerCardByCustomerAndSale() {
- customerid := c.GetString(":id")
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
-
- cards, err := c.serv.GetCustomerCardByCustomerAndSale(customerid, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(cards)
- }
-
- func (c *CardController) GetSysCardList() {
- caseid := c.GetString(":caseId")
- cards, err := c.serv.GetSysCardList(caseid)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(cards)
- }
|