Commit a7f5c305 authored by zuoyh's avatar zuoyh

股東表插入、查詢

parent ac46a04f
...@@ -127,24 +127,29 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -127,24 +127,29 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
public PageDataVO<AppShareholderDetailVo> findWithPage(AppShareholderDetailFindDTO appShareholderDetailFindDTO) { public PageDataVO<AppShareholderDetailVo> findWithPage(AppShareholderDetailFindDTO appShareholderDetailFindDTO) {
PageDataVO<AppShareholderDetailVo> dataVO = new PageDataVO<>(); PageDataVO<AppShareholderDetailVo> dataVO = new PageDataVO<>();
Example example = new Example(AppShareholderDetail.class); String name = null;
Example.Criteria criteria = example.createCriteria(); String phone = null;
Integer positionId = null;
Integer companyID = null;
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getName())) { if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getName())) {
criteria.andLike("name", String.format("%%%s%%", appShareholderDetailFindDTO.getName().trim())); name = String.format("%%%s%%", appShareholderDetailFindDTO.getName().trim());
} }
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getPhone())) { if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getPhone())) {
criteria.andEqualTo("phone", appShareholderDetailFindDTO.getPhone()); phone = appShareholderDetailFindDTO.getPhone();
} }
if (Objects.nonNull(appShareholderDetailFindDTO.getCompanyId())) { if (Objects.nonNull(appShareholderDetailFindDTO.getCompanyId())) {
criteria.andEqualTo("companyId", appShareholderDetailFindDTO.getCompanyId()); companyID = appShareholderDetailFindDTO.getCompanyId();
} }
if (Objects.nonNull(appShareholderDetailFindDTO.getPositionId())) { if (Objects.nonNull(appShareholderDetailFindDTO.getPositionId())) {
criteria.andEqualTo("positionId", appShareholderDetailFindDTO.getPositionId()); positionId = appShareholderDetailFindDTO.getPositionId();
} }
List<AppShareholderDetail> list = mapper.selectByExample(example); Integer finalPositionId = positionId;
example.setOrderByClause("upd_time desc"); Integer finalCompanyID = companyID;
PageDataVO<AppShareholderDetail> pageDataVO = PageDataVO.pageInfo(appShareholderDetailFindDTO.getPage(), appShareholderDetailFindDTO.getLimit(), () -> mapper.selectByExample(example)); String finalPhone = phone;
String finalName = name;
PageDataVO<AppShareholderDetail> pageDataVO = PageDataVO.pageInfo(appShareholderDetailFindDTO.getPage(), appShareholderDetailFindDTO.getLimit(), () -> {
mapper.findPage(finalName, finalPhone, finalPositionId, finalCompanyID);
});
List<AppShareholderDetail> data = pageDataVO.getData(); List<AppShareholderDetail> data = pageDataVO.getData();
if (CollectionUtils.isEmpty(data)) { if (CollectionUtils.isEmpty(data)) {
dataVO.setData(Collections.EMPTY_LIST); dataVO.setData(Collections.EMPTY_LIST);
...@@ -156,7 +161,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -156,7 +161,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
List<Integer> postionIds = data.stream().map(AppShareholderDetail::getPositionId).collect(Collectors.toList()); List<Integer> postionIds = data.stream().map(AppShareholderDetail::getPositionId).collect(Collectors.toList());
Map<Integer, AppUserPosition> postionMap = appUserPositionBiz.findPostionIdAndPostionMapByIds(postionIds); Map<Integer, AppUserPosition> postionMap = appUserPositionBiz.findPostionIdAndPostionMapByIds(postionIds);
List<AppShareholderDetailVo> AppShareholderDetailVos = new ArrayList<>(); List<AppShareholderDetailVo> AppShareholderDetailVos = new ArrayList<>();
List<AppShareholderDetailVo> AppShareholderDetailMerge = new ArrayList<>(); // List<AppShareholderDetailVo> AppShareholderDetailMerge = new ArrayList<>();
AppShareholderDetailVo appShareholderDetailVo; AppShareholderDetailVo appShareholderDetailVo;
for (AppShareholderDetail appShareholderDetail : data) { for (AppShareholderDetail appShareholderDetail : data) {
appShareholderDetailVo = new AppShareholderDetailVo(); appShareholderDetailVo = new AppShareholderDetailVo();
...@@ -165,8 +170,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -165,8 +170,7 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
appShareholderDetailVo.setPositionName(postionName); appShareholderDetailVo.setPositionName(postionName);
AppShareholderDetailVos.add(appShareholderDetailVo); AppShareholderDetailVos.add(appShareholderDetailVo);
} }
/* for (AppShareholderDetailVo appShareholderDetailVoOld : AppShareholderDetailVos) {
for (AppShareholderDetailVo appShareholderDetailVoOld : AppShareholderDetailVos) {
boolean flag = true; boolean flag = true;
for (AppShareholderDetailVo appShareholderDetailVoNew : AppShareholderDetailMerge) { for (AppShareholderDetailVo appShareholderDetailVoNew : AppShareholderDetailMerge) {
if (appShareholderDetailVoNew.getPhone().equals(appShareholderDetailVoOld.getPhone()) && appShareholderDetailVoNew.getIsQuit().equals(appShareholderDetailVoOld.getIsQuit())) {//判断姓名是否相同 if (appShareholderDetailVoNew.getPhone().equals(appShareholderDetailVoOld.getPhone()) && appShareholderDetailVoNew.getIsQuit().equals(appShareholderDetailVoOld.getIsQuit())) {//判断姓名是否相同
...@@ -177,16 +181,12 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, ...@@ -177,16 +181,12 @@ public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper,
if (flag) { if (flag) {
AppShareholderDetailMerge.add(appShareholderDetailVoOld);//给整合后集合添加子元素 AppShareholderDetailMerge.add(appShareholderDetailVoOld);//给整合后集合添加子元素
} }
} }*/
// dataVO.setPageSize(pageDataVO.getPageSize()); dataVO.setPageSize(pageDataVO.getPageSize());
dataVO.setPageSize(AppShareholderDetailMerge.size());
dataVO.setPageNum(pageDataVO.getPageNum()); dataVO.setPageNum(pageDataVO.getPageNum());
dataVO.setData(AppShareholderDetailMerge); dataVO.setData(AppShareholderDetailVos);
dataVO.setTotalPage(AppShareholderDetailMerge.size());
dataVO.setTotalCount(pageDataVO.getTotalCount()); dataVO.setTotalCount(pageDataVO.getTotalCount());
// dataVO.setTotalPage(pageDataVO.getTotalPage()); dataVO.setTotalPage(pageDataVO.getTotalPage());
return dataVO; return dataVO;
} }
......
...@@ -3,6 +3,9 @@ package com.github.wxiaoqi.security.admin.mapper; ...@@ -3,6 +3,9 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail; import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* @author zuoyihang * @author zuoyihang
* @version 1.0 * @version 1.0
...@@ -13,4 +16,11 @@ public interface AppShareholderDetailMapper extends Mapper<AppShareholderDetail> ...@@ -13,4 +16,11 @@ public interface AppShareholderDetailMapper extends Mapper<AppShareholderDetail>
Integer selectShareHolderByUserIdOrPhone(@Param("userId") Integer userId, Integer selectShareHolderByUserIdOrPhone(@Param("userId") Integer userId,
@Param("phone") String phone); @Param("phone") String phone);
List<AppShareholderDetail> findPage(@Param("name") String name,
@Param("phone") String phone,
@Param("positionId") Integer positionId,
@Param("companyId") Integer companyId);
} }
...@@ -2,30 +2,68 @@ ...@@ -2,30 +2,68 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.github.wxiaoqi.security.admin.mapper.AppShareholderDetailMapper"> <mapper namespace="com.github.wxiaoqi.security.admin.mapper.AppShareholderDetailMapper">
<resultMap id="appShareholderDetailMap" type="com.github.wxiaoqi.security.admin.entity.AppShareholderDetail"> <resultMap id="appShareholderDetailMap" type="com.github.wxiaoqi.security.admin.entity.AppShareholderDetail">
<result property="id" column="id"/> <result property="id" column="id"/>
<result property="companyName" column="company_name"/> <result property="companyName" column="company_name"/>
<result property="userId" column="user_id"/> <result property="userId" column="user_id"/>
<result property="phone" column="phone"/> <result property="phone" column="phone"/>
<result property="companyId" column="company_id"/> <result property="companyId" column="company_id"/>
<result property="name" column="name"/> <result property="name" column="name"/>
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
<result property="isQuit" column="is_quit"/> <result property="isQuit" column="is_quit"/>
<result property="updTime" column="upd_time"/> <result property="updTime" column="upd_time"/>
<result property="positionId" column="position_id"/> <result property="positionId" column="position_id"/>
</resultMap> </resultMap>
<select id="selectShareHolderByUserIdOrPhone" resultType="java.lang.Integer"> <select id="selectShareHolderByUserIdOrPhone" resultType="java.lang.Integer">
select min(`position_id`) from `app_shareholder_detail` where `is_quit`=0 select min(`position_id`) from `app_shareholder_detail` where `is_quit`=0
<choose> <choose>
<when test="userId != null and (phone == null or phone != '')"> <when test="userId != null and (phone == null or phone != '')">
and `user_id`=#{userId} and `user_id`=#{userId}
</when> </when>
<when test="phone != null and phone != '' and userId == null"> <when test="phone != null and phone != '' and userId == null">
and `phone`=#{phone} and `phone`=#{phone}
</when> </when>
<otherwise> <otherwise>
and `user_id`=#{userId} and `user_id`=#{userId}
</otherwise> </otherwise>
</choose> </choose>
</select> </select>
<select id="findPage" resultType="com.github.wxiaoqi.security.admin.entity.AppShareholderDetail">
select * from (
select max(id) as id,max(name) as `name`,max(is_quit) as `isQuit`,max(position_id) as `positionId`,phone as
`phone`,group_concat(company_name) as `companyName`,max(company_id) as `companyId` from app_shareholder_detail
where is_quit=0 and
position_id=1 group by phone
union ALL
select max(id) as id,max(name) as `name`,max(is_quit) as `isQuit`,max(position_id) as `positionId`,phone as
`phone`,group_concat(company_name) as `companyName` ,max(company_id) as `companyId`from app_shareholder_detail
where is_quit=0 and
position_id=2 group by phone
union ALL
select max(id) as id,max(name) as `name`,max(is_quit) as `isQuit`,max(position_id) as `positionId`,phone as
`phone`,group_concat(company_name) as `companyName` ,max(company_id) as `companyId`from app_shareholder_detail
where is_quit=1 and position_id
=1 group by phone
union all
select max(id) as id,max(name) as `name`,max(is_quit) as `isQuit`,max(position_id) as `positionId`,phone as
`phone`,group_concat(company_name) as `companyName` ,max(company_id) as `companyId`from app_shareholder_detail
where is_quit=1 and position_id
=2 group by phone
) a
where 1=1
<if test="name !=null and name !='' ">
and a.name like CONCAT('%',#{name},'%')
</if>
<if test="positionId!=null">
and a.positionId=#{positionId}
</if>
<if test="phone!=null">
and a.phone=#{phone}
</if>
<if test="companyId!=null">
and a.companyId=#{companyId}
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
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