From 671660360e591c153ab16f99205930b283baaa1d Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 16 May 2022 16:10:41 +0800
Subject: [PATCH] 20220516

---
 zq-erp/src/main/java/com/matrix/system/padApi/action/PadApiCommonAction.java |  141 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 120 insertions(+), 21 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/padApi/action/PadApiCommonAction.java b/zq-erp/src/main/java/com/matrix/system/padApi/action/PadApiCommonAction.java
index caca5ae..f3621f0 100644
--- a/zq-erp/src/main/java/com/matrix/system/padApi/action/PadApiCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/padApi/action/PadApiCommonAction.java
@@ -1,34 +1,32 @@
 package com.matrix.system.padApi.action;
 
 import cn.hutool.core.collection.CollUtil;
-import com.matrix.core.constance.MatrixConstance;
+import cn.hutool.core.util.ObjectUtil;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.PaginationVO;
-import com.matrix.core.tools.DateUtil;
-import com.matrix.core.tools.RSAUtils;
-import com.matrix.core.tools.UUIDUtil;
-import com.matrix.core.tools.WebUtil;
+import com.matrix.core.tools.*;
 import com.matrix.system.app.vo.UserInfoVo;
 import com.matrix.system.common.authority.DefaultAuthorityManager;
 import com.matrix.system.common.authority.strategy.AccountPasswordLogin;
 import com.matrix.system.common.authority.strategy.LoginStrategy;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.SysCompanyDao;
+import com.matrix.system.common.dao.SysUsersDao;
 import com.matrix.system.common.init.LocalCache;
 import com.matrix.system.common.service.SysUsersService;
-import com.matrix.system.common.tools.DataAuthUtil;
 import com.matrix.system.constance.Dictionary;
 import com.matrix.system.hive.action.BaseController;
-import com.matrix.system.hive.action.util.QueryUtil;
 import com.matrix.system.hive.bean.SysBeauticianState;
 import com.matrix.system.hive.bean.SysBedInfo;
 import com.matrix.system.hive.bean.SysProjServices;
 import com.matrix.system.hive.bean.SysShopInfo;
+import com.matrix.system.hive.dao.SysBedInfoDao;
 import com.matrix.system.hive.dao.SysShopInfoDao;
 import com.matrix.system.hive.service.SysBedInfoService;
 import com.matrix.system.hive.service.SysOrderService;
 import com.matrix.system.hive.service.SysShopInfoService;
 import com.matrix.system.hive.service.SysWorktimeService;
+import com.matrix.system.padApi.dto.Base64UploadDto;
 import com.matrix.system.padApi.dto.PadOrderListDto;
 import com.matrix.system.padApi.dto.WebPadLoginDto;
 import com.matrix.system.padApi.vo.PadOrderDetailVo;
@@ -36,12 +34,18 @@
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
+import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.FileCopyUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import sun.misc.BASE64Decoder;
 
 import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -76,8 +80,29 @@
     @Resource
     private SysWorktimeService sysWorkTimeService;
 
+    @Resource
+    private SysUsersService usersService;
+
+    @Autowired
+    private SysBedInfoDao sysBedInfoDao;
+
     @Value("${login_public_key}")
     private String publicKey;
+    @Autowired
+    private SysUsersDao sysUsersDao;
+
+
+    Logger log = Logger.getLogger(PadApiCommonAction.class);
+
+    @Value("${file_storage_path}")
+    private String fileStoragePath;
+    @Value("${static_resource_url}")
+    private String nginxUrl;
+
+    /**
+     * 最大值
+     */
+    private Long maxSize = 1024*1024*100L;
 
     @ApiOperation(value = "登陆接口", notes = "pad端登陆接口")
     @ApiResponses({
@@ -118,13 +143,13 @@
     }
 
 
-    @Resource
-    private SysUsersService usersService;
 
     @ApiOperation(value = "首页", notes = "首页")
-    @GetMapping(value = "/frist")
-    public AjaxResult frist() {
-        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+    @GetMapping(value = "/frist/{suId}")
+    public AjaxResult frist(@PathVariable Long suId) {
+        SysUsers user = usersService.findById(suId);
+        LogUtil.info("首页 shopId={}", user.getShopId());
+//        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
         PadOrderListDto orderListDto = new PadOrderListDto();
         orderListDto.setPageNum(1);
         orderListDto.setPageSize(5);
@@ -133,24 +158,37 @@
         PaginationVO pageVo = new PaginationVO();
         pageVo.setOffset(offset);
         pageVo.setLimit(limit);
-        if (!DataAuthUtil.hasAllShopAuth()) {
+        if(ObjectUtil.isNotEmpty(user.getShopId())){
             orderListDto.setShopId(user.getShopId());
         }
-        QueryUtil.setQueryLimitCom(orderListDto);
+//        if (!DataAuthUtil.hasAllShopAuth()) {
+//            orderListDto.setShopId(user.getShopId());
+//        }
+
+        if(ObjectUtil.isNotEmpty(user.getCompanyId())){
+            orderListDto.setCompanyId(user.getCompanyId());
+        }
+//        QueryUtil.setQueryLimitCom(orderListDto);
         List<PadOrderDetailVo> padApiOrderListInPage = sysOrderService.findPadApiOrderListInPage(orderListDto, pageVo);
 
         AjaxResult result = AjaxResult.buildSuccessInstance("");
         result.putInMap("orderList",padApiOrderListInPage);
 
-        List<SysUsers> mls = usersService.findByRoleName(true, Dictionary.STAFF_POST_MLS);
+        Date date = new Date();
+        SysUsers shopstaffInfo = new SysUsers();
+        shopstaffInfo.setCompanyId(user.getCompanyId());
+        shopstaffInfo.setShopId(user.getShopId());
+        shopstaffInfo.setRoleName(Dictionary.STAFF_POST_MLS);
+        List<SysUsers> mls = sysUsersDao.selectByRoleName(shopstaffInfo);
+        LogUtil.info("美疗师 size={}", mls.size());
+//        List<SysUsers> mls = usersService.findByRoleName(true, Dictionary.STAFF_POST_MLS);
         if(CollUtil.isNotEmpty(mls)){
             SysBeauticianState sysBeauticianState = new SysBeauticianState();
-            Date date = new Date();
             sysBeauticianState.setBeginTime(DateUtil.getStartDate(date));
             sysBeauticianState.setEndTime(DateUtil.getStartDate(date));
             String panBanCodes = DateUtil.dateToString(sysBeauticianState.getBeginTime(),DateUtil.DATE_FORMAT_NO_SPLITE_DD);
             List<SysUsers> staffs=new ArrayList<>();
-            if(sysWorkTimeService.isInWorkTime(user.getShopId(),sysBeauticianState.getBeginTime(),sysBeauticianState.getEndTime())){
+//            if(sysWorkTimeService.isInWorkTime(user.getShopId(),sysBeauticianState.getBeginTime(),sysBeauticianState.getEndTime())){
                 staffs= sysUsersService.findByCodeBeaStateShop(user.getShopId(),
                         sysBeauticianState, panBanCodes);
                 if(CollUtil.isNotEmpty(staffs)){
@@ -160,16 +198,20 @@
                     result.putInMap("usedMls", mls.size());
                     result.putInMap("freeMls", 0);
                 }
-            }
+//            }
         }
 
         SysBedInfo bedInfo = new SysBedInfo();
-        bedInfo.setShopId(getMe().getShopId());
+        bedInfo.setShopId(user.getShopId());
         List<SysBedInfo> totalBed = bedInfoService.findByModel(bedInfo);
         if(CollUtil.isNotEmpty(totalBed)){
             SysProjServices sysProjServices = new SysProjServices();
-            sysProjServices.setShopId(getMe().getShopId());
-            List<SysBedInfo> freeBed = bedInfoService.findFreeBed(sysProjServices);
+            sysProjServices.setShopId(user.getShopId());
+
+            sysProjServices.setStartTime(DateUtil.getStartDate(date));
+            sysProjServices.setEndTime(DateUtil.getStartDate(date));
+            List<SysBedInfo> freeBed = sysBedInfoDao.findFreeBed(sysProjServices);
+//            List<SysBedInfo> freeBed = bedInfoService.findFreeBed(sysProjServices);
             if(CollUtil.isNotEmpty(freeBed)){
                 result.putInMap("usedBed", totalBed.size() - freeBed.size());
                 result.putInMap("freeBed", freeBed);
@@ -191,5 +233,62 @@
         return AjaxResult.buildSuccessInstance("退出系统成功");
     }
 
+    /**
+     * 文件上传方法
+     */
+    @ApiOperation(value = "文件上传方法", notes = "文件上传方法")
+    @PostMapping(value = "/doUpload")
+    public AjaxResult doFileUpload(@RequestBody @Validated Base64UploadDto uploadDto){
+        // 文件保存目录路径
+        String savePath = fileStoragePath;
+        // 文件保存目录URL
+        String saveUrl = nginxUrl;
+        // 保存和访问路径检查
+        if (StringUtils.isBlank(saveUrl) || StringUtils.isBlank(savePath)) {
+            return AjaxResult.buildFailInstance("文件上传失败错误代码:001");
+        }
+        // 检查目录
+        File uploadDir = new File(savePath);
+        if (!uploadDir.isDirectory()) {
+            uploadDir.mkdir();
+        }
+        log.info("uploadDto:" + uploadDto.getBase64Str());
+        BASE64Decoder decoder = new BASE64Decoder();
+        byte[] bytes = new byte[0];
+        try {
+            bytes = decoder.decodeBuffer(uploadDto.getBase64Str());
+        } catch (IOException e) {
+            return AjaxResult.buildFailInstance("上传文件失败");
+        }
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        String ymd = sdf.format(new Date());
+        savePath += ymd + "/";
+        saveUrl += ymd + "/";
+        File dirFile = new File(savePath);
+        if (!dirFile.exists()) {
+            dirFile.mkdirs();
+        }
+        if (bytes.length > maxSize) {
+            return AjaxResult.buildFailInstance("上传文件大小超过限制");
+        }
+        String newFileName = UUIDUtil.getRandomID() + UUIDUtil.getRandomID() + ".png";
+        File uploadedFile = new File(savePath, newFileName);
+        try {
+            FileCopyUtils.copy(bytes, uploadedFile);
+        } catch (Exception e) {
+            return AjaxResult.buildFailInstance("上传文件失败");
+        }
+        log.info("saveUrl:" + saveUrl);
+        String visitPath = saveUrl + newFileName;
+        log.info("上传一个文件:" + newFileName);
+        log.info("访问路径:" + visitPath);
+
+        AjaxResult result = AjaxResult.buildSuccessInstance("上传成功");
+        result.putInMap("path", visitPath);
+        result.putInMap("fileName", newFileName);
+        return result;
+    }
+
 
 }

--
Gitblit v1.9.1