public static void checkDesignerEdit(Object dtos) throws Exception {
Class dtosClass = dtos.getClass();
//获得类的声明的字段
Field createTime= dtosClass.getDeclaredField("createTime");
//可访问私有变量
createTime.setAccessible(true);
//获取实体属性值
Date createDate = (Date) createTime.get(dtos);
String c = DateUtil.getFormateDateLong(createDate);
String e = DateUtil.addDateMinut(c, 2880);
String nowDate = DateUtil.getFormateDateLong(new Date());
int differ = DateUtil.getDatePoor(e, nowDate, 1, 0);
Field workStatusF = dtosClass.getDeclaredField("workStatus");
workStatusF.setAccessible(true);
int workStatus= (int) workStatusF.get(dtos);
Field methodSetEdit = dtosClass.getDeclaredField("edit");
methodSetEdit.setAccessible(true);
Field methodSetEditTime = dtosClass.getDeclaredField("edtiTime");
methodSetEditTime.setAccessible(true);
if (differ > 0) {
if (workStatus == 0 || workStatus == 10) {
//调用实体类的set方法进行赋值
methodSetEdit.set(dtos,1);
methodSetEditTime.set(dtos,(long) differ);
}
} else {
if (workStatus == 13 || workStatus == 16) {
methodSetEdit.set(dtos,1);
methodSetEditTime.set(dtos,0L);
} else {
methodSetEdit.set(dtos,0);
methodSetEditTime.set(dtos,0L);
}
}
}
public CommonResult worksList(String userId, int page, int pageSize) throws Exception {
PageHelper.startPage(page, pageSize);
List<DesignDTO1> dtos = designMapper.worksList(userId);
for (DesignDTO1 dto : dtos) {
//调用反射方法,实体类有公共的属性和方法可调用
checkDesignerEdit(dto);
}
PageInfo p = new PageInfo(dtos);
Map map = new HashMap();
map.put("rows", p.getList());
map.put("totalCount", p.getTotal());
return CommonResult.success(map);
}
//实体类
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
public class DesignDTO1 {
private Integer id;
/**
* 作品编号
*/
private String worksId;
/**
* 作品名称
*/
private String worksName;
/**
* 上传时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date createTime;
/**
* 状态status_show
*/
private Integer status;
/**
* 状态描述
*/
private String statusMsg;
/**
* 作品封面图(图片名称)
*/
private String workCoverImg;
/**
* 是否可修改
*/
private Integer edit;
/**
* 可修改剩余时间
*/
private Long edtiTime;
/**
* 业务状态status
*/
private Integer workStatus;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getWorksId() {
return worksId;
}
public void setWorksId(String worksId) {
this.worksId = worksId;
}
public String getWorksName() {
return worksName;
}
public void setWorksName(String worksName) {
this.worksName = worksName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getStatusMsg() {
return statusMsg;
}
public void setStatusMsg(String statusMsg) {
this.statusMsg = statusMsg;
}
public String getWorkCoverImg() {
return workCoverImg;
}
public void setWorkCoverImg(String workCoverImg) {
this.workCoverImg = workCoverImg;
}
public Integer getEdit() {
return edit;
}
public void setEdit(Integer edit) {
this.edit = edit;
}
public Long getEdtiTime() {
return edtiTime;
}
public void setEdtiTime(Long edtiTime) {
this.edtiTime = edtiTime;
}
public Integer getWorkStatus() {
return workStatus;
}
public void setWorkStatus(Integer workStatus) {
this.workStatus = workStatus;
}
}