From f07aabaf30a9a73f0da21c6b7ed31577d1f6f93f Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期一, 05 一月 2026 11:15:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java |   71 +++++++++++++++++++++++++++++++++++
 1 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
index 9561524..ef1c02a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
@@ -173,6 +173,35 @@
         return R.ok(tAppUserVo);
     }
 
+    @ApiOperation(value = "小程序用户金币导入模板下载")
+    @GetMapping("/import-template_gold")
+    public void importTemplateGold() {
+        List<AppUserGoldImport> imports = new ArrayList<>();
+        AppUserGoldImport goldImport = new AppUserGoldImport();
+        imports.add(goldImport);
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), AppUserGoldImport.class, imports);
+        HttpServletResponse response = WebUtils.response();
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("金币导入模板.xls", "utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            response.setHeader("content-Type", "application/vnd.ms-excel");
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+            System.out.println("金币导入模板下载失败!");
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
 
     @Log(title = "小程序用户-金币导入", businessType = BusinessType.IMPORT)
     @ApiOperation(value = "小程序用户-金币导入")
@@ -248,6 +277,36 @@
     }
 
 
+
+    @ApiOperation(value = "小程序用户导入模板下载")
+    @GetMapping("/import-template_user")
+    public void importTemplate() {
+        List<AppUserImport> imports = new ArrayList<>();
+        AppUserImport appUserImport = new AppUserImport();
+        imports.add(appUserImport);
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), AppUserImport.class, imports);
+        HttpServletResponse response = WebUtils.response();
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("小程序用户导入模板.xls", "utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            response.setHeader("content-Type", "application/vnd.ms-excel");
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+            System.out.println("小程序用户导入模板下载失败!");
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
     @Log(title = "小程序用户-用户导入", businessType = BusinessType.IMPORT)
     @ApiOperation(value = "小程序用户-用户导入")
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
@@ -294,6 +353,10 @@
                 result.append("第" + i + "行:[", "出生日期" + "]不能为空");
                 continue;
             }
+            if (!StringUtils.hasLength(appUserImport.getPromotion())) {
+                result.append("第" + i + "行:[", "推广权限" + "]不能为空");
+                continue;
+            }
             if (!StringUtils.hasLength(appUserImport.getRole())) {
                 result.append("第" + i + "行:[", "角色" + "]不能为空");
                 continue;
@@ -321,6 +384,13 @@
                 continue;
             }
 
+            String promotion = appUserImport.getPromotion();
+            Integer promotionType = "是".equals(promotion) ? 1 : "否".equals(promotion) ? 0 : null;
+            if (promotionType == null) {
+                result.append("第" + i + "行:[", "推广权限" + "]格式错误");
+                continue;
+            }
+
             String birth = appUserImport.getBirth();
             LocalDate birthday = null;
             try {
@@ -344,6 +414,7 @@
             tAppUser.setGender(gender);
             tAppUser.setBirthday(birthday);
             tAppUser.setUserType(userType);
+            tAppUser.setPromotionStatus(promotionType);
 
             if (appUserImport.getReferrerCode() != null) {
                 TAppUser referrerUser = appUserService.getOne(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getCode, appUserImport.getReferrerCode()).ne(TAppUser::getStatus, 3).last("LIMIT 1"));

--
Gitblit v1.7.1