From 3d67816f26e314716f1f1a8779a7877575540865 Mon Sep 17 00:00:00 2001 From: LegnaYet <1023868505@qq.com> Date: Sun, 26 Apr 2020 15:31:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=B3=A2=E5=8F=B8=E7=99=BB?= =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kiisoo/ic/employee/entity/QrCodeDO.java | 4 + .../kiisoo/ic/store/constant/Constants.java | 9 + .../kiisoo/ic/store/entity/StoreUserDTO.java | 4 + .../store/service/PoiStoreStaffService.java | 58 +++- .../store/service/StoreEmployeeService.java | 280 +++++++++++------- .../impl/PrivilageUserServiceImpl.java | 9 +- .../mapper/PrivilageCpUserStoreDOMapper.xml | 2 +- 7 files changed, 237 insertions(+), 129 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/employee/entity/QrCodeDO.java b/src/main/java/com/kiisoo/ic/employee/entity/QrCodeDO.java index 3b07859..63da347 100644 --- a/src/main/java/com/kiisoo/ic/employee/entity/QrCodeDO.java +++ b/src/main/java/com/kiisoo/ic/employee/entity/QrCodeDO.java @@ -94,6 +94,10 @@ public class QrCodeDO { * 人员code */ private String staffCode; + /** + * 二维码 + */ + private String qrCode; /** * 人员角色 */ diff --git a/src/main/java/com/kiisoo/ic/store/constant/Constants.java b/src/main/java/com/kiisoo/ic/store/constant/Constants.java index a170141..9d2bae3 100644 --- a/src/main/java/com/kiisoo/ic/store/constant/Constants.java +++ b/src/main/java/com/kiisoo/ic/store/constant/Constants.java @@ -75,4 +75,13 @@ public class Constants { // 人员状态 1 有效 2 无效 public static final long STATUS_USEFUL = 1; public static final long STATUS_UNUSEFUL = 2; + + /** + * 波司登请求门店二维码type + */ + public static final String BSD_REQ_QRCODE_TYPE_STORE = "0"; + /** + * 波司登请求导购二维码type + */ + public static final String BSD_REQ_QRCODE_TYPE_SELLER = "1"; } diff --git a/src/main/java/com/kiisoo/ic/store/entity/StoreUserDTO.java b/src/main/java/com/kiisoo/ic/store/entity/StoreUserDTO.java index 4319ef3..ed1d0c4 100644 --- a/src/main/java/com/kiisoo/ic/store/entity/StoreUserDTO.java +++ b/src/main/java/com/kiisoo/ic/store/entity/StoreUserDTO.java @@ -18,6 +18,10 @@ public class StoreUserDTO extends PoiStore{ * 企业微信账号 */ private String cpUserId; + /** + * privilage_cp_user 主键id + */ + private Long userId; /** * 导购人数 */ diff --git a/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java b/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java index f1fd529..680045f 100644 --- a/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java +++ b/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java @@ -45,8 +45,7 @@ import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; -import static com.kiisoo.ic.store.constant.Constants.TYPE_MANAGER; -import static com.kiisoo.ic.store.constant.Constants.TYPE_SELLER; +import static com.kiisoo.ic.store.constant.Constants.*; /** * 店铺 @@ -63,6 +62,8 @@ public class PoiStoreStaffService { @Autowired private PrivilageUserDOMapper privilageUserDOMapper; @Autowired + private StoreEmployeeService storeEmployeeService; + @Autowired private PoiStoreDOMapper poiStoreDOMapper; @Autowired private PrivilageCpUserStoreDOMapper privilageCpUserStoreDOMapper; @@ -86,6 +87,8 @@ public class PoiStoreStaffService { * @param shopId 店铺id */ public IPage getStaffByUserAndDate(int pageNum, int pageSize, Long shopId) { + String cpUserId = privilageCpUserStoreDOMapper.selectCpUserIdByStoreId(shopId); + PoiStore storeInfo = poiStoreDOMapper.selectById(shopId); //根据店铺查询所有扫码客户信息 QueryWrapper wrapper = new QueryWrapper<>(); @@ -111,6 +114,20 @@ public class PoiStoreStaffService { poiStoreStaffVO.setName(privilageUserBean.getName()); poiStoreStaffVO.setMobil(privilageUserBean.getMobil()); } + String epWechatQrCode = poiStoreStaffVO.getEpWechatQrCode(); + if (StringUtils.isBlank(epWechatQrCode)){ + try { + epWechatQrCode = storeEmployeeService.getQrCodeFromBSD(cpUserId,BSD_REQ_QRCODE_TYPE_SELLER,poiStoreStaffVO.getStaffCode(),storeInfo.getCode()); + poiStoreStaffVO.setEpWechatQrCode(epWechatQrCode); + PoiStoreStaff update = new PoiStoreStaff(); + update.setId(poiStoreStaffVO.getId()); + update.setEpWechatQrCode(epWechatQrCode); + poiStoreStaffDOMapper.updateById(update); + } catch (Exception e) { + + } + } + //店铺信息 PoiStore poiStore = poiStoreDOMapper.selectById(poiStoreStaff.getStoreId()); if (null != poiStore) { @@ -211,14 +228,13 @@ public class PoiStoreStaffService { privilageAccountService.insertAccount(poiStoreStaffVO.getStaffCode(), AccountEnum.ACCOUNT_FIRST_PWD.getDescribe(), userId); } //去生成一个推广人员二维码 - QrCodeVO qrCodeVO = parseQrCode(poiStoreStaffVO); + QrCodeDO qrCodeDO = parseQrCodeBSD(poiStoreStaffVO); //添加一个店铺人员 PoiStoreStaff poiStoreStaff = new PoiStoreStaff(); BeanUtils.copyProperties(poiStoreStaffVO,poiStoreStaff); poiStoreStaff.setUserId(userId); poiStoreStaff.setType(poiStoreStaffVO.getRoleId()); - poiStoreStaff.setEpWechatQrCode(qrCodeVO.getQr_code()); - poiStoreStaff.setEpWechatConfigId(qrCodeVO.getConfig_id()); + poiStoreStaff.setEpWechatQrCode(qrCodeDO.getQrCode()); return poiStoreStaffDOMapper.insert(poiStoreStaff); } @@ -240,9 +256,8 @@ public class PoiStoreStaffService { //修改了所属店铺 if (!oldStaffInfo.getStoreId().equals(poiStoreStaffVO.getStoreId())){ // 判断条件是否重新修改二维码 - QrCodeVO qrCodeVO = parseQrCode(poiStoreStaffVO); - poiStoreStaff.setEpWechatQrCode(qrCodeVO.getQr_code()); - poiStoreStaff.setEpWechatConfigId(qrCodeVO.getConfig_id()); + QrCodeDO qrCodeDO = parseQrCodeBSD(poiStoreStaffVO); + poiStoreStaff.setEpWechatQrCode(qrCodeDO.getQrCode()); } BeanUtils.copyProperties(poiStoreStaffVO,poiStoreStaff); poiStoreStaff.setType(poiStoreStaffVO.getRoleId()); @@ -272,6 +287,33 @@ public class PoiStoreStaffService { return qrCodeService.getQrCode(qrCodeDO); } + /** + * 生成企业微信二维码 + */ + public QrCodeDO parseQrCodeBSD(PoiStoreStaffVO poiStoreStaffVO) throws Exception { + QrCodeDO qrCodeDO = new QrCodeDO(); + qrCodeDO.setType(1); + qrCodeDO.setScene(2); + //查询店铺店长编码 + String cpUserId = privilageCpUserStoreDOMapper.selectCpUserIdByStoreId(poiStoreStaffVO.getStoreId()); + + PoiStore poiStore = poiStoreDOMapper.selectById(poiStoreStaffVO.getStoreId()); + poiStoreStaffVO.setStoreCode(poiStore.getCode()); + + String[] data = new String[1]; + //选择店铺对应店长的编码 + data[0] = (cpUserId); +// data[0] = ("JiangDeXiang"); + qrCodeDO.setUser(data); + //店铺编码-导购编码 + qrCodeDO.setState(poiStore.getCode() + "-" + poiStoreStaffVO.getStaffCode()); + + String qrCode = storeEmployeeService.getQrCodeFromBSD(cpUserId, BSD_REQ_QRCODE_TYPE_SELLER, poiStoreStaffVO.getStaffCode(), poiStore.getCode()); + qrCodeDO.setQrCode(qrCode); + + return qrCodeDO; + } + /** * 查询单个推广人的详细信息 * 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 56fb5aa..f002c2b 100644 --- a/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java +++ b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java @@ -15,6 +15,7 @@ import com.kiisoo.ic.department.mapper.PrivilageDepartmentDOMapper; import com.kiisoo.ic.domain.service.PrivilageDomainService; import com.kiisoo.ic.employee.entity.EmployeeDO; import com.kiisoo.ic.employee.entity.ImportErrorDTO; +import com.kiisoo.ic.employee.entity.PrivilageCpUserDO; import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper; import com.kiisoo.ic.employee.service.EmployeeService; import com.kiisoo.ic.generalize.entity.PrivilageOrganizational; @@ -94,99 +95,139 @@ public class StoreEmployeeService { @Autowired private CustomerViewService customerViewService; + /** * 查询门店号 - * @param storeId 门店id + * + * @param storeId 门店id * @param regionId 区域id */ - public PageInfo listStoreUser(Long userId ,Long storeId, Long bigRegionId,Long companyId, Integer pageNum, Integer pageSize,String code) { - Map result = new HashMap<>(); + public PageInfo listStoreUser(Long userId, Long storeId, Long bigRegionId, Long companyId, Integer pageNum, Integer pageSize, String code) throws Exception { + Map result = new HashMap<>(); List poiStores = null; List shopIds = new ArrayList<>(); - if (storeId != null){ + if (storeId != null) { shopIds.add(storeId); - }else if(StringUtils.isNotBlank(code)){ - List store = poiStoreDOMapper.selectShopByNameOrCode(code); + } else if (StringUtils.isNotBlank(code)) { + List store = poiStoreDOMapper.selectShopByNameOrCode(code); shopIds = store.stream().map(i -> i.getId()).collect(Collectors.toList()); List userAllShops = privilageDomainService.listUserDatePermission(userId); shopIds.retainAll(userAllShops); - }else if(companyId != null){ + } else if (companyId != null) { shopIds = new ArrayList<>(customerViewService.getCompanyShop(companyId, userId)); List userAllShops = privilageDomainService.listUserDatePermission(userId); shopIds.retainAll(userAllShops); - }else if(bigRegionId != null){ + } else if (bigRegionId != null) { shopIds = new ArrayList<>(customerViewService.getCompanyShop(bigRegionId, userId)); List userAllShops = privilageDomainService.listUserDatePermission(userId); shopIds.retainAll(userAllShops); - }else{ + } else { //查询用户权限店铺 shopIds = new ArrayList<>(privilageDomainService.listUserDatePermission(userId)); } PageHelper.startPage(pageNum, pageSize); List cpUserStoreDO = privilageCpUserStoreDOMapper.selectCpUserByShops(shopIds); - if (CollectionUtils.isNotEmpty(cpUserStoreDO)){ - int orderNum = (pageNum -1) * pageSize; - for(StoreUserDTO cpUserStore : cpUserStoreDO) { + if (CollectionUtils.isNotEmpty(cpUserStoreDO)) { + int orderNum = (pageNum - 1) * pageSize; + for (StoreUserDTO cpUserStore : cpUserStoreDO) { //设置序号 cpUserStore.setOrderNum(++orderNum); //查询店铺绑定的企业微信 - PoiStore poiStore = poiStoreDOMapper.selectById(cpUserStore.getId()); - if (null != poiStore){ + PoiStore poiStore = poiStoreDOMapper.selectById(cpUserStore.getId()); + if (null != poiStore) { cpUserStore.setName(poiStore.getName()); cpUserStore.setCode(poiStore.getCode()); } + + String qrCodeAction = cpUserStore.getQrCodeAction(); + if (StringUtils.isBlank(qrCodeAction)){ + qrCodeAction = getQrCodeFromBSD(cpUserStore.getCpUserId(),BSD_REQ_QRCODE_TYPE_STORE,"0",cpUserStore.getCode()); + cpUserStore.setQrCodeAction(qrCodeAction); + PrivilageCpUserDO update = new PrivilageCpUserDO(); + update.setId(cpUserStore.getUserId()); + update.setQrCode(qrCodeAction); + privilageCpUserDOMapper.updateById(update); + } + //查询导购数目 List shops = Arrays.asList(cpUserStore.getId()); - List sellerList = poiStoreStaffDOMapper.selectSellersByShopIds(shops); - int staffNum = 0; - if (null != sellerList && sellerList.size() > 0){ + List sellerList = poiStoreStaffDOMapper.selectSellersByShopIds(shops); + int staffNum = 0; + if (null != sellerList && sellerList.size() > 0) { staffNum = sellerList.size(); } cpUserStore.setStaffNum(staffNum); //客户数 QueryWrapper wrapper2 = new QueryWrapper<>(); - wrapper2.eq("store_id",cpUserStore.getId()); + wrapper2.eq("store_id", cpUserStore.getId()); List opRelations = opSellerCustomerRelationDOMapper.selectList(wrapper2); long count = opRelations.stream().map(OpSellerCustomerRelation::getCustomerId).distinct().count(); - cpUserStore.setCustomerNum((int)count); + cpUserStore.setCustomerNum((int) count); } } - return new PageInfo<>(cpUserStoreDO) ; + return new PageInfo<>(cpUserStoreDO); + } + + + /** + * 获取波司登二维码 + * @param cpUserId + * @param type + * @param state + * @param storeNo + * @return + * @throws Exception + */ + public String getQrCodeFromBSD(String cpUserId,String type,String state,String storeNo) throws Exception { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Map params = new HashMap<>(); + params.put("userId", cpUserId); + params.put("type", type); + params.put("state", state); + params.put("storeNo", storeNo); + String get = HttpUtil.post("http://vtest.bsd.cn/BSD_WXAPP/qyWechat/getShareQRcode?token=" + MD5FileUtil.getMD5String("BOSIDENG"+sdf.format(new Date())), params); + JSONObject qrCodeJson = JSONObject.parseObject(get); + BsdShareCodeResponse bsdResponse = qrCodeJson.toJavaObject(BsdShareCodeResponse.class); + if (bsdResponse.getSuccess()){ + return bsdResponse.getResultCode(); + } + return null; } /** * 批量下载店铺二维码 + * * @param response */ public void downloadStoreUserCode(HttpServletResponse response) throws IOException { //查询所有公司 List privilageOrganizationals = retailCompanyMapper.selectList(null); - if (CollectionUtils.isNotEmpty(privilageOrganizationals)){ + if (CollectionUtils.isNotEmpty(privilageOrganizationals)) { //根文件夹用于存放公司 - String fileUrl = "门店码-"+UUID.randomUUID().toString().replace("-", ""); + String fileUrl = "门店码-" + UUID.randomUUID().toString().replace("-", ""); File file = new File(fileUrl); file.mkdir(); // 生成的ZIP文件名 - String strZipName = "store_qrCode_"+ fileUrl +".zip"; + String strZipName = "store_qrCode_" + fileUrl + ".zip"; FileOutputStream out = new FileOutputStream(new File(strZipName)); //遍历零售公司 - for (PrivilageOrganizational privilageOrganizational:privilageOrganizationals) { - if (privilageOrganizational == null || privilageOrganizational.getId() == null){ + for (PrivilageOrganizational privilageOrganizational : privilageOrganizationals) { + if (privilageOrganizational == null || privilageOrganizational.getId() == null) { continue; } //创建零售公司文件夹 - File complayFile = new File(file.getPath()+"/"+privilageOrganizational.getName()); + File complayFile = new File(file.getPath() + "/" + privilageOrganizational.getName()); complayFile.mkdir(); //查询店铺 List poiStores = poiStoreDOMapper.selectShopByCompany(privilageOrganizational.getId()); - if (CollectionUtils.isNotEmpty(poiStores)){ + if (CollectionUtils.isNotEmpty(poiStores)) { //遍历店铺查询门店码url - for (PoiStore poiStore:poiStores){ + for (PoiStore poiStore : poiStores) { String url = poiStoreDOMapper.selectStoreQrCode(poiStore.getId()); - if (StringUtils.isBlank(url)){ + if (StringUtils.isBlank(url)) { continue; } //下载图片 @@ -198,7 +239,7 @@ public class StoreEmployeeService { //绘制改变尺寸后的图 tag.getGraphics().drawImage(bi, 0, 0, 300, 300, null); //输出流 - BufferedOutputStream image = new BufferedOutputStream(new FileOutputStream(complayFile.getPath() +"/" +poiStore.getCode() + ".png")); + BufferedOutputStream image = new BufferedOutputStream(new FileOutputStream(complayFile.getPath() + "/" + poiStore.getCode() + ".png")); ImageIO.write(tag, "PNG", image); @@ -209,7 +250,7 @@ public class StoreEmployeeService { } //将根文件转换为zip文件 - ZipUtils.toZip(file.getPath(),out,true); + ZipUtils.toZip(file.getPath(), out, true); //将文件输入到response ServletOutputStream outputStream = response.getOutputStream(); @@ -225,59 +266,61 @@ public class StoreEmployeeService { zipFile.delete(); } } + /** * 批量下载店铺二维码 + * * @param response */ public void downloadStoreUserCodeFromBSD(HttpServletResponse response) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //查询所有公司 QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("status",1).eq("type",1).eq("level",2); + queryWrapper.eq("status", 1).eq("type", 1).eq("level", 2); List privilageOrganizationals = retailCompanyMapper.selectList(queryWrapper); - if (CollectionUtils.isNotEmpty(privilageOrganizationals)){ + if (CollectionUtils.isNotEmpty(privilageOrganizationals)) { //根文件夹用于存放公司 - String fileUrl = "门店码-"+UUID.randomUUID().toString().replace("-", ""); + String fileUrl = "门店码-" + UUID.randomUUID().toString().replace("-", ""); File file = new File(fileUrl); file.mkdir(); // 生成的ZIP文件名 - String strZipName = "store_qrCode_"+ fileUrl +".zip"; + String strZipName = "store_qrCode_" + fileUrl + ".zip"; FileOutputStream out = new FileOutputStream(new File(strZipName)); //遍历零售公司 - for (PrivilageOrganizational privilageOrganizational:privilageOrganizationals) { - if (privilageOrganizational == null || privilageOrganizational.getId() == null){ + for (PrivilageOrganizational privilageOrganizational : privilageOrganizationals) { + if (privilageOrganizational == null || privilageOrganizational.getId() == null) { continue; } //创建零售公司文件夹 - File complayFile = new File(file.getPath()+"/"+privilageOrganizational.getName()); + File complayFile = new File(file.getPath() + "/" + privilageOrganizational.getName()); complayFile.mkdir(); //查询客户 QueryWrapper customerWrap = new QueryWrapper<>(); - customerWrap.eq("status",1).eq("type",1).eq("level",3).eq("parent_id",privilageOrganizational.getId()); + customerWrap.eq("status", 1).eq("type", 1).eq("level", 3).eq("parent_id", privilageOrganizational.getId()); List customerList = retailCompanyMapper.selectList(customerWrap); - if (CollectionUtils.isNotEmpty(customerList)){ + if (CollectionUtils.isNotEmpty(customerList)) { List customerIds = customerList.stream().map(i -> i.getId()).collect(Collectors.toList()); //查询店铺 List poiStores = poiStoreDOMapper.selectShopByCustomerIds(customerIds); - if (CollectionUtils.isNotEmpty(poiStores)){ + if (CollectionUtils.isNotEmpty(poiStores)) { //遍历店铺查询门店码url - for (PoiStore poiStore:poiStores){ + for (PoiStore poiStore : poiStores) { String cpUserId = privilageCpUserStoreDOMapper.selectCpUserIdByStoreId(poiStore.getId()); - if (StringUtils.isBlank(cpUserId)){ + if (StringUtils.isBlank(cpUserId)) { continue; } - Map params = new HashMap<>(); - params.put("userId",cpUserId); - params.put("type",0); - params.put("storeNo",poiStore.getCode()); + Map params = new HashMap<>(); + params.put("userId", cpUserId); + params.put("type", 0); + params.put("storeNo", poiStore.getCode()); String get = HttpUtil.get("http://vtest.bsd.cn/BSD_WXAPP/qyWechat/getShareQRcode?token=BOSIDENG" + MD5FileUtil.getMD5String(sdf.format(new Date())), params); JSONObject saveAccountInputJSON = JSONObject.parseObject(get); BsdShareCodeResponse bsdResponse = saveAccountInputJSON.toJavaObject(BsdShareCodeResponse.class); String url = bsdResponse.getData(); - if (StringUtils.isBlank(url)){ + if (StringUtils.isBlank(url)) { continue; } //下载图片 @@ -289,7 +332,7 @@ public class StoreEmployeeService { //绘制改变尺寸后的图 tag.getGraphics().drawImage(bi, 0, 0, 300, 300, null); //输出流 - BufferedOutputStream image = new BufferedOutputStream(new FileOutputStream(complayFile.getPath() +"/" +poiStore.getCode() + ".png")); + BufferedOutputStream image = new BufferedOutputStream(new FileOutputStream(complayFile.getPath() + "/" + poiStore.getCode() + ".png")); ImageIO.write(tag, "PNG", image); @@ -301,7 +344,7 @@ public class StoreEmployeeService { } //将根文件转换为zip文件 - ZipUtils.toZip(file.getPath(),out,true); + ZipUtils.toZip(file.getPath(), out, true); //将文件输入到response ServletOutputStream outputStream = response.getOutputStream(); @@ -317,48 +360,50 @@ public class StoreEmployeeService { zipFile.delete(); } } + /** * 批量下载店铺导购吗 + * * @param response */ public void downloadStoreStaffCode(HttpServletResponse response) throws IOException { //查询所有公司 List privilageOrganizationals = retailCompanyMapper.selectList(null); - if (CollectionUtils.isNotEmpty(privilageOrganizationals)){ + if (CollectionUtils.isNotEmpty(privilageOrganizationals)) { //根文件夹用于存放公司 - String fileUrl = "导购码-"+UUID.randomUUID().toString().replace("-", ""); + String fileUrl = "导购码-" + UUID.randomUUID().toString().replace("-", ""); File file = new File(fileUrl); file.mkdir(); // 生成的ZIP文件名 - String strZipName = "store_qrCode_"+ fileUrl +".zip"; + String strZipName = "store_qrCode_" + fileUrl + ".zip"; FileOutputStream out = new FileOutputStream(new File(strZipName)); //遍历零售公司 - for (PrivilageOrganizational privilageOrganizational:privilageOrganizationals) { - if (privilageOrganizational == null || privilageOrganizational.getId() == null){ + for (PrivilageOrganizational privilageOrganizational : privilageOrganizationals) { + if (privilageOrganizational == null || privilageOrganizational.getId() == null) { continue; } //创建零售公司文件夹 - File complayFile = new File(file.getPath()+"/"+privilageOrganizational.getName()); + File complayFile = new File(file.getPath() + "/" + privilageOrganizational.getName()); complayFile.mkdir(); //查询店铺 List poiStores = poiStoreDOMapper.selectShopByCompany(privilageOrganizational.getId()); - if (CollectionUtils.isNotEmpty(poiStores)){ + if (CollectionUtils.isNotEmpty(poiStores)) { //遍历店铺查询门店码url - for (PoiStore poiStore:poiStores){ + for (PoiStore poiStore : poiStores) { //创建零售公司文件夹 - File storeFile = new File(complayFile.getPath()+"/"+poiStore.getName()); + File storeFile = new File(complayFile.getPath() + "/" + poiStore.getName()); storeFile.mkdir(); QueryWrapper staffQr = new QueryWrapper(); - staffQr.eq(DATABASE_STORE_ID_KEY,poiStore.getId()); - staffQr.eq(DATABASE_TYPE_KEY,TYPE_STAFF_SELLER); + staffQr.eq(DATABASE_STORE_ID_KEY, poiStore.getId()); + staffQr.eq(DATABASE_TYPE_KEY, TYPE_STAFF_SELLER); List poiStoreStaffs = poiStoreStaffDOMapper.selectList(staffQr); - if (CollectionUtils.isNotEmpty(poiStoreStaffs)){ - for (PoiStoreStaff poiStoreStaff:poiStoreStaffs){ + if (CollectionUtils.isNotEmpty(poiStoreStaffs)) { + for (PoiStoreStaff poiStoreStaff : poiStoreStaffs) { String url = poiStoreStaff.getEpWechatQrCode(); - if (StringUtils.isBlank(url)){ + if (StringUtils.isBlank(url)) { continue; } //下载图片 @@ -370,7 +415,7 @@ public class StoreEmployeeService { //绘制改变尺寸后的图 tag.getGraphics().drawImage(bi, 0, 0, 300, 300, null); //输出流 - BufferedOutputStream image = new BufferedOutputStream(new FileOutputStream(storeFile.getPath() +"/" +poiStoreStaff.getStaffCode() + ".png")); + BufferedOutputStream image = new BufferedOutputStream(new FileOutputStream(storeFile.getPath() + "/" + poiStoreStaff.getStaffCode() + ".png")); ImageIO.write(tag, "PNG", image); @@ -383,7 +428,7 @@ public class StoreEmployeeService { } //将根文件转换为zip文件 - ZipUtils.toZip(file.getPath(),out,true); + ZipUtils.toZip(file.getPath(), out, true); //将文件输入到response ServletOutputStream outputStream = response.getOutputStream(); @@ -399,67 +444,69 @@ public class StoreEmployeeService { zipFile.delete(); } } + /** * 批量下载店铺导购吗 + * * @param response */ public void downloadStoreStaffCodeFromBSD(HttpServletResponse response) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //查询所有公司 List privilageOrganizationals = retailCompanyMapper.selectList(null); - if (CollectionUtils.isNotEmpty(privilageOrganizationals)){ + if (CollectionUtils.isNotEmpty(privilageOrganizationals)) { //根文件夹用于存放公司 - String fileUrl = "导购码-"+UUID.randomUUID().toString().replace("-", ""); + String fileUrl = "导购码-" + UUID.randomUUID().toString().replace("-", ""); File file = new File(fileUrl); file.mkdir(); // 生成的ZIP文件名 - String strZipName = "store_qrCode_"+ fileUrl +".zip"; + String strZipName = "store_qrCode_" + fileUrl + ".zip"; FileOutputStream out = new FileOutputStream(new File(strZipName)); //遍历零售公司 - for (PrivilageOrganizational privilageOrganizational:privilageOrganizationals) { - if (privilageOrganizational == null || privilageOrganizational.getId() == null){ + for (PrivilageOrganizational privilageOrganizational : privilageOrganizationals) { + if (privilageOrganizational == null || privilageOrganizational.getId() == null) { continue; } //创建零售公司文件夹 - File complayFile = new File(file.getPath()+"/"+privilageOrganizational.getName()); + File complayFile = new File(file.getPath() + "/" + privilageOrganizational.getName()); complayFile.mkdir(); QueryWrapper customerWrap = new QueryWrapper<>(); - customerWrap.eq("status",1).eq("type",1).eq("level",3).eq("parent_id",privilageOrganizational.getId()); + customerWrap.eq("status", 1).eq("type", 1).eq("level", 3).eq("parent_id", privilageOrganizational.getId()); List customerList = retailCompanyMapper.selectList(customerWrap); if (CollectionUtils.isNotEmpty(customerList)) { List customerIds = customerList.stream().map(i -> i.getId()).collect(Collectors.toList()); //查询店铺 List poiStores = poiStoreDOMapper.selectShopByCustomerIds(customerIds); - if (CollectionUtils.isNotEmpty(poiStores)){ + if (CollectionUtils.isNotEmpty(poiStores)) { //遍历店铺查询门店码url - for (PoiStore poiStore:poiStores){ + for (PoiStore poiStore : poiStores) { //创建零售公司文件夹 - File storeFile = new File(complayFile.getPath()+"/"+poiStore.getName()); + File storeFile = new File(complayFile.getPath() + "/" + poiStore.getName()); storeFile.mkdir(); QueryWrapper staffQr = new QueryWrapper(); - staffQr.eq(DATABASE_STORE_ID_KEY,poiStore.getId()); - staffQr.eq(DATABASE_TYPE_KEY,TYPE_STAFF_SELLER); + staffQr.eq(DATABASE_STORE_ID_KEY, poiStore.getId()); + staffQr.eq(DATABASE_TYPE_KEY, TYPE_STAFF_SELLER); List poiStoreStaffs = poiStoreStaffDOMapper.selectList(staffQr); - if (CollectionUtils.isNotEmpty(poiStoreStaffs)){ - for (PoiStoreStaff poiStoreStaff:poiStoreStaffs){ + if (CollectionUtils.isNotEmpty(poiStoreStaffs)) { + for (PoiStoreStaff poiStoreStaff : poiStoreStaffs) { String cpUserId = privilageCpUserStoreDOMapper.selectCpUserIdByStoreId(poiStore.getId()); - if (StringUtils.isBlank(cpUserId)){ + if (StringUtils.isBlank(cpUserId)) { continue; } - Map params = new HashMap<>(); - params.put("userId",cpUserId); - params.put("type",1); - params.put("state",poiStoreStaff.getStaffCode()); - params.put("storeNo",poiStore.getCode()); + Map params = new HashMap<>(); + params.put("userId", cpUserId); + params.put("type", 1); + params.put("state", poiStoreStaff.getStaffCode()); + params.put("storeNo", poiStore.getCode()); String get = HttpUtil.get("http://vtest.bsd.cn/BSD_WXAPP/qyWechat/getShareQRcode?token=BOSIDENG" + MD5FileUtil.getMD5String(sdf.format(new Date())), params); JSONObject saveAccountInputJSON = JSONObject.parseObject(get); BsdShareCodeResponse bsdResponse = saveAccountInputJSON.toJavaObject(BsdShareCodeResponse.class); String url = bsdResponse.getData(); - if (StringUtils.isBlank(url)){ + if (StringUtils.isBlank(url)) { continue; } @@ -472,7 +519,7 @@ public class StoreEmployeeService { //绘制改变尺寸后的图 tag.getGraphics().drawImage(bi, 0, 0, 300, 300, null); //输出流 - BufferedOutputStream image = new BufferedOutputStream(new FileOutputStream(storeFile.getPath() +"/" +poiStoreStaff.getStaffCode() + ".png")); + BufferedOutputStream image = new BufferedOutputStream(new FileOutputStream(storeFile.getPath() + "/" + poiStoreStaff.getStaffCode() + ".png")); ImageIO.write(tag, "PNG", image); @@ -487,7 +534,7 @@ public class StoreEmployeeService { } //将根文件转换为zip文件 - ZipUtils.toZip(file.getPath(),out,true); + ZipUtils.toZip(file.getPath(), out, true); //将文件输入到response ServletOutputStream outputStream = response.getOutputStream(); @@ -506,6 +553,7 @@ public class StoreEmployeeService { /** * 导入excel门店号 + * * @param file excel文件 * @return * @throws Exception @@ -536,7 +584,7 @@ public class StoreEmployeeService { if (dataRow == null) { continue; } - addRowInfo(dataRow,results,r); + addRowInfo(dataRow, results, r); } } } @@ -545,39 +593,40 @@ public class StoreEmployeeService { /** * Excel导入门店号-添加行信息 + * * @param dataRow 行对象 * @param results 错误信息集合 - * @param row 行数 + * @param row 行数 * @throws Exception */ - private void addRowInfo(Row dataRow,List results,Integer row) throws Exception { + private void addRowInfo(Row dataRow, List results, Integer row) throws Exception { //初始化导购对象 EmployeeDO employeeDO = new EmployeeDO(); //获取店铺名和店铺code String shopName = dataRow.getCell(0).getStringCellValue(); - if (StringUtils.isBlank(shopName)){ - getReason(row,"未填写店铺名",results); + if (StringUtils.isBlank(shopName)) { + getReason(row, "未填写店铺名", results); return; } String shopCode = dataRow.getCell(1).getStringCellValue(); - if (StringUtils.isBlank(shopCode)){ - getReason(row,"未填写店铺Code",results); + if (StringUtils.isBlank(shopCode)) { + getReason(row, "未填写店铺Code", results); return; } //查询店铺信息 QueryWrapper storeParams = new QueryWrapper<>(); - storeParams.eq(DATABASE_NAME_KEY,shopName); - storeParams.eq(DATABASE_CODE_KEY,shopCode); + storeParams.eq(DATABASE_NAME_KEY, shopName); + storeParams.eq(DATABASE_CODE_KEY, shopCode); PoiStore poiStore = poiStoreDOMapper.selectOne(storeParams); - if (poiStore == null){ - getReason(row,"未找到店铺",results); + if (poiStore == null) { + getReason(row, "未找到店铺", results); return; } employeeDO.setStoreId(poiStore.getId()); //获取企业微信账号(user_id) String cpUserId = dataRow.getCell(2).getStringCellValue(); - if (StringUtils.isBlank(cpUserId)){ - getReason(row,"未填写账号",results); + if (StringUtils.isBlank(cpUserId)) { + getReason(row, "未填写账号", results); return; } employeeDO.setUserId(cpUserId); @@ -588,15 +637,15 @@ public class StoreEmployeeService { //获取部门信息 String departmentName = dataRow.getCell(4).getStringCellValue(); - if (StringUtils.isBlank(departmentName)){ - getReason(row,"未填写部门",results); + if (StringUtils.isBlank(departmentName)) { + getReason(row, "未填写部门", results); return; } QueryWrapper depParams = new QueryWrapper(); - depParams.eq(DATABASE_NAME_KEY,departmentName); + depParams.eq(DATABASE_NAME_KEY, departmentName); DepartmentDO departmentDO = departmentDOMapper.selectOne(depParams); - if (departmentDO == null){ - getReason(row,"未找到部门",results); + if (departmentDO == null) { + getReason(row, "未找到部门", results); return; } Long[] depIds = new Long[1]; @@ -604,29 +653,30 @@ public class StoreEmployeeService { employeeDO.setDepartIds(depIds); String mobile = dataRow.getCell(5).getStringCellValue(); - if (StringUtils.isBlank(mobile)){ - getReason(row,"未填写手机号",results); + if (StringUtils.isBlank(mobile)) { + getReason(row, "未填写手机号", results); return; } employeeDO.setMobile(mobile); String returnCode = employeeService.addUser(employeeDO); - if (returnCode.contains(ADD_CP_CODE_BINDED)){ + if (returnCode.contains(ADD_CP_CODE_BINDED)) { String[] split = returnCode.split("&"); - getReason(row,"该账号已绑定【"+ split[1] +"】店铺",results); + getReason(row, "该账号已绑定【" + split[1] + "】店铺", results); } } /** * 添加错误原因 - * @param row 行数 - * @param reason 原因 + * + * @param row 行数 + * @param reason 原因 * @param results 错误集合 */ - private void getReason(Integer row,String reason,List results){ + private void getReason(Integer row, String reason, List results) { ImportErrorDTO importErrorDTO = new ImportErrorDTO(); importErrorDTO.setRow(row); - reason = "第"+ row + "行导入失败,原因:"+reason; + reason = "第" + row + "行导入失败,原因:" + reason; importErrorDTO.setReason(reason); results.add(importErrorDTO); } diff --git a/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageUserServiceImpl.java b/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageUserServiceImpl.java index b01fc79..21318c8 100644 --- a/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageUserServiceImpl.java +++ b/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageUserServiceImpl.java @@ -3,7 +3,7 @@ package com.kiisoo.ic.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.kiisoo.ic.constants.Constants; -import com.kiisoo.ic.employee.entity.QrCodeVO; +import com.kiisoo.ic.employee.entity.QrCodeDO; import com.kiisoo.ic.store.entity.PoiStore; import com.kiisoo.ic.store.entity.PoiStoreStaff; import com.kiisoo.ic.store.entity.PoiStoreStaffVO; @@ -83,11 +83,10 @@ public class PrivilageUserServiceImpl extends ServiceImpl