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 {
private Integer id;
/**
* 用户id
* 用户手机号
*/
private String phone;
......@@ -109,4 +109,9 @@ public class AppUserPositionChangeRecordDTO implements Serializable {
* 员工职位、所属公司、离职、入职等的实际上任时间
*/
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;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -25,6 +24,10 @@ public class AppUserPositionChangeRecord implements Serializable {
private Integer id;
@ApiModelProperty("用户id")
@Column(name = "user_id")
private Integer userId;
@ApiModelProperty("员工手机号")
@Column(name = "phone")
private String phone;
......@@ -96,5 +99,6 @@ public class AppUserPositionChangeRecord implements Serializable {
@Column(name = "old_job_name")
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;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
......@@ -21,6 +20,8 @@ public class AppUserPositionTempVo {
private Integer id;
private Integer userId;
@ApiModelProperty(value = "手机号码")
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;
import com.alibaba.druid.sql.visitor.functions.If;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionChangeRecordDTO;
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.AppUserPositionTemp;
import com.github.wxiaoqi.security.admin.mapper.AppUserPositionChangeRecordMapper;
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.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -21,7 +15,6 @@ import tk.mybatis.mapper.entity.Example;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Transactional
......@@ -77,6 +70,7 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setJobRemark(COMPANY_CHANGE);
}
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
appUserPositionChangeRecord.setPhone(userPositionTemp.getPhone());
appUserPositionChangeRecord.setRelTime(relTime);
appUserPositionChangeRecord.setUserName(userPositionTemp.getName());
......@@ -99,9 +93,30 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
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
appUserPositionChangeRecord.setCrtTime(new Timestamp(System.currentTimeMillis()));
appUserPositionChangeRecord.setJobRemark(USER_AND_ADD_COMPANY);
appUserPositionChangeRecord.setOperatorId(updUserId);
appUserPositionChangeRecord.setUserId(userPositionTemp.getId());
mapper.insert(appUserPositionChangeRecord);
}
......@@ -175,7 +191,11 @@ public class AppUserPositionChangeRecordBiz extends BaseBiz<AppUserPositionChang
*/
public List<AppUserPositionChangeRecordDTO> findPositionChangeRecord(AppUserPositionTemp userPositionTemp) {
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<AppUserPositionChangeRecordDTO> listAppUserPositionChangeRecordDTO = new ArrayList<>();
list.stream().forEach(x -> {
......
......@@ -107,6 +107,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
List<BaseUserMemberLevel> levesls = userMemberLevelBiz.getLevesls();
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));
List<String> phones = userMemberData.stream().map(x -> x[0]).distinct().collect(Collectors.toList());
Map<String, Integer> phoneAndUserIdMap = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phones);
Set<Map.Entry<String, Integer>> leaveNameAndLeaveEntry = leavelNameAndLeaveMap.entrySet();
......@@ -145,7 +146,10 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
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) {
String phone = data[0];
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));
}
}
......@@ -53,7 +53,7 @@ public class AppUserPositionController {
@GetMapping("/jobs")
public ObjectRestResponse findAllJobs() {
public ObjectRestResponse findAllJobs() {
return ObjectRestResponse.succ(jobLevelBiz.selectListAll());
}
......@@ -114,7 +114,7 @@ public class AppUserPositionController {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
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) {
log.error("修改失败【{}】", e);
throw new BaseException("修改失败");
......@@ -148,41 +148,49 @@ public class AppUserPositionController {
/**
* 批量导入
*
* @param userPostionExcel
* @return
*/
@PostMapping("/excel/import")
public ObjectRestResponse<Map<String,Object>> importUserPostion(@RequestPart("file") MultipartFile userPostionExcel) {
List<String[]> userPostionData = ExcelImport.getExcelData(userPostionExcel);
if (userPostionData.size() < 2) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
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);
if (userPostionData.size() < 2) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
}
userPostionData.remove(0);
Map<String, Object> result = appUserPositionTempBiz.importUserPostion(userPostionData,operatorId);
return ObjectRestResponse.succ(result);
} catch (Exception e) {
throw new BaseException(e);
}
userPostionData.remove(0);
Map<String,Object> result = appUserPositionTempBiz.importUserPostion(userPostionData);
return ObjectRestResponse.succ(result);
}
/**
* 删除
*
* @param id
* @return
*/
@DeleteMapping("/{id}")
public ObjectRestResponse<Void> deleteUserPostion(@PathVariable(value = "id") Integer id){
appUserPositionTempBiz.updateAppuserPostionStatusById(id,1);
public ObjectRestResponse<Void> deleteUserPostion(@PathVariable(value = "id") Integer id) {
appUserPositionTempBiz.updateAppuserPostionStatusById(id, 1);
return ObjectRestResponse.succ();
}
@PostMapping("/page")
public ObjectRestResponse<PageDataVO<AppUserPositionTempVo>> findWithPage(@RequestBody AppUserPositionTempFindDTO appUserPositionTempFindDTO){
PageDataVO<AppUserPositionTempVo> dataVO = appUserPositionTempBiz.findWithPage(appUserPositionTempFindDTO);
return ObjectRestResponse.succ(dataVO);
public ObjectRestResponse<PageDataVO<AppUserPositionTempVo>> findWithPage(@RequestBody AppUserPositionTempFindDTO appUserPositionTempFindDTO) {
PageDataVO<AppUserPositionTempVo> dataVO = appUserPositionTempBiz.findWithPage(appUserPositionTempFindDTO);
return ObjectRestResponse.succ(dataVO);
}
@GetMapping("/userid")
public List<Integer> getUserIdByParentCompany(@RequestParam("parentCompanyId") List<Integer> parentCompanyId){
return appUserPositionTempBiz.getUserIdByParentCompany(parentCompanyId);
public List<Integer> getUserIdByParentCompany(@RequestParam("parentCompanyId") List<Integer> 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
}
public void exportActivityLuckDrawData(ActivityLuckDrawFindDTO activityLuckDrawFindDTO, ServletOutputStream outputStream) throws IOException {
List<ActivityLuckyDraw> activityLuckyDraws = listActivityLuckDraw(activityLuckDrawFindDTO);
List<ActivityLuckyDrawListVo> activityLuckyDraws = listActivityLuckDraw(activityLuckDrawFindDTO);
ExcelUtils excelUtils = new ExcelUtils("报名列表");
XSSFWorkbook hssfWorkbook = excelUtils.getHssfWorkbook();
XSSFSheet sheet = excelUtils.getSheet();
Row headerRow = sheet.createRow(0);
CellStyle headerCellStyle = excelUtils.createHeaderCellStyle();
String[] headers = {"姓名","电话","人数","报名时间"};
String[] headers = {"姓名","电话","身份","上级姓名","上级电话","人数","报名时间"};
excelUtils.createHeader(headerRow,0,headers,headerCellStyle);
CellStyle generalCellStyle = excelUtils.createGeneralCellStyle();
......@@ -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());
for (ActivityLuckyDraw activityLuckyDraw : activityLuckyDraws) {
for (ActivityLuckyDrawListVo activityLuckyDraw : activityLuckyDraws) {
String[] activityLuckDrawData = getActivityLuckDrawData(activityLuckyDraw);
activityLuckDrawDataList.add(activityLuckDrawData);
}
return activityLuckDrawDataList;
}
private String[] getActivityLuckDrawData(ActivityLuckyDraw activityLuckyDraw){
private String[] getActivityLuckDrawData(ActivityLuckyDrawListVo activityLuckyDraw){
Date crtTime = activityLuckyDraw.getCrtTime();
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){
List<ActivityLuckyDraw> activityLuckyDraws = mapper.listLuckDrawWithPage(activityLuckDrawFindDTO);
public List<ActivityLuckyDrawListVo> listActivityLuckDraw(ActivityLuckDrawFindDTO activityLuckDrawFindDTO){
Query query = new Query(activityLuckDrawFindDTO);
List<ActivityLuckyDrawListVo> activityLuckyDraws = mapper.getAllByPage(query.getSuper());
if (CollectionUtils.isEmpty(activityLuckyDraws)){
return Collections.EMPTY_LIST;
}
......
......@@ -8,10 +8,8 @@ import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO;
import com.xxfc.platform.activity.vo.ActivityLuckyDrawListVo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
......@@ -25,7 +23,7 @@ import java.time.format.DateTimeFormatter;
* @data 2019/12/3 16:51
*/
@RestController
@Controller
@RequestMapping("admin/activityLuckyDraw")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ActivityLuckyDrawAdminController {
......@@ -38,6 +36,7 @@ public class ActivityLuckyDrawAdminController {
* @return
*/
@PostMapping("/page")
@ResponseBody
public ObjectRestResponse<PageDataVO<ActivityLuckyDrawListVo>> listActivtyLuckyDrawWithPage(@RequestBody ActivityLuckDrawFindDTO activityLuckDrawFindDTO) {
return activityLuckyDrawBiz.getAll(activityLuckDrawFindDTO);
}
......
......@@ -15,6 +15,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Map;
......@@ -125,13 +127,13 @@ public class ServiceTest {
public void testOrderReceivedStatisticsJobHandler(){
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);
orderReceivedStatisticsJobHandler.execute("2019-11-15");
/* LocalDate startLocalDate = LocalDate.of(2019, 10, 01);
LocalDate endLocalDate = LocalDate.of(2019,12,19);
// orderReceivedStatisticsJobHandler.execute("2019-11-15");
LocalDate startLocalDate = LocalDate.of(2019, 10, 01);
LocalDate endLocalDate = LocalDate.of(2019,12,20);
while (startLocalDate.isBefore(endLocalDate)){
String dateStr = startLocalDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
startLocalDate = startLocalDate.plusDays(1);
orderReceivedStatisticsJobHandler.execute(dateStr);
}*/
}
}
}
......@@ -212,4 +212,7 @@ public interface VehicleFeign {
@GetMapping("/branchCompany/company_info")
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