ソースを参照

销售后台红包余额明细导出和看课流量统计

wangxy 3 時間 前
コミット
b83a4208df

+ 42 - 11
fs-company/src/main/java/com/fs/company/controller/course/FsCourseTrafficLogController.java

@@ -6,21 +6,26 @@ import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.domain.CompanyUser;
 import com.fs.course.domain.FsCourseTrafficLog;
 import com.fs.course.param.FsCourseTrafficLogParam;
 import com.fs.course.service.IFsCourseTrafficLogService;
 import com.fs.course.service.IFsUserCourseService;
 import com.fs.course.vo.FsCourseTrafficLogListVO;
+import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
 import com.fs.his.vo.OptionsVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.YearMonth;
 import java.time.format.DateTimeFormatter;
+import java.util.Arrays;
 import java.util.List;
 
 
@@ -50,6 +55,14 @@ public class FsCourseTrafficLogController extends BaseController
     public TableDataInfo list(FsCourseTrafficLogParam param)
     {
         startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        if(loginUser.getUser().isAdmin()){
+            //管理员本公司下的数据
+            param.setCompanyId(loginUser.getCompany().getCompanyId());
+        }else{
+            //普通销售只能看自己的数据
+            param.setCompanyUserId(loginUser.getUser().getUserId());
+        }
         List<FsCourseTrafficLogListVO> list = fsCourseTrafficLogService.selectTrafficNew(param);
         return getDataTable(list);
     }
@@ -62,20 +75,38 @@ public class FsCourseTrafficLogController extends BaseController
     @GetMapping("/export")
     public AjaxResult export(FsCourseTrafficLogParam param)
     {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        if(loginUser.getUser().isAdmin()){
+            //管理员本公司下的数据
+            param.setCompanyId(loginUser.getCompany().getCompanyId());
+        }else{
+            //普通销售只能看自己的数据
+            param.setCompanyUserId(loginUser.getUser().getUserId());
+        }
         if (param.getTime() != null) {
-            YearMonth yearMonth = param.getTime();
-            LocalDateTime startOfMonth = yearMonth.atDay(1).atStartOfDay();
-
-            LocalDateTime startOfNextMonth = yearMonth.plusMonths(1).atDay(1).atStartOfDay()
-                    .minusDays(1).withHour(23).withMinute(59).withSecond(59);
-            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-
-            param.setStartDate(startOfMonth.format(formatter));
-            param.setEndDate(startOfNextMonth.format(formatter));
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+            String formattedDate = sdf.format(param.getTime());
+            String[] parts = formattedDate.split("-");
+            param.setYear(Integer.parseInt(parts[0]));
+            param.setMonth(Integer.parseInt(parts[1]));
+        }
+        List<FsCourseTrafficLogListVO> list = fsCourseTrafficLogService.selectTrafficNew(param);
+        //格式化每个记录的流量为 GB 字符串
+        for (FsCourseTrafficLogListVO vo : list) {
+            vo.formatTraffic();
         }
-        List<FsCourseTrafficLogListVO> list = fsCourseTrafficLogService.selectTrafficByCompany(param);
         ExcelUtil<FsCourseTrafficLogListVO> util = new ExcelUtil<FsCourseTrafficLogListVO>(FsCourseTrafficLogListVO.class);
-        return util.exportExcel(list, "短链课程流量记录数据");
+        List<String> selectedFields = Arrays.asList(
+                "companyId",
+                "projectName",
+                "courseName",
+                "courseId",
+                "project",
+                "totalInternetTraffic",
+                "formattedTotalTraffic",
+                "month"
+        );
+        return util.exportExcelSelectedColumns(list, "短链课程流量记录数据",selectedFields);
     }
 
     /**

+ 1 - 1
fs-service/src/main/java/com/fs/company/service/impl/CompanyRedPacketBalanceLogsServiceImpl.java

@@ -45,7 +45,7 @@ public class CompanyRedPacketBalanceLogsServiceImpl extends ServiceImpl<CompanyR
 
         if(packetBalanceLogsList != null && !packetBalanceLogsList.isEmpty()){
             packetBalanceLogsList.forEach(item -> {
-                item.setStatusName(DictUtils.getDictLabel("sys_company_money_logs_type", String.valueOf(item.getStatus())));
+                item.setStatusName(DictUtils.getDictLabel("sys_company_money_logs_type", String.valueOf(item.getLogsType())));
             });
         }
         return  packetBalanceLogsList;

+ 5 - 0
fs-service/src/main/java/com/fs/course/param/FsCourseTrafficLogParam.java

@@ -40,4 +40,9 @@ public class FsCourseTrafficLogParam {
      */
     private String common;
 
+    /**
+     * 销售id
+     */
+    private Long companyUserId;
+
 }

+ 4 - 1
fs-service/src/main/resources/mapper/course/FsCourseTrafficLogMapper.xml

@@ -270,7 +270,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectTrafficNew" resultType="com.fs.course.vo.FsCourseTrafficLogListVO">
         select company_id,project,course_id,SUM(internet_traffic) AS total_internet_traffic
-        ,DATE_FORMAT(create_time, '%Y-%m-%d') AS `month`  from fs_course_traffic_log
+        ,DATE_FORMAT(create_time, '%Y-%m-%d') AS `month` from fs_course_traffic_log
         <where>
             <if test="startDate != null and endDate != null">
                 and DATE_FORMAT(create_time, '%Y-%m-%d') between #{startDate} AND #{endDate}
@@ -290,6 +290,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="common != null ">
                 AND company_id IS NULL
             </if>
+            <if test="companyUserId != null">
+                and company_user_id = #{companyUserId}
+            </if>
         </where>
 
         <if test="tabType==null or tabType==''">