Browse Source

小程序码管理优化

hotfix/yujt_opt
yujt 5 years ago
parent
commit
770679a768
  1. 2
      epdc-cloud-admin/src/main/java/com/elink/esua/epdc/dao/DeptMaCodeDao.java
  2. 6
      epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/DeptMaCodeService.java
  3. 2
      epdc-cloud-admin/src/main/resources/application.yml
  4. 14
      epdc-cloud-optimize-department/pom.xml
  5. 30
      epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/feign/OptOssFeignClient.java
  6. 22
      epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/feign/fallback/OptOssFeignClientFallback.java
  7. 54
      epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/controller/OptDeptMaCodeController.java
  8. 14
      epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dao/OptDeptMaCodeDao.java
  9. 2
      epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dto/OptDeptMaCodeDTO.java
  10. 28
      epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/OptDeptMaCodeService.java
  11. 150
      epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/impl/OptDeptMaCodeServiceImpl.java
  12. 48
      epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/utils/FileUtils.java
  13. 31
      epdc-cloud-optimize-department/src/main/resources/logback-spring.xml
  14. 32
      epdc-cloud-optimize-department/src/main/resources/mapper/macode/OptDeptMaCodeDao.xml

2
epdc-cloud-admin/src/main/java/com/elink/esua/epdc/dao/DeptMaCodeDao.java

@ -38,7 +38,7 @@ public interface DeptMaCodeDao extends BaseDao<DeptMaCodeEntity> {
* 获取部门小程序码列表 * 获取部门小程序码列表
* *
* @param params * @param params
* @return java.util.List<com.elink.esua.epdc.dto.DeptMaCodeDTO> * @return java.util.List<com.elink.esua.epdc.dto.OptDeptMaCodeDTO>
* @author work@yujt.net.cn * @author work@yujt.net.cn
* @date 2019/9/19 09:18 * @date 2019/9/19 09:18
*/ */

6
epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/DeptMaCodeService.java

@ -38,7 +38,7 @@ public interface DeptMaCodeService extends BaseService<DeptMaCodeEntity> {
* 默认分页 * 默认分页
* *
* @param params * @param params
* @return PageData<DeptMaCodeDTO> * @return PageData<OptDeptMaCodeDTO>
* @author generator * @author generator
* @date 2019-09-19 * @date 2019-09-19
*/ */
@ -48,7 +48,7 @@ public interface DeptMaCodeService extends BaseService<DeptMaCodeEntity> {
* 默认查询 * 默认查询
* *
* @param params * @param params
* @return java.util.List<DeptMaCodeDTO> * @return java.util.List<OptDeptMaCodeDTO>
* @author generator * @author generator
* @date 2019-09-19 * @date 2019-09-19
*/ */
@ -58,7 +58,7 @@ public interface DeptMaCodeService extends BaseService<DeptMaCodeEntity> {
* 单条查询 * 单条查询
* *
* @param id * @param id
* @return DeptMaCodeDTO * @return OptDeptMaCodeDTO
* @author generator * @author generator
* @date 2019-09-19 * @date 2019-09-19
*/ */

2
epdc-cloud-admin/src/main/resources/application.yml

@ -45,7 +45,7 @@ management:
show-details: ALWAYS show-details: ALWAYS
mybatis-plus: mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml mapper-locations: classpath*:/mapper/**/*.xml
#实体扫描,多个package用逗号或者分号分隔 #实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.elink.esua.epdc.entity typeAliasesPackage: com.elink.esua.epdc.entity
global-config: global-config:

14
epdc-cloud-optimize-department/pom.xml

@ -31,6 +31,12 @@
<artifactId>epdc-commons-mybatis</artifactId> <artifactId>epdc-commons-mybatis</artifactId>
<version>${epdc-cloud-commons.version}</version> <version>${epdc-cloud-commons.version}</version>
</dependency> </dependency>
<!--微信小程序-->
<dependency>
<groupId>com.esua.epdc.yushan</groupId>
<artifactId>epdc-commons-tools-wx-ma</artifactId>
<version>${epdc-cloud-commons.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
@ -89,18 +95,18 @@
<directory>${basedir}/src/main/resources</directory> <directory>${basedir}/src/main/resources</directory>
<includes> <includes>
<include>**/application*.yml</include> <include>**/application*.yml</include>
<!--<include>**/*.properties</include> <include>**/*.properties</include>
<include>logback-spring.xml</include> <include>logback-spring.xml</include>
<include>registry.conf</include>--> <include>registry.conf</include>
</includes> </includes>
</resource> </resource>
<resource> <resource>
<directory>${basedir}/src/main/resources</directory> <directory>${basedir}/src/main/resources</directory>
<excludes> <excludes>
<exclude>**/application*.yml</exclude> <exclude>**/application*.yml</exclude>
<!--<exclude>**/*.properties</exclude> <exclude>**/*.properties</exclude>
<exclude>logback-spring.xml</exclude> <exclude>logback-spring.xml</exclude>
<exclude>registry.conf</exclude>--> <exclude>registry.conf</exclude>
</excludes> </excludes>
</resource> </resource>
</resources> </resources>

30
epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/feign/OptOssFeignClient.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.optimize.modules.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.optimize.modules.feign.fallback.OptOssFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
/**
* @author work@yujt.net.cn
* @date 19/9/19 10:12
*/
@FeignClient(name = ServiceConstant.EPDC_OSS_SERVER, fallback = OptOssFeignClientFallback.class)
public interface OptOssFeignClient {
/**
* File文件上传到文件服务器
*
* @param dto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.lang.String>
* @author work@yujt.net.cn
* @date 2019/9/19 10:15
*/
@PostMapping(value = "oss/file/uploadFile", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<String> uploadFile(UploadToOssDTO dto);
}

22
epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/feign/fallback/OptOssFeignClientFallback.java

@ -0,0 +1,22 @@
package com.elink.esua.epdc.optimize.modules.feign.fallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.optimize.modules.feign.OptOssFeignClient;
import org.springframework.stereotype.Component;
/**
* @author work@yujt.net.cn
* @date 19/9/19 10:12
*/
@Component
public class OptOssFeignClientFallback implements OptOssFeignClient {
@Override
public Result<String> uploadFile(UploadToOssDTO dto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_OSS_SERVER, "uploadFile", dto.getFileName());
}
}

54
epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/controller/OptDeptMaCodeController.java

@ -26,6 +26,7 @@ import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.dto.DeptMaCodeDTO; import com.elink.esua.epdc.dto.DeptMaCodeDTO;
import com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO;
import com.elink.esua.epdc.optimize.modules.macode.excel.DeptMaCodeExcel; import com.elink.esua.epdc.optimize.modules.macode.excel.DeptMaCodeExcel;
import com.elink.esua.epdc.optimize.modules.macode.service.OptDeptMaCodeService; import com.elink.esua.epdc.optimize.modules.macode.service.OptDeptMaCodeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -45,24 +46,24 @@ import java.util.Map;
@RestController @RestController
@RequestMapping("optimize/deptmacode") @RequestMapping("optimize/deptmacode")
public class OptDeptMaCodeController { public class OptDeptMaCodeController {
@Autowired @Autowired
private OptDeptMaCodeService deptMaCodeService; private OptDeptMaCodeService deptMaCodeService;
@GetMapping("page") @GetMapping("page")
public Result<PageData<DeptMaCodeDTO>> page(@RequestParam Map<String, Object> params){ public Result<PageData<OptDeptMaCodeDTO>> page(@RequestParam Map<String, Object> params) {
PageData<DeptMaCodeDTO> page = deptMaCodeService.page(params); PageData<OptDeptMaCodeDTO> page = deptMaCodeService.page(params);
return new Result<PageData<DeptMaCodeDTO>>().ok(page); return new Result<PageData<OptDeptMaCodeDTO>>().ok(page);
} }
@GetMapping("{id}") @GetMapping("{id}")
public Result<DeptMaCodeDTO> get(@PathVariable("id") String id){ public Result<DeptMaCodeDTO> get(@PathVariable("id") String id) {
DeptMaCodeDTO data = deptMaCodeService.get(id); DeptMaCodeDTO data = deptMaCodeService.get(id);
return new Result<DeptMaCodeDTO>().ok(data); return new Result<DeptMaCodeDTO>().ok(data);
} }
@PostMapping @PostMapping
public Result save(@RequestBody DeptMaCodeDTO dto){ public Result save(@RequestBody DeptMaCodeDTO dto) {
//效验数据 //效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
deptMaCodeService.save(dto); deptMaCodeService.save(dto);
@ -70,7 +71,7 @@ public class OptDeptMaCodeController {
} }
@PutMapping @PutMapping
public Result update(@RequestBody DeptMaCodeDTO dto){ public Result update(@RequestBody DeptMaCodeDTO dto) {
//效验数据 //效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
deptMaCodeService.update(dto); deptMaCodeService.update(dto);
@ -78,7 +79,7 @@ public class OptDeptMaCodeController {
} }
@DeleteMapping @DeleteMapping
public Result delete(@RequestBody String[] ids){ public Result delete(@RequestBody String[] ids) {
//效验数据 //效验数据
AssertUtils.isArrayEmpty(ids, "id"); AssertUtils.isArrayEmpty(ids, "id");
deptMaCodeService.delete(ids); deptMaCodeService.delete(ids);
@ -91,11 +92,42 @@ public class OptDeptMaCodeController {
ExcelUtils.exportExcelToTarget(response, null, list, DeptMaCodeExcel.class); ExcelUtils.exportExcelToTarget(response, null, list, DeptMaCodeExcel.class);
} }
/**
* 将网格机构信息同步到小程序码表只是同步机构信息不会创建小程序码
*
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2020/5/18 15:18
*/
@PostMapping("initDeptForMaCode") @PostMapping("initDeptForMaCode")
public Result initDeptForMaCode(){ public Result initDeptForMaCode() {
deptMaCodeService.initDeptForMaCode(); deptMaCodeService.initDeptForMaCode();
return new Result(); return new Result();
} }
/**
* 生成指定网格小程序码
*
* @param gridId
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/9/19 11:04
*/
@PostMapping("create/{gridId}")
public Result createDeptMaCode(@PathVariable("gridId") String gridId) {
return deptMaCodeService.createDeptMaCode(gridId);
}
/**
* 创建网格长注册小程序码
*
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2019/10/22 09:59
*/
@PostMapping("gridLeader")
public Result createGridLeaderMaCode() {
return deptMaCodeService.createGridLeaderMaCode();
}
} }

14
epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dao/OptDeptMaCodeDao.java

@ -18,11 +18,13 @@
package com.elink.esua.epdc.optimize.modules.macode.dao; package com.elink.esua.epdc.optimize.modules.macode.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO;
import com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity; import com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 网格小程序码 * 网格小程序码
@ -53,5 +55,15 @@ public interface OptDeptMaCodeDao extends BaseDao<OptDeptMaCodeEntity> {
* @author work@yujt.net.cn * @author work@yujt.net.cn
* @date 2020/5/15 14:10 * @date 2020/5/15 14:10
*/ */
List<OptDeptMaCodeEntity> selectListDeptAndParents(@Param("deptId") String deptId, @Param("parentIds") String[] parentIds); List<OptDeptMaCodeEntity> selectListDeptAndParents(@Param("deptId") Long deptId, @Param("parentIds") String[] parentIds);
/**
* 小程序码维护 - 分页查询
*
* @param params
* @return java.util.List<com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO>
* @author work@yujt.net.cn
* @date 2020/5/18 14:35
*/
List<OptDeptMaCodeDTO> selectListDeptMaCode(Map<String, Object> params);
} }

2
epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dto/DeptMaCodeDTO.java → epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/dto/OptDeptMaCodeDTO.java

@ -29,7 +29,7 @@ import lombok.Data;
* @since v1.0.0 2020-05-15 * @since v1.0.0 2020-05-15
*/ */
@Data @Data
public class DeptMaCodeDTO implements Serializable { public class OptDeptMaCodeDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

28
epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/OptDeptMaCodeService.java

@ -21,6 +21,7 @@ import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.DeptMaCodeDTO; import com.elink.esua.epdc.dto.DeptMaCodeDTO;
import com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO;
import com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity; import com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity;
import java.util.List; import java.util.List;
@ -38,17 +39,17 @@ public interface OptDeptMaCodeService extends BaseService<OptDeptMaCodeEntity> {
* 默认分页 * 默认分页
* *
* @param params * @param params
* @return PageData<DeptMaCodeDTO> * @return PageData<OptDeptMaCodeDTO>
* @author generator * @author generator
* @date 2020-05-15 * @date 2020-05-15
*/ */
PageData<DeptMaCodeDTO> page(Map<String, Object> params); PageData<OptDeptMaCodeDTO> page(Map<String, Object> params);
/** /**
* 默认查询 * 默认查询
* *
* @param params * @param params
* @return java.util.List<DeptMaCodeDTO> * @return java.util.List<OptDeptMaCodeDTO>
* @author generator * @author generator
* @date 2020-05-15 * @date 2020-05-15
*/ */
@ -58,7 +59,7 @@ public interface OptDeptMaCodeService extends BaseService<OptDeptMaCodeEntity> {
* 单条查询 * 单条查询
* *
* @param id * @param id
* @return DeptMaCodeDTO * @return OptDeptMaCodeDTO
* @author generator * @author generator
* @date 2020-05-15 * @date 2020-05-15
*/ */
@ -102,4 +103,23 @@ public interface OptDeptMaCodeService extends BaseService<OptDeptMaCodeEntity> {
* @date 2020/5/15 15:27 * @date 2020/5/15 15:27
*/ */
Result initDeptForMaCode(); Result initDeptForMaCode();
/**
* 生成指定网格小程序码
*
* @param gridId
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2020/5/18 15:19
*/
Result createDeptMaCode(String gridId);
/**
* 创建网格长注册小程序码
*
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
* @date 2020/5/18 15:34
*/
Result createGridLeaderMaCode();
} }

150
epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/modules/macode/service/impl/OptDeptMaCodeServiceImpl.java

@ -18,27 +18,38 @@
package com.elink.esua.epdc.optimize.modules.macode.service.impl; package com.elink.esua.epdc.optimize.modules.macode.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant; import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
import com.elink.esua.epdc.commons.tools.constant.StrConstant; import com.elink.esua.epdc.commons.tools.constant.StrConstant;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.DeptMaCodeDTO; import com.elink.esua.epdc.dto.DeptMaCodeDTO;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.optimize.modules.feign.OptOssFeignClient;
import com.elink.esua.epdc.optimize.modules.macode.dao.OptDeptMaCodeDao; import com.elink.esua.epdc.optimize.modules.macode.dao.OptDeptMaCodeDao;
import com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO;
import com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity; import com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity;
import com.elink.esua.epdc.optimize.modules.macode.service.OptDeptMaCodeService; import com.elink.esua.epdc.optimize.modules.macode.service.OptDeptMaCodeService;
import com.elink.esua.epdc.optimize.utils.FileUtils;
import com.elink.esua.epdc.utils.WxMaServiceUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -52,14 +63,23 @@ import java.util.Map;
@Service @Service
public class OptDeptMaCodeServiceImpl extends BaseServiceImpl<OptDeptMaCodeDao, OptDeptMaCodeEntity> implements OptDeptMaCodeService { public class OptDeptMaCodeServiceImpl extends BaseServiceImpl<OptDeptMaCodeDao, OptDeptMaCodeEntity> implements OptDeptMaCodeService {
@Override @Autowired
public PageData<DeptMaCodeDTO> page(Map<String, Object> params) { private WxMaServiceUtils wxMaServiceUtils;
@Autowired
private OptOssFeignClient ossFeignClient;
IPage<OptDeptMaCodeEntity> page = baseDao.selectPage( /**
getPage(params, FieldConstant.CREATED_TIME, false), * 小程序首页
getWrapper(params) */
); private final static String MA_FRONT_PAGE_URL = "pages/index/index";
return getPageData(page, DeptMaCodeDTO.class);
@Override
public PageData<OptDeptMaCodeDTO> page(Map<String, Object> params) {
params.put("dataScopeDeptIds", SecurityUser.getUser().getDeptIdList());
IPage<OptDeptMaCodeDTO> page = getPage(params);
List<OptDeptMaCodeDTO> pageDataList = baseDao.selectListDeptMaCode(params);
return new PageData<>(pageDataList, page.getTotal());
} }
@Override @Override
@ -71,34 +91,126 @@ public class OptDeptMaCodeServiceImpl extends BaseServiceImpl<OptDeptMaCodeDao,
} }
List<OptDeptMaCodeEntity> insertList = Lists.newArrayList(); List<OptDeptMaCodeEntity> insertList = Lists.newArrayList();
for (OptDeptMaCodeEntity deptMaCodeEntity : deptIdList) { for (OptDeptMaCodeEntity deptMaCodeEntity : deptIdList) {
insertList.add(packDeptBaseInfo(deptMaCodeEntity.getGrid(), deptMaCodeEntity.getParentDeptIds())); OptDeptMaCodeEntity entity = packDeptBaseInfo(deptMaCodeEntity.getGridId(), deptMaCodeEntity.getParentDeptIds());
if (null != entity) {
insertList.add(entity);
}
} }
insertBatch(insertList, NumConstant.FIFTY); insertBatch(insertList, NumConstant.FIFTY);
return new Result(); return new Result();
} }
@Override
public Result createDeptMaCode(String gridId) {
OptDeptMaCodeEntity entity = new OptDeptMaCodeEntity();
entity.setCodeUrl(this.createMaCode(gridId, MA_FRONT_PAGE_URL));
this.baseDao.insert(entity);
UpdateWrapper<OptDeptMaCodeEntity> wrapper = new UpdateWrapper<>();
wrapper.eq(FieldConstant.GRID_ID, gridId);
private OptDeptMaCodeEntity packDeptBaseInfo(String deptId, String pids) { baseDao.update(entity, wrapper);
return new Result();
}
@Override
public Result createGridLeaderMaCode() {
QueryWrapper<OptDeptMaCodeEntity> wrapper = new QueryWrapper<>();
wrapper.eq("leader_flag", YesOrNoEnum.YES.value());
Integer selectCount = this.baseDao.selectCount(wrapper);
if (selectCount > NumConstant.ZERO) {
return new Result();
}
OptDeptMaCodeEntity entity = new OptDeptMaCodeEntity();
entity.setAllDeptNames("全平台通用");
entity.setCodeUrl(this.createMaCode("gridLeader", MA_FRONT_PAGE_URL));
entity.setLeaderFlag(YesOrNoEnum.YES.value());
this.baseDao.insert(entity);
return new Result();
}
/**
* 创建微信小程序码并上传到oss
*
* @param param 小程序码的参数
* @param pageUrl 小程序码的跳转链接
* @return java.lang.String 小程序码的下载抵制
* @author work@yujt.net.cn
* @date 2019/10/22 10:14
*/
private String createMaCode(String param, String pageUrl) {
File wxaCodeUnlimit;
try {
wxaCodeUnlimit = wxMaServiceUtils.normalWxMaService().getQrcodeService()
.createWxaCodeUnlimit(param, pageUrl, 1280, true, null, false);
} catch (WxErrorException e) {
throw new RenException("请求微信接口失败");
}
UploadToOssDTO dto = new UploadToOssDTO();
dto.setFileByte(FileUtils.fileToByteArray(wxaCodeUnlimit));
dto.setFileName(wxaCodeUnlimit.getName());
Result<String> ossResult = ossFeignClient.uploadFile(dto);
if (null == ossResult || !ossResult.success() || null == ossResult.getData()) {
throw new RenException("小程序码上传失败");
}
return ossResult.getData();
}
/**
* 获取部门及父部门信息拼接部门id部门名称
*
* @param deptId 本部门id
* @param pids 所有父部门id
* @return com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity
* @author work@yujt.net.cn
* @date 2020/5/18 14:06
*/
private OptDeptMaCodeEntity packDeptBaseInfo(Long deptId, String pids) {
String[] deptPids = pids.split(StrConstant.COMMA);
// 查询机构及父级机构 // 查询机构及父级机构
List<OptDeptMaCodeEntity> deptList = baseDao.selectListDeptAndParents(deptId, pids.split(StrConstant.COMMA)); List<OptDeptMaCodeEntity> deptList = baseDao.selectListDeptAndParents(deptId, deptPids);
if (CollUtil.isEmpty(deptList)) { if (CollUtil.isEmpty(deptList)) {
return null; return null;
} }
int size = deptList.size(); // 按上下级顺序组装部门集合
List<OptDeptMaCodeEntity> newDeptIdList = Lists.newArrayList();
if (ArrayUtil.isEmpty(deptPids)) {
// 父级部门为空,则只有部门本身,没有上级
newDeptIdList = deptList;
} else {
// 按部门顺序开始组装
for (int i = 0; i < deptPids.length; i++) {
for (OptDeptMaCodeEntity entity : deptList) {
if (String.valueOf(entity.getGridId()).equals(deptPids[i])) {
newDeptIdList.add(entity);
deptList.remove(entity);
break;
}
}
}
// 所有父级部门处理完成,最后剩下部门本身
newDeptIdList.addAll(deptList);
}
int size = newDeptIdList.size();
int maxIndex = size - NumConstant.ONE;
String[] allDeptIds = new String[size]; String[] allDeptIds = new String[size];
String[] allDeptNames = new String[size]; String[] allDeptNames = new String[size];
String[] parentDeptIds = new String[size - NumConstant.ONE]; String[] parentDeptIds = new String[maxIndex];
String[] parentDeptNames = new String[size - NumConstant.ONE]; String[] parentDeptNames = new String[maxIndex];
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
allDeptIds[i] = String.valueOf(deptList.get(i).getGridId()); allDeptIds[i] = String.valueOf(newDeptIdList.get(i).getGridId());
allDeptNames[i] = deptList.get(i).getGrid(); allDeptNames[i] = newDeptIdList.get(i).getGrid();
if (i < size - NumConstant.ONE) { if (i < maxIndex) {
parentDeptIds[i] = String.valueOf(deptList.get(i).getGridId()); parentDeptIds[i] = String.valueOf(newDeptIdList.get(i).getGridId());
parentDeptNames[i] = deptList.get(i).getGrid(); parentDeptNames[i] = newDeptIdList.get(i).getGrid();
} }
} }
OptDeptMaCodeEntity deptMaCodeEntity = deptList.get(size - NumConstant.ONE); OptDeptMaCodeEntity deptMaCodeEntity = newDeptIdList.get(maxIndex);
deptMaCodeEntity.setLeaderFlag(YesOrNoEnum.NO.value()); deptMaCodeEntity.setLeaderFlag(YesOrNoEnum.NO.value());
deptMaCodeEntity.setAllDeptIds(StringUtils.join(allDeptIds, StrConstant.COMMA)); deptMaCodeEntity.setAllDeptIds(StringUtils.join(allDeptIds, StrConstant.COMMA));
deptMaCodeEntity.setParentDeptIds(StringUtils.join(parentDeptIds, StrConstant.COMMA)); deptMaCodeEntity.setParentDeptIds(StringUtils.join(parentDeptIds, StrConstant.COMMA));

48
epdc-cloud-optimize-department/src/main/java/com/elink/esua/epdc/optimize/utils/FileUtils.java

@ -0,0 +1,48 @@
package com.elink.esua.epdc.optimize.utils;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
/**
* 文件操作工具
*
* @author work@yujt.net.cn
* @date 2020/5/18 15:27
*/
public class FileUtils {
/**
* File文件转为byte[]
*
* @param file
* @return byte[]
* @author work@yujt.net.cn
* @date 2019/9/19 15:56
*/
public static byte[] fileToByteArray(File file) {
try {
//获取输入流
FileInputStream fis = new FileInputStream(file);
//新的 byte 数组输出流,缓冲区容量1024byte
ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
//缓存
byte[] b = new byte[1024];
int n;
while ((n = fis.read(b)) != NumConstant.ONE_NEG) {
bos.write(b, NumConstant.ZERO, n);
}
fis.close();
//改变为byte[]
byte[] data = bos.toByteArray();
bos.close();
return data;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

31
epdc-cloud-optimize-department/src/main/resources/logback-spring.xml

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 开发、测试环境 -->
<springProfile name="dev,test">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.elink.esua.epdc" level="INFO"/>
<logger name="com.elink.esua.epdc.optimize.modules.macode.dao" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="WARN_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</springProfile>
<!-- 生产环境 -->
<springProfile name="prod">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.elink.esua.epdc" level="INFO"/>
<root level="INFO">
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="WARN_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</springProfile>
</configuration>

32
epdc-cloud-optimize-department/src/main/resources/mapper/macode/OptDeptMaCodeDao.xml

@ -5,12 +5,16 @@
<select id="selectListDeptIdByTypeKey" <select id="selectListDeptIdByTypeKey"
resultType="com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity"> resultType="com.elink.esua.epdc.optimize.modules.macode.entity.OptDeptMaCodeEntity">
SELECT t.id as gridId,t.pids as parentDeptIds SELECT
FROM sys_dept t WHERE t.type_key = #{typeKey} t.id as gridId,t.pids as parentDeptIds
AND NOT EXISTS (SELECT 1 FROM epdc_dept_ma_code_copy1 c WHERE c.GRID_ID = t.id) FROM
<if test="dataScopeDeptIds != null and dataScopeDeptIds.size() > 0"> sys_dept t
AND t.id IN <foreach collection="dataScopeDeptIds" open="(" separator="," close=")" item="deptId">#{deptId}</foreach> WHERE
</if> t.type_key = #{typeKey} AND t.del_flag = '0'
AND NOT EXISTS (SELECT 1 FROM epdc_dept_ma_code_copy1 c WHERE c.GRID_ID = t.id AND c.del_flag = '0')
<if test="dataScopeDeptIds != null and dataScopeDeptIds.size() > 0">
AND t.id IN <foreach collection="dataScopeDeptIds" open="(" separator="," close=")" item="deptId">#{deptId}</foreach>
</if>
ORDER BY t.update_date ASC; ORDER BY t.update_date ASC;
</select> </select>
@ -22,11 +26,25 @@
sys_dept t sys_dept t
WHERE WHERE
t.id = #{deptId} t.id = #{deptId}
<if test="parentIds != null and parentIds.size() > 0"> <if test="parentIds != null and parentIds.length > 0">
OR t.id IN <foreach collection="parentIds" open="(" separator="," close=")" item="parentId">#{parentId}</foreach> OR t.id IN <foreach collection="parentIds" open="(" separator="," close=")" item="parentId">#{parentId}</foreach>
</if> </if>
ORDER BY t.update_date ASC; ORDER BY t.update_date ASC;
</select> </select>
<select id="selectListDeptMaCode"
resultType="com.elink.esua.epdc.optimize.modules.macode.dto.OptDeptMaCodeDTO">
select * from epdc_dept_ma_code_copy1 ma
where ma.del_flag = '0'
<if test="gridId != null and gridId != ''">
and ma.grid_id = #{gridId}
</if>
<if test="leaderFlag != null and leaderFlag != ''">
and ma.leader_flag = #{leaderFlag}
</if>
<if test='(dataScopeDeptIds != null and dataScopeDeptIds.size() > 0) and leaderFlag == "0"'>
AND ma.grid_id IN <foreach collection="dataScopeDeptIds" open="(" separator="," close=")" item="deptId">#{deptId}</foreach>
</if>
</select>
</mapper> </mapper>
Loading…
Cancel
Save