Commit 4e20920b authored by libin's avatar libin

Merge branch 'saff_update_feature' into dev

# Conflicts:
#	ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserPositionTempBiz.java
parents 9a219f89 25e0d6cc
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 io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@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;
}
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;
@Table(name = "app_shareholder_detail")
@Data
public class AppShareholderDetail {
@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;
@Column(name = "postion_id")
private Integer postionId;
}
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.entity.AppShareholderDetail;
import com.github.wxiaoqi.security.admin.mapper.AppShareholderDetailMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @author zuoyihang
* @version 1.0
* @description
* @data 2019/12/21 19:52
*/
@Transactional(rollbackFor = Exception.class)
@Service
public class AppShareholderDetailBiz extends BaseBiz<AppShareholderDetailMapper, AppShareholderDetail> {
public Integer findShareholderByUserIdOrPhone(Integer userId, String phone) {
return mapper.selectShareHolderByUserIdOrPhone(userId,phone);
}
}
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())
...@@ -109,14 +112,12 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -109,14 +112,12 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A
updateSelectiveById(userPositionTemp); updateSelectiveById(userPositionTemp);
} }
if (userId != 0) { if (userId != 0) {
//更改用户身份信息
detailBiz.updateUserPositionByUserId(userId, appUserPositionTempDTO.getPositionId()); detailBiz.updateUserPositionByUserId(userId, appUserPositionTempDTO.getPositionId());
} }
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
public void updateAppuserPostionStatusById(Integer id, int status) { public void updateAppuserPostionStatusById(Integer id, int status) {
AppUserPositionTemp appUserPositionTemp = new AppUserPositionTemp(); AppUserPositionTemp appUserPositionTemp = new AppUserPositionTemp();
appUserPositionTemp.setId(id); appUserPositionTemp.setId(id);
...@@ -405,11 +406,28 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -405,11 +406,28 @@ 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) {
postionId = Objects.nonNull(postionId) ? postionId : appUserPositionTempDTO.getPositionId();
//更改为股东身份
loginBiz.updateUserPosition(appUserDetail.getUserid(), postionId);
}
}
}
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
...@@ -426,9 +444,13 @@ public class AppUserPositionTempBiz extends BaseBiz<AppUserPositionTempMapper, A ...@@ -426,9 +444,13 @@ 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();
} }
......
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;
/**
* @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);
}
<?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="postionId" column="postion_id"/>
</resultMap>
<select id="selectShareHolderByUserIdOrPhone" resultType="java.lang.Integer">
select min(`postion_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>
</mapper>
\ No newline at end of file
...@@ -127,13 +127,13 @@ public class ServiceTest { ...@@ -127,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);
}*/ }
} }
} }
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