123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- package statistics
-
- import (
- "errors"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/utils"
- "strconv"
- )
-
- // CardCouponStatistics 获取卡券统计数据
- func (c *StatisticsController) CardCouponStatistics() {
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- ctype := c.GetString("ctype")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- list, err := c.serv.CardCouponStatistics(caseids, ctype, name, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(list)
- }
-
- // CardCouponStatisticsExcel 获取卡券统计数据
- func (c *StatisticsController) CardCouponStatisticsExcel() {
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- ctype := c.GetString("ctype")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
-
- list, err := c.serv.CardCouponStatisticsExcel(caseids, ctype, 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()
- sendtype := ""
- switch item.SendType {
- case "system":
- sendtype = "系统"
- break
- case "case":
- sendtype = "案场"
- break
- case "channel":
- sendtype = "渠道"
- break
- }
- price, err := strconv.ParseFloat(item.Price, 64)
- if err != nil {
- c.ResponseError(errors.New("金额类型不正确!"))
- }
- amount := price * float64(item.UsedCount)
-
- excel.SetCell(row, []string{
- item.CaseName,
- item.CName,
- item.TypeName,
- sendtype,
- item.Price,
- strconv.Itoa(item.SentCount),
- strconv.Itoa(item.UsedCount),
- strconv.FormatFloat(amount, 'f', -1, 64),
- })
- }
- c.SaveToExcel("卡券统计列表.xlsx", excel)
- }
-
- // CardCouponUsedStatistics 获取卡券使用统计数据
- func (c *StatisticsController) CardCouponUsedStatistics() {
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- receivetype := c.GetString("receivetype")
- tel := c.GetString("tel")
- begindate := c.GetString("begindate")
- enddate := c.GetString("enddate")
- status := c.GetString("status")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- list, err := c.serv.CardCouponUsedStatistics(caseids, tel, name, receivetype, begindate, enddate, status, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(list)
- }
-
- // CardCouponUsedStatisticsExcel 卡券使用导出
- func (c *StatisticsController) CardCouponUsedStatisticsExcel() {
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- receivetype := c.GetString("receivetype")
- tel := c.GetString("tel")
- begindate := c.GetString("begindate")
- enddate := c.GetString("enddate")
- status := c.GetString("status")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- list, err := c.serv.CardCouponUsedStatisticsExcel(caseids, tel, name, receivetype, begindate, enddate, status)
- 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()
- receivetype := ""
- switch item.ReceivingType {
- case "event":
- receivetype = "系统"
- break
- case "sales":
- receivetype = "案场"
- break
- case "channel":
- receivetype = "渠道"
- break
- case "give":
- receivetype = "后台赠送"
- break
- }
-
- verifystatus := ""
- switch item.VerifyStatus {
- case "useable":
- verifystatus = "未使用"
- break
- case "used":
- verifystatus = "已使用"
- break
- case "late":
- verifystatus = "逾期核销"
- break
- case "expire":
- verifystatus = "已失效"
- break
- }
-
- excel.SetCell(row, []string{
- item.CaseName,
- item.CardCouponName,
- item.TargetName,
- receivetype,
- item.CustomerName,
- item.Phone,
- item.SalesName,
- item.EndDate.Format("2006-01-02 15:04:05"),
- item.ReceiveDate.Format("2006-01-02 15:04:05"),
- item.UsedDate.Format("2006-01-02 15:04:05"),
- verifystatus,
- })
- }
- c.SaveToExcel("卡券使用列表.xlsx", excel)
- }
-
- // CardCouponVerifyStatistics 获取卡券核销统计数据
- func (c *StatisticsController) CardCouponVerifyStatistics() {
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- tel := c.GetString("tel")
- status := c.GetString("status")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- list, err := c.serv.CardCouponVerifyStatistics(caseids, tel, name, status, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(list)
- }
-
- // CardCouponVerifyStatisticsExcel 卡券核销统计导出
- func (c *StatisticsController) CardCouponVerifyStatisticsExcel() {
- caseids := c.GetString("caseid")
- name := c.GetString("name")
- tel := c.GetString("tel")
- status := c.GetString("status")
-
- if caseids == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseids = c.GetCaseIDs(cases)
- }
- list, err := c.serv.CardCouponVerifyStatisticsExcel(caseids, tel, name, status)
- 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()
- verifystatus := ""
- switch item.VerifyStatus {
- case "useable":
- verifystatus = "未核销"
- break
- case "used":
- verifystatus = "已核销"
- break
- case "late":
- verifystatus = "逾期核销"
- break
- }
-
- verifydate := ""
- if !item.VerifyDate.IsZero() {
- verifydate = item.VerifyDate.Format("2006-01-02 15:04:05")
- }
-
- excel.SetCell(row, []string{
- item.CaseName,
- item.CourseName,
- item.BeginDate.Format("2006-01-02 15:04:05") + "~" + item.EndDate.Format("2006-01-02 15:04:05"),
- item.Name,
- item.CustomerName,
- item.Phone,
- item.CreateDate.Format("2006-01-02 15:04:05"),
- verifydate,
- verifystatus,
- })
- }
- c.SaveToExcel("课程核销列表.xlsx", excel)
- }
|