123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- package statistics
-
- import (
- "errors"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/utils"
- "strconv"
- )
-
- // GetCourseOrdersStatistics 获取课程订单统计数据
- func (c *StatisticsController) GetCourseOrdersStatistics() {
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- typeid := c.GetString("typeid")
- begindate := c.GetString("begindate")
- enddate := c.GetString("enddate")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- ordersList, err := c.serv.GetCourseOrdersStatistics(typeid, caseids, name, begindate, enddate, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(ordersList)
- }
-
- // GetCourseOrdersStatisticsExcel 课程订单导出
- func (c *StatisticsController) GetCourseOrdersStatisticsExcel() {
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- typeid := c.GetString("typeid")
- begindate := c.GetString("begindate")
- enddate := c.GetString("enddate")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- list, err := c.serv.GetCourseOrdersStatisticsExcel(typeid, caseids, name, begindate, enddate)
- if err != nil {
- c.ResponseError(err)
- }
-
- excel, err := utils.NewTinyXLSXEngine()
- if err != nil {
- utils.LogError("初始化Excel服务失败: " + err.Error())
- c.ResponseError(errors.New("初始化Excel服务失败"))
- }
-
- excel.SetCell(excel.InsertRow(), []string{
- "订单编号",
- "课程名称",
- "案场",
- "课程类别",
- "课程时间",
- "用户姓名",
- "手机号",
- "下单时间",
- })
-
- for _, item := range list {
- row := excel.InsertRow()
- excel.SetCell(row, []string{
- item.OrdersNo,
- item.CourseName,
- item.CaseName,
- item.LocationName,
- item.BeginDate.Format("2006-01-02 15:04:05") + "~" + item.EndDate.Format("2006-01-02 15:04:05"),
- item.CustomerName,
- item.Phone,
- item.CreateDate.Format("2006-01-02 15:04:05"),
- })
- }
- c.SaveToExcel("课程订单列表.xlsx", excel)
- }
-
- // GetCourseStatistics 获取课程统计数据
- func (c *StatisticsController) GetCourseStatistics() {
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- typeid := c.GetString("typeid")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- ordersList, err := c.serv.GetCourseStatistics(typeid, caseids, name, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(ordersList)
- }
-
- // GetCourseStatisticsExcel 课程统计数据导出
- func (c *StatisticsController) GetCourseStatisticsExcel() {
-
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- typeid := c.GetString("typeid")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- list, err := c.serv.GetCourseStatisticsExcel(typeid, caseids, name)
- if err != nil {
- c.ResponseError(err)
- }
-
- excel, err := utils.NewTinyXLSXEngine()
- if err != nil {
- utils.LogError("初始化Excel服务失败: " + err.Error())
- c.ResponseError(errors.New("初始化Excel服务失败"))
- }
-
- excel.SetCell(excel.InsertRow(), []string{
- "案场",
- "课程名称",
- "课程类别",
- "课程时间",
- "课程价格",
- "报名人数",
- "核销人数",
- "总费用",
- })
-
- for _, item := range list {
- row := excel.InsertRow()
- price, err := strconv.ParseFloat(item.Price, 64)
- if err != nil {
- c.ResponseError(errors.New("金额类型不正确!"))
- }
- amount := price * float64(item.JoinTotal)
-
- excel.SetCell(row, []string{
- item.CaseName,
- item.CourseName,
- item.LocationName,
- item.BeginDate.Format("2006-01-02 15:04:05") + "~" + item.EndDate.Format("2006-01-02 15:04:05"),
- item.Price,
- strconv.Itoa(item.Total),
- strconv.Itoa(item.JoinTotal),
- strconv.FormatFloat(amount, 'f', -1, 64),
- })
- }
- c.SaveToExcel("课程统计列表.xlsx", excel)
- }
|