diff --git a/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java b/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java index 966f54e..d6c5c95 100644 --- a/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java +++ b/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java @@ -414,7 +414,7 @@ public class EmployeeService { * @param fileUrl 文件url * @return */ - private InputStream getInputStream(String fileUrl) { + public InputStream getInputStream(String fileUrl) { URLConnection connection = null; try { diff --git a/src/main/java/com/kiisoo/ic/login/service/impl/LoginServiceImpl.java b/src/main/java/com/kiisoo/ic/login/service/impl/LoginServiceImpl.java index 5ec2167..66b37da 100644 --- a/src/main/java/com/kiisoo/ic/login/service/impl/LoginServiceImpl.java +++ b/src/main/java/com/kiisoo/ic/login/service/impl/LoginServiceImpl.java @@ -72,6 +72,7 @@ public class LoginServiceImpl implements LoginService { @Override public LoginBean login(String login, String password, Boolean isMD5) { + password = MD5FileUtil.getMD5String(password); UsernamePasswordToken token = new UsernamePasswordToken(login, password, isMD5); Subject subject = SecurityUtils.getSubject(); @@ -88,15 +89,18 @@ public class LoginServiceImpl implements LoginService { LoginBean loginBean = new LoginBean(); if (subject.isAuthenticated()) { - PrivilageAccountDO privilageAccountDO = (PrivilageAccountDO) SecurityUtils.getSubject().getPrincipal(); + Map selectAccountMap = new HashMap<>(); + selectAccountMap.put("login", login); + selectAccountMap.put("type", AccountEnum.ACCOUNT_TYPE_SYSTEM.getType()); + List privilageAccountDOS = privilageAccountDOMapper.selectByMap(selectAccountMap); Map loginInfoMap = new HashMap<>(); - PrivilageUserDO privilageUserDO = privilageUserDOMapper.selectById(privilageAccountDO.getUserId()); - PrivilageRoleDO roleDO = privilageRoleDOMapper.selectRoleName(privilageAccountDO.getUserId()); + PrivilageUserDO privilageUserDO = privilageUserDOMapper.selectById(privilageAccountDOS.get(0).getUserId()); + PrivilageRoleDO roleDO = privilageRoleDOMapper.selectRoleName(privilageAccountDOS.get(0).getUserId()); //成功设置信息 loginBean.setUserName(privilageUserDO.getName()); - loginBean.setUserId(privilageAccountDO.getUserId()); - loginBean.setRoleId(privilageAccountDO.getId()); + loginBean.setUserId(privilageAccountDOS.get(0).getUserId()); + loginBean.setRoleId(privilageAccountDOS.get(0).getId()); loginBean.setRoleCode(roleDO.getCode()); loginBean.setLogin(login); loginInfoMap.put("code", LoginEnum.LOGIN_SUCCEED.getCode()); diff --git a/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java b/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java index 660c009..8ccfbfc 100644 --- a/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java +++ b/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java @@ -69,7 +69,7 @@ public class StoreEmployeeController extends BaseController { * 批量下载店铺二维码 * @param response */ - @RequestMapping(value = "download/store/code",method = RequestMethod.POST) + @RequestMapping(value = "download/store/code",method = RequestMethod.GET) @ResponseBody public void downloadCode(HttpServletResponse response) { try { diff --git a/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java b/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java index 2a4d36b..82dd445 100644 --- a/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java +++ b/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreDOMapper.java @@ -38,4 +38,6 @@ public interface PoiStoreDOMapper extends BaseMapper { List selectShopByCompany(long orgId); List selectSellerByShop(long shopId); + + String selectStoreQrCode(@Param("shopId")Long shopId); } diff --git a/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java index 2215cf9..d20906e 100644 --- a/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java +++ b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java @@ -37,10 +37,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import javax.imageio.ImageIO; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.awt.*; +import java.awt.image.BufferedImage; import java.io.*; import java.util.*; +import java.util.List; import java.util.stream.Collectors; +import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import static com.kiisoo.ic.employee.constant.Constants.ADD_CP_CODE_BINDED; @@ -147,31 +153,77 @@ public class StoreEmployeeService { if (CollectionUtils.isNotEmpty(privilageOrganizationals)){ + + String fileUrl = UUID.randomUUID().toString().replace("-", ""); + File file = new File(fileUrl); + file.mkdir(); + byte[] buffer = new byte[1024]; // 生成的ZIP文件名为Demo.zip - String strZipName = "store_qrCode.zip"; + String strZipName = "store_qrCode_"+ fileUrl +".zip"; ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipName)); + for (PrivilageOrganizational privilageOrganizational:privilageOrganizationals) { if (privilageOrganizational == null || privilageOrganizational.getId() == null){ continue; } - String fileUrl = UUID.randomUUID().toString().replace("-", ""); - File file = new File(fileUrl); - file.mkdir(); File complayFile = new File(file.getPath()+"/"+privilageOrganizational.getName()); complayFile.mkdir(); List poiStores = poiStoreDOMapper.selectShopByCompany(privilageOrganizational.getId()); if (CollectionUtils.isNotEmpty(poiStores)){ for (PoiStore poiStore:poiStores){ -// poiStoreDOMapper. + String url = poiStoreDOMapper.selectStoreQrCode(poiStore.getId()); + //下载图片 + BufferedInputStream in = new BufferedInputStream(employeeService.getInputStream(url)); + //字节流转图片对象 + Image bi = ImageIO.read(in); + //构建图片流 + BufferedImage tag = new BufferedImage(300, 300, BufferedImage.TYPE_INT_RGB); + //绘制改变尺寸后的图 + tag.getGraphics().drawImage(bi, 0, 0, 300, 300, null); + //输出流 + BufferedOutputStream image = new BufferedOutputStream(new FileOutputStream(complayFile.getPath() +"/" +poiStore.getCode() + ".png")); + + ImageIO.write(tag, "PNG", image); + + in.close(); + image.close(); + } + } + } + File[] files = file.listFiles(); + if (files !=null && files.length>0){ + for (int i =0;i 0) { + out.write(buffer, 0, len); } + fileInputStream.close(); + out.closeEntry(); } + } + out.flush(); + out.close(); + ServletOutputStream outputStream = response.getOutputStream(); + byte[] bufferNew = new byte[1024]; + File zipFile = new File(strZipName); + FileInputStream inStream = new FileInputStream(zipFile); + int lenNew; + while ((lenNew = inStream.read(bufferNew)) > 0) { + outputStream.write(bufferNew, 0, lenNew); } + file.delete(); + zipFile.delete(); } - } /** diff --git a/src/main/resources/mapper/PoiStoreDOMapper.xml b/src/main/resources/mapper/PoiStoreDOMapper.xml index 8695051..55b4275 100644 --- a/src/main/resources/mapper/PoiStoreDOMapper.xml +++ b/src/main/resources/mapper/PoiStoreDOMapper.xml @@ -46,4 +46,10 @@ where t1.user_id = t2.id and t1.store_id = #{shopId} +