Commit a799b79f authored by libin's avatar libin

Merge branch 'saff_update_feature'

parents 3e831829 7504502c
package com.github.wxiaoqi.security.admin.constant.enumerate;
import java.util.Arrays;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description 身份等级
* @data 2019/12/21 16:51
*/
public enum IdentityLevel {
HEADQUARTERS_SHAREHOLDER(1, "总部股东"),
BRANCH_SHAREHOLDER(2, "分公司股东"),
PARTNER(3, "合伙人"),
STAFF(4, "员工"),
DEPUTY(5, "代理人"),
COMMON_USER(0, "普通用户");
private int level;
private String name;
/**
* 股东
*/
private static List<Integer> shareholeders;
/**
* 员工
*/
private static List<Integer> employees;
static {
shareholeders = Arrays.asList(HEADQUARTERS_SHAREHOLDER.getLevel(), BRANCH_SHAREHOLDER.getLevel());
employees = Arrays.asList(PARTNER.getLevel(), STAFF.getLevel(), DEPUTY.getLevel(), COMMON_USER.getLevel());
}
IdentityLevel(int level, String name) {
this.level = level;
this.name = name;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.github.wxiaoqi.security.admin.constant.enumerate;
import java.util.Arrays;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description 员工变更状态
* @data 2019/12/21 18:14
*/
public enum StaffChangeStatusEnum {
INDUCTION(1, "入职"),
JOB_CHANGE(2, "职位变更"),
IDENTITY_CHANE(3, "身份变更"),
COMPANY_CHANGE(4, "公司所属变更"),
JOB_SEPARATION(5, "离职(状态更改)"),
REINSTATED(6, "复职(状态更改)");
private int code;
private String desc;
public static List<Integer> needChangePostionsStatus;
static {
needChangePostionsStatus = Arrays.asList(INDUCTION.getCode(),IDENTITY_CHANE.getCode(),JOB_SEPARATION.getCode(),REINSTATED.getCode());
}
StaffChangeStatusEnum(int code, String desc) {
this.code = code;
this.desc = desc;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package com.github.wxiaoqi.security.admin.dto;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
@Data
public class AppShareholderDetailChangeRecordDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private Integer id;
/**
* 股东手机号
*/
private String phone;
/**
* 股东名称
*/
private String userName;
/**
* 公司ID
*/
private Integer CompanyId;
/**
* 公司名称
*/
private String CompanyName;
/**
* 操作人名称
*/
private Integer operatorId;
/**
* 入股时间
*/
private Timestamp relTime;
/**
* 股东id
*/
private Integer userId;
/**
* 操作指令
*/
private Integer changeState;
/**
* 0:入股 1:退股
*/
private Integer isQuit;
}
package com.github.wxiaoqi.security.admin.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Map;
@Data
public class AppShareholderDetailDTO {
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 Date relTime;
@ApiModelProperty("持股数")
private Integer userNumber;
@ApiModelProperty("公司集合")
private Map<Integer, String> companyMap;
@ApiModelProperty("公司数组")
private String[] companyList;
@ApiModelProperty("股东身份ID")
private Integer positionId;
/**
* 操作指令
* 1:信息修改
* 2:股权变动
* 3:再次购买此前抛售的股权
*/
private Integer changeState;
}
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;
}
...@@ -19,7 +19,7 @@ public class AppUserPositionChangeRecordDTO implements Serializable { ...@@ -19,7 +19,7 @@ public class AppUserPositionChangeRecordDTO implements Serializable {
private Integer id; private Integer id;
/** /**
* 用户id * 用户手机号
*/ */
private String phone; private String phone;
...@@ -109,4 +109,9 @@ public class AppUserPositionChangeRecordDTO implements Serializable { ...@@ -109,4 +109,9 @@ public class AppUserPositionChangeRecordDTO implements Serializable {
* 员工职位、所属公司、离职、入职等的实际上任时间 * 员工职位、所属公司、离职、入职等的实际上任时间
*/ */
private Timestamp relTime; private Timestamp relTime;
/**
* 用户id
*/
private Integer userId;
} }
package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
@Table(name = "app_shareholder_detail")
@Data
public class AppShareholderDetail implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")//此处加上注解
private Integer id;
@ApiModelProperty("用户id")
@Column(name = "user_id")
private Integer userId;
@ApiModelProperty("公司名称")
@Column(name = "company_name")
private String companyName;
@ApiModelProperty("公司ID")
@Column(name = "company_id")
private Integer companyId;
@ApiModelProperty("用户手机号")
@Column(name = "phone")
private String phone;
@ApiModelProperty("股东名称")
@Column(name = "name")
private String name;
@ApiModelProperty("持股状态 0:持股中 1:已退股")
@Column(name = "is_quit")
private Integer isQuit;
@ApiModelProperty("创建时间")
@Column(name = "crt_time")
private Long crtTime;
@ApiModelProperty("更新时间")
@Column(name = "upd_time")
private Long updTime;
@ApiModelProperty("实际入股时间时间")
@Column(name = "rel_time")
private Date relTime;
@Column(name = "position_id")
private Integer positionId;
@Transient
private String companyIdArray;
}
package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
@Data
@Table(name = "app_shareholder_detail_change_record")
public class AppShareholderDetailChangeRecord implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")//此处加上注解
private Integer id;
@ApiModelProperty("用户id")
@Column(name = "user_id")
private Integer userId;
@ApiModelProperty("公司名称")
@Column(name = "company_name")
private String companyName;
@ApiModelProperty("公司ID")
@Column(name = "company_id")
private Integer companyId;
@ApiModelProperty("用户手机号")
@Column(name = "phone")
private String phone;
@ApiModelProperty("股东名称")
@Column(name = "name")
private String name;
@ApiModelProperty("持股状态 0:持股中 1:已退股")
@Column(name = "is_quit")
private Integer isQuit;
@ApiModelProperty("创建时间")
@Column(name = "crt_time")
private Long crtTime;
@ApiModelProperty("实际入股时间时间")
@Column(name = "rel_time")
private Date relTime;
@ApiModelProperty("操作人")
@Column(name = "operator_id")
private Integer operatorId;
}
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -25,6 +24,10 @@ public class AppUserPositionChangeRecord implements Serializable { ...@@ -25,6 +24,10 @@ public class AppUserPositionChangeRecord implements Serializable {
private Integer id; private Integer id;
@ApiModelProperty("用户id") @ApiModelProperty("用户id")
@Column(name = "user_id")
private Integer userId;
@ApiModelProperty("员工手机号")
@Column(name = "phone") @Column(name = "phone")
private String phone; private String phone;
...@@ -96,5 +99,6 @@ public class AppUserPositionChangeRecord implements Serializable { ...@@ -96,5 +99,6 @@ public class AppUserPositionChangeRecord implements Serializable {
@Column(name = "old_job_name") @Column(name = "old_job_name")
private String oldJobName; private String oldJobName;
}
}
package com.github.wxiaoqi.security.admin.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
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 Date relTime;
@ApiModelProperty("持股数")
private Integer userNumber;
@ApiModelProperty("公司集合")
private Map<Integer, String> companyMap;
@ApiModelProperty("股东身份ID")
private Integer positionId;
@ApiModelProperty("股东身份名称")
private String positionName;
@ApiModelProperty("股东身份名称")
private List<String> companyList;
private String companyIdArray;
}
package com.github.wxiaoqi.security.admin.vo; package com.github.wxiaoqi.security.admin.vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
...@@ -21,6 +20,8 @@ public class AppUserPositionTempVo { ...@@ -21,6 +20,8 @@ public class AppUserPositionTempVo {
private Integer id; private Integer id;
private Integer userId;
@ApiModelProperty(value = "手机号码") @ApiModelProperty(value = "手机号码")
private String phone; private String phone;
......
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailChangeRecordDTO;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailDTO;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetailChangeRecord;
import com.github.wxiaoqi.security.admin.mapper.AppShareholderDetailChangeRecordMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.apache.commons.beanutils.BeanUtils;
import tk.mybatis.mapper.entity.Example;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Transactional
@Service("appShareholderDetailChangeRecordBiz")
public class AppShareholderDetailChangeRecordBiz extends BaseBiz<AppShareholderDetailChangeRecordMapper, AppShareholderDetailChangeRecord> {
/**
* 股东变变更记录插入
*/
public void addAppShareholderDetailChangeRecord(AppShareholderDetail appShareholderDetail, Integer operatorId, Integer changeState) {
AppShareholderDetailChangeRecord appShareholderDetailChangeRecord = new AppShareholderDetailChangeRecord();
appShareholderDetailChangeRecord.setRelTime(appShareholderDetail.getRelTime());
appShareholderDetailChangeRecord.setName(appShareholderDetail.getName());
appShareholderDetailChangeRecord.setPhone(appShareholderDetail.getPhone());
appShareholderDetailChangeRecord.setCompanyId(appShareholderDetail.getCompanyId());
appShareholderDetailChangeRecord.setCompanyName(appShareholderDetail.getCompanyName());
appShareholderDetailChangeRecord.setOperatorId(operatorId);
appShareholderDetailChangeRecord.setIsQuit(changeState);
appShareholderDetailChangeRecord.setUserId(appShareholderDetail.getId());
appShareholderDetailChangeRecord.setCrtTime(System.currentTimeMillis());
mapper.insertSelective(appShareholderDetailChangeRecord);
}
/**
* 查询员工信息变更记录表
*/
public List<AppShareholderDetailChangeRecord> findShareholderChangeRecord(AppShareholderDetail appShareholderDetail) {
/* Example example = new Example(AppShareholderDetailChangeRecord.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId", appShareholderDetail.getId());
if (appShareholderDetail.getPhone() != null) {
criteria.andEqualTo("phone", appShareholderDetail.getPhone());
}*/
List<AppShareholderDetailChangeRecord> list = mapper.selectAppshareholderUserOrPhoneOrUserId(appShareholderDetail.getId(), appShareholderDetail.getPhone());
return list;
}
}
package com.github.wxiaoqi.security.admin.biz; package com.github.wxiaoqi.security.admin.biz;
import com.alibaba.druid.sql.visitor.functions.If;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionChangeRecordDTO; import com.github.wxiaoqi.security.admin.dto.AppUserPositionChangeRecordDTO;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempDTO; import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserPosition;
import com.github.wxiaoqi.security.admin.entity.AppUserPositionChangeRecord; import com.github.wxiaoqi.security.admin.entity.AppUserPositionChangeRecord;
import com.github.wxiaoqi.security.admin.entity.AppUserPositionTemp; import com.github.wxiaoqi.security.admin.entity.AppUserPositionTemp;
import com.github.wxiaoqi.security.admin.mapper.AppUserPositionChangeRecordMapper; import com.github.wxiaoqi.security.admin.mapper.AppUserPositionChangeRecordMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import lombok.NonNull;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.select.Evaluator;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -21,7 +15,6 @@ import tk.mybatis.mapper.entity.Example; ...@@ -21,7 +15,6 @@ import tk.mybatis.mapper.entity.Example;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
@Transactional @Transactional
...@@ -77,6 +70,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang ...@@ -77,6 +70,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setJobRemark(COMPANY_CHANGE); appUserPositionChangeRecord.setJobRemark(COMPANY_CHANGE);
} }
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
appUserPositionChangeRecord.setPhone(userPositionTemp.getPhone()); appUserPositionChangeRecord.setPhone(userPositionTemp.getPhone());
appUserPositionChangeRecord.setRelTime(relTime); appUserPositionChangeRecord.setRelTime(relTime);
appUserPositionChangeRecord.setUserName(userPositionTemp.getName()); appUserPositionChangeRecord.setUserName(userPositionTemp.getName());
...@@ -99,9 +93,30 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang ...@@ -99,9 +93,30 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis())); appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_ADD_COMPANY); appUserPositionChangeRecord.setJobRemark(USER_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId); appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
mapper.insert(appUserPositionChangeRecord); mapper.insert(appUserPositionChangeRecord);
} }
/**
* 批量插入记录表
*
* @param userPositionTemp
* @param updUserId
*/
public void addJoinJobRecord(AppUserPositionTemp userPositionTemp, Integer updUserId) {
AppUserPositionChangeRecord appUserPositionChangeRecord = new AppUserPositionChangeRecord();
appUserPositionChangeRecord.setPhone(userPositionTemp.getPhone());
appUserPositionChangeRecord.setUserName(userPositionTemp.getName());
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setRelTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
mapper.insert(appUserPositionChangeRecord);
}
/** /**
* 员工复职 * 员工复职
* *
...@@ -119,6 +134,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang ...@@ -119,6 +134,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis())); appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_AND_ADD_COMPANY); appUserPositionChangeRecord.setJobRemark(USER_AND_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId); appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
mapper.insert(appUserPositionChangeRecord); mapper.insert(appUserPositionChangeRecord);
} }
...@@ -175,7 +191,11 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang ...@@ -175,7 +191,11 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
*/ */
public List<AppUserPositionChangeRecordDTO> findPositionChangeRecord(AppUserPositionTemp userPositionTemp) { public List<AppUserPositionChangeRecordDTO> findPositionChangeRecord(AppUserPositionTemp userPositionTemp) {
Example example = new Example(AppUserPositionChangeRecord.class); Example example = new Example(AppUserPositionChangeRecord.class);
example.createCriteria().andEqualTo("phone", userPositionTemp.getPhone()); Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId", userPositionTemp.getId());
if (userPositionTemp.getId() != null) {
criteria.andEqualTo("phone", userPositionTemp.getPhone());
}
List<AppUserPositionChangeRecord> list = selectByExample(example); List<AppUserPositionChangeRecord> list = selectByExample(example);
List<AppUserPositionChangeRecordDTO> listAppUserPositionChangeRecordDTO = new ArrayList<>(); List<AppUserPositionChangeRecordDTO> listAppUserPositionChangeRecordDTO = new ArrayList<>();
list.stream().forEach(x -> { list.stream().forEach(x -> {
......
package com.github.wxiaoqi.security.admin.biz; package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.constant.enumerate.StaffChangeStatusEnum;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionChangeRecordDTO; import com.github.wxiaoqi.security.admin.dto.AppUserPositionChangeRecordDTO;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempDTO; import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempDTO;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempFindDTO; import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempFindDTO;
...@@ -26,7 +27,6 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -26,7 +27,6 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.time.Instant;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -66,6 +66,9 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -66,6 +66,9 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
@Autowired @Autowired
AppUserPositionChangeRecordBiz appUserPositionChangeRecordBiz; AppUserPositionChangeRecordBiz appUserPositionChangeRecordBiz;
@Autowired
private AppShareholderDetailBiz appShareholderDetailBiz;
public ObjectRestResponse add(AppUserPositionTempDTO appUserPositionTempDTO, Integer updUserId) { public ObjectRestResponse add(AppUserPositionTempDTO appUserPositionTempDTO, Integer updUserId) {
if (appUserPositionTempDTO == null || StringUtils.isBlank(appUserPositionTempDTO.getPhone()) || StringUtils.isBlank(appUserPositionTempDTO.getName()) if (appUserPositionTempDTO == null || StringUtils.isBlank(appUserPositionTempDTO.getPhone()) || StringUtils.isBlank(appUserPositionTempDTO.getName())
...@@ -102,24 +105,30 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -102,24 +105,30 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
userPositionTemp.setCompanyName(companyName); userPositionTemp.setCompanyName(companyName);
//编辑 //编辑
if (id == null || id == 0) { if (id == null || id == 0) {
insertSelective(userPositionTemp); userPositionTemp.setIsQuit(0);
int ids = addUserFindId(userPositionTemp).getId();
appUserPositionTempDTO.setId(ids);
//记录表插入 //记录表插入
// appUserPositionTempDTO.setId();
appUserPositionChangeRecordBiz.addJoinJobRecord(appUserPositionTempDTO, updUserId); appUserPositionChangeRecordBiz.addJoinJobRecord(appUserPositionTempDTO, updUserId);
} else { } else {
updateSelectiveById(userPositionTemp); updateSelectiveById(userPositionTemp);
} }
if (userId != 0) { if (userId != 0) {
//更改用户身份信息
detailBiz.updateUserPositionByUserId(userId, appUserPositionTempDTO.getPositionId()); detailBiz.updateUserPositionByUserId(userId, appUserPositionTempDTO.getPositionId());
} }
//用户表更改其身份
AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userPositionTemp.getUserId());
if (appUserDetail != null) {
loginBiz.updateUserPosition(appUserDetail.getId(), appUserPositionTempDTO.getPositionId());
}
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
//新增员工表时,获取自增长主键ID,插入变动记录表对应user_id字段
public AppUserPositionTemp addUserFindId(AppUserPositionTemp userPositionTemp) {
AppUserPositionTemp newAppUserPositionTemp = new AppUserPositionTemp();
insertSelective(userPositionTemp);
BeanUtils.copyProperties(userPositionTemp, newAppUserPositionTemp);
return newAppUserPositionTemp;
}
public void updateAppuserPostionStatusById(Integer id, int status) { public void updateAppuserPostionStatusById(Integer id, int status) {
AppUserPositionTemp appUserPositionTemp = new AppUserPositionTemp(); AppUserPositionTemp appUserPositionTemp = new AppUserPositionTemp();
...@@ -188,7 +197,7 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -188,7 +197,7 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
return dataVO; return dataVO;
} }
public Map<String, Object> importUserPostion(List<String[]> userPostionData) { public Map<String, Object> importUserPostion(List<String[]> userPostionData, Integer operatorId) {
Map<String, Object> result = new HashMap<>(2); Map<String, Object> result = new HashMap<>(2);
List<Map<String, Object>> errorResult = Lists.newArrayList(); List<Map<String, Object>> errorResult = Lists.newArrayList();
Map<String, Object> errorResultMap; Map<String, Object> errorResultMap;
...@@ -269,7 +278,12 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -269,7 +278,12 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
appUserPositionTemp.setId(id); appUserPositionTemp.setId(id);
updateSelectiveById(appUserPositionTemp); updateSelectiveById(appUserPositionTemp);
} else { } else {
insertSelective(appUserPositionTemp); // insertSelective(appUserPositionTemp);
AppUserPositionTemp appUserPositionTempNew = new AppUserPositionTemp();
BeanUtils.copyProperties(appUserPositionTemp, appUserPositionTempNew);
appUserPositionTempNew = addUserFindId(appUserPositionTemp);
//记录表插入
appUserPositionChangeRecordBiz.addJoinJobRecord(appUserPositionTempNew, operatorId);
} }
} catch (BaseException ex) { } catch (BaseException ex) {
...@@ -319,6 +333,15 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -319,6 +333,15 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
public void setPostionIdByPhone(String phone) { public void setPostionIdByPhone(String phone) {
try { try {
//根据手机号查询userId
AppUserLogin userLogin = loginBiz.checkeUserLogin(phone);
Integer userId = userLogin.getId();
if (userLogin == null) {
log.info("----用户不存在----phone===" + phone);
return;
}
Integer postionId = appShareholderDetailBiz.findShareholderByUserIdOrPhone(null, phone);
if (Objects.isNull(postionId)) {
Example example = new Example(AppUserPositionTemp.class); Example example = new Example(AppUserPositionTemp.class);
example.createCriteria().andEqualTo("phone", phone).andEqualTo("isDel", 0); example.createCriteria().andEqualTo("phone", phone).andEqualTo("isDel", 0);
List<AppUserPositionTemp> list = selectByExample(example); List<AppUserPositionTemp> list = selectByExample(example);
...@@ -331,20 +354,16 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -331,20 +354,16 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
log.info("----用户已存在身份----phone===" + phone); log.info("----用户已存在身份----phone===" + phone);
return; return;
} }
//根据手机号查询userId
AppUserLogin userLogin = loginBiz.checkeUserLogin(phone);
if (userLogin == null) {
log.info("----用户不存在----phone===" + phone);
return;
}
Integer userId = userLogin.getId();
positionTemp.setUserId(userId); positionTemp.setUserId(userId);
int num = updateSelectiveByIdRe(positionTemp); int num = updateSelectiveByIdRe(positionTemp);
if (num > 0) { if (num > 0) {
Integer postionId = positionTemp.getPositionId(); postionId = positionTemp.getPositionId();
log.info("----用户---postionId====" + postionId + "----phone===" + phone); log.info("----用户---postionId====" + postionId + "----phone===" + phone);
detailBiz.updateUserPositionByUserId(userId, postionId); detailBiz.updateUserPositionByUserId(userId, postionId);
} }
} else {
detailBiz.updateUserPositionByUserId(userId, postionId);
}
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
...@@ -409,11 +428,31 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -409,11 +428,31 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
appUserPositionTempDTO.setPositionId(6); appUserPositionTempDTO.setPositionId(6);
appUserPositionChangeRecordBiz.addPositionChangeRecord(userPositionTemp, oldData, operatorId, appUserPositionTempDTO.getRelTime()); appUserPositionChangeRecordBiz.addPositionChangeRecord(userPositionTemp, oldData, operatorId, appUserPositionTempDTO.getRelTime());
} }
if (Objects.nonNull(appUserPositionTempDTO.getUserId())) {
if (StaffChangeStatusEnum.needChangePostionsStatus.contains(changeStatus)) {
//用户表更改其身份 //用户表更改其身份
AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userPositionTemp.getUserId()); AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userPositionTemp.getUserId());
if (appUserDetail != null) { //1.查询股东表 根据userid 或 手机号
loginBiz.updateUserPosition(appUserDetail.getId(), appUserPositionTempDTO.getPositionId()); Integer postionId = appShareholderDetailBiz.findShareholderByUserIdOrPhone(appUserPositionTempDTO.getUserId(), appUserPositionTempDTO.getPhone());
//离职
if (StaffChangeStatusEnum.JOB_SEPARATION.getCode() == changeStatus) {
if (Objects.isNull(postionId)) {
//更改为普通用户 6
loginBiz.updateUserPosition(appUserDetail.getUserid(), 6);
}
}
//身份变更
if (StaffChangeStatusEnum.IDENTITY_CHANE.getCode() == changeStatus) {
//不是离职状态下
if (Objects.nonNull(userPositionTemp.getIsQuit()) && userPositionTemp.getIsQuit() != 1) {
postionId = Objects.nonNull(postionId) ? postionId : appUserPositionTempDTO.getPositionId();
//更改为股东身份
loginBiz.updateUserPosition(appUserDetail.getUserid(), postionId);
}
}
} }
}
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
...@@ -430,14 +469,17 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -430,14 +469,17 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
userPositionTemp.setUpdTime(System.currentTimeMillis()); userPositionTemp.setUpdTime(System.currentTimeMillis());
appUserPositionChangeRecordBiz.andAddJoinJobRecord(appUserPositionTempDTO, operatorId); appUserPositionChangeRecordBiz.andAddJoinJobRecord(appUserPositionTempDTO, operatorId);
//用户表更改其身份 //用户表更改其身份
if (Objects.nonNull(appUserPositionTempDTO.getUserId())) {
AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userPositionTemp.getUserId()); AppUserDetail appUserDetail = detailBiz.checkeIsAppUser(userPositionTemp.getUserId());
if (appUserDetail != null) { if (appUserDetail != null) {
loginBiz.updateUserPosition(appUserDetail.getId(), appUserPositionTempDTO.getPositionId()); Integer postionId = appShareholderDetailBiz.findShareholderByUserIdOrPhone(appUserPositionTempDTO.getUserId(), appUserPositionTempDTO.getPhone());
postionId = Objects.isNull(postionId) ? appUserPositionTempDTO.getPositionId() : postionId;
loginBiz.updateUserPosition(appUserDetail.getUserid(), postionId);
}
} }
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
/** /**
* 查询员工信息变更记录表 * 查询员工信息变更记录表
*/ */
......
...@@ -107,6 +107,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -107,6 +107,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
List<BaseUserMemberLevel> levesls = userMemberLevelBiz.getLevesls(); List<BaseUserMemberLevel> levesls = userMemberLevelBiz.getLevesls();
Map<Integer, BaseUserMemberLevel> levelAndbaseUserMemberMap = levesls.parallelStream().collect(Collectors.toMap(BaseUserMemberLevel::getLevel, Function.identity())); Map<Integer, BaseUserMemberLevel> levelAndbaseUserMemberMap = levesls.parallelStream().collect(Collectors.toMap(BaseUserMemberLevel::getLevel, Function.identity()));
Map<String,Integer> leavelNameAndLeaveMap = levelAndbaseUserMemberMap.values().parallelStream().collect(Collectors.toMap(BaseUserMemberLevel::getName, BaseUserMemberLevel::getLevel)); Map<String,Integer> leavelNameAndLeaveMap = levelAndbaseUserMemberMap.values().parallelStream().collect(Collectors.toMap(BaseUserMemberLevel::getName, BaseUserMemberLevel::getLevel));
List<String> phones = userMemberData.stream().map(x -> x[0]).distinct().collect(Collectors.toList()); List<String> phones = userMemberData.stream().map(x -> x[0]).distinct().collect(Collectors.toList());
Map<String, Integer> phoneAndUserIdMap = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phones); Map<String, Integer> phoneAndUserIdMap = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phones);
Set<Map.Entry<String, Integer>> leaveNameAndLeaveEntry = leavelNameAndLeaveMap.entrySet(); Set<Map.Entry<String, Integer>> leaveNameAndLeaveEntry = leavelNameAndLeaveMap.entrySet();
...@@ -145,7 +146,10 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -145,7 +146,10 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
return baseUserMemberExports.size(); return baseUserMemberExports.size();
} }
private void wrapperData(List<String[]> userMemberData, Integer userId, String userName, List<BaseUserMemberExport> baseUserMemberExports, Map<Integer, BaseUserMemberLevel> levelAndbaseUserMemberMap, Map<String, Integer> phoneAndUserIdMap, Set<Map.Entry<String, Integer>> leaveNameAndLeaveEntry, Integer memberLevel, Integer discount, AtomicInteger counter,Map<Integer,UserMemberDTO> numAndUserMemberMap) { private void wrapperData(List<String[]> userMemberData, Integer userId, String userName,
List<BaseUserMemberExport> baseUserMemberExports, Map<Integer, BaseUserMemberLevel> levelAndbaseUserMemberMap,
Map<String, Integer> phoneAndUserIdMap, Set<Map.Entry<String, Integer>> leaveNameAndLeaveEntry,
Integer memberLevel, Integer discount, AtomicInteger counter,Map<Integer,UserMemberDTO> numAndUserMemberMap) {
for (String[] data : userMemberData) { for (String[] data : userMemberData) {
String phone = data[0]; String phone = data[0];
String memberLevelName = data[1]; String memberLevelName = data[1];
......
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetailChangeRecord;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface AppShareholderDetailChangeRecordMapper extends Mapper<AppShareholderDetailChangeRecord> {
List<AppShareholderDetailChangeRecord> selectAppshareholderUserOrPhoneOrUserId(@Param("userId") Integer userId, @Param("phone") String phone);
}
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* @author zuoyihang
* @version 1.0
* @description
* @data 2019/12/21 18:30
*/
public interface AppShareholderDetailMapper extends Mapper<AppShareholderDetail> {
Integer selectShareHolderByUserIdOrPhone(@Param("userId") Integer userId,
@Param("phone") String phone);
List<AppShareholderDetail> findPage(@Param("name") String name,
@Param("phone") String phone,
@Param("positionId") Integer positionId,
@Param("companyId") Integer companyId);
void updShareHolderIsQuit(@Param("phone") String phone, @Param("companyId") Integer companyId,@Param("isQuit") Integer isQuit);
Integer selectMaxShareHolderByUserIdOrPhone(
@Param("phone") String phone,
@Param("userId") Integer userId);
}
package com.github.wxiaoqi.security.admin.rest.admin;
import com.github.wxiaoqi.security.admin.biz.AppShareholderDetailBiz;
import com.github.wxiaoqi.security.admin.biz.AppShareholderDetailChangeRecordBiz;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailDTO;
import com.github.wxiaoqi.security.admin.dto.AppShareholderDetailFindDTO;
import com.github.wxiaoqi.security.admin.entity.AppShareholderDetail;
import com.github.wxiaoqi.security.admin.vo.AppShareholderDetailVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.util.excel.ExcelImport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/appShareholder")
@Api("后台*会员管理")
public class AppShareholderDetailController {
@Autowired
private UserAuthUtil userAuthUtil;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
private AppShareholderDetailBiz appShareholderDetailBiz;
@Autowired
private AppShareholderDetailChangeRecordBiz appShareholderDetailChangeRecordBiz;
@ApiOperation("批量导入股东")
@PostMapping("/export")
public ObjectRestResponse importAppShareholder(@RequestPart("file") MultipartFile appShareholderExcel, HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId());
List<String[]> appShareholderData = ExcelImport.getExcelData(appShareholderExcel);
if (appShareholderData.size() < 1) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
}
// appShareholderData.remove(0);
return ObjectRestResponse.succ(appShareholderDetailBiz.importShareholder(appShareholderData, operatorId))
;
} catch (Exception e) {
throw new BaseException(e);
}
}
/**
* @param appShareholderDetailFindDTO
* @return
*/
@PostMapping("/page")
public ObjectRestResponse<PageDataVO<AppShareholderDetailVo>> findWithPage(@RequestBody AppShareholderDetailFindDTO appShareholderDetailFindDTO) {
PageDataVO<AppShareholderDetailVo> dataVO = appShareholderDetailBiz.findWithPage(appShareholderDetailFindDTO);
return ObjectRestResponse.succ(dataVO);
}
/**
* 新增股东信息
*
* @return
*/
@PostMapping("/addUserPostion")
public ObjectRestResponse<Void> addUserPostion(@RequestBody AppShareholderDetailDTO appShareholderDetailDTO, HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId());
return appShareholderDetailBiz.add(appShareholderDetailDTO, operatorId);
} catch (Exception e) {
log.error("新增失败【{}】", e);
throw new BaseException("新增失败");
}
}
/**
* 股东身份信息变更
*
* @return
*/
@PostMapping("/updUserPostion")
public ObjectRestResponse<Void> updUserPostion(@RequestBody AppShareholderDetailDTO appShareholderDetailDTO, HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId());
return appShareholderDetailBiz.updSharehoder(appShareholderDetailDTO, operatorId);
} catch (Exception e) {
log.error("修改失败【{}】", e);
throw new BaseException("修改失败");
}
}
/**
* 查询股東信息变更记录表
*/
@GetMapping("/findShareholderChangeRecord")
public ObjectRestResponse findShareholderChangeRecord(AppShareholderDetail appShareholderDetail) {
return ObjectRestResponse.succ(appShareholderDetailChangeRecordBiz.findShareholderChangeRecord(appShareholderDetail));
}
}
...@@ -114,7 +114,7 @@ public class AppUserPositionController { ...@@ -114,7 +114,7 @@ public class AppUserPositionController {
try { try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)); IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId()); Integer operatorId = Integer.valueOf(infoFromToken.getId());
return ObjectRestResponse.succ(appUserPositionTempBiz.addUserPositionChangeRecord(appUserPositionTempDTO.getChangeStatus(), appUserPositionTempDTO, operatorId)) ; return ObjectRestResponse.succ(appUserPositionTempBiz.addUserPositionChangeRecord(appUserPositionTempDTO.getChangeStatus(), appUserPositionTempDTO, operatorId));
} catch (Exception e) { } catch (Exception e) {
log.error("修改失败【{}】", e); log.error("修改失败【{}】", e);
throw new BaseException("修改失败"); throw new BaseException("修改失败");
...@@ -148,40 +148,48 @@ public class AppUserPositionController { ...@@ -148,40 +148,48 @@ public class AppUserPositionController {
/** /**
* 批量导入 * 批量导入
*
* @param userPostionExcel * @param userPostionExcel
* @return * @return
*/ */
@PostMapping("/excel/import") @PostMapping("/excel/import")
public ObjectRestResponse<Map<String,Object>> importUserPostion(@RequestPart("file") MultipartFile userPostionExcel) { public ObjectRestResponse<Map<String, Object>> importUserPostion(@RequestPart("file") MultipartFile userPostionExcel, HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
Integer operatorId = Integer.valueOf(infoFromToken.getId());
List<String[]> userPostionData = ExcelImport.getExcelData(userPostionExcel); List<String[]> userPostionData = ExcelImport.getExcelData(userPostionExcel);
if (userPostionData.size() < 2) { if (userPostionData.size() < 2) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!"); return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
} }
userPostionData.remove(0); userPostionData.remove(0);
Map<String,Object> result = appUserPositionTempBiz.importUserPostion(userPostionData); Map<String, Object> result = appUserPositionTempBiz.importUserPostion(userPostionData,operatorId);
return ObjectRestResponse.succ(result); return ObjectRestResponse.succ(result);
} catch (Exception e) {
throw new BaseException(e);
}
} }
/** /**
* 删除 * 删除
*
* @param id * @param id
* @return * @return
*/ */
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ObjectRestResponse<Void> deleteUserPostion(@PathVariable(value = "id") Integer id){ public ObjectRestResponse<Void> deleteUserPostion(@PathVariable(value = "id") Integer id) {
appUserPositionTempBiz.updateAppuserPostionStatusById(id,1); appUserPositionTempBiz.updateAppuserPostionStatusById(id, 1);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
@PostMapping("/page") @PostMapping("/page")
public ObjectRestResponse<PageDataVO<AppUserPositionTempVo>> findWithPage(@RequestBody AppUserPositionTempFindDTO appUserPositionTempFindDTO){ public ObjectRestResponse<PageDataVO<AppUserPositionTempVo>> findWithPage(@RequestBody AppUserPositionTempFindDTO appUserPositionTempFindDTO) {
PageDataVO<AppUserPositionTempVo> dataVO = appUserPositionTempBiz.findWithPage(appUserPositionTempFindDTO); PageDataVO<AppUserPositionTempVo> dataVO = appUserPositionTempBiz.findWithPage(appUserPositionTempFindDTO);
return ObjectRestResponse.succ(dataVO); return ObjectRestResponse.succ(dataVO);
} }
@GetMapping("/userid") @GetMapping("/userid")
public List<Integer> getUserIdByParentCompany(@RequestParam("parentCompanyId") List<Integer> parentCompanyId){ public List<Integer> getUserIdByParentCompany(@RequestParam("parentCompanyId") List<Integer> parentCompanyId) {
return appUserPositionTempBiz.getUserIdByParentCompany(parentCompanyId); return appUserPositionTempBiz.getUserIdByParentCompany(parentCompanyId);
} }
......
<?xml version="1.0" encoding="UTF-8"?>
<!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.AppShareholderDetailChangeRecordMapper">
<resultMap id="appShareholderDetailMap"
type="com.github.wxiaoqi.security.admin.entity.AppShareholderDetailChangeRecord">
<result property="id" column="id"/>
<result property="companyName" column="company_name"/>
<result property="userId" column="user_id"/>
<result property="phone" column="phone"/>
<result property="companyId" column="company_id"/>
<result property="name" column="name"/>
<result property="crtTime" column="crt_time"/>
<result property="isQuit" column="is_quit"/>
<result property="relTime" column="rel_time"/>
</resultMap>
<select id="selectAppshareholderUserOrPhoneOrUserId"
resultType="com.github.wxiaoqi.security.admin.entity.AppShareholderDetailChangeRecord">
SELECT *from
app_shareholder_detail_change_record
WHERE
1=1
<if test="userId!=null">
and user_id=#{userId}
</if>
<if test="phone!=null">
or phone=#{phone}
</if>
ORDER BY crt_time DESC
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!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">
<resultMap id="appShareholderDetailMap" type="com.github.wxiaoqi.security.admin.entity.AppShareholderDetail">
<result property="id" column="id"/>
<result property="companyName" column="company_name"/>
<result property="userId" column="user_id"/>
<result property="phone" column="phone"/>
<result property="companyId" column="company_id"/>
<result property="name" column="name"/>
<result property="crtTime" column="crt_time"/>
<result property="isQuit" column="is_quit"/>
<result property="updTime" column="upd_time"/>
<result property="positionId" column="position_id"/>
</resultMap>
<select id="selectMaxShareHolderByUserIdOrPhone" resultType="java.lang.Integer">
select max(`position_id`) from `app_shareholder_detail` where `is_quit`=0
<choose>
<when test="userId != null and (phone == null or phone != '')">
and `user_id`=#{userId}
</when>
<when test="phone != null and phone != '' and userId == null">
and `phone`=#{phone}
</when>
<otherwise>
and `user_id`=#{userId}
</otherwise>
</choose>
</select>
<select id="updShareHolderIsQuit" resultType="com.github.wxiaoqi.security.admin.entity.AppShareholderDetail">
UPDATE `app_shareholder_detail`
SET
<if test="isQuit!=null">
`is_quit`=#{isQuit}
</if>
WHERE
1 = 1
<if test="phone!=null">
and `phone`=#{phone}
</if>
<if test="companyId!=null">
and `company_id`=#{companyId}
</if>
</select>
<select id="selectShareHolderByUserIdOrPhone" resultType="java.lang.Integer">
select min(`position_id`) from `app_shareholder_detail` where `is_quit`=0
<choose>
<when test="userId != null and (phone == null or phone != '')">
and `user_id`=#{userId}
</when>
<when test="phone != null and phone != '' and userId == null">
and `phone`=#{phone}
</when>
<otherwise>
and `user_id`=#{userId}
</otherwise>
</choose>
</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`,group_concat(company_id) as `companyIdArray` 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` ,group_concat(company_id) as `companyIdArray` 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` ,group_concat(company_id) as `companyIdArray`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` ,group_concat(company_id) as `companyIdArray`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.companyIdArray=#{companyId}
</if>-->
<if test="companyId!=null">
and find_in_set(#{companyId}, a.companyIdArray)
</if>
</select>
<resultMap id="detail" type="com.github.wxiaoqi.security.admin.entity.AppShareholderDetail">
<result property="id" column="id"/>
<result property="companyName" column="companyName"/>
<result property="userId" column="user_id"/>
<result property="phone" column="phone"/>
<result property="companyId" column="company_id"/>
<result property="name" column="name"/>
<result property="crtTime" column="crt_time"/>
<result property="isQuit" column="is_quit"/>
<result property="updTime" column="upd_time"/>
<result property="positionId" column="positionId"/>
</resultMap>
</mapper>
\ No newline at end of file
...@@ -65,14 +65,14 @@ public class ActivityLuckyDrawBiz extends BaseBiz<ActivityLuckyDrawMapper, Activ ...@@ -65,14 +65,14 @@ public class ActivityLuckyDrawBiz extends BaseBiz<ActivityLuckyDrawMapper, Activ
} }
public void exportActivityLuckDrawData(ActivityLuckDrawFindDTO activityLuckDrawFindDTO, ServletOutputStream outputStream) throws IOException { public void exportActivityLuckDrawData(ActivityLuckDrawFindDTO activityLuckDrawFindDTO, ServletOutputStream outputStream) throws IOException {
List<ActivityLuckyDraw> activityLuckyDraws = listActivityLuckDraw(activityLuckDrawFindDTO); List<ActivityLuckyDrawListVo> activityLuckyDraws = listActivityLuckDraw(activityLuckDrawFindDTO);
ExcelUtils excelUtils = new ExcelUtils("报名列表"); ExcelUtils excelUtils = new ExcelUtils("报名列表");
XSSFWorkbook hssfWorkbook = excelUtils.getHssfWorkbook(); XSSFWorkbook hssfWorkbook = excelUtils.getHssfWorkbook();
XSSFSheet sheet = excelUtils.getSheet(); XSSFSheet sheet = excelUtils.getSheet();
Row headerRow = sheet.createRow(0); Row headerRow = sheet.createRow(0);
CellStyle headerCellStyle = excelUtils.createHeaderCellStyle(); CellStyle headerCellStyle = excelUtils.createHeaderCellStyle();
String[] headers = {"姓名","电话","人数","报名时间"}; String[] headers = {"姓名","电话","身份","上级姓名","上级电话","人数","报名时间"};
excelUtils.createHeader(headerRow,0,headers,headerCellStyle); excelUtils.createHeader(headerRow,0,headers,headerCellStyle);
CellStyle generalCellStyle = excelUtils.createGeneralCellStyle(); CellStyle generalCellStyle = excelUtils.createGeneralCellStyle();
...@@ -85,23 +85,24 @@ public class ActivityLuckyDrawBiz extends BaseBiz<ActivityLuckyDrawMapper, Activ ...@@ -85,23 +85,24 @@ public class ActivityLuckyDrawBiz extends BaseBiz<ActivityLuckyDrawMapper, Activ
} }
private List<String[]> getActivityLuckDrawDataList(List<ActivityLuckyDraw> activityLuckyDraws){ private List<String[]> getActivityLuckDrawDataList(List<ActivityLuckyDrawListVo> activityLuckyDraws){
List<String[]> activityLuckDrawDataList = new ArrayList<>(activityLuckyDraws.size()); List<String[]> activityLuckDrawDataList = new ArrayList<>(activityLuckyDraws.size());
for (ActivityLuckyDraw activityLuckyDraw : activityLuckyDraws) { for (ActivityLuckyDrawListVo activityLuckyDraw : activityLuckyDraws) {
String[] activityLuckDrawData = getActivityLuckDrawData(activityLuckyDraw); String[] activityLuckDrawData = getActivityLuckDrawData(activityLuckyDraw);
activityLuckDrawDataList.add(activityLuckDrawData); activityLuckDrawDataList.add(activityLuckDrawData);
} }
return activityLuckDrawDataList; return activityLuckDrawDataList;
} }
private String[] getActivityLuckDrawData(ActivityLuckyDraw activityLuckyDraw){ private String[] getActivityLuckDrawData(ActivityLuckyDrawListVo activityLuckyDraw){
Date crtTime = activityLuckyDraw.getCrtTime(); Date crtTime = activityLuckyDraw.getCrtTime();
String timeStr = DateUtil.format(crtTime, "yyyy-MM-dd HH:mm:ss"); String timeStr = DateUtil.format(crtTime, "yyyy-MM-dd HH:mm:ss");
return new String[]{activityLuckyDraw.getUserName(),activityLuckyDraw.getPhone(),activityLuckyDraw.getTicketNum()+"",timeStr}; return new String[]{activityLuckyDraw.getUserName(),activityLuckyDraw.getPhone(),activityLuckyDraw.getPositionName(),activityLuckyDraw.getParentName(),activityLuckyDraw.getParentPhone(),activityLuckyDraw.getTicketNum()+"",timeStr};
} }
public List<ActivityLuckyDraw> listActivityLuckDraw(ActivityLuckDrawFindDTO activityLuckDrawFindDTO){ public List<ActivityLuckyDrawListVo> listActivityLuckDraw(ActivityLuckDrawFindDTO activityLuckDrawFindDTO){
List<ActivityLuckyDraw> activityLuckyDraws = mapper.listLuckDrawWithPage(activityLuckDrawFindDTO); Query query = new Query(activityLuckDrawFindDTO);
List<ActivityLuckyDrawListVo> activityLuckyDraws = mapper.getAllByPage(query.getSuper());
if (CollectionUtils.isEmpty(activityLuckyDraws)){ if (CollectionUtils.isEmpty(activityLuckyDraws)){
return Collections.EMPTY_LIST; return Collections.EMPTY_LIST;
} }
......
...@@ -8,10 +8,8 @@ import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO; ...@@ -8,10 +8,8 @@ import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO;
import com.xxfc.platform.activity.vo.ActivityLuckyDrawListVo; import com.xxfc.platform.activity.vo.ActivityLuckyDrawListVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -25,7 +23,7 @@ import java.time.format.DateTimeFormatter; ...@@ -25,7 +23,7 @@ import java.time.format.DateTimeFormatter;
* @data 2019/12/3 16:51 * @data 2019/12/3 16:51
*/ */
@RestController @Controller
@RequestMapping("admin/activityLuckyDraw") @RequestMapping("admin/activityLuckyDraw")
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ActivityLuckyDrawAdminController { public class ActivityLuckyDrawAdminController {
...@@ -38,6 +36,7 @@ public class ActivityLuckyDrawAdminController { ...@@ -38,6 +36,7 @@ public class ActivityLuckyDrawAdminController {
* @return * @return
*/ */
@PostMapping("/page") @PostMapping("/page")
@ResponseBody
public ObjectRestResponse<PageDataVO<ActivityLuckyDrawListVo>> listActivtyLuckyDrawWithPage(@RequestBody ActivityLuckDrawFindDTO activityLuckDrawFindDTO) { public ObjectRestResponse<PageDataVO<ActivityLuckyDrawListVo>> listActivtyLuckyDrawWithPage(@RequestBody ActivityLuckDrawFindDTO activityLuckDrawFindDTO) {
return activityLuckyDrawBiz.getAll(activityLuckDrawFindDTO); return activityLuckyDrawBiz.getAll(activityLuckDrawFindDTO);
} }
......
...@@ -15,6 +15,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; ...@@ -15,6 +15,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date; import java.util.Date;
import java.util.Map; import java.util.Map;
...@@ -125,13 +127,13 @@ public class ServiceTest { ...@@ -125,13 +127,13 @@ public class ServiceTest {
public void testOrderReceivedStatisticsJobHandler(){ public void testOrderReceivedStatisticsJobHandler(){
cn.hutool.core.date.DateTime dateTime = DateUtil.parse("2019-11-29", "yyyy-MM-dd"); cn.hutool.core.date.DateTime dateTime = DateUtil.parse("2019-11-29", "yyyy-MM-dd");
// cn.hutool.core.date.DateTime offset = DateUtil.offset(dateTime, DateField.DAY_OF_MONTH, 1); // cn.hutool.core.date.DateTime offset = DateUtil.offset(dateTime, DateField.DAY_OF_MONTH, 1);
orderReceivedStatisticsJobHandler.execute("2019-11-15"); // orderReceivedStatisticsJobHandler.execute("2019-11-15");
/* LocalDate startLocalDate = LocalDate.of(2019, 10, 01); LocalDate startLocalDate = LocalDate.of(2019, 10, 01);
LocalDate endLocalDate = LocalDate.of(2019,12,19); LocalDate endLocalDate = LocalDate.of(2019,12,20);
while (startLocalDate.isBefore(endLocalDate)){ while (startLocalDate.isBefore(endLocalDate)){
String dateStr = startLocalDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); String dateStr = startLocalDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
startLocalDate = startLocalDate.plusDays(1); startLocalDate = startLocalDate.plusDays(1);
orderReceivedStatisticsJobHandler.execute(dateStr); orderReceivedStatisticsJobHandler.execute(dateStr);
}*/ }
} }
} }
...@@ -212,4 +212,7 @@ public interface VehicleFeign { ...@@ -212,4 +212,7 @@ public interface VehicleFeign {
@GetMapping("/branchCompany/company_info") @GetMapping("/branchCompany/company_info")
Map<Integer, String> findCompanyMap(); Map<Integer, String> findCompanyMap();
/* @RequestMapping(value ="/branchCompany/{id}",method = RequestMethod.GET)
RestResponse<BranchCompany> get(@PathVariable Integer id);*/
} }
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