Commit c9b8058d authored by lcl's avatar lcl

逻辑优化

parent 6a8ded58
......@@ -52,8 +52,7 @@ public class BusinessInfoController extends BaseController
public TableDataInfo list(BusinessListDto dto)
{
startPage();
List<BusinessListVo> list = businessInfoService.selectBusinessInfoList(dto);
return getDataTable(list);
return getDataTable(businessInfoService.selectBusinessInfoList(dto));
}
/**
......
......@@ -69,6 +69,9 @@ public class SysUser extends BaseEntity
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
private Date loginDate;
//是否体验用户 0否 1是
private Integer isExperience;
/** 部门对象 */
@Excels({
@Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
......@@ -296,6 +299,14 @@ public class SysUser extends BaseEntity
this.roleId = roleId;
}
public Integer getIsExperience() {
return isExperience;
}
public void setIsExperience(Integer isExperience) {
this.isExperience = isExperience;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
......@@ -312,6 +323,7 @@ public class SysUser extends BaseEntity
.append("delFlag", getDelFlag())
.append("loginIp", getLoginIp())
.append("loginDate", getLoginDate())
.append("isExperience", getIsExperience())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
......
......@@ -11,6 +11,11 @@ import java.util.List;
**/
@Data
public class BusinessListDto {
/**
* 是否私人数据 0:否 1:是
*/
private Integer isPrivate;
/**
* 项目名称
*/
......@@ -19,12 +24,7 @@ public class BusinessListDto {
/**
* 用户id
*/
private Integer userId;
/**
* 用户查看全部他人可见项目标示
*/
private Long others;
private Long userId;
/**
* 省id
......
......@@ -9,10 +9,7 @@ import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.constant.HttpStatus;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessInfo;
import com.dsk.common.core.domain.entity.BusinessLabel;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.common.core.domain.entity.BusinessUser;
import com.dsk.common.core.domain.entity.*;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.*;
......@@ -95,18 +92,12 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
*/
@Override
public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto) {
List<BusinessListVo> othersList = new ArrayList<>();
//userId不传值,就查询全部他人可见项目+自己的
if (dto.getUserId() == null) {
dto.setOthers(SecurityUtils.getUserId());
//查询他人可见项目
othersList = businessInfoMapper.selectBusinessInfoList(dto);
SysUser user = SecurityUtils.getLoginUser().getUser();
dto.setUserId(user.getUserId());
if(user.getIsExperience() == 1){
dto.setIsPrivate(1);
}
dto.setOthers(null);
//查询自己参与的项目
List<BusinessListVo> businessList = businessInfoMapper.selectBusinessInfoList(dto);
businessList.addAll(othersList);
return businessList;
return businessInfoMapper.selectBusinessInfoList(dto);
}
@Override
......
......@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsk.common.annotation.DataScope;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.entity.SysUser;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.SecurityUtils;
import com.dsk.common.utils.StringUtils;
......
......@@ -105,9 +105,12 @@
LEFT JOIN business_label l on l.business_id = i.id
LEFT JOIN sys_user u on u.user_id = bu.user_id
<where>
<if test="userId != null">
<if test="isPrivate == 1 ">
and bu.user_id = #{userId}
</if>
<if test="isPrivate == 0 ">
and (bu.user_id = #{userId} or i.is_private = 1)
</if>
<if test="projectType != null and projectType != ''">
and i.project_type in
<foreach collection="projectType" item="projectType" open="(" separator="," close=")">
......@@ -123,85 +126,27 @@
</foreach>
</if>
<if test="projectName != null and projectName != ''">
and i.project_name like concat('%',#{projectName},'%')
</if>
<if test="ownerCompany != null and ownerCompany != ''">
or i.construction_unit like concat('%',#{ownerCompany},'%')
</if>
<if test="others != null">
and bu.user_id != #{others} and i.is_private = 1
and ( i.project_name like concat('%',#{projectName},'%')
or i.construction_unit like concat('%',#{projectName},'%') )
</if>
<if test="provinceId != null and provinceId.size > 0 and cityId == null and districtId == null">
<if test="provinceId != null and provinceId.size > 0 ">
and i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
</if>
<if test="cityId != null and cityId.size > 0 and provinceId == null and districtId == null">
<if test="cityId != null and cityId.size > 0 ">
and i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
</if>
<if test="districtId != null and districtId.size > 0 and provinceId == null and cityId == null">
<if test="districtId != null and districtId.size > 0">
and i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
</if>
<if test="provinceId != null and provinceId.size > 0 and cityId != null and cityId.size > 0 and districtId == null">
and (
i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
or i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
)
</if>
<if test="provinceId != null and provinceId.size > 0 and districtId != null and districtId.size > 0 and cityId == null">
and (
i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
or i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
)
</if>
<if test="cityId != null and cityId.size > 0 and districtId != null and districtId.size > 0 and provinceId ==null">
and (
i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
or i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
)
</if>
<if test="provinceId != null and provinceId.size > 0 and cityId != null and cityId.size > 0 and districtId != null and districtId.size > 0">
and (
i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
or i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
or i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
)
</if>
</where>
GROUP BY i.id
ORDER BY i.create_time DESC
......
......@@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="delFlag" column="del_flag" />
<result property="loginIp" column="login_ip" />
<result property="loginDate" column="login_date" />
<result property="isExperience" column="is_experience"/>
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
......@@ -47,7 +48,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber,
u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.is_experience, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
......@@ -57,7 +59,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status,
u.del_flag, u.login_ip, u.login_date, u.is_experience, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0'
<if test="userId != null and userId != 0">
......@@ -154,6 +158,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sex != null and sex != ''">sex,</if>
<if test="password != null and password != ''">password,</if>
<if test="status != null and status != ''">status,</if>
<if test="isExperience != null ">is_experience,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="remark != null and remark != ''">remark,</if>
create_time
......@@ -168,6 +173,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sex != null and sex != ''">#{sex},</if>
<if test="password != null and password != ''">#{password},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="isExperience != null ">#{isExperience},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if>
sysdate()
......@@ -188,6 +194,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">status = #{status},</if>
<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
<if test="loginDate != null">login_date = #{loginDate},</if>
<if test="isExperience != null">is_experience = #{isExperience},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if>
update_time = sysdate()
......
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