diff --git a/src/main/java/io/v/nutz/base/utils/LoginUtil.java b/src/main/java/io/v/nutz/base/utils/LoginUtil.java index a8d5c0a..5d78033 100644 --- a/src/main/java/io/v/nutz/base/utils/LoginUtil.java +++ b/src/main/java/io/v/nutz/base/utils/LoginUtil.java @@ -30,7 +30,7 @@ import javax.servlet.http.HttpSession; public class LoginUtil { public enum LoginOrigin { - APP, WEB, WEB_H5, CAS, QI_YE_WEI_XIN, WEI_XIN, SMS_CODE; + APP, WEB, WEB_H5, CAS, QI_YE_WEI_XIN, WEI_XIN, WEI_XIN_SUCCESS, SMS_CODE; } @Inject diff --git a/src/main/java/io/v/nutz/base/utils/PwdUtil.java b/src/main/java/io/v/nutz/base/utils/PwdUtil.java index 6999464..6dc3fc0 100644 --- a/src/main/java/io/v/nutz/base/utils/PwdUtil.java +++ b/src/main/java/io/v/nutz/base/utils/PwdUtil.java @@ -126,7 +126,7 @@ public class PwdUtil { // System.out.println(dbPwd); // System.out.println(s); - String pwd = "123456"; + String pwd = "002154"; String dbPwd = PwdUtil.doSm4CbcEncrypt(pwd); System.out.println(dbPwd); } diff --git a/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysWechatController.java b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysWechatController.java index 931b6ca..5979555 100644 --- a/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysWechatController.java +++ b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysWechatController.java @@ -11,6 +11,7 @@ import io.v.nutz.sys.services.SysUserService; import io.v.nutz.web.commons.base.Globals; import io.v.nutz.web.commons.shiro.exception.CaptchaEmptyException; import io.v.nutz.web.commons.shiro.exception.CaptchaIncorrectException; +import io.v.nutz.web.commons.shiro.filter.PlatformAuthenticationFilter; import io.v.nutz.web.commons.slog.SLogService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.math.NumberUtils; @@ -27,10 +28,7 @@ import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.json.Json; import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; -import org.nutz.mvc.annotation.At; -import org.nutz.mvc.annotation.Attr; -import org.nutz.mvc.annotation.Ok; -import org.nutz.mvc.annotation.Param; +import org.nutz.mvc.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @@ -140,7 +138,7 @@ public class SysWechatController { String loginName = Optional.ofNullable(sysUser).map(Sys_user::getLoginname).orElse(null); try { - loginUtil.doLogin(loginName, request, session, LoginUtil.LoginOrigin.WEI_XIN); + loginUtil.doLogin(loginName, request, session, LoginUtil.LoginOrigin.WEI_XIN_SUCCESS); if (StrUtil.isNotBlank(redirect)) { return ">>:" + redirect; } @@ -151,9 +149,6 @@ public class SysWechatController { } catch (UnknownAccountException e) { request.setAttribute("errMsg", "系统中没有此用户"); return ">>:" + Globals.AppDomain + "/error/UnknownAccountError.html"; - } catch (AuthenticationException e) { - request.setAttribute("errMsg", "系统中没有此用户"); - return ">>:" + Globals.AppDomain + "/error/UnknownAccountError.html"; } catch (Exception e) { request.setAttribute("errMsg", "用户名或密码错误"); return ">>:" + Globals.AppDomain + "/error/500.html"; @@ -162,7 +157,8 @@ public class SysWechatController { @At - @Ok("re") + @Ok("json") + @Filters(@By(type = PlatformAuthenticationFilter.class)) public Result doLogin(@Attr("platformLoginToken") AuthenticationToken token, HttpServletRequest request, HttpSession session, @Param("state") String state) { System.out.println(state); diff --git a/src/main/java/io/v/nutz/web/commons/shiro/config/EasyCredentialsMatch.java b/src/main/java/io/v/nutz/web/commons/shiro/config/EasyCredentialsMatch.java index 2bb49fe..b65f591 100644 --- a/src/main/java/io/v/nutz/web/commons/shiro/config/EasyCredentialsMatch.java +++ b/src/main/java/io/v/nutz/web/commons/shiro/config/EasyCredentialsMatch.java @@ -32,7 +32,7 @@ public class EasyCredentialsMatch extends HashedCredentialsMatcher { LoginUtil.LoginOrigin loginOrigin = platformCaptchaToken.getLoginOrigin(); //cas和企业微信实现免密登录 - if (loginOrigin.equals(LoginUtil.LoginOrigin.CAS) || loginOrigin.equals(LoginUtil.LoginOrigin.QI_YE_WEI_XIN)){ + if (loginOrigin.equals(LoginUtil.LoginOrigin.CAS) || loginOrigin.equals(LoginUtil.LoginOrigin.QI_YE_WEI_XIN) || loginOrigin.equals(LoginUtil.LoginOrigin.WEI_XIN_SUCCESS)){ return true; } diff --git a/src/main/java/io/v/nutz/web/commons/shiro/realm/PlatformAuthorizingRealm.java b/src/main/java/io/v/nutz/web/commons/shiro/realm/PlatformAuthorizingRealm.java index 309e98c..cd1ac07 100644 --- a/src/main/java/io/v/nutz/web/commons/shiro/realm/PlatformAuthorizingRealm.java +++ b/src/main/java/io/v/nutz/web/commons/shiro/realm/PlatformAuthorizingRealm.java @@ -94,7 +94,7 @@ public class PlatformAuthorizingRealm extends AuthorizingRealm { throw Lang.makeThrow(AuthenticationException.class, "验证码失效,请重新获取"); } user = sysUserService.fetch(Cnd.NEW().and("mobile", "=", mobile)); - }else if (!loginOrigin.equals(LoginUtil.LoginOrigin.CAS) && !loginOrigin.equals(LoginUtil.LoginOrigin.QI_YE_WEI_XIN) && !loginOrigin.equals(LoginUtil.LoginOrigin.WEI_XIN)) { + }else if (!loginOrigin.equals(LoginUtil.LoginOrigin.CAS) && !loginOrigin.equals(LoginUtil.LoginOrigin.QI_YE_WEI_XIN) && !loginOrigin.equals(LoginUtil.LoginOrigin.WEI_XIN_SUCCESS)) { validateService.checkCode(key, captcha); if (Strings.isBlank(loginname)) { throw Lang.makeThrow(AuthenticationException.class, "登录账号不可为空"); @@ -120,7 +120,7 @@ public class PlatformAuthorizingRealm extends AuthorizingRealm { } if (!loginOrigin.equals(LoginUtil.LoginOrigin.CAS) && !loginOrigin.equals(LoginUtil.LoginOrigin.QI_YE_WEI_XIN) - && !loginOrigin.equals(LoginUtil.LoginOrigin.WEI_XIN)) { + && !loginOrigin.equals(LoginUtil.LoginOrigin.WEI_XIN_SUCCESS)) { int errCount = NumberUtils.toInt(Strings.sNull(session.getAttribute("platformErrCount"))); if (errCount >= 4) { //输错5次禁用账户10分钟 diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityBasicScopeController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityBasicScopeController.java index 1ba9ad8..a9b2905 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityBasicScopeController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityBasicScopeController.java @@ -235,7 +235,7 @@ public class ActivityBasicScopeController { $condition """); Cnd cnd = Cnd.NEW(); - if (!ShiroUtil.hasAnyRoles("sysadmin,H06,H10")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,H06,H10,SCHOOL_UNION_SPORTS_ADMIN")) { if (ShiroUtil.hasAnyRoles(new String[]{"H04", "club01"})) { cnd.and("creator", "=", ShiroUtil.getPrincipalProperty("id")); } @@ -284,7 +284,7 @@ public class ActivityBasicScopeController { addv("is_H04", ShiroUtil.hasRole("H04")); addv("is_H02", ShiroUtil.hasRole("club01")); addv("is_H03", ShiroUtil.hasRole("SchoolUnionMemberAdmin")); - addv("is_sysadmin", ShiroUtil.hasRole("sysadmin")); + addv("is_sysadmin", ShiroUtil.hasRole("sysadmin,SCHOOL_UNION_SPORTS_ADMIN")); addv("unionid", Vi.getUnionId()); }}; } diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityBasicUserController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityBasicUserController.java index 3d1bb7e..b816108 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityBasicUserController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityBasicUserController.java @@ -97,7 +97,7 @@ public class ActivityBasicUserController { cnd.andEX("u.unitid", "=", unitId); cnd.andEX("u.personType", "=", personType); cnd.andEX("u.userState", "=", userState); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { cnd.andEX("aus.creator", "=", ShiroUtil.getPrincipalProperty("id")); } diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityUnionController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityUnionController.java index 24f21b7..f56f2b5 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityUnionController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/basic/ActivityUnionController.java @@ -202,7 +202,7 @@ public class ActivityUnionController { if (Strings.isNotBlank(searchName) && Strings.isNotBlank(searchKeyword)) { cnd.and(searchName, "like", "%" + searchKeyword + "%"); } - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { cnd.and("gh.id", "=", basicUnit.getUnionid()); } if (Strings.isNotBlank(pageOrderName) && Strings.isNotBlank(pageOrderBy)) { @@ -233,7 +233,7 @@ public class ActivityUnionController { try { union.setSource("activity"); sysUnionService.insert(union); - if (!ShiroUtil.hasAnyRoles("sysadmin.H04")) { + if (!ShiroUtil.hasAnyRoles("sysadmin.H04,SCHOOL_UNION_SPORTS_ADMIN")) { sysUnitService.dao().update(ActivityBasicUnit.class, Chain.make("unionid", union.getId()), Cnd.where("id", "=", Vi.getUnit().getId())); } return Result.success(); diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityApplyController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityApplyController.java index 1d8a4fb..c75e965 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityApplyController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityApplyController.java @@ -1,10 +1,10 @@ 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.data.PictureType; import com.deepoove.poi.policy.HackLoopTableRenderPolicy; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.dao.CndPlus; @@ -18,16 +18,14 @@ 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; import io.v.nutz.zhgh.activity.services.ActivitySchoolService; import io.v.nutz.zhgh.activity.services.ActivitySchoolTeamService; +import lombok.extern.slf4j.Slf4j; 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; @@ -46,15 +44,14 @@ 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.io.IOException; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.IntStream; /** * @author: Aaron @@ -62,6 +59,7 @@ import java.util.stream.Collectors; * @description: 活动报名 **/ +@Slf4j @IocBean @Ok("json:full") @At("/platform/activity/apply") @@ -70,23 +68,16 @@ public class ActivityApplyController { @Inject private ActivitySchoolService activitySchoolService; - @Inject protected SysUserService sysUserService; - @Inject private ActivitySchoolApplyService activitySchoolApplyService; - @Inject private ActivitySchoolTeamService activitySchoolTeamService; - @Inject private SimpleService simpleService; - @Inject("ActivitySchoolEvent") private ViService activitySchoolEventViService; - - @Inject private OfficeTemplateUtil officeTemplateUtil; @Inject @@ -196,7 +187,7 @@ public class ActivityApplyController { // cnd.and(new Static("now() > school.applyEndTime")); // } - if (!ShiroUtil.hasAnyRoles("H04,sysadmin")) { + if (!ShiroUtil.hasAnyRoles("H04,sysadmin,SCHOOL_UNION_SPORTS_ADMIN")) { cnd.and(new Static("JSON_CONTAINS(school.applyWay,JSON_ARRAY( 1))>0")); cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=school.activityGroupId AND userId='%s') >0".formatted(ShiroUtil.getUserId()))); } @@ -673,7 +664,7 @@ public class ActivityApplyController { """).setParam("unionId", getUnionId()).setParam("userId", ShiroUtil.getUserId()); - if (!ShiroUtil.hasAnyRoles("H04,sysadmin")) { + if (!ShiroUtil.hasAnyRoles("H04,sysadmin,SCHOOL_UNION_SPORTS_ADMIN")) { cnd.where().andLike("school.applyWay ", "1"); cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=school.activityGroupId AND userId='%s') >0".formatted(ShiroUtil.getUserId()))); } @@ -833,15 +824,16 @@ public class ActivityApplyController { @At @ViReturn @RequiresPermissions("activity.apply") - public Object dshApplyUserList( - @Param(value = "activityId", required = false) String activityId, - @Param(value = "eventId", required = false) String eventId) { + public Object dshApplyUserList(@Param(value = "activityId", required = false) String activityId, + @Param(value = "eventId", required = false) String eventId, + @Param(value = "activityIsAudit", required = false) String activityIsAudit) { Sql sql = Sqls.create(""" SELECT asa.id, asa.username, asa.loginname, asa.sex, + asa.mobile, asa.identity, asa.`status`, asa.applyUserSign, @@ -849,9 +841,23 @@ public class ActivityApplyController { 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()); + $condition + """); +// 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()); + Cnd cnd = Cnd.NEW(); + cnd.and("asa.activityId", "=", activityId); + cnd.and("asa.eventId", "=", eventId); + cnd.and("asa.activityUnionId", "=", getUnionId()); + if ("false".equals(activityIsAudit)) { + cnd.and("asa.status", "=", 1); + } else { + cnd.and("asa.status", "!=", 1); + } + cnd.asc("asa.applyUser"); + sql.setCondition(cnd); return activitySchoolApplyService.listMap(sql); } @@ -888,6 +894,12 @@ public class ActivityApplyController { return null; } + + /** + * 下载签名告知书 + * @param activityId + * @param response + */ @At @Ok(("void")) @RequiresPermissions("activity.apply") @@ -896,26 +908,44 @@ public class ActivityApplyController { ActivitySchool school = simpleService.dao().fetch(ActivitySchool.class, activityId); List schoolApplyList = simpleService.dao().query(ActivitySchoolApply.class, Cnd.where("activityId", "=", activityId) - .and("status", "=", 2) + .and("status", "=", 2).and("unionId", "=", Vi.getUnionId()) .and("applyUserSign", "is not", null)); - List 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)));*/ - } + List signList = schoolApplyList.stream().map(v -> { + try { + PictureRenderData image = getImage(v.getApplyUserSign()); + return NutMap.NEW().setv("image", image); + } catch (IOException e) { + log.error("下载签名失败", e); + return null; + } + }).filter(Objects::nonNull).collect(Collectors.toList()); + - HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); - Configure config = Configure.newBuilder().bind("signList", policy).build(); HashMap map = new HashMap<>(); + // 平均分组签字 + int totalSize = signList.size(); + // 计算每个子列表的大小 + int chunkSize = (int) Math.ceil(totalSize / 4.0); + + List> collect = IntStream.range(0, 4) + .mapToObj(i -> { + int start = i * chunkSize; + int end = Math.min((i + 1) * chunkSize, totalSize); + return start < totalSize ? new ArrayList<>(signList.subList(start, end)) : List.of(NutMap.NEW()); + }).collect(Collectors.toList()); + + for (int i = 0; i < collect.size(); i++) { + map.put("signList" + i, collect.get(i)); + } + HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); + Configure config = Configure.newBuilder().bind("signList0", policy).bind("signList1", policy) + .bind("signList2", policy).bind("signList3", policy).build(); +// HtmlRenderPolicy policy = new HtmlRenderPolicy(); +// Configure config = Configure.newBuilder().bind("signList", policy).build(); map.put("activityName", school.getName()); - map.put("signList", signList); + map.put("dateTime", cn.hutool.core.date.DateUtil.format(new Date(), "yyyy年MM月dd日")); 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(); @@ -923,8 +953,19 @@ public class ActivityApplyController { } catch (Exception e) { e.printStackTrace(); } - - } + + private PictureRenderData getImage(String base64) throws IOException { + if (base64.startsWith("data:")) { + String s = base64.split(",")[1]; + byte[] bytes = Base64.getDecoder().decode(s); + return new PictureRenderData(70, 30, ".png", bytes); + } else { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + ftpService.download(base64, os); + os.close(); + return new PictureRenderData(70, 30, PictureType.PNG, os.toByteArray()); + } + } } diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityCommonController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityCommonController.java index a30b662..e62cc2e 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityCommonController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityCommonController.java @@ -232,7 +232,7 @@ public class ActivityCommonController { app.sex """).setParam("id", id); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06") && ShiroUtil.hasRole("H04")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN") && ShiroUtil.hasRole("H04")) { sql1.setVar("union", " AND app.unionId = '" + unionid + "' "); } @@ -245,7 +245,7 @@ public class ActivityCommonController { Cnd unionCnd = Cnd.NEW(); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06") && ShiroUtil.hasRole("H04")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN") && ShiroUtil.hasRole("H04")) { unionCnd.and("id", "=", unionid); } diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityInfoManageController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityInfoManageController.java index aa3fd64..56a82bb 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityInfoManageController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityInfoManageController.java @@ -117,7 +117,7 @@ public class ActivityInfoManageController { } else if ("four".equals(query)) { cnd.and(new Static("now() > school.endTime")); } - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { if (ShiroUtil.hasRole("H04")) { cnd.and("school.belongUnionId", "=", Vi.getUnionId()); } diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityReadingController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityReadingController.java index bebd59b..835e774 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityReadingController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityReadingController.java @@ -88,7 +88,7 @@ public class ActivityReadingController { cnd.and("close", "!=", true); cnd.and("YEAR(startTime)", "=", year); cnd.and("activityLevel", "=", activityLevel); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { if (activityLevel.equals("40002")) { cnd.and("belongUnionId", "=", getUnionId()); } @@ -135,7 +135,7 @@ public class ActivityReadingController { cnd.and("app.activityId", "=", id); // cnd.and("YEAR(app.applyDate)", "=", year); sql.setCondition(cnd); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { if (ShiroUtil.hasRole("H04") && activityLevel.equals("40002")) { cnd.and("app.activityUnionId", "=", basicUnit.getUnionid()); cnd.and("school.belongUnionId", "=", basicUnit.getUnionid()); @@ -150,7 +150,7 @@ public class ActivityReadingController { List apply = new ArrayList(); Cnd unionCnd = Cnd.NEW(); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { if (ShiroUtil.hasRole("H04")) { unionCnd.and("id", "=", basicUnit.getUnionid()); } @@ -353,7 +353,7 @@ public class ActivityReadingController { } - if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H10")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H10,SCHOOL_UNION_SPORTS_ADMIN")) { if (!user.getUnionid().equals(getUnionId())) { setObj(v.getLoginName() + "此用户不是本工会人员"); throw new RuntimeException(v.getLoginName() + "此用户不是本工会人员"); diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityRemindController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityRemindController.java index 34fbbfb..81bb20a 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityRemindController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityRemindController.java @@ -214,7 +214,7 @@ public class ActivityRemindController { @ViReturn public Object getActivitys() { Cnd cnd = Cnd.NEW(); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { if (ShiroUtil.hasRole("H04")) { cnd.and("belongUnionId", "=", Vi.getUnionId()); } diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteRecordController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteRecordController.java index 780e943..966d603 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteRecordController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteRecordController.java @@ -79,7 +79,7 @@ public class SiteRecordController { cnd.and("asr.isRetire","=",isRetire); } - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { cnd.and("asr.reserve_person_unionid", "=", Vi.getUnionId()); } if (Strings.isNotBlank(time)) { diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteReserveController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteReserveController.java index def68ab..daea1e3 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteReserveController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteReserveController.java @@ -100,7 +100,7 @@ public class SiteReserveController { if (StrUtil.isNotBlank(isRetire)) { cnd.and("asr.isRetire","=",isRetire); } - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { cnd.and("reserve_person_id", "=", ShiroUtil.getPrincipalProperty("id")); } if (Strings.isNotBlank(time)) { diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteUnionProcessController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteUnionProcessController.java index a187602..c4ddb5e 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteUnionProcessController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/site/SiteUnionProcessController.java @@ -84,7 +84,7 @@ public class SiteUnionProcessController { CndPlus cnd = CndPlus.create(); cnd.and("asr.reserve_state", "true".equals(isAudit) ? ">" : "false".equals(isAudit) ? "=" : ">=", 6098); cnd.and("asr.isRetire","=",0); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { cnd.and("reserve_person_unionid", "=", Vi.getUnionId()); } if (Strings.isNotBlank(time)) { diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionApplyUserController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionApplyUserController.java index c2bda67..bc7b811 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionApplyUserController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionApplyUserController.java @@ -101,7 +101,7 @@ public class ActivityUnionApplyUserController { cnd.where().andLike("tissue.name", name); } - if (!ShiroUtil.hasAnyRoles("A06,sysadmin")) { + if (!ShiroUtil.hasAnyRoles("A06,sysadmin,SCHOOL_UNION_SPORTS_ADMIN")) { cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=tissue.groupId AND userId='%s') >0".formatted(ShiroUtil.getUserId()))); } diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionManageController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionManageController.java index cc048b8..162aa4f 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionManageController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionManageController.java @@ -124,7 +124,7 @@ public class ActivityUnionManageController { Sql sql = Sqls.create(""" SELECT id userId,username userName,loginname loginName,sex,mobile,unitname unitName,unionname unionName FROM `user` $condition """); - if (!ShiroUtil.hasRole("sysadmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,SCHOOL_UNION_SPORTS_ADMIN")) { if (activity_type == 40002) { cnd.and("unionId", "=", Vi.getUnionId()); } else if (activity_type == 40003) { @@ -158,7 +158,7 @@ public class ActivityUnionManageController { tissue.setUserId(ShiroUtil.getUserId()); } tissue.setApplyTime(DateUtil.getDate()); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { tissue.setState(1); } else { tissue.setState(3); diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionUserStatisticsController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionUserStatisticsController.java index 9ea113b..7e4d581 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionUserStatisticsController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionUserStatisticsController.java @@ -86,7 +86,7 @@ public class ActivityUnionUserStatisticsController { Cnd cnd = Cnd.NEW(); cnd.and("atp.tissueId", "=", activityId); cnd.andEX("u.unionId", "=", unionId); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SCHOOL_UNION_SPORTS_ADMIN")) { if (!tissue.getUserId().equals(ShiroUtil.getUserId())) { if (type == 40002) { cnd.and("unionId", "=", Vi.getUnionId()); diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionYearSummaryController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionYearSummaryController.java index 1f41090..620daf0 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionYearSummaryController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/union/ActivityUnionYearSummaryController.java @@ -110,13 +110,13 @@ public class ActivityUnionYearSummaryController { str += " left join `user` u on su.userId = u.id"; if ("2".equals(summaryFrom)) { str += " left join sys_union un on su.tissueId = un.id"; - if (!ShiroUtil.hasAnyRoles(new String[]{"sysadmin", "A06"})) { + if (!ShiroUtil.hasAnyRoles(new String[]{"sysadmin", "A06", "SCHOOL_UNION_SPORTS_ADMIN"})) { cnd.and("su.tissueId", "=", Vi.getUnionId()); } } if ("3".equals(summaryFrom)) { str += " left join sys_club club on su.tissueId = club.id"; - if (!ShiroUtil.hasAnyRoles(new String[]{"sysadmin", "A06"})) { + if (!ShiroUtil.hasAnyRoles(new String[]{"sysadmin", "A06", "SCHOOL_UNION_SPORTS_ADMIN"})) { cnd.and("su.tissueId", "=", vi.getClubId()); } } diff --git a/src/main/java/io/v/nutz/zhgh/activity/models/ActivityMobileSignUpParam.java b/src/main/java/io/v/nutz/zhgh/activity/models/ActivityMobileSignUpParam.java index 42b3041..572ed74 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/models/ActivityMobileSignUpParam.java +++ b/src/main/java/io/v/nutz/zhgh/activity/models/ActivityMobileSignUpParam.java @@ -2,6 +2,7 @@ package io.v.nutz.zhgh.activity.models; import lombok.Data; +import java.io.Serializable; import java.util.List; @Data @@ -17,6 +18,14 @@ public class ActivityMobileSignUpParam { private List userIds; + private List teamUserInfos; + private String applyUserSign; + + @Data + public static class teamUserInfo implements Serializable { + private String userId; + private String mobile; + } } diff --git a/src/main/java/io/v/nutz/zhgh/activity/services/impl/ActivityPlanServiceImpl.java b/src/main/java/io/v/nutz/zhgh/activity/services/impl/ActivityPlanServiceImpl.java index 16409b8..aadfe2f 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/services/impl/ActivityPlanServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/activity/services/impl/ActivityPlanServiceImpl.java @@ -53,7 +53,7 @@ public class ActivityPlanServiceImpl extends ViServiceImpl impleme cnd.where().andLike("ap.name", name); } - if (!ShiroUtil.hasAnyRoles("sysadmin,H10,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,H10,A06,SCHOOL_UNION_SPORTS_ADMIN")) { if (ShiroUtil.hasRole("H04")) { cnd.and("tissueId", "in", vi.getMangeUnionStr()); } else if (ShiroUtil.hasRole("club01")) { diff --git a/src/main/java/io/v/nutz/zhgh/activity/services/impl/ActivityTissueServiceImpl.java b/src/main/java/io/v/nutz/zhgh/activity/services/impl/ActivityTissueServiceImpl.java index ac3b80f..5999d11 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/services/impl/ActivityTissueServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/activity/services/impl/ActivityTissueServiceImpl.java @@ -76,7 +76,7 @@ public class ActivityTissueServiceImpl extends ViServiceImpl imp cnd.where().andLike("tissue.name", name); } - if (!ShiroUtil.hasAnyRoles("sysadmin,H10,A06")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,H10,A06,SCHOOL_UNION_SPORTS_ADMIN")) { cnd.and("tissue.userId", "=", ShiroUtil.getUserId()); /* if (ShiroUtil.hasRole("H04")) { cnd.and("tissue.unionId", "in", vi.getMangeUnionStr()); diff --git a/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/mobileActivityListController.java b/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/mobileActivityListController.java index fb45628..4ac43c0 100644 --- a/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/mobileActivityListController.java +++ b/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/mobileActivityListController.java @@ -66,6 +66,7 @@ public class mobileActivityListController { @Param(value = "eventId", required = false) String eventId, @Param(value = "applyUserSign", required = false) String applyUserSign, @Param(value = "teamId", required = false) String teamId, + @Param(value = "mobile", required = false) String mobile, @Param(value = "teamName", required = false) String teamName) { User user = baseService.dao().fetch(User.class, Cnd.where("id", "=", ShiroUtil.getUserId())); @@ -84,7 +85,7 @@ public class mobileActivityListController { schoolApply.setTeam(teamName); schoolApply.setApplyUser(user.getId()); schoolApply.setUserId(user.getId()); - schoolApply.setMobile(user.getMobile()); + schoolApply.setMobile(mobile); schoolApply.setSex(user.getSex()); schoolApply.setUnitId(user.getUnitid()); schoolApply.setUnionId(user.getUnionid()); @@ -268,7 +269,7 @@ public class mobileActivityListController { @ViReturn @RequiresAuthentication public Object doTeamSignUp(ActivityMobileSignUpParam param) { - mobileActivityApplyService.doTeamSignUp(param.getActivityId(), param.getUserIds(), param.getEventId(), param.getTeamId(), param.getTeamName(),param.getApplyUserSign()); + mobileActivityApplyService.doTeamSignUp(param.getActivityId(), param.getUserIds(), param.getEventId(), param.getTeamId(), param.getTeamName(),param.getApplyUserSign(), param.getTeamUserInfos()); return null; } diff --git a/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/service/MobileActivityApplyService.java b/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/service/MobileActivityApplyService.java index 03ae152..340d8a9 100644 --- a/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/service/MobileActivityApplyService.java +++ b/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/service/MobileActivityApplyService.java @@ -1,11 +1,24 @@ package io.v.nutz.zhgh.mobile.activity.Sports.service; import io.v.nutz.base.service.BaseService; +import io.v.nutz.zhgh.activity.models.ActivityMobileSignUpParam; import io.v.nutz.zhgh.activity.models.ActivitySchoolApply; import java.util.List; public interface MobileActivityApplyService extends BaseService { void doDeleteApply(String activityId, String eventId); - void doTeamSignUp(String activityId, List userIds, String eventId, String teamId, String teamName,String applyUserSign); + + /** + * 组队报名 + * @param activityId + * @param userIds + * @param eventId + * @param teamId + * @param teamName + * @param applyUserSign + * @param teamUserInfos + */ + void doTeamSignUp(String activityId, List userIds, String eventId, String teamId, String teamName, + String applyUserSign, List teamUserInfos); } diff --git a/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/service/impl/MobileActivityApplyServiceImpl.java b/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/service/impl/MobileActivityApplyServiceImpl.java index 5356d00..f34fb12 100644 --- a/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/service/impl/MobileActivityApplyServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/mobile/activity/Sports/service/impl/MobileActivityApplyServiceImpl.java @@ -7,19 +7,14 @@ import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.activity.models.*; import io.v.nutz.zhgh.mobile.activity.Sports.service.MobileActivityApplyService; import lombok.extern.slf4j.Slf4j; -import org.apache.shiro.web.filter.mgt.DefaultFilter; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; -import org.nutz.dao.Sqls; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Lang; -import org.nutz.lang.util.NutMap; import java.util.ArrayList; import java.util.List; -import static org.apache.shiro.web.filter.mgt.DefaultFilter.user; - /** * @ClassName ActivitySchoolApplyServiceImpl * @Description TODO @@ -39,16 +34,24 @@ public class MobileActivityApplyServiceImpl extends BaseServiceImpl userIds, String eventId, String teamId, String teamName, String applyUserSign) { + public void doTeamSignUp(String activityId, List userIds, String eventId, String teamId, + String teamName, String applyUserSign, List teamUserInfos) { List schoolApplyArrayList = new ArrayList<>(); - userIds.forEach(i -> { - ActivitySchoolApply schoolApply = getApply(activityId, eventId, i, teamId, teamName, applyUserSign); + +// userIds.forEach(i -> { +// ActivitySchoolApply schoolApply = getApply(activityId, eventId, i, teamId, teamName, applyUserSign); +// schoolApplyArrayList.add(schoolApply); +// }); + + teamUserInfos.forEach( v -> { + ActivitySchoolApply schoolApply = getApply(activityId, eventId, v.getUserId(), teamId, teamName, applyUserSign, v.getMobile()); schoolApplyArrayList.add(schoolApply); }); + insert(schoolApplyArrayList); } - public ActivitySchoolApply getApply(String activityId, String eventId, String userId, String teamId, String teamName, String applyUserSign) { + public ActivitySchoolApply getApply(String activityId, String eventId, String userId, String teamId, String teamName, String applyUserSign, String mobile) { 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())); @@ -70,7 +73,7 @@ public class MobileActivityApplyServiceImpl extends BaseServiceImpl
- +
- - - + + +
@@ -51,20 +45,16 @@ layout("/mobile/platform.html"){ mode="closeable" text="自己报名的项目如要修改请点击取消报名后再重新报名,若其他人帮助报名则联系报名人取消!" > - +
- {{ o.allName }} -
+
待审核 已成功报名 审核不通过
- @@ -106,9 +96,7 @@ layout("/mobile/platform.html"){ - - {{ o.restrictTotalTeam }}队 - + {{ o.restrictTotalTeam }}队 @@ -116,16 +104,11 @@ layout("/mobile/platform.html"){ 每队可报人数: {{ o.athletesMaxNum }}人 - {{ - o.athletesMaxNum * o.restrictTotalTeam - }}人 - {{ - o.athletesMaxNum - }}人 - {{ - (o.restrictGirlNum ? o.restrictGirlNum : 0) + (o.restrictBoyNum ? o.restrictBoyNum : 0) - }}人 + {{ o.athletesMaxNum * o.restrictTotalTeam }}人 + {{ o.athletesMaxNum }}人 + + {{ (o.restrictGirlNum ? o.restrictGirlNum : 0) + (o.restrictBoyNum ? o.restrictBoyNum : 0) }}人 + 暂无 @@ -142,18 +125,13 @@ layout("/mobile/platform.html"){ v-else-if="o.totalApplyNum>0&&o.applyType===3">{{ o.totalApplyNum }}人 0人--> {{o.totalApplyNum}} - - + 已报名人员: - {{ - o.userApplyNames - }} + {{ o.userApplyNames }} 未报名 @@ -161,19 +139,23 @@ layout("/mobile/platform.html"){
- - - + + + &&o.isSign&&!o.applyUserSign" + > 签 字
@@ -183,184 +165,148 @@ layout("/mobile/platform.html"){
- -
- 本人信息 -
+ +
本人信息
- - + + - - + + +
-