Commit 99e506ed authored by zuoyh's avatar zuoyh

股東表插入、查詢

parent 30a3c028
......@@ -3,6 +3,8 @@ package com.github.wxiaoqi.security.admin.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Map;
@Data
public class AppShareholderDetailDTO {
......@@ -41,4 +43,14 @@ public class AppShareholderDetailDTO {
private Long updTime;
@ApiModelProperty("持股数")
private Integer userNumber;
@ApiModelProperty("公司集合")
private Map<Integer, String> companyMap;
@ApiModelProperty("股东身份ID")
private Integer positionId;
}
package com.github.wxiaoqi.security.admin.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
@Data
public class AppShareholderDetailFindDTO extends PageParam {
private String phone;
private String name;
private Integer status;
private Integer companyId;
private Integer positionId;
}
......@@ -47,7 +47,7 @@ public class AppShareholderDetail {
@Column(name = "upd_time")
private Long updTime;
@Column(name = "postion_id")
private Integer postionId;
@Column(name = "position_id")
private Integer positionId;
}
package com.github.wxiaoqi.security.admin.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Map;
@Data
public class AppShareholderDetailVo {
private Integer id;
@ApiModelProperty("用户id")
private Integer userId;
@ApiModelProperty("公司名称")
private String companyName;
@ApiModelProperty("公司ID")
private Integer companyId;
@ApiModelProperty("用户手机号")
private String phone;
@ApiModelProperty("股东名称")
private String name;
@ApiModelProperty("持股状态 0:持股中 1:已退股")
private Integer isQuit;
@ApiModelProperty("创建时间")
private Long crtTime;
@ApiModelProperty("更新时间")
private Long updTime;
@ApiModelProperty("持股数")
private Integer userNumber;
@ApiModelProperty("公司集合")
private Map<Integer, String> companyMap;
@ApiModelProperty("股东身份ID")
private Integer positionId;
@ApiModelProperty("股东身份名称")
private String positionName;
}
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailDTO;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailFindDTO;
import com.github.wxiaoqi.security.admin.entity.*;
import com.github.wxiaoqi.security.admin.mapper.AppShareholderDetailMapper;
import com.github.wxiaoqi.security.admin.vo.AppShareholderDetailVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Transactional
@Service("appShareholderDetailBiz")
public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, AppShareholderDetail> {
public ObjectRestResponse add(AppShareholderDetail appShareholderDetail,Integer updUserId){
@Autowired
private VehicleFeign vehicleFeign;
@Autowired
private AppUserDetailBiz detailBiz;
@Autowired
private AppUserLoginBiz loginBiz;
@Autowired
private AppUserPositionBiz appUserPositionBiz;
public static int HEADQUARTERS_SHAREHOLDER = 1;
public static int BRANCH_HEADQUARTERS_SHAREHOLDER = 2;
public Integer findShareholderByUserIdOrPhone(Integer userId, String phone) {
return mapper.selectShareHolderByUserIdOrPhone(userId,phone);
}
/**
* 新增股东
*
* @param appShareholderDetailDTO
* @param updUserId
* @return
*/
public ObjectRestResponse add(AppShareholderDetailDTO appShareholderDetailDTO, Integer updUserId) {
if (appShareholderDetailDTO == null || StringUtils.isBlank(appShareholderDetailDTO.getName()) || StringUtils.isBlank(appShareholderDetailDTO.getPhone()) ||
appShareholderDetailDTO.getCompanyMap().size() == 0) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "参数不能为空");
}
AppShareholderDetail appShareholderDetail = new AppShareholderDetail();
Map<Integer, String> companyMap = appShareholderDetailDTO.getCompanyMap();
for (Integer companyId : companyMap.keySet()) {
String companyName = companyMap.get(companyId);
if (!(companyId != null && companyId > 0 && StringUtils.isNotBlank(companyName)))
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "分公司不存在");
BranchCompany branchCompany = vehicleFeign.companyId(companyName);
if (branchCompany == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, "分公司不存在");
}
Integer positionId = branchCompany.getId().equals(1) ? HEADQUARTERS_SHAREHOLDER : BRANCH_HEADQUARTERS_SHAREHOLDER;
//用户表更改其身份
Integer userId = 0;
//登陆表查询用户手机号
AppUserLogin userLogin = loginBiz.checkeUserLogin(appShareholderDetailDTO.getPhone());
if (userLogin != null) {
userId = userLogin.getId();
//关联查询detail表 获取身份
AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userId);
if (!(appUserDetail.getPositionId().equals(1))) {
if (positionId.equals(1)) {
detailBiz.updateUserPositionByUserId(userId, positionId);
}
}
}
Integer id = appShareholderDetailDTO.getId()==null?0:appShareholderDetailDTO.getId();
//插入
BeanUtils.copyProperties(appShareholderDetailDTO, appShareholderDetail);
appShareholderDetail.setPositionId(positionId);
insertSelective(appShareholderDetail);
}
return ObjectRestResponse.succ();
}
/**
* 分页查询
*/
public PageDataVO<AppShareholderDetailVo> findWithPage(AppShareholderDetailFindDTO appShareholderDetailFindDTO) {
PageDataVO<AppShareholderDetailVo> dataVO = new PageDataVO<>();
Example example = new Example(AppShareholderDetail.class);
Example.Criteria criteria = example.createCriteria();
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getName())) {
example.createCriteria().andEqualTo("name", String.format("%%%s%%", appShareholderDetailFindDTO.getName().trim()));
}
if (StringUtils.isNotEmpty(appShareholderDetailFindDTO.getPhone())) {
example.createCriteria().andEqualTo("phone", appShareholderDetailFindDTO.getPhone());
}
if (Objects.nonNull(appShareholderDetailFindDTO.getCompanyId())) {
example.createCriteria().andEqualTo("companyId", appShareholderDetailFindDTO.getCompanyId());
}
if (Objects.nonNull(appShareholderDetailFindDTO.getPositionId())) {
example.createCriteria().andEqualTo("positionId", appShareholderDetailFindDTO.getPositionId());
}
example.setOrderByClause("crt_time desc");
PageDataVO<AppShareholderDetail> pageDataVO = PageDataVO.pageInfo(appShareholderDetailFindDTO.getPage(), appShareholderDetailFindDTO.getLimit(), () -> mapper.selectByExample(example));
List<AppShareholderDetail> data = pageDataVO.getData();
if (CollectionUtils.isEmpty(data)) {
dataVO.setData(Collections.EMPTY_LIST);
dataVO.setPageNum(appShareholderDetailFindDTO.getPage());
dataVO.setPageSize(appShareholderDetailFindDTO.getLimit());
return dataVO;
}
List<Integer> postionIds = data.stream().map(AppShareholderDetail::getPositionId).collect(Collectors.toList());
Map<Integer, AppUserPosition> postionMap = appUserPositionBiz.findPostionIdAndPostionMapByIds(postionIds);
List<AppShareholderDetailVo> AppShareholderDetailVos = new ArrayList<>();
AppShareholderDetailVo appShareholderDetailVo;
for (AppShareholderDetail appShareholderDetail : data) {
appShareholderDetailVo = new AppShareholderDetailVo();
String postionName = postionMap == null ? "" : postionMap.get(appShareholderDetail.getPositionId()) == null ? "" : postionMap.get(appShareholderDetail.getPositionId()).getName();
appShareholderDetailVo.setPositionName(postionName);
AppShareholderDetailVos.add(appShareholderDetailVo);
}
dataVO.setPageSize(pageDataVO.getPageSize());
dataVO.setPageNum(pageDataVO.getPageNum());
dataVO.setData(AppShareholderDetailVos);
dataVO.setTotalCount(pageDataVO.getTotalCount());
dataVO.setTotalPage(pageDataVO.getTotalPage());
return dataVO;
}
}
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