using MyCode.Project.Domain.Message.Request.Activity; using MyCode.Project.Domain.Message.Request.Clerk; using MyCode.Project.Domain.Message.Request.PerformanceRecord; using MyCode.Project.Domain.Message.Response.Activity; using MyCode.Project.Domain.Message.Response.CardCover; using MyCode.Project.Domain.Message.Response.Member; using MyCode.Project.Domain.Message.Response.PerformanceRecord; using MyCode.Project.Domain.Message.Response.Shop; using MyCode.Project.Domain.Message.Response.User; using MyCode.Project.Infrastructure.Common; using MyCode.Project.Infrastructure.Constant; using MyCode.Project.Infrastructure.Exceptions; using MyCode.Project.Services; using System; using System.Collections.Generic; using System.Web.Http; namespace MyCode.Project.WebApi.Areas.Wechat.Controllers { /// ///商品分类业绩统计 相关 /// public class PerformanceRecordController : BaseWechatController { private IPerformanceRecordService _performanceRecordService; /// /// /// /// public PerformanceRecordController(IPerformanceRecordService performanceRecordService ) { _performanceRecordService = performanceRecordService; } #region GetCustomerPerformanceResp(获取加盟商/区总/大区完成率的报表) /// /// 获取加盟商/区总/大区完成率的报表 /// /// [HttpPost] public PerformanceReportResp GetCustomerPerformanceResp(CustomerPerformanceResp query) { PerformanceReportResp result = new PerformanceReportResp(); if (this.CurrentLogin.RoleId == Const.DirectorOfSalesRole || this.CurrentLogin.RoleId == Const.GeneralManagerRole || this.CurrentLogin.RoleId == Const.RegionalManagerRole) { if (query.DataType == 0) { query.Id = this.CurrentLogin.UserId; if (this.CurrentLogin.RoleId == Const.RegionalManagerRole) { result = _performanceRecordService.GetCustomerPerformanceResp(query, this.CurrentLogin.UserId); } else if (this.CurrentLogin.RoleId == Const.DirectorOfSalesRole || this.CurrentLogin.RoleId == Const.GeneralManagerRole) { result = _performanceRecordService.GetRegionalPerformanceResp(query); } } else if (query.DataType == 3) { result = _performanceRecordService.GetCustomerPerformanceResp(query, query.Id.Value); } else if (query.DataType == 4) { result = _performanceRecordService.GetRegionalManagerPerformanceResp(query, query.Id.Value); } else if (query.DataType == 2) { result = _performanceRecordService.GetShopsPerformanceResp(query); } result.DataList.ForEach(t => { t.CompletionRate = Math.Round(t.CompletionRate, 2, MidpointRounding.AwayFromZero); t.CompletionRateString = t.CompletionRate.ToString() + "%"; }); } else { throw new BaseException("当前账号没有权限查看此报表"); } return result; } #endregion #region GetPerformanceDetail(获取明细列表) /// /// 获取明细列表 /// /// [HttpPost] public PerformanceDetailReportResp GetPerformanceDetail(CustomerPerformanceResp query) { PerformanceDetailReportResp result = new PerformanceDetailReportResp(); if (query.DataType==2) result= _performanceRecordService.GetCustomerPerformanceDetail(query); else if (query.DataType == 1) result= _performanceRecordService.GetShopPerformanceDetail(query); result.DataList.ForEach(t => { t.DifferenceAmount = Math.Round(t.DifferenceAmount, 2, MidpointRounding.AwayFromZero); t.PlanReplenishmentAmount = Math.Round(t.PlanReplenishmentAmount, 2, MidpointRounding.AwayFromZero); t.ReplenishmentAmount = Math.Round(t.ReplenishmentAmount, 2, MidpointRounding.AwayFromZero); t.SalesTotalAmount = Math.Round(t.SalesTotalAmount, 2, MidpointRounding.AwayFromZero); }); return result; } #endregion } }