Commit a09430e2 by 彭祥礼

多表多条件分页查询优化

parent f1def573
package com.winsun.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
......@@ -16,7 +15,6 @@ import com.winsun.utils.ProduceIdUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
......@@ -92,7 +90,6 @@ public class RongHeController {
Product product = productMapper.selectById(bandproductId);
UniversityInfo universityInfo = universityInfoMapper.selectById(product.getUniversityId());
Map<String, Object> objMap = new HashMap<>();
objMap.put("product", product);
objMap.put("universityInfo", universityInfo);
......
package com.winsun.bean;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@TableName("hhr_user")
@Data
......@@ -63,11 +59,13 @@ public class HhrUser implements Serializable{
/**
* 上级id
*/
@TableField("parent_id")
private String parentId;
/**
* 所有上级id
*/
@TableField("parent_ids")
private String parentIds;
/**
......
......@@ -76,38 +76,47 @@ public class SaleCensusController extends BaseController{
List<Map<String,Object>> dataList = new LinkedList<>();
List<String> userIds = new ArrayList<>();
if(StringUtils.isNotBlank(leader)){
Wrapper<SysUser> sysUserWrapper = new EntityWrapper<>();
sysUserWrapper.like( "name", leader.trim(), SqlLike.DEFAULT);
List<SysUser> sysUserList = sysUserMapper.selectList(sysUserWrapper);
if(sysUserList.size()==0){
List<String> parentId = new ArrayList<>();
if(StringUtils.isNotBlank(position)) {
Wrapper<HhrUser> hhrUserWrapper = new EntityWrapper<>();
hhrUserWrapper.eq("position", position.trim());
List<HhrUser> hhrUserList = hhrUserMapper.selectList(hhrUserWrapper);
if (hhrUserList.size() == 0) {
page.setTotal(0);
return ResponseData.success(page, "没有数据!");
}
for (SysUser sysUser : sysUserList) {
userIds.add(sysUser.getId());
for (HhrUser hhrUser : hhrUserList) {
userIds.add(hhrUser.getId());
if (StringUtils.isNotBlank(hhrUser.getParentId())) {
parentId.add(hhrUser.getParentId());
}
}
}
List<String> userIdst = new ArrayList<>();
if(StringUtils.isNotBlank(position)){
Wrapper<HhrUser> hhrUserWrapper = new EntityWrapper<>();
if(userIds.size()>0){
hhrUserWrapper.in("id",userIds);
if(StringUtils.isNotBlank(leader)){
Wrapper<SysUser> sysUserWrapper = new EntityWrapper<>();
if (parentId.size() > 0) {
sysUserWrapper.in("id", parentId);
}
sysUserWrapper.eq( "name", leader.trim());
List<SysUser> sysUserList = sysUserMapper.selectList(sysUserWrapper);
if(sysUserList.size()==0){
log.info("没有数据");
}
hhrUserWrapper.eq( "position", position.trim());
Wrapper<HhrUser> hhrUserWrapper = new EntityWrapper<>();
hhrUserWrapper.eq("parent_id",sysUserList.get(0).getId());
List<HhrUser> hhrUserList = hhrUserMapper.selectList(hhrUserWrapper);
if(hhrUserList.size()==0){
page.setTotal(0);
return ResponseData.success(page, "没有数据!");
log.info("没有数据");
}
userIds.removeAll(userIds);
for (HhrUser hhrUser : hhrUserList) {
userIdst.add(hhrUser.getId());
userIds.add(hhrUser.getId());
}
}
Wrapper<SalesOrder> wrapper0 = new EntityWrapper();
wrapper0.setSqlSelect("user_id userId,COUNT(*) recentlyNum");
if(userIdst.size()>0){
wrapper0.in("user_id",userIdst);
if(userIds.size()>0){
wrapper0.in("user_id",userIds);
}
wrapper0.like(StringUtils.isNotBlank(name), "name", name.trim(), SqlLike.DEFAULT);
wrapper0.eq(StringUtils.isNotBlank(account), "account", account.trim());
......@@ -117,13 +126,9 @@ public class SaleCensusController extends BaseController{
wrapper0.eq( "del_flag", 0);
wrapper0.groupBy("user_id");
if(StringUtils.isNotBlank(activateTime)){
String[] months = activateTime.split("\\,");
if(!activateTime.equals(",") && StringUtils.isNotEmpty(activateTime)){
String m1 = months[0].substring(0,7);
String month1 = m1.substring(0,4) + m1.substring(5);
String m2 = months[1].substring(0,7);
String month2 = m2.substring(0,4) + m2.substring(5);
wrapper0.between("activate_time",month1,month2);
String[] dates = activateTime.split("\\,");
if(!activateTime.equals(",")){
wrapper0.between("activate_time",dates[0],dates[1]);
}
}
dataList = salesOrderMapper.selectMaps(wrapper0);
......@@ -136,14 +141,6 @@ public class SaleCensusController extends BaseController{
Integer endpageSize = (pageNo-1) == dataList.size()/pageSize?(pageNo-1)*pageSize+dataList.size()%pageSize:pageNo*pageSize;
dataList = dataList.subList((pageNo-1)*pageSize, endpageSize);
}
List<String> ids = new ArrayList<>();
for (Map<String, Object> objectMap : dataList) {
ids.add(objectMap.get("userId").toString());
}
Wrapper<HhrUser> hhrUserWrapper1 = new EntityWrapper<>();
hhrUserWrapper1.in("id",ids);
List<HhrUser> hhrUsers = hhrUserMapper.selectList(hhrUserWrapper1);
for (Map<String, Object> objectMap : dataList) {
String userId = objectMap.get("userId").toString();
Wrapper<SalesOrder> salesOrderWrapper = new EntityWrapper();
......@@ -156,7 +153,8 @@ public class SaleCensusController extends BaseController{
objectMap.put("account",salesOrder.getAccount());
objectMap.put("salesSubst",salesOrder.getSalesSubst());
objectMap.put("salesSchool",salesOrder.getSalesSchool());
for (HhrUser hhrUser : hhrUsers) {
HhrUser hhrUser = hhrUserMapper.selectById(salesOrder.getUserId());
if(hhrUser != null){
if(hhrUser.getId().equals(userId)){
objectMap.put("position",hhrUser.getPosition());
if(StringUtils.isNotBlank(hhrUser.getParentId())){
......@@ -165,7 +163,6 @@ public class SaleCensusController extends BaseController{
objectMap.put("leader",sysUser.getName());
}
}
break;
}
}
}
......@@ -196,36 +193,47 @@ public class SaleCensusController extends BaseController{
List<Map<String,Object>> dataList = new LinkedList<>();
List<String> userIds = new ArrayList<>();
List<String> parentId = new ArrayList<>();
if(StringUtils.isNotBlank(position)) {
Wrapper<HhrUser> hhrUserWrapper = new EntityWrapper<>();
hhrUserWrapper.eq("position", position.trim());
List<HhrUser> hhrUserList = hhrUserMapper.selectList(hhrUserWrapper);
if (hhrUserList.size() == 0) {
log.info("没有数据");
}
for (HhrUser hhrUser : hhrUserList) {
userIds.add(hhrUser.getId());
if (StringUtils.isNotBlank(hhrUser.getParentId())) {
parentId.add(hhrUser.getParentId());
}
}
}
if(StringUtils.isNotBlank(leader)){
Wrapper<SysUser> sysUserWrapper = new EntityWrapper<>();
sysUserWrapper.like( "name", leader.trim(), SqlLike.DEFAULT);
if (parentId.size() > 0) {
sysUserWrapper.in("id", parentId);
}
sysUserWrapper.eq( "name", leader.trim());
List<SysUser> sysUserList = sysUserMapper.selectList(sysUserWrapper);
if(sysUserList.size()==0){
log.info("没有数据");
}
for (SysUser sysUser : sysUserList) {
userIds.add(sysUser.getId());
}
}
List<String> userIdst = new ArrayList<>();
if(StringUtils.isNotBlank(position)){
Wrapper<HhrUser> hhrUserWrapper = new EntityWrapper<>();
if(userIds.size()>0){
hhrUserWrapper.in("id",userIds);
}
hhrUserWrapper.eq( "position", position.trim());
hhrUserWrapper.eq("parent_id",sysUserList.get(0).getId());
List<HhrUser> hhrUserList = hhrUserMapper.selectList(hhrUserWrapper);
if(hhrUserList.size()==0){
log.info("没有数据");
}
userIds.removeAll(userIds);
for (HhrUser hhrUser : hhrUserList) {
userIdst.add(hhrUser.getId());
userIds.add(hhrUser.getId());
}
}
Wrapper<SalesOrder> wrapper0 = new EntityWrapper();
wrapper0.setSqlSelect("user_id userId,COUNT(*) recentlyNum");
if(userIdst.size()>0){
wrapper0.in("user_id",userIdst);
if(userIds.size()>0){
wrapper0.in("user_id",userIds);
userIds.removeAll(userIds);
}
wrapper0.like(StringUtils.isNotBlank(name), "name", name.trim(), SqlLike.DEFAULT);
wrapper0.eq(StringUtils.isNotBlank(account), "account", account.trim());
......@@ -235,25 +243,20 @@ public class SaleCensusController extends BaseController{
wrapper0.eq( "del_flag", 0);
wrapper0.groupBy("user_id");
if(StringUtils.isNotBlank(activateTime)){
String[] months = activateTime.split("\\,");
if(!activateTime.equals(",") && StringUtils.isNotEmpty(activateTime)){
String m1 = months[0].substring(0,7);
String month1 = m1.substring(0,4) + m1.substring(5);
String m2 = months[1].substring(0,7);
String month2 = m2.substring(0,4) + m2.substring(5);
wrapper0.between("activate_time",month1,month2);
String[] dates = activateTime.split("\\,");
if(!activateTime.equals(",")){
wrapper0.between("activate_time",dates[0],dates[1]);
}
}
dataList = salesOrderMapper.selectMaps(wrapper0);
if(dataList.size()==0){
log.info("没有数据");
}
List<String> ids = new ArrayList<>();
for (Map<String, Object> objectMap : dataList) {
ids.add(objectMap.get("userId").toString());
userIds.add(objectMap.get("userId").toString());
}
Wrapper<HhrUser> hhrUserWrapper1 = new EntityWrapper<>();
hhrUserWrapper1.in("id",ids);
hhrUserWrapper1.in("id",userIds);
List<HhrUser> hhrUsers = hhrUserMapper.selectList(hhrUserWrapper1);
for (Map<String, Object> objectMap : dataList) {
......
......@@ -93,45 +93,87 @@ public class SalesOrderController extends BaseController{
public ResponseData<Page<Map<String,Object>>> getList(
@RequestParam("name") String name,@RequestParam("account") String account,
@RequestParam("salesSubst") String salesSubst,@RequestParam("salesSchool") String salesSchool,
@RequestParam("activateTime") String activateTime,@RequestParam("leader") String leader,
@RequestParam("president") String president,@RequestParam("position") String position,
@RequestParam("activateTime") String activateTime,@RequestParam("position") String position,
@RequestParam("leader") String leader, @RequestParam("president") String president,
@RequestParam(name = "pageNo", required = false) int pageNo,
@RequestParam(name = "pageSize", required = false) int pageSize){
Page<Map<String,Object>> page = new Page<>(pageNo, pageSize);
List<Map<String,Object>> dataList = new LinkedList<>();
List<String> userIds1 = new ArrayList<>();
if(StringUtils.isNotBlank(position)){
List<String> userIds = new ArrayList<>();
List<String> parentId = new ArrayList<>();
List<String> parentIds = new ArrayList<>();
if(StringUtils.isNotBlank(position)) {
Wrapper<HhrUser> hhrUserWrapper = new EntityWrapper<>();
hhrUserWrapper.eq("position", position.trim());
List<HhrUser> hhrUserList = hhrUserMapper.selectList(hhrUserWrapper);
if(hhrUserList.size()==0){
if (hhrUserList.size() == 0) {
page.setTotal(0);
return ResponseData.success(page, "没有数据!");
}
for (HhrUser hhrUser : hhrUserList) {
userIds1.add(hhrUser.getId());
userIds.add(hhrUser.getId());
if (StringUtils.isNotBlank(hhrUser.getParentId())) {
parentId.add(hhrUser.getParentId());
}
if (StringUtils.isNotBlank(hhrUser.getParentIds())) {
String[] parentid = hhrUser.getParentIds().split("\\,");
if (parentid.length == 2) {
parentIds.add(parentid[1]);
}
}
}
}
List<String> userIds = new ArrayList<>();
if(StringUtils.isNotBlank(leader)){
if (StringUtils.isNotBlank(leader)) {
Wrapper<SysUser> sysUserWrapper = new EntityWrapper<>();
if (parentId.size() > 0) {
sysUserWrapper.in("id", parentId);
}
sysUserWrapper.eq("name", leader.trim());
List<SysUser> sysUserList = sysUserMapper.selectList(sysUserWrapper);
if (sysUserList.size() == 0) {
page.setTotal(0);
return ResponseData.success(page, "没有数据!");
}
Wrapper<HhrUser> hhrUserWrapper = new EntityWrapper<>();
hhrUserWrapper.eq("parent_id", sysUserList.get(0).getId());
List<HhrUser> hhrUserList = hhrUserMapper.selectList(hhrUserWrapper);
if (hhrUserList.size() == 0) {
page.setTotal(0);
return ResponseData.success(page, "没有数据!");
}
userIds.removeAll(userIds);
for (HhrUser hhrUser : hhrUserList) {
userIds.add(hhrUser.getId());
}
}
if (StringUtils.isNotBlank(president)) {
Wrapper<SysUser> sysUserWrapper = new EntityWrapper<>();
if(userIds.size()>0){
sysUserWrapper.in("id",userIds1);
if (parentIds.size() > 0) {
sysUserWrapper.in("id", parentIds);
}
sysUserWrapper.like("name", leader.trim(), SqlLike.DEFAULT);
sysUserWrapper.eq("name", president.trim());
List<SysUser> sysUserList = sysUserMapper.selectList(sysUserWrapper);
if(sysUserList.size()==0){
if (sysUserList.size() == 0) {
page.setTotal(0);
return ResponseData.success(page, "没有数据!");
}
Wrapper<HhrUser> hhrUserWrapper = new EntityWrapper<>();
hhrUserWrapper.like("parent_ids", sysUserList.get(0).getId(), SqlLike.LEFT);
List<HhrUser> hhrUserList = hhrUserMapper.selectList(hhrUserWrapper);
if (hhrUserList.size() == 0) {
page.setTotal(0);
return ResponseData.success(page, "没有数据!");
}
for (SysUser sysUser : sysUserList) {
userIds.add(sysUser.getId());
userIds.removeAll(userIds);
for (HhrUser hhrUser : hhrUserList) {
userIds.add(hhrUser.getId());
}
}
Wrapper<SalesOrder> wrapper = new EntityWrapper<>();
if(userIds.size()>0){
wrapper.in("user_id",userIds);
userIds.removeAll(userIds);
}
wrapper.like(StringUtils.isNotBlank(name), "name", name.trim(), SqlLike.DEFAULT);
wrapper.eq(StringUtils.isNotBlank(account), "account", account.trim());
......@@ -140,13 +182,9 @@ public class SalesOrderController extends BaseController{
wrapper.ge("recently_amount", 50);
wrapper.eq( "del_flag", 0);
if(StringUtils.isNotBlank(activateTime)){
String[] months = activateTime.split("\\,");
if(!activateTime.equals(",") && StringUtils.isNotEmpty(activateTime)){
String m1 = months[0].substring(0,7);
String month1 = m1.substring(0,4) + m1.substring(5);
String m2 = months[1].substring(0,7);
String month2 = m2.substring(0,4) + m2.substring(5);
wrapper.between("activate_time",month1,month2);
String[] dates = activateTime.split("\\,");
if(!activateTime.equals(",")){
wrapper.between("activate_time",dates[0],dates[1]);
}
}
wrapper.orderBy("activate_time",false);
......@@ -160,13 +198,6 @@ public class SalesOrderController extends BaseController{
Integer endpageSize = (pageNo-1) == salesOrderList.size()/pageSize?(pageNo-1)*pageSize+salesOrderList.size()%pageSize:pageNo*pageSize;
salesOrderList = salesOrderList.subList((pageNo-1)*pageSize, endpageSize);
}
List<String> ids = new ArrayList<>();
for (SalesOrder salesOrder : salesOrderList) {
ids.add(salesOrder.getUserId());
}
Wrapper<HhrUser> hhrUserWrapper1 = new EntityWrapper<>();
hhrUserWrapper1.in("id",ids);
List<HhrUser> hhrUsers = hhrUserMapper.selectList(hhrUserWrapper1);
for (SalesOrder salesOrder : salesOrderList) {
Map<String,Object> objectMap = new HashMap<>();
objectMap.put("id",salesOrder.getId());
......@@ -177,7 +208,8 @@ public class SalesOrderController extends BaseController{
objectMap.put("salesSchool",salesOrder.getSalesSchool());
objectMap.put("createTime",salesOrder.getCreateTime());
objectMap.put("activateTime",salesOrder.getActivateTime());
for (HhrUser hhrUser : hhrUsers) {
HhrUser hhrUser = hhrUserMapper.selectById(salesOrder.getUserId());
if(hhrUser != null){
if(salesOrder.getUserId().equals(hhrUser.getId())){
objectMap.put("position",hhrUser.getPosition());
if(StringUtils.isNotBlank(hhrUser.getParentId())){
......@@ -191,11 +223,10 @@ public class SalesOrderController extends BaseController{
if(parentid.length >= 2){
SysUser sysUser = sysUserMapper.selectById(parentid[1]);
if(sysUser != null){
objectMap.put("leader",sysUser.getName());
objectMap.put("president",sysUser.getName());
}
}
}
break;
}
}
dataList.add(objectMap);
......@@ -228,36 +259,75 @@ public class SalesOrderController extends BaseController{
@RequestParam(name = "position", required = false) String position) throws IOException {
List<Map<String,Object>> dataList = new LinkedList<>();
List<String> userIds1 = new ArrayList<>();
if(StringUtils.isNotBlank(position)){
List<String> userIds = new ArrayList<>();
List<String> parentId = new ArrayList<>();
List<String> parentIds = new ArrayList<>();
if(StringUtils.isNotBlank(position)) {
Wrapper<HhrUser> hhrUserWrapper = new EntityWrapper<>();
hhrUserWrapper.eq("position", position.trim());
List<HhrUser> hhrUserList = hhrUserMapper.selectList(hhrUserWrapper);
if(hhrUserList.size()==0){
if (hhrUserList.size() == 0) {
log.info("没有数据");
}
for (HhrUser hhrUser : hhrUserList) {
userIds1.add(hhrUser.getId());
userIds.add(hhrUser.getId());
if (StringUtils.isNotBlank(hhrUser.getParentId())) {
parentId.add(hhrUser.getParentId());
}
if (StringUtils.isNotBlank(hhrUser.getParentIds())) {
String[] parentid = hhrUser.getParentIds().split("\\,");
if (parentid.length == 2) {
parentIds.add(parentid[1]);
}
}
}
}
List<String> userIds = new ArrayList<>();
if(StringUtils.isNotBlank(leader)){
if (StringUtils.isNotBlank(leader)) {
Wrapper<SysUser> sysUserWrapper = new EntityWrapper<>();
if (parentId.size() > 0) {
sysUserWrapper.in("id", parentId);
}
sysUserWrapper.eq("name", leader.trim());
List<SysUser> sysUserList = sysUserMapper.selectList(sysUserWrapper);
if (sysUserList.size() == 0) {
log.info("没有数据");
}
Wrapper<HhrUser> hhrUserWrapper1 = new EntityWrapper<>();
hhrUserWrapper1.eq("parent_id", sysUserList.get(0).getId());
List<HhrUser> hhrUserList1 = hhrUserMapper.selectList(hhrUserWrapper1);
if (hhrUserList1.size() == 0) {
log.info("没有数据");
}
userIds.removeAll(userIds);
for (HhrUser hhrUser : hhrUserList1) {
userIds.add(hhrUser.getId());
}
}
if (StringUtils.isNotBlank(president)) {
Wrapper<SysUser> sysUserWrapper = new EntityWrapper<>();
if(userIds.size()>0){
sysUserWrapper.in("id",userIds1);
if (parentIds.size() > 0) {
sysUserWrapper.in("id", parentIds);
}
sysUserWrapper.like("name", leader.trim(), SqlLike.DEFAULT);
sysUserWrapper.eq("name", president.trim());
List<SysUser> sysUserList = sysUserMapper.selectList(sysUserWrapper);
if(sysUserList.size()==0){
if (sysUserList.size() == 0) {
log.info("没有数据");
}
Wrapper<HhrUser> hhrUserWrapper1 = new EntityWrapper<>();
hhrUserWrapper1.like("parent_ids", sysUserList.get(0).getId(), SqlLike.LEFT);
List<HhrUser> hhrUserList1 = hhrUserMapper.selectList(hhrUserWrapper1);
if (hhrUserList1.size() == 0) {
log.info("没有数据");
}
for (SysUser sysUser : sysUserList) {
userIds.add(sysUser.getId());
userIds.removeAll(userIds);
for (HhrUser hhrUser : hhrUserList1) {
userIds.add(hhrUser.getId());
}
}
Wrapper<SalesOrder> wrapper = new EntityWrapper<>();
if(userIds.size()>0){
wrapper.in("user_id",userIds);
userIds.removeAll(userIds);
}
wrapper.like(StringUtils.isNotBlank(name), "name", name.trim(), SqlLike.DEFAULT);
wrapper.eq(StringUtils.isNotBlank(account), "account", account.trim());
......@@ -266,13 +336,9 @@ public class SalesOrderController extends BaseController{
wrapper.ge("recently_amount", 50);
wrapper.eq( "del_flag", 0);
if(StringUtils.isNotBlank(activateTime)){
String[] months = activateTime.split("\\,");
if(!activateTime.equals(",") && StringUtils.isNotEmpty(activateTime)){
String m1 = months[0].substring(0,7);
String month1 = m1.substring(0,4) + m1.substring(5);
String m2 = months[1].substring(0,7);
String month2 = m2.substring(0,4) + m2.substring(5);
wrapper.between("activate_time",month1,month2);
String[] dates = activateTime.split("\\,");
if(!activateTime.equals(",")){
wrapper.between("activate_time",dates[0],dates[1]);
}
}
wrapper.orderBy("activate_time",false);
......@@ -280,12 +346,12 @@ public class SalesOrderController extends BaseController{
if(salesOrderList.size()==0){
log.info("没有数据");
}
List<String> ids = new ArrayList<>();
for (SalesOrder salesOrder : salesOrderList) {
ids.add(salesOrder.getUserId());
userIds.add(salesOrder.getUserId());
}
Wrapper<HhrUser> hhrUserWrapper1 = new EntityWrapper<>();
hhrUserWrapper1.in("id",ids);
hhrUserWrapper1.in("id",userIds);
userIds.removeAll(userIds);
List<HhrUser> hhrUsers = hhrUserMapper.selectList(hhrUserWrapper1);
for (SalesOrder salesOrder : salesOrderList) {
Map<String,Object> objectMap = new HashMap<>();
......
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