Browse Source

Merge branch 'dev' of http://git.ycjcjy.com/SpaceOfCheng/services into dev

wangfei 6 years ago
parent
commit
0aa61266f0
4 changed files with 121 additions and 0 deletions
  1. 69
    0
      controllers/vipcard/vipcard.go
  2. 35
    0
      models/vipcard/vipcard.go
  3. 2
    0
      routers/common.go
  4. 15
    0
      service/vipcard/vipcard.go

+ 69
- 0
controllers/vipcard/vipcard.go View File

@@ -7,6 +7,7 @@ import (
7 7
 	"spaceofcheng/services/models/model"
8 8
 	"spaceofcheng/services/service/vipcard"
9 9
 	"time"
10
+	"spaceofcheng/services/utils"
10 11
 )
11 12
 
12 13
 // CaseController 信息
@@ -107,3 +108,71 @@ func (c *VipcardController) GetVipByCode() {
107 108
 	}
108 109
 	c.ResponseJSON(vipChild)
109 110
 }
111
+
112
+
113
+// GetVipListExcel 导出VIP 列表
114
+func (c *VipcardController) GetVipListExcel(){
115
+
116
+	caseids := c.GetString("caseid")
117
+	if caseids == "" {
118
+		cases := c.Context.Get("cases").([]model.SysUserCase)
119
+		caseids = c.GetCaseIDs(cases)
120
+	}
121
+
122
+	cardNo := c.GetString("cardNo")
123
+	sellerName := c.GetString("sellerName")
124
+	userName := c.GetString("userName")
125
+
126
+	list, err := c.dao.GetVipChildExcel(caseids, cardNo, sellerName, userName)
127
+	if err != nil {
128
+		c.ResponseError(err)
129
+	}
130
+
131
+	excel, err := utils.NewTinyXLSXEngine()
132
+	if err != nil {
133
+		utils.LogError("初始化Excel服务失败: " + err.Error())
134
+		c.ResponseError(errors.New("初始化Excel服务失败"))
135
+	}
136
+
137
+	// 创建表头
138
+	excel.SetCell(excel.InsertRow(), []string{
139
+		"卡号",
140
+		"价格",
141
+		"状态",
142
+		"销售",
143
+		"案场",
144
+		"用户",
145
+		"激活时间",
146
+		"创建时间",
147
+	})
148
+
149
+	// 遍历数据
150
+	for _, item := range list {
151
+		row := excel.InsertRow()
152
+		createDateToString := item.CreateDate.Format("2006-01-02 15:04:05")
153
+		activeDateToString := item.ActiveDate.Format("2006-01-02 15:04:05")
154
+		statusToString := ""
155
+		if item.Status == 1 {
156
+			statusToString = "已激活"
157
+		}else{
158
+			statusToString = "未激活"
159
+		}
160
+
161
+		excel.SetCell(row, []string{
162
+			item.VipCardChildCode,
163
+			item.Amount,
164
+			statusToString,
165
+			item.SalesName,
166
+			item.CaseName,
167
+			item.CustomerName,
168
+			activeDateToString,
169
+			createDateToString,
170
+		})
171
+	}
172
+	c.SaveToExcel("VIP卡列表.xlsx", excel)
173
+
174
+}
175
+
176
+
177
+
178
+

+ 35
- 0
models/vipcard/vipcard.go View File

@@ -167,3 +167,38 @@ func (m *VipcardDAO) GenerateChildCode() string {
167 167
 	var code string = "88" + strconv.Itoa(temp1) + temp4 + strconv.Itoa(temp2) + temp3 + strconv.Itoa(temp5)
168 168
 	return code
169 169
 }
170
+
171
+
172
+// GetVipCardListExcel 获取VIP卡列表 excel
173
+func (m *VipcardDAO) GetVipCardListExcel(caseids, cardNo, sellerName, userName string) ([]VipChild, error) {
174
+	var vipcards []VipChild
175
+	sql := `SELECT
176
+	vcc.*,
177
+	sc.case_name,
178
+	tc.customer_name
179
+FROM
180
+	ta_vip_card_child vcc
181
+	INNER JOIN ta_vip_card vc ON vcc.vip_card_id = vc.vip_card_id
182
+	INNER JOIN sys_case sc ON vc.case_id = sc.case_id 
183
+	LEFT JOIN ta_customer tc on vcc.customer_id = tc.customer_id
184
+WHERE
185
+	vcc.status > ` + strconv.Itoa(models.STATUS_DEL) +
186
+		` AND sc.case_id IN ('` + strings.Replace(caseids, ",", "','", -1) + `') `
187
+
188
+	if cardNo != "" {
189
+		sql = sql + ` and vcc.vip_card_child_code like '%` + cardNo + `%'`
190
+	}
191
+
192
+	if sellerName != "" {
193
+		sql = sql + ` and tc.recommend_name like '%` + sellerName + `%'`
194
+	}
195
+
196
+	if userName != "" {
197
+		sql = sql + ` and tc.customer_name like '%` + userName + `%'`
198
+	}
199
+	sql = sql + " order by vc.create_date, vip_card_child_code desc"
200
+	err := m.db.Sql(sql).Find(&vipcards)
201
+	return vipcards, err
202
+}
203
+
204
+

+ 2
- 0
routers/common.go View File

@@ -174,6 +174,8 @@ func getCommonRoutes() beego.LinkNamespace {
174 174
 		beego.NSRouter("/vipcard/:code", &vipcard.VipcardController{}, "get:GetVipByCode"),
175 175
 		beego.NSRouter("/vipcard", &vipcard.VipcardController{}, "post:AddVipCard"),
176 176
 		beego.NSRouter("/vipcard/:vipCardChildCode", &vipcard.VipcardController{}, "put:UserCharge"),
177
+		beego.NSRouter("/vipcard/excel", &vipcard.VipcardController{}, "get:GetVipListExcel"),
178
+		
177 179
 
178 180
 		// courseVerify 核销课程
179 181
 		beego.NSRouter("/verify/course/code/:customerCourseId", &verify.VerifyController{}, "get:GetCustomerCourseDetailListById"),

+ 15
- 0
service/vipcard/vipcard.go View File

@@ -140,3 +140,18 @@ func (s *VipcardServ) CustomerCharge(vipchild *model.TaVipCardChild, createUser
140 140
 	}
141 141
 	return nil
142 142
 }
143
+
144
+
145
+// GetVipChildExcel 获取VIP卡列表
146
+func (s *VipcardServ) GetVipChildExcel(caseids, cardNo, sellerName, userName string) ([]vipcard.VipChild, error) {
147
+	
148
+	vipchild, err := s.dao.GetVipCardListExcel(caseids, cardNo, sellerName, userName)
149
+	if err != nil {
150
+		utils.LogError("获取VIP卡信息失败: " + err.Error())
151
+		return nil, errors.New("获取VIP卡信息失败")
152
+	}
153
+	
154
+	return vipchild, err
155
+}
156
+
157
+