commit
This commit is contained in:
+66
-7
@@ -1,17 +1,24 @@
|
||||
package io.v.nutz.zhgh.activity.controller.school;
|
||||
|
||||
import cn.afterturn.easypoi.entity.ImageEntity;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import com.deepoove.poi.XWPFTemplate;
|
||||
import com.deepoove.poi.config.Configure;
|
||||
import com.deepoove.poi.data.PictureRenderData;
|
||||
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.dao.CndPlus;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
import io.v.nutz.base.service.SimpleService;
|
||||
import io.v.nutz.base.service.ViService;
|
||||
import io.v.nutz.base.utils.DateUtil;
|
||||
import io.v.nutz.base.utils.OfficeTemplateUtil;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import io.v.nutz.sys.models.Sys_unit;
|
||||
import io.v.nutz.sys.models.Sys_user;
|
||||
import io.v.nutz.sys.services.SysUserService;
|
||||
import io.v.nutz.web.commons.base.Globals;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.activity.models.*;
|
||||
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
|
||||
@@ -19,7 +26,9 @@ import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
|
||||
import io.v.nutz.zhgh.activity.services.ActivitySchoolTeamService;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.ddr.poi.html.HtmlRenderPolicy;
|
||||
import org.nutz.aop.interceptor.async.Async;
|
||||
import org.nutz.boot.starter.ftp.FtpService;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
@@ -37,6 +46,13 @@ import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -70,6 +86,13 @@ public class ActivityApplyController {
|
||||
@Inject("ActivitySchoolEvent")
|
||||
private ViService<ActivitySchoolEvent> activitySchoolEventViService;
|
||||
|
||||
|
||||
@Inject
|
||||
private OfficeTemplateUtil officeTemplateUtil;
|
||||
@Inject
|
||||
private FtpService ftpService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:platform/activity/school/ActivityApply.html")
|
||||
@RequiresPermissions("activity.apply")
|
||||
@@ -132,11 +155,8 @@ public class ActivityApplyController {
|
||||
school.personType,
|
||||
school.activityLevel,
|
||||
school.applyType,
|
||||
school.athleteQualification,
|
||||
school.registrationMethod,
|
||||
school.competitionMethod,
|
||||
school.rewardMethod,
|
||||
school.precautions,
|
||||
school.isSign,
|
||||
school.eventNotification,
|
||||
au.files promiseBookFiles,
|
||||
(SELECT count( 1 ) FROM activity_school_apply app WHERE app.activityId = school.id AND app.`status` = 2 ) apply_num,
|
||||
(SELECT count( 1 ) FROM activity_school_apply app WHERE app.activityId = school.id AND ( app.applyUser = @userid OR app.userId = @userid )) > 0 applyed,
|
||||
@@ -824,14 +844,15 @@ public class ActivityApplyController {
|
||||
asa.sex,
|
||||
asa.identity,
|
||||
asa.`status`,
|
||||
asa.applyUserSign,
|
||||
us.username applyUserName
|
||||
FROM
|
||||
`activity_school_apply` asa
|
||||
LEFT JOIN sys_user us ON asa.applyUser = us.id
|
||||
WHERE asa.activityId=@activityId and asa.eventId=@eventId and asa.activityUnionId=@activityUnionId
|
||||
ORDER BY asa.applyUser
|
||||
""").setParam("activityId",activityId).setParam("eventId", eventId).setParam("activityUnionId", getUnionId());
|
||||
return activitySchoolApplyService.listMap(sql);
|
||||
""").setParam("activityId", activityId).setParam("eventId", eventId).setParam("activityUnionId", getUnionId());
|
||||
return activitySchoolApplyService.listMap(sql);
|
||||
}
|
||||
|
||||
|
||||
@@ -867,5 +888,43 @@ public class ActivityApplyController {
|
||||
return null;
|
||||
}
|
||||
|
||||
@At
|
||||
@Ok(("void"))
|
||||
@RequiresPermissions("activity.apply")
|
||||
public void doExport(String activityId, HttpServletResponse response) {
|
||||
try {
|
||||
ActivitySchool school = simpleService.dao().fetch(ActivitySchool.class, activityId);
|
||||
List<ActivitySchoolApply> schoolApplyList = simpleService.dao().query(ActivitySchoolApply.class,
|
||||
Cnd.where("activityId", "=", activityId)
|
||||
.and("status", "=", 2)
|
||||
.and("applyUserSign", "is not", null));
|
||||
|
||||
List<NutMap> signList = new ArrayList<>();
|
||||
for (int i = 0; i < schoolApplyList.size(); i++) {
|
||||
ActivitySchoolApply apply = schoolApplyList.get(i);
|
||||
ByteArrayOutputStream signOs = new ByteArrayOutputStream();
|
||||
ftpService.download(apply.getApplyUserSign(), signOs);
|
||||
ByteArrayInputStream bais = new ByteArrayInputStream(signOs.toByteArray());
|
||||
BufferedImage bufferImg = ImageIO.read(bais);
|
||||
|
||||
/*byte[] bytes = Base64.getDecoder().decode(bufferImg.toByteArray());
|
||||
signList.add(NutMap.NEW().addv("sign", new PictureRenderData(70, 30, ".png", bytes)));*/
|
||||
}
|
||||
|
||||
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
|
||||
Configure config = Configure.newBuilder().bind("signList", policy).build();
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("activityName", school.getName());
|
||||
map.put("signList", signList);
|
||||
response.addHeader("Content-Type", "application/octet-stream");
|
||||
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String((school.getName() + "自愿参赛责任及风险告知书").getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1) + "\".docx");
|
||||
ServletOutputStream outputStream = response.getOutputStream();
|
||||
XWPFTemplate.compile(officeTemplateUtil.getPath("activity_fxtzs"), config).render(map).writeAndClose(outputStream);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,4 +17,6 @@ public class ActivityMobileSignUpParam {
|
||||
|
||||
private List<String> userIds;
|
||||
|
||||
private String applyUserSign;
|
||||
|
||||
}
|
||||
|
||||
@@ -200,4 +200,10 @@ public class ActivitySchool extends BaseModel implements Serializable {
|
||||
@Comment("是否开启")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
private Boolean isDisabled;
|
||||
|
||||
@Column
|
||||
@Comment("是否需要签字")
|
||||
@Default("0")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
private Boolean isSign;
|
||||
}
|
||||
|
||||
@@ -173,12 +173,18 @@ public class ActivitySchoolApply implements Serializable {
|
||||
@Excel(name = "姓名", width = 20)
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String username;
|
||||
|
||||
@Column
|
||||
@Comment("电话")
|
||||
@Excel(name = "手机号码", width = 20)
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String mobile;
|
||||
|
||||
@Column
|
||||
@Comment("报名签字")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String applyUserSign;
|
||||
|
||||
|
||||
@Excel(name = "身份证号", width = 20)
|
||||
private String idCard;
|
||||
|
||||
+3
-1
@@ -163,6 +163,8 @@ public class mobileActivityListController {
|
||||
school.applyEndTime,
|
||||
school.applyType,
|
||||
school.activityGroupId,
|
||||
school.isSign,
|
||||
school.precautions,
|
||||
eve.allName,
|
||||
eve.isInterest,
|
||||
eve.projectType,
|
||||
@@ -262,7 +264,7 @@ public class mobileActivityListController {
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
public Object doTeamSignUp(ActivityMobileSignUpParam param) {
|
||||
mobileActivityApplyService.doTeamSignUp(param.getActivityId(), param.getUserIds(), param.getEventId(), param.getTeamId(), param.getTeamName());
|
||||
mobileActivityApplyService.doTeamSignUp(param.getActivityId(), param.getUserIds(), param.getEventId(), param.getTeamId(), param.getTeamName(),param.getApplyUserSign());
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -7,5 +7,5 @@ import java.util.List;
|
||||
|
||||
public interface MobileActivityApplyService extends BaseService<ActivitySchoolApply> {
|
||||
void doDeleteApply(String activityId, String eventId);
|
||||
void doTeamSignUp(String activityId, List<String> userIds, String eventId, String teamId, String teamName);
|
||||
void doTeamSignUp(String activityId, List<String> userIds, String eventId, String teamId, String teamName,String applyUserSign);
|
||||
}
|
||||
|
||||
+4
-3
@@ -39,16 +39,16 @@ public class MobileActivityApplyServiceImpl extends BaseServiceImpl<ActivityScho
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doTeamSignUp(String activityId, List<String> userIds, String eventId, String teamId, String teamName) {
|
||||
public void doTeamSignUp(String activityId, List<String> userIds, String eventId, String teamId, String teamName, String applyUserSign) {
|
||||
List<ActivitySchoolApply> schoolApplyArrayList = new ArrayList<>();
|
||||
userIds.forEach(i -> {
|
||||
ActivitySchoolApply schoolApply = getApply(activityId, eventId, i, teamId, teamName);
|
||||
ActivitySchoolApply schoolApply = getApply(activityId, eventId, i, teamId, teamName, applyUserSign);
|
||||
schoolApplyArrayList.add(schoolApply);
|
||||
});
|
||||
insert(schoolApplyArrayList);
|
||||
}
|
||||
|
||||
public ActivitySchoolApply getApply(String activityId, String eventId, String userId, String teamId, String teamName) {
|
||||
public ActivitySchoolApply getApply(String activityId, String eventId, String userId, String teamId, String teamName, String applyUserSign) {
|
||||
ActivitySchool activitySchool = dao().fetch(ActivitySchool.class, activityId);
|
||||
User user = dao().fetch(User.class, Cnd.where("id", "=", userId));
|
||||
ActivityBasicUnit basicUnit = dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", user.getUnitid()));
|
||||
@@ -82,6 +82,7 @@ public class MobileActivityApplyServiceImpl extends BaseServiceImpl<ActivityScho
|
||||
schoolApply.setUsername(user.getUsername());
|
||||
schoolApply.setBirthday(user.getBirthday());
|
||||
schoolApply.setApplyUnitId(basicUnit.getId());
|
||||
schoolApply.setApplyUserSign(userId.equals(ShiroUtil.getUserId()) ? applyUserSign : null);
|
||||
return schoolApply;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user