Commit 5085b88f authored by huangjie's avatar huangjie

Merge branch 'zuhuduan' of http://192.168.60.201/root/dsk-operate-sys into zuhuduan

parents 36ef2908 bfb5a9d0
...@@ -39,8 +39,7 @@ public class SysMenuController extends BaseController { ...@@ -39,8 +39,7 @@ public class SysMenuController extends BaseController {
@SaCheckPermission("system:menu:list") @SaCheckPermission("system:menu:list")
@GetMapping("/list") @GetMapping("/list")
public R<List<SysMenu>> list(SysMenu menu) { public R<List<SysMenu>> list(SysMenu menu) {
List<SysMenu> menus = menuService.selectAllMenu(menu,getUserId()); List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
//List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
return R.ok(menus); return R.ok(menus);
} }
......
...@@ -34,7 +34,7 @@ public class BusinessFollowRecordController extends BaseController ...@@ -34,7 +34,7 @@ public class BusinessFollowRecordController extends BaseController
* 查询关联项目 * 查询关联项目
*/ */
@GetMapping("/relate/project/{userId}") @GetMapping("/relate/project/{userId}")
public R<List<BusinessListVo>> selectRelateProject(@PathVariable("userId") Integer userId) public R<List<BusinessListVo>> selectRelateProject(@PathVariable("userId") Long userId)
{ {
return R.ok(businessFollowRecordService.selectRelateProject(userId)); return R.ok(businessFollowRecordService.selectRelateProject(userId));
} }
...@@ -43,7 +43,7 @@ public class BusinessFollowRecordController extends BaseController ...@@ -43,7 +43,7 @@ public class BusinessFollowRecordController extends BaseController
* 查询关联业主企业 * 查询关联业主企业
*/ */
@GetMapping("/relate/company/{userId}") @GetMapping("/relate/company/{userId}")
public R<List<String>> selectRelateCompany(@PathVariable("userId") Integer userId) public R<List<String>> selectRelateCompany(@PathVariable("userId") Long userId)
{ {
return R.ok(businessFollowRecordService.selectRelateCompany(userId)); return R.ok(businessFollowRecordService.selectRelateCompany(userId));
} }
......
...@@ -9,6 +9,7 @@ import com.dsk.biz.domain.vo.CustomerBusinessListVo; ...@@ -9,6 +9,7 @@ import com.dsk.biz.domain.vo.CustomerBusinessListVo;
import com.dsk.biz.domain.vo.CustomerListVo; import com.dsk.biz.domain.vo.CustomerListVo;
import com.dsk.biz.domain.vo.CustomerVo; import com.dsk.biz.domain.vo.CustomerVo;
import com.dsk.biz.service.ICustomerService; import com.dsk.biz.service.ICustomerService;
import com.dsk.biz.utils.ExcelUtils;
import com.dsk.common.annotation.Log; import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit; import com.dsk.common.annotation.RepeatSubmit;
import com.dsk.common.core.controller.BaseController; import com.dsk.common.core.controller.BaseController;
...@@ -118,7 +119,7 @@ public class CustomerController extends BaseController { ...@@ -118,7 +119,7 @@ public class CustomerController extends BaseController {
@PostMapping("/importData") @PostMapping("/importData")
// public R<List<String>> importData(@RequestPart("file") MultipartFile file) throws Exception { // public R<List<String>> importData(@RequestPart("file") MultipartFile file) throws Exception {
public AjaxResult importData(@RequestPart("file") MultipartFile file) throws Exception { public AjaxResult importData(@RequestPart("file") MultipartFile file) throws Exception {
List<Customer> customerList = ExcelUtil.importExcel(file.getInputStream(), Customer.class); List<Customer> customerList = new ExcelUtils<>(Customer.class).importExcel(file.getInputStream(), 2);
List<String> resultList = new ArrayList<>(); List<String> resultList = new ArrayList<>();
int successCount = 0; int successCount = 0;
for (Customer customer : customerList) { for (Customer customer : customerList) {
......
...@@ -34,7 +34,7 @@ public class BusinessFollowRecord extends BaseEntity ...@@ -34,7 +34,7 @@ public class BusinessFollowRecord extends BaseEntity
private Integer businessId; private Integer businessId;
/** 用户id */ /** 用户id */
private Integer userId; private Long userId;
/** 用户昵称 */ /** 用户昵称 */
private String nickName; private String nickName;
......
package com.dsk.biz.domain; package com.dsk.biz.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.dsk.common.annotation.Excel;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -33,6 +35,7 @@ public class Customer implements Serializable { ...@@ -33,6 +35,7 @@ public class Customer implements Serializable {
/** /**
* 客户名称(企业名称) * 客户名称(企业名称)
*/ */
@Excel(name = "企业名称")
private String companyName; private String companyName;
/** /**
* 法定代表人 * 法定代表人
......
package com.dsk.biz.domain.bo; package com.dsk.biz.domain.bo;
import com.dsk.common.annotation.Excel;
import lombok.Data; import lombok.Data;
/** /**
...@@ -13,13 +14,16 @@ public class BusinessExcelDto { ...@@ -13,13 +14,16 @@ public class BusinessExcelDto {
/** /**
* 项目名称 * 项目名称
*/ */
@Excel(name = "项目名称(必填)")
private String projectName; private String projectName;
/** /**
* 投资估算(万元) * 投资估算(万元)
*/ */
@Excel(name = "投资估算(万元)")
private String investmentAmount; private String investmentAmount;
/** /**
* 业主单位 * 业主单位
*/ */
@Excel(name = "业主单位(必填)")
private String ownerCompany; private String ownerCompany;
} }
...@@ -27,14 +27,14 @@ public interface BusinessFollowRecordMapper ...@@ -27,14 +27,14 @@ public interface BusinessFollowRecordMapper
* @param userId * @param userId
* @return * @return
*/ */
List<BusinessListVo> selectRelateProject(Integer userId); List<BusinessListVo> selectRelateProject(Long userId);
/** /**
* 查询关联业主企业 * 查询关联业主企业
* @param userId * @param userId
* @return * @return
*/ */
List<String> selectRelateCompany(Integer userId); List<String> selectRelateCompany(Long userId);
/** /**
* 查询项目跟进记录 * 查询项目跟进记录
......
...@@ -63,14 +63,14 @@ public interface IBusinessFollowRecordService ...@@ -63,14 +63,14 @@ public interface IBusinessFollowRecordService
* @param userId * @param userId
* @return * @return
*/ */
List<BusinessListVo> selectRelateProject(Integer userId); List<BusinessListVo> selectRelateProject(Long userId);
/** /**
* 查询关联业主企业 * 查询关联业主企业
* @param userId * @param userId
* @return * @return
*/ */
List<String> selectRelateCompany(Integer userId); List<String> selectRelateCompany(Long userId);
/** /**
* 修改项目跟进记录 * 修改项目跟进记录
......
...@@ -77,12 +77,12 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer ...@@ -77,12 +77,12 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer
} }
@Override @Override
public List<BusinessListVo> selectRelateProject(Integer userId) { public List<BusinessListVo> selectRelateProject(Long userId) {
return businessFollowRecordMapper.selectRelateProject(userId); return businessFollowRecordMapper.selectRelateProject(userId);
} }
@Override @Override
public List<String> selectRelateCompany(Integer userId) { public List<String> selectRelateCompany(Long userId) {
return businessFollowRecordMapper.selectRelateCompany(userId); return businessFollowRecordMapper.selectRelateCompany(userId);
} }
......
...@@ -11,6 +11,7 @@ import com.dsk.biz.domain.bo.BusinessExcelDto; ...@@ -11,6 +11,7 @@ import com.dsk.biz.domain.bo.BusinessExcelDto;
import com.dsk.biz.domain.bo.BusinessListDto; import com.dsk.biz.domain.bo.BusinessListDto;
import com.dsk.biz.domain.bo.CustomerBusinessSearchDto; import com.dsk.biz.domain.bo.CustomerBusinessSearchDto;
import com.dsk.biz.domain.vo.*; import com.dsk.biz.domain.vo.*;
import com.dsk.biz.utils.ExcelUtils;
import com.dsk.common.annotation.DataColumn; import com.dsk.common.annotation.DataColumn;
import com.dsk.common.annotation.DataPermission; import com.dsk.common.annotation.DataPermission;
import com.dsk.jsk.service.EnterpriseService; import com.dsk.jsk.service.EnterpriseService;
...@@ -185,7 +186,13 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -185,7 +186,13 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
int rowSuccess = 0;//成功条数 int rowSuccess = 0;//成功条数
Integer errorCount = 0;//失败条数 Integer errorCount = 0;//失败条数
List<String> result = new LinkedList();//导入结果汇总 List<String> result = new LinkedList();//导入结果汇总
List<BusinessExcelDto> businessInfoList = readBusinessInfoExcel.getExcelInfo(file); List<BusinessExcelDto> businessInfoList = null;
try {
businessInfoList = new ExcelUtils<>(BusinessExcelDto.class).importExcel(file.getInputStream(), 2);
} catch (Exception e) {
e.printStackTrace();
}
// List<BusinessExcelDto> businessInfoList = readBusinessInfoExcel.getExcelInfo(file);
if (CollectionUtil.isEmpty(businessInfoList)) return AjaxResult.error("文档中无项目信息,请按照模板文档格式上传"); if (CollectionUtil.isEmpty(businessInfoList)) return AjaxResult.error("文档中无项目信息,请按照模板文档格式上传");
for (BusinessExcelDto businessInfo : businessInfoList) { for (BusinessExcelDto businessInfo : businessInfoList) {
//查询已有的项目名称 //查询已有的项目名称
......
...@@ -9,9 +9,11 @@ import com.dsk.common.utils.DictUtils; ...@@ -9,9 +9,11 @@ import com.dsk.common.utils.DictUtils;
import com.dsk.common.utils.StringUtils; import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.file.FileTypeUtils; import com.dsk.common.utils.file.FileTypeUtils;
import com.dsk.common.utils.file.FileUploadUtils; import com.dsk.common.utils.file.FileUploadUtils;
import com.dsk.common.utils.file.FileUtils;
import com.dsk.common.utils.file.ImageUtils; import com.dsk.common.utils.file.ImageUtils;
import com.dsk.common.utils.poi.ExcelHandlerAdapter; import com.dsk.common.utils.poi.ExcelHandlerAdapter;
import com.dsk.common.utils.poi.ExcelUtil; import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.common.utils.reflect.ReflectUtils;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.RegExUtils; import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.commons.lang3.reflect.FieldUtils;
...@@ -1341,4 +1343,136 @@ public class ExcelUtils<T> { ...@@ -1341,4 +1343,136 @@ public class ExcelUtils<T> {
} }
return method; return method;
} }
/**
* 对excel表单默认第一个索引名转换成list
*
* @param is 输入流
* @param titleNum 标题占用行数
* @return 转换后集合
*/
public List<T> importExcel(InputStream is, int titleNum) throws Exception {
return importExcel(StringUtils.EMPTY, is, titleNum);
}
/**
* 对excel表单指定表格索引名转换成list
*
* @param sheetName 表格索引名
* @param titleNum 标题占用行数
* @param is 输入流
* @return 转换后集合
*/
public List<T> importExcel(String sheetName, InputStream is, int titleNum) throws Exception {
this.type = Excel.Type.IMPORT;
this.wb = WorkbookFactory.create(is);
List<T> list = new ArrayList<T>();
// 如果指定sheet名,则取指定sheet中的内容 否则默认指向第1个sheet
Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0);
if (sheet == null) {
throw new IOException("文件sheet不存在");
}
boolean isXSSFWorkbook = !(wb instanceof HSSFWorkbook);
Map<String, PictureData> pictures;
if (isXSSFWorkbook) {
pictures = getSheetPictures07((XSSFSheet) sheet, (XSSFWorkbook) wb);
} else {
pictures = getSheetPictures03((HSSFSheet) sheet, (HSSFWorkbook) wb);
}
// 获取最后一个非空行的行下标,比如总行数为n,则返回的为n-1
int rows = sheet.getLastRowNum();
if (rows > 0) {
// 定义一个map用于存放excel列的序号和field.
Map<String, Integer> cellMap = new HashMap<String, Integer>();
// 获取表头
Row heard = sheet.getRow(titleNum);
for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) {
Cell cell = heard.getCell(i);
if (ObjectUtils.isEmpty(cell)) {
cellMap.put(null, i);
} else {
String value = this.getCellValue(heard, i).toString();
cellMap.put(value, i);
}
}
// 有数据时才处理 得到类的所有field.
List<Object[]> fields = this.getFields();
Map<Integer, Object[]> fieldsMap = new HashMap<Integer, Object[]>();
for (Object[] objects : fields) {
Excel attr = (Excel) objects[1];
Integer column = cellMap.get(attr.name());
if (column != null) {
fieldsMap.put(column, objects);
}
}
for (int i = titleNum + 1; i <= rows; i++) {
// 从第2行开始取数据,默认第一行是表头.
Row row = sheet.getRow(i);
// 判断当前行是否是空行
if (isRowEmpty(row)) {
continue;
}
T entity = null;
for (Map.Entry<Integer, Object[]> entry : fieldsMap.entrySet()) {
Object val = this.getCellValue(row, entry.getKey());
// 如果不存在实例则新建.
entity = (entity == null ? clazz.newInstance() : entity);
// 从map中得到对应列的field.
Field field = (Field) entry.getValue()[0];
Excel attr = (Excel) entry.getValue()[1];
// 取得类型,并根据对象类型设置值.
Class<?> fieldType = field.getType();
if (String.class == fieldType) {
String s = Convert.toStr(val);
if (StringUtils.endsWith(s, ".0")) {
val = StringUtils.substringBefore(s, ".0");
} else {
String dateFormat = field.getAnnotation(Excel.class).dateFormat();
if (StringUtils.isNotEmpty(dateFormat)) {
val = parseDateToStr(dateFormat, val);
} else {
val = Convert.toStr(val);
}
}
} else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) {
val = Convert.toInt(val);
} else if ((Long.TYPE == fieldType || Long.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) {
val = Convert.toLong(val);
} else if (Double.TYPE == fieldType || Double.class == fieldType) {
val = Convert.toDouble(val);
} else if (Float.TYPE == fieldType || Float.class == fieldType) {
val = Convert.toFloat(val);
} else if (BigDecimal.class == fieldType) {
val = Convert.toBigDecimal(val);
} else if (Date.class == fieldType) {
if (val instanceof String) {
val = DateUtils.parseDate(val);
} else if (val instanceof Double) {
val = DateUtil.getJavaDate((Double) val);
}
} else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) {
val = Convert.toBool(val, false);
}
if (!ObjectUtils.isEmpty(fieldType)) {
String propertyName = field.getName();
if (StringUtils.isNotEmpty(attr.targetAttr())) {
propertyName = field.getName() + "." + attr.targetAttr();
} else if (StringUtils.isNotEmpty(attr.readConverterExp())) {
val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator());
} else if (StringUtils.isNotEmpty(attr.dictType())) {
val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator());
} else if (!attr.handler().equals(ExcelHandlerAdapter.class)) {
val = dataFormatHandlerAdapter(val, attr);
}
ReflectUtils.invokeSetter(entity, propertyName, val);
}
}
list.add(entity);
}
}
return list;
}
} }
...@@ -21,10 +21,7 @@ import com.dsk.system.domain.vo.SysOssVo; ...@@ -21,10 +21,7 @@ import com.dsk.system.domain.vo.SysOssVo;
import com.dsk.system.service.ISysOssService; import com.dsk.system.service.ISysOssService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
...@@ -210,4 +207,28 @@ public class JskCombineInfoController extends BaseController { ...@@ -210,4 +207,28 @@ public class JskCombineInfoController extends BaseController {
SysOssVo sysOssVo = ossService.buildResultEntity(title.concat(Constants.SUFFIX_XLSX), Constants.SUFFIX_XLSX, client.getConfigKey(), uploadResult); SysOssVo sysOssVo = ossService.buildResultEntity(title.concat(Constants.SUFFIX_XLSX), Constants.SUFFIX_XLSX, client.getConfigKey(), uploadResult);
return R.ok(sysOssVo); return R.ok(sysOssVo);
} }
/***
*@Description: 获取集团logo
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/9/12 16:05
*/
@RequestMapping(value = "/combineMemberLogo", method = RequestMethod.POST)
public R combineMemberLogo(@RequestBody Map<String,Object> paramMap) {
return baseService.combineMemberLogo(paramMap);
}
/***
*@Description: 集团统计展示调用允许
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/9/12 16:05
*/
@RequestMapping(value = "/memberCount", method = RequestMethod.POST)
public R memberCount(@RequestBody JskCombineSearchDto dto) throws Exception {
return baseService.memberCount(dto);
}
} }
...@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor; ...@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@Data @Data
@ToString @ToString
...@@ -26,7 +27,7 @@ public class EnterpriseProjectBidPlanPageBody extends BasePage { ...@@ -26,7 +27,7 @@ public class EnterpriseProjectBidPlanPageBody extends BasePage {
/** /**
* 项目类型 * 项目类型
*/ */
private String buildingProjectType; private List<String> buildingProjectType;
/* /*
* 排序字段:1金额倒序,2金额正序,3发布时间倒序,4发布时间正序,15预计招标时间倒序,16预计招标时间正序 * 排序字段:1金额倒序,2金额正序,3发布时间倒序,4发布时间正序,15预计招标时间倒序,16预计招标时间正序
......
...@@ -408,21 +408,24 @@ public class EnterpriseService { ...@@ -408,21 +408,24 @@ public class EnterpriseService {
if (body.isValidateCid()) { if (body.isValidateCid()) {
return R.ok(); return R.ok();
} }
String redisKey = CacheConstants.DATA_FINANCIAL + body.getCid(); // TODO 缓存需要
List cacheMap = RedisUtils.getCacheList(redisKey); // String redisKey = CacheConstants.DATA_FINANCIAL + body.getCid();
if (ObjectUtil.isNotEmpty(cacheMap)) { // List cacheMap = RedisUtils.getCacheList(redisKey);
return R.ok(cacheMap); // if (ObjectUtil.isNotEmpty(cacheMap)) {
} // return R.ok(cacheMap);
// }
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/financialData", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/financialData", BeanUtil.beanToMap(body, false, false));
Integer code = MapUtils.getInteger(map, "code", 300); Integer code = MapUtils.getInteger(map, "code", 300);
if (!code.equals(HttpStatus.OK.value())) { if (!code.equals(HttpStatus.OK.value())) {
throw new RuntimeException(); throw new RuntimeException();
} }
Object data = map.get("data");
if (ObjectUtil.isNotEmpty(data)) { // Object data = map.get("data");
RedisUtils.setCacheList(redisKey, (List) data); // if (ObjectUtil.isNotEmpty(data)) {
RedisUtils.expire(redisKey, Duration.ofHours(24)); // RedisUtils.setCacheList(redisKey, (List) data);
} // RedisUtils.expire(redisKey, Duration.ofHours(24));
// }
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
......
...@@ -17,6 +17,7 @@ import com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo; ...@@ -17,6 +17,7 @@ import com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
...@@ -215,4 +216,44 @@ public class JskCombineInfoService { ...@@ -215,4 +216,44 @@ public class JskCombineInfoService {
} }
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
/***
*@Description: 获取集团logo
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/9/12 16:05
*/
public R combineMemberLogo(Map<String,Object> object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/combineMemberLogo", object);
return BeanUtil.toBean(map, R.class);
}
/***
*@Description: 集团统计展示调用允许
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/9/12 16:05
*/
public R memberCount(JskCombineSearchDto dto) {
Map<String, Object> paramsMap = BeanUtil.beanToMap(dto, false, false);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberCount", paramsMap);
if (ObjectUtil.isNotEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
data.put("performance", businessCount(paramsMap));
}
return BeanUtil.toBean(map, R.class);
}
public Integer businessCount(Map<String, Object> paramsMap) {
Integer performance = 0;
Map<String, Object> resMap = dskOpenApiUtil.requestBody("/nationzj/project/combine/projectList", paramsMap);
Integer code = MapUtils.getInteger(resMap, "code", 300);
Map data = MapUtils.getMap(resMap, "data", null);
if (code.equals(HttpStatus.OK.value())) {
performance = MapUtils.getInteger(data, "totalCount", 0);
}
return performance;
}
} }
import request from "@/utils/request"; import request from "@/utils/request";
//企业数据统计
export function statistic(data) {
return request({
url: '/enterprise/statistic',
method: 'post',
data: data
})
}
// 集团logo
export function combineMemberLogo(data) {
return request({
url: '/combine/info/combineMemberLogo',
method: 'post',
data: data
})
}
// 集团成员列表 // 集团成员列表
export function memberList(data) { export function memberList(data) {
return request({ return request({
......
import request from "@/utils/request"; import request from "@/utils/request";
// 获取用户详细信息
export function getInfo() {
return request({
url: '/getInfo',
method: 'get'
})
}
// 集团中标统计 // 集团中标统计
export function countByCompany(data) { export function countByCompany(data) {
return request({ return request({
......
...@@ -2,8 +2,11 @@ ...@@ -2,8 +2,11 @@
<div class="no-data"> <div class="no-data">
<div class="no-data-box"> <div class="no-data-box">
<img :src="noData" alt="抱歉,没找到相关数据" /> <img :src="noData" alt="抱歉,没找到相关数据" />
<div v-if="text">抱歉,您还未添加{{text}}项目</div> <div v-if="record">抱歉,您还未添加跟进动态</div>
<div v-else>抱歉,没找到相关数据</div> <template v-else>
<div v-if="text">抱歉,您还未添加{{text}}项目</div>
<div v-else>抱歉,没找到相关数据</div>
</template>
<span v-if="condition">建议调整关键词或筛选条件,重新搜索</span> <span v-if="condition">建议调整关键词或筛选条件,重新搜索</span>
</div> </div>
</div> </div>
...@@ -13,6 +16,10 @@ ...@@ -13,6 +16,10 @@
export default { export default {
name: "NoData", name: "NoData",
props: { props: {
record: {
type: Boolean,
default: false
},
condition: { condition: {
type: Boolean, type: Boolean,
default: false default: false
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
@open="handleOpen"> @open="handleOpen">
<template v-for="(item, index) in sideRoute"> <template v-for="(item, index) in sideRoute">
<template> <template>
<el-menu-item :index="index.toString()" @click="handleItem(item)">{{item.title}}</el-menu-item> <el-menu-item :index="index.toString()" :disabled="item.disabled" @click="handleItem(item)">{{item.title}}</el-menu-item>
</template> </template>
</template> </template>
</el-menu> </el-menu>
...@@ -45,6 +45,10 @@ export default { ...@@ -45,6 +45,10 @@ export default {
type: Boolean, type: Boolean,
default: true default: true
}, },
statisticObj:{
type:Object,
default: {}
},
}, },
data() { data() {
return { return {
...@@ -85,7 +89,41 @@ export default { ...@@ -85,7 +89,41 @@ export default {
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute)) this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute))
}, },
watch:{ watch:{
statisticObj:{
handler(val) {
this.sideRoute = JSON.parse(JSON.stringify(this.defaultRoute))
let arr = JSON.parse(JSON.stringify(val))
for(var i in arr){
for(var j in arr[i]){
// switch (j) {
// case 'ownershipStructure':
// if(arr[i][j]<1){
// this.sideRoute[0].disabled = true;
// }
// break;
// case 'qualification':
// if(arr[i][j]<1){
// this.sideRoute[1].disabled = true;
// }
// break;
// case 'performance':
// if(arr[i][j]<1){
// this.sideRoute[2].disabled = true;
// }
// break;
// case 'biddingAnnouncement':
// if(arr[i][j]<1){
// this.sideRoute[3].disabled = true;
// }
// break;
// default:
// break;
// }
}
}
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute))
}
},
}, },
methods: { methods: {
handleOpen(key, keyPath) { handleOpen(key, keyPath) {
......
...@@ -341,6 +341,8 @@ ...@@ -341,6 +341,8 @@
}else { }else {
this.cgblName=name; this.cgblName=name;
} }
this.queryParams.maxStockPercent=''
this.paramsData.maxStockPercent=''
if(this.cgblName){ if(this.cgblName){
if(name === '100%'){ if(name === '100%'){
this.queryParams.minStockPercent=1 this.queryParams.minStockPercent=1
......
<template> <template>
<div class="app-container group-container"> <div class="app-container group-container">
<div class="header-container"> <div class="header-container" ref="header">
<div class="flex-box part-header"> <div class="flex-box part-header">
<img class="header-logo" :src="require('@/assets/images/detail/company_logo.png')"> <img class="header-logo" :src="require('@/assets/images/detail/company_logo.png')">
{{name || '--'}} {{name || '--'}}
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
</div> </div>
<div class="flex-box group-main" ref="contentData"> <div class="flex-box group-main" ref="contentData">
<div class="group-left"> <div class="group-left">
<side-bar ref="sidebar" @currentPath="showPartPage" :pathName="currentPath.pathName" :customerId="customerId"/> <side-bar ref="sidebar" :statisticObj="statisticObj" @currentPath="showPartPage" :pathName="currentPath.pathName" :customerId="customerId"/>
</div> </div>
<div class="group-right"> <div class="group-right">
<div id="groupBox" v-if="customerId"> <div id="groupBox" v-if="customerId">
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
import Performance from "./component/performance" import Performance from "./component/performance"
import Zhaobiao from "./component/zhaobiao" import Zhaobiao from "./component/zhaobiao"
import { infoHeader } from '@/api/detail/party-a/index' import { infoHeader } from '@/api/detail/party-a/index'
import {combineMemberLogo,statistic} from '@/api/detail/groupAccount/groupAccount'
import elementResizeDetectorMaker from "element-resize-detector" import elementResizeDetectorMaker from "element-resize-detector"
export default { export default {
name: 'GroupAccount', name: 'GroupAccount',
...@@ -40,19 +41,29 @@ ...@@ -40,19 +41,29 @@
return{ return{
customerId: '', //集团Id(测试默认'81de7ca2a967d91c2afad9cb5fc30e6d') customerId: '', //集团Id(测试默认'81de7ca2a967d91c2afad9cb5fc30e6d')
companyInfo: {}, companyInfo: {},
statisticObj: {},
cooDetail: {}, cooDetail: {},
currentPath: { currentPath: {
pathName: 'members' //默认展示页 pathName: 'members' //默认展示页
}, },
isCompany: false, isCompany: false,
isSkeleton: false, isSkeleton: false,
name:'' name:'',
} }
}, },
created() { created() {
if (this.$route.params.id) { // customerId if (this.$route.params.id) { // customerId
this.customerId = this.$route.params.id this.customerId = this.$route.params.id
} }
combineMemberLogo({combineId: this.customerId}).then(res=>{
console.log(res.data)
})
statistic({companyId: this.$route.query.cid}).then(res=>{
console.log(res.data)
if(res.code==200){
this.statisticObj = res.data
}
})
// if (this.$route.query.path) { // 获取跳转对应板块 // if (this.$route.query.path) { // 获取跳转对应板块
// this.currentPath.pathName = this.$route.query.path // this.currentPath.pathName = this.$route.query.path
// } // }
...@@ -60,6 +71,8 @@ ...@@ -60,6 +71,8 @@
this.name=this.$route.query.name ? this.$route.query.name : '中建集团' this.name=this.$route.query.name ? this.$route.query.name : '中建集团'
}, },
mounted(){ mounted(){
// this.mainWidth=this.$refs.header.offsetWidth;
// this.width=this.$refs.contentData.offsetWidth -160;
}, },
methods: { methods: {
showPartPage(e){ showPartPage(e){
...@@ -80,8 +93,9 @@ ...@@ -80,8 +93,9 @@
} }
.group-main{ .group-main{
margin-top: 12px; margin-top: 12px;
position: fixed; /*position: fixed;*/
width: calc(100% - 192px); width: 100%;
/*width: calc(100% - 192px);*/
height: calc(100vh - 155px); height: calc(100vh - 155px);
overflow-y: auto; overflow-y: auto;
align-items: initial; align-items: initial;
...@@ -91,6 +105,7 @@ ...@@ -91,6 +105,7 @@
padding-bottom: 16px; padding-bottom: 16px;
position: fixed; position: fixed;
background: #FFFFFF; background: #FFFFFF;
width: 144px;
} }
.group-right{ .group-right{
min-width: 1088px; min-width: 1088px;
......
<template> <template>
<!-- <div style="width:calc(100% - 100px);" @click="showlist = false"> --> <!-- <div style="width:calc(100% - 100px);" @click="showlist = false"> -->
<div class="app-container enterprise_contatiner" @click="showlist = false"> <div class="app-container enterprise_contatiner" @click="showlist = false">
<div class="title_wrap"> <div class="title_wrap">
<div class="enterprise_title"> <div class="enterprise_title">
...@@ -347,7 +347,7 @@ export default { ...@@ -347,7 +347,7 @@ export default {
search(page=1){ search(page=1){
this.page = page; this.page = page;
if(!this.companyName.trim()){ if(!this.companyName.trim()){
return return
} }
let data = { let data = {
keyword:this.companyName, keyword:this.companyName,
...@@ -377,13 +377,13 @@ export default { ...@@ -377,13 +377,13 @@ export default {
return this.$message.warning("抱歉,没找到相关数据,建议调整关键词或筛选条件,重新搜索") return this.$message.warning("抱歉,没找到相关数据,建议调整关键词或筛选条件,重新搜索")
} }
let item = this.searchList[0] let item = this.searchList[0]
this.$router.push({path:`/groupAccount/${item.combineId}?name=${item.combineName.replace(new RegExp("<font color='#FF204E'>", 'g'),'').replace(new RegExp("</font>", 'g'),'')}`}) this.$router.push({path:`/groupAccount/${item.combineId}?name=${item.combineName.replace(new RegExp("<font color='#FF204E'>", 'g'),'').replace(new RegExp("</font>", 'g'),'')}&cid=${item.combineMemberCid}`})
}, },
selCompany(item = this.searchList[0]){ selCompany(item = this.searchList[0]){
if(!item){ if(!item){
return this.$message.warning("抱歉,没找到相关数据,建议调整关键词或筛选条件,重新搜索") return this.$message.warning("抱歉,没找到相关数据,建议调整关键词或筛选条件,重新搜索")
} }
this.$router.push({path:`/groupAccount/${item.combineId}?name=${item.combineName.replace(new RegExp("<font color='#FF204E'>", 'g'),'').replace(new RegExp("</font>", 'g'),'')}`}) this.$router.push({path:`/groupAccount/${item.combineId}?name=${item.combineName.replace(new RegExp("<font color='#FF204E'>", 'g'),'').replace(new RegExp("</font>", 'g'),'')}&cid=${item.combineMemberCid}`})
}, },
} }
} }
...@@ -658,5 +658,5 @@ export default { ...@@ -658,5 +658,5 @@ export default {
} }
} }
} }
} }
</style> </style>
\ No newline at end of file
...@@ -151,7 +151,7 @@ ...@@ -151,7 +151,7 @@
<el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'" class="table-item1 fixed-table" border highlight-current-row> <el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'" class="table-item1 fixed-table" border highlight-current-row>
<el-table-column type="index" label="序号" fixed width="60"> <el-table-column type="index" label="序号" fixed width="60">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{(pageNum - 1) *20 + scope.$index + 1}}</span> <span>{{(pageNum - 1) *pageSize + scope.$index + 1}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="公司名称" fixed width="380" > <el-table-column label="公司名称" fixed width="380" >
...@@ -582,15 +582,9 @@ ...@@ -582,15 +582,9 @@
}, },
computed: { computed: {
checkJskBidQueryDto() { checkJskBidQueryDto() {
let arr = []; let arr = [];
let flag = false; let flag = false;
let data = {}; let data = {};
if (this.domicile.length > 0) { if (this.domicile.length > 0) {
data = { data = {
title: "行政区划:", title: "行政区划:",
...@@ -649,9 +643,9 @@ ...@@ -649,9 +643,9 @@
for (var i in arr) { for (var i in arr) {
if (arr[i].parent) { if (arr[i].parent) {
if (!arr[i].parent.checked) { if (!arr[i].parent.checked) {
arr[i].hasChildren && cityIds.push(arr[i].value); arr[i].hasChildren && cityIds.push(arr[i].value)&&provinceIds.push(arr[i].parent.value);
arr[i].hasChildren && this.domicile.push(arr[i].label); arr[i].hasChildren && this.domicile.push(arr[i].label);
!arr[i].hasChildren && areaIds.push(arr[i].value); !arr[i].hasChildren && areaIds.push(arr[i].value)&& cityIds.push(arr[i].parent.value)&&provinceIds.push(arr[i].parent.parent.value);
!arr[i].hasChildren && this.domicile.push(arr[i].label); !arr[i].hasChildren && this.domicile.push(arr[i].label);
} }
} else { } else {
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="user" @click="handleChange"> <div class="user" @click="handleChange">
<h3>刘毅<span>总经理</span></h3> <h3>{{nickName}}<span>总经理</span></h3>
<p>您好,祝您工作顺利每一天</p> <p>您好,祝您工作顺利每一天</p>
</div> </div>
</el-col> </el-col>
...@@ -478,7 +478,7 @@ ...@@ -478,7 +478,7 @@
import CustomTimeSelect from './component/CustomTimeSelect' import CustomTimeSelect from './component/CustomTimeSelect'
import CustomMoneySelect from './component/CustomMoneySelect' import CustomMoneySelect from './component/CustomMoneySelect'
import skeleton from './component/skeleton' import skeleton from './component/skeleton'
import { countByCompany,bidRank,bigWinningBidsPage,bigBidPage } from '@/api/index' import { countByCompany,bidRank,bigWinningBidsPage,bigBidPage,getInfo } from '@/api/index'
import { getUipIdByCid } from '@/api/macro/macro' import { getUipIdByCid } from '@/api/macro/macro'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
export default { export default {
...@@ -694,10 +694,12 @@ export default { ...@@ -694,10 +694,12 @@ export default {
timePlaceholder:'中标日期', timePlaceholder:'中标日期',
show_page:true, show_page:true,
MaxPage:500, MaxPage:500,
nickName:''
}; };
}, },
created() { created() {
this.searchDic() this.searchDic()
this.getInfo()
this.dataRegion() this.dataRegion()
this.$nextTick(() => { this.$nextTick(() => {
this.getCountByCompany() this.getCountByCompany()
...@@ -713,6 +715,12 @@ export default { ...@@ -713,6 +715,12 @@ export default {
this.projectType = res.projectType; this.projectType = res.projectType;
}).catch(error=>{}); }).catch(error=>{});
}, },
getInfo(){
getInfo().then(res=>{
console.log(res)
this.nickName=res.data.user.nickName
}).catch(error=>{});
},
getCountByCompany(){ getCountByCompany(){
let params={}; let params={};
if(this.queryParams.time.length > 1){ if(this.queryParams.time.length > 1){
......
...@@ -76,7 +76,7 @@ export default { ...@@ -76,7 +76,7 @@ export default {
tableData:[], tableData:[],
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 20, pageSize: 50,
tableDataTotal: 0, tableDataTotal: 0,
show_page:true, show_page:true,
MaxPage:500, MaxPage:500,
......
...@@ -118,7 +118,7 @@ export default { ...@@ -118,7 +118,7 @@ export default {
tableData: [], tableData: [],
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 20, pageSize: 50,
tableDataTotal: null, tableDataTotal: null,
aptitudeCodeList:[], aptitudeCodeList:[],
aptitudeType:'', aptitudeType:'',
......
...@@ -135,6 +135,16 @@ ...@@ -135,6 +135,16 @@
<el-table-column prop="isUsedCapital" label="是否资本金" width="200" :formatter="formatStatus"/> <el-table-column prop="isUsedCapital" label="是否资本金" width="200" :formatter="formatStatus"/>
</el-table> </el-table>
</div> </div>
<div class="pagination clearfix" v-show="tableDataTotal>0">
<el-pagination
background
:page-size="pageSize"
:current-page="pageIndex"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="tableDataTotal">
</el-pagination>
</div>
</div> </div>
</div> </div>
</template> </template>
...@@ -166,6 +176,10 @@ export default { ...@@ -166,6 +176,10 @@ export default {
this.getData() this.getData()
}) })
}, },
handleCurrentChange(pageNum) {
this.pageIndex = pageNum;
this.getData();
},
getData(){ getData(){
// const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:'2e59fca0-21a6-47db-975d-5481e1c52f45_74'} // const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:'2e59fca0-21a6-47db-975d-5481e1c52f45_74'}
const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:this.details.specialBondUuid} const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:this.details.specialBondUuid}
...@@ -210,6 +224,12 @@ export default { ...@@ -210,6 +224,12 @@ export default {
background: #FFFFFF; background: #FFFFFF;
padding: 16px; padding: 16px;
border-radius: 4px; border-radius: 4px;
.pagination{
padding: 14px ;
.el-pagination{
float: right ;
}
}
} }
.common-title{ .common-title{
margin-bottom: 8px; margin-bottom: 8px;
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
tableData: [], tableData: [],
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 20, pageSize: 50,
tableDataTotal: null, tableDataTotal: null,
show_page:true, show_page:true,
MaxPage:500, MaxPage:500,
......
...@@ -314,7 +314,7 @@ export default { ...@@ -314,7 +314,7 @@ export default {
tableData:[], tableData:[],
tableLoading: false, tableLoading: false,
pageIndex: 1, pageIndex: 1,
pageSize: 20, pageSize: 50,
tableDataTotal: null, tableDataTotal: null,
selected:[], selected:[],
xzdjCalss:'', xzdjCalss:'',
......
...@@ -345,7 +345,7 @@ ...@@ -345,7 +345,7 @@
</div> </div>
</div> </div>
</template> </template>
<no-data :condition="true" style="padding:40px" v-if="viewData6.length==0"/> <no-data :record="true" style="padding:40px" v-if="viewData6.length==0"/>
</div> </div>
</el-card> </el-card>
</div> </div>
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
</div> </div>
<el-dropdown @command="transactionPricehandleCommand" class="el-dropdown-land" placement="bottom-start" trigger="click" ref="transactionPriceShowPopper" :hide-on-click="false"> <el-dropdown @command="transactionPricehandleCommand" class="el-dropdown-land" placement="bottom-start" trigger="click" ref="transactionPriceShowPopper" :hide-on-click="false">
<span class="el-dropdown-link" :class="importantProjectDto.startMoney ||importantProjectDto.endMoney ? 'color_text': ''"> <span class="el-dropdown-link" :class="importantProjectDto.startMoney ||importantProjectDto.endMoney ? 'color_text': ''">
项目投资额(万元){{importantProjectDto.startMoney ||importantProjectDto.endMoney? " 1项": ""}}<i class="el-icon-caret-bottom"></i> 项目投资额{{importantProjectDto.startMoney ||importantProjectDto.endMoney? " 1项": ""}}<i class="el-icon-caret-bottom"></i>
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item, i) in transactionPriceOptions" :class="importantProjectDto.startMoney == item.value[0] &&importantProjectDto.endMoney == item.value[1] && <el-dropdown-item v-for="(item, i) in transactionPriceOptions" :class="importantProjectDto.startMoney == item.value[0] &&importantProjectDto.endMoney == item.value[1] &&
...@@ -364,6 +364,7 @@ export default { ...@@ -364,6 +364,7 @@ export default {
this.addressListfn(); this.addressListfn();
this.search(); this.search();
this.getComdtion(); this.getComdtion();
this.getImportantSelect();
}, },
methods: { methods: {
getComdtion(){ getComdtion(){
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
</div> </div>
</div> </div>
<div class="content_item "> <div class="content_item ">
<div class="label">项目主体</div> <div class="label">项目当事人</div>
<div class="content_right"> <div class="content_right">
<div class="item_ckquery_list" > <div class="item_ckquery_list" >
<div class="ckquery_list_right"> <div class="ckquery_list_right">
......
...@@ -13,13 +13,6 @@ import java.util.Set; ...@@ -13,13 +13,6 @@ import java.util.Set;
* @author Lion Li * @author Lion Li
*/ */
public interface ISysMenuService { public interface ISysMenuService {
/**
* 根据用户查询全部系统菜单列表
*
* @param userId 用户ID
* @return 菜单列表
*/
List<SysMenu> selectAllMenu(SysMenu menu, Long userId);
/** /**
* 根据用户查询系统菜单列表 * 根据用户查询系统菜单列表
......
...@@ -40,25 +40,6 @@ public class SysMenuServiceImpl implements ISysMenuService { ...@@ -40,25 +40,6 @@ public class SysMenuServiceImpl implements ISysMenuService {
private final SysTenantMapper tenantMapper; private final SysTenantMapper tenantMapper;
private final SysTenantPackageMapper tenantPackageMapper; private final SysTenantPackageMapper tenantPackageMapper;
/**
* 根据用户查询全部系统菜单列表
*
* @param userId 用户ID
* @return 菜单列表
*/
@Override
public List<SysMenu> selectAllMenu(SysMenu menu, Long userId) {
List<SysMenu> menuList = null;
// 管理员显示所有菜单信息
if (LoginHelper.isSuperAdmin(userId)) {
menuList = baseMapper.selectList(new LambdaQueryWrapper<SysMenu>()
.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName())
.orderByAsc(SysMenu::getParentId)
.orderByAsc(SysMenu::getOrderNum));
}
return menuList;
}
/** /**
* 根据用户查询系统菜单列表 * 根据用户查询系统菜单列表
* *
...@@ -83,15 +64,15 @@ public class SysMenuServiceImpl implements ISysMenuService { ...@@ -83,15 +64,15 @@ public class SysMenuServiceImpl implements ISysMenuService {
if (LoginHelper.isSuperAdmin(userId)) { if (LoginHelper.isSuperAdmin(userId)) {
menuList = baseMapper.selectList(new LambdaQueryWrapper<SysMenu>() menuList = baseMapper.selectList(new LambdaQueryWrapper<SysMenu>()
.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName()) .like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName())
.eq(SysMenu::getVisible, 0) //.eq(SysMenu::getVisible, 0)
.eq(SysMenu::getStatus, 0) //.eq(SysMenu::getStatus, 0)
.orderByAsc(SysMenu::getParentId) .orderByAsc(SysMenu::getParentId)
.orderByAsc(SysMenu::getOrderNum)); .orderByAsc(SysMenu::getOrderNum));
} else { } else {
QueryWrapper<SysMenu> wrapper = Wrappers.query(); QueryWrapper<SysMenu> wrapper = Wrappers.query();
wrapper.eq("sur.user_id", userId) wrapper.eq("sur.user_id", userId)
.like(StringUtils.isNotBlank(menu.getMenuName()), "m.menu_name", menu.getMenuName()) .like(StringUtils.isNotBlank(menu.getMenuName()), "m.menu_name", menu.getMenuName())
.eq("m.visible", 0) //.eq("m.visible", 0)
.eq("m.status", 0) .eq("m.status", 0)
.orderByAsc("m.parent_id") .orderByAsc("m.parent_id")
.orderByAsc("m.order_num"); .orderByAsc("m.order_num");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment