order.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package service
  2. import (
  3. "database/sql"
  4. "encoding/json"
  5. "fmt"
  6. "time"
  7. . "bp.jydev.jianyu360.cn/BaseService/orderCenter/entity"
  8. "bp.jydev.jianyu360.cn/BaseService/orderCenter/rpc/ordercenter"
  9. )
  10. func GetOrderCode(*ordercenter.GetOrderCodeReq) *ordercenter.GetOrderCodeResp {
  11. id := Node.Generate()
  12. return &ordercenter.GetOrderCodeResp{
  13. ErrorCode: 1,
  14. ErrorMsg: "",
  15. Data: &ordercenter.OrderCode{
  16. OrderCode: fmt.Sprint(id),
  17. },
  18. }
  19. }
  20. func OrderAddUpdate(this *ordercenter.OrderAddUpdateReq) *ordercenter.OrderAddUpdateResp {
  21. orderCode := fmt.Sprint(Node.Generate())
  22. flag := false
  23. nowTime := time.Now().Format("2006-01-02 15:04:05")
  24. flag = Mysql.ExecTx("", func(tx *sql.Tx) bool {
  25. orderId := Mysql.InsertBySqlByTx(tx, `insert into `+Order+`(appid,order_code,order_money,original_price,create_time,order_status,user_id,ent_id,del_status) values (?,?,?,?,?,?,?,?,?)`,
  26. this.Appid, orderCode, this.Order.OrderMoney, this.Order.OriginalPrice, nowTime, this.Order.OrderStatus, this.Order.UserId, this.Order.EntId, 0)
  27. extendId := Mysql.InsertBySqlByTx(tx, `insert into `+OrderExtend+`(appid,order_code,pay_type,source,dis_word,iscan_invoice,iscan_evaluate,remind_status,create_time) values (?,?,?,?,?,?,?,?,?)`,
  28. this.Appid, orderCode, this.OrderExtend.PayType, this.OrderExtend.Source, this.OrderExtend.DisWord, this.OrderExtend.IscanInvoice, this.OrderExtend.IscanEvaluate, this.OrderExtend.RemindStatus, nowTime)
  29. isOk1, isOk2 := true, true
  30. for _, v := range this.OrderCommodity {
  31. commodityId := Mysql.InsertBySqlByTx(tx, `insert into `+OrderCommodity+`(appid,order_code,goods_code,goods_spec_id,num,price,total,isgift,create_time) values (?,?,?,?,?,?,?,?,?)`,
  32. this.Appid, orderCode, v.GoodsCode, v.GoodsSpecId, v.Num, v.Price, v.Total, v.Isgift, nowTime)
  33. if commodityId == 0 {
  34. isOk1 = false
  35. }
  36. }
  37. if this.OrderBusiness.GoodsSpecId != 0 {
  38. BusinessId := Mysql.InsertBySqlByTx(tx, `insert into `+OrderBusiness+`(appid,order_code,service_status,service_time,filter,filter_keys,filter_publishtime,data_count,filter_id,download_url,goods_code,goods_spec_id,user_phone,user_mail) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)`,
  39. this.Appid, orderCode, this.OrderBusiness.ServiceStatus, this.OrderBusiness.ServiceTime, this.OrderBusiness.Filter, this.OrderBusiness.FilterKeys,
  40. this.OrderBusiness.FilterPublishtime, this.OrderBusiness.DataCount, this.OrderBusiness.FilterId, this.OrderBusiness.DownloadUrl,
  41. this.OrderBusiness.GoodsCode, this.OrderBusiness.GoodsSpecId, this.OrderBusiness.UserPhone, this.OrderBusiness.UserMail)
  42. if BusinessId == 0 {
  43. isOk2 = false
  44. }
  45. }
  46. return orderId > 0 && extendId > 0 && isOk1 && isOk2
  47. })
  48. status := 0
  49. if flag {
  50. status = 1
  51. }
  52. return &ordercenter.OrderAddUpdateResp{
  53. ErrorCode: 1,
  54. Data: &ordercenter.DataStatus{Status: int64(status)},
  55. }
  56. }
  57. func OrderDel(this *ordercenter.OrderDelReq) *ordercenter.OrderAddUpdateResp {
  58. nowTime := time.Now().Format("2006-01-02 15:04:05")
  59. ok := Mysql.Update(Order, map[string]interface{}{"appid": this.Appid, "order_code": this.OrderCode}, map[string]interface{}{"del_time": nowTime, "del_status": 1})
  60. status := 0
  61. if ok {
  62. status = 1
  63. }
  64. return &ordercenter.OrderAddUpdateResp{
  65. ErrorCode: 1,
  66. Data: &ordercenter.DataStatus{Status: int64(status)},
  67. }
  68. }
  69. func OrderList(this *ordercenter.OrderListReq) *ordercenter.OrderListResp {
  70. OrderLists := []*ordercenter.OrderAddUpdateReq{}
  71. order := Mysql.Find(Order, map[string]interface{}{"appid": this.Appid, "user_id": this.UserId}, "", "", 0, 0)
  72. if order != nil && len(*order) > 0 {
  73. for _, v := range *order {
  74. orderData1 := &ordercenter.OrderAddUpdateReq{}
  75. orderData2 := &ordercenter.Order{}
  76. orderByte, _ := json.Marshal(v)
  77. json.Unmarshal(orderByte, orderData2)
  78. orderData1.Order = orderData2
  79. OrderLists = append(OrderLists, orderData1)
  80. }
  81. }
  82. return &ordercenter.OrderListResp{
  83. ErrorCode: 1,
  84. Data: &ordercenter.OrderList{OrderList: OrderLists},
  85. }
  86. }
  87. func OrderInfo(this *ordercenter.OrderInfoReq) *ordercenter.OrderInfoResp {
  88. orderData := &ordercenter.Order{}
  89. orderData1 := &ordercenter.OrderAddUpdateReq{}
  90. order := Mysql.FindOne(Order, map[string]interface{}{"appid": this.Appid, "order_code": this.OrderCode}, "", "")
  91. if order != nil && len(*order) > 0 {
  92. orderByte, _ := json.Marshal(*order)
  93. json.Unmarshal(orderByte, orderData)
  94. orderData1.Order = orderData
  95. }
  96. return &ordercenter.OrderInfoResp{
  97. ErrorCode: 1,
  98. Data: &ordercenter.OrderInfo{OrderInfo: orderData1},
  99. }
  100. }