commit
This commit is contained in:
+58
-10
@@ -4,15 +4,21 @@ import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.client.module.activity.service.ClientActivityService;
|
||||
import com.budwk.app.module.activity.models.ActGroup;
|
||||
import com.budwk.app.module.activity.models.ActGroupUser;
|
||||
import com.budwk.app.module.activity.models.ActUser;
|
||||
import com.budwk.app.module.activity.models.ActivityItem;
|
||||
import com.budwk.app.web.commons.auth.satoken.StpClientUtil;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.adaptor.JsonAdaptor;
|
||||
import org.nutz.mvc.annotation.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
@@ -37,11 +43,12 @@ public class ClientGroupController {
|
||||
|
||||
/**
|
||||
* 查询我的活动
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@At("/list-act")
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
public Result listAct(){
|
||||
public Result listAct() {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
t1.id,
|
||||
@@ -64,19 +71,60 @@ public class ClientGroupController {
|
||||
|
||||
@At("/info/?")
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
public Result info(Long activityId){
|
||||
ActGroup group = dao.fetch(ActGroup.class, Cnd.where(ActGroup::getActivityId, "=", activityId));
|
||||
public Result info(Long activityId) {
|
||||
Sql sql = Sqls.create("select * from act_group where activityId=@activityId").setParam("activityId", activityId);
|
||||
sql.setCallback(Sqls.callback.map());
|
||||
NutMap map = (NutMap) dao.execute(sql).getResult();
|
||||
Sql sqlGroupUser = Sqls.create("""
|
||||
SELECT
|
||||
t1.*,
|
||||
t2.userName,
|
||||
t2.unitName,
|
||||
t2.sex
|
||||
FROM
|
||||
`act_group_user` t1
|
||||
LEFT JOIN act_user t2 ON t1.userId = t2.userId
|
||||
WHERE t1.groupId=@groupId
|
||||
""").setParam("groupId", map.getString("id"));
|
||||
List<NutMap> groupUsers = clientActivityService.listMap(sqlGroupUser);
|
||||
map.put("groupUsers", groupUsers);
|
||||
NutMap leader = groupUsers.stream().filter(nutMap -> nutMap.getBoolean("isLeader")).findFirst().orElse(null);
|
||||
map.put("isSelfLeader", "");
|
||||
if (Lang.isNotEmpty(leader)) {
|
||||
map.put("isSelfLeader", leader.getString("userId").equals(StpClientUtil.STP.getLoginIdAsString()));
|
||||
}
|
||||
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
|
||||
@At("/apply-leader/?")
|
||||
@AdaptBy(type = JsonAdaptor.class)
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
public Result applyLeader(Long groupId) {
|
||||
clientActivityService.dao().update(ActGroupUser.class,
|
||||
Chain.make("isLeader", true),
|
||||
Cnd.where(ActGroupUser::getGroupId, "=", groupId)
|
||||
.and(ActGroupUser::getUserId, "=", StpClientUtil.STP.getLoginIdAsLong()));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询团队成员
|
||||
*/
|
||||
@At("/list-team-user/?")
|
||||
@At("/list-team/?")
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
public Result listTeamUser(Long activityId){
|
||||
List<ActUser> list = dao.query(ActUser.class, Cnd.where(ActUser::getActivityId, "=", activityId).and(ActUser::getIsSignIn, "=", 1));
|
||||
public Result listTeam(Long activityId){
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
t1.*,
|
||||
COUNT( t2.id ) isSignUp
|
||||
FROM
|
||||
activity_item t1
|
||||
LEFT JOIN act_item_user t2 ON t1.id = t2.itemId
|
||||
WHERE
|
||||
t1.activityId = @activityId
|
||||
GROUP BY
|
||||
t1.id
|
||||
""").setParam("activityId",activityId);
|
||||
List<NutMap> list = clientActivityService.listMap(sql);
|
||||
return Result.success(list);
|
||||
}
|
||||
}
|
||||
|
||||
+35
-3
@@ -5,14 +5,18 @@ import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.client.module.activity.service.ClientItemService;
|
||||
import com.budwk.app.client.module.activity.vo.ClientActivitySignVO;
|
||||
import com.budwk.app.client.module.activity.vo.ClientItemSignUpVO;
|
||||
import com.budwk.app.module.activity.models.ActGroup;
|
||||
import com.budwk.app.module.activity.models.ActUser;
|
||||
import com.budwk.app.module.activity.models.ActivityItem;
|
||||
import com.budwk.app.module.activity.models.ActivityItemUser;
|
||||
import com.budwk.app.web.commons.auth.satoken.StpClientUtil;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.adaptor.JsonAdaptor;
|
||||
import org.nutz.mvc.annotation.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
@@ -41,6 +45,19 @@ public class ClientItemController {
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询出这个活动所有报名的人
|
||||
* @param activityId
|
||||
* @return
|
||||
*/
|
||||
@At("/list-apply-user/?")
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
public Result listApplyUser(String activityId){
|
||||
List<ActivityItemUser> userList = dao.query(ActivityItemUser.class, Cnd.where(ActivityItemUser::getActivityId, "=", activityId));
|
||||
return Result.success(userList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目列表
|
||||
*/
|
||||
@@ -56,8 +73,23 @@ public class ClientItemController {
|
||||
*/
|
||||
@At("/list-team-user/?")
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
public Result listTeamUser(Long activityId){
|
||||
List<ActUser> list = dao.query(ActUser.class, Cnd.where(ActUser::getActivityId, "=", activityId).and(ActUser::getIsSignIn, "=", 1));
|
||||
public Result listTeamUser(Long activityId) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
t1.groupId,
|
||||
t1.userId,
|
||||
t2.activityId,
|
||||
t3.userName,
|
||||
t3.unitName,
|
||||
t3.sex
|
||||
FROM
|
||||
`act_group_user` t1
|
||||
LEFT JOIN act_group t2 ON t2.id = t1.groupId
|
||||
LEFT JOIN act_user t3 ON t3.userId = t1.userId
|
||||
WHERE
|
||||
t2.activityId = @activityId
|
||||
""").setParam("activityId", activityId);
|
||||
List<NutMap> list = clientItemService.listMap(sql);
|
||||
return Result.success(list);
|
||||
}
|
||||
|
||||
@@ -66,7 +98,7 @@ public class ClientItemController {
|
||||
*/
|
||||
@At("/list-signup-user")
|
||||
@SaCheckLogin
|
||||
public Result listSignUpUser(Long activityId,Long itemId) {
|
||||
public Result listSignUpUser(Long activityId, Long itemId) {
|
||||
List<ActivityItemUser> itemUsers = dao.query(ActivityItemUser.class, Cnd.where(ActivityItemUser::getActivityId, "=", activityId).and(ActivityItemUser::getItemId, "=", itemId));
|
||||
return Result.success(itemUsers);
|
||||
}
|
||||
|
||||
+12
-2
@@ -3,6 +3,7 @@ package com.budwk.app.client.module.activity.service.impl;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.client.module.activity.service.ClientItemService;
|
||||
import com.budwk.app.client.module.activity.vo.ClientItemSignUpVO;
|
||||
import com.budwk.app.module.activity.models.Activity;
|
||||
import com.budwk.app.module.activity.models.ActivityItemUser;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
@@ -10,6 +11,8 @@ import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@IocBean(args = {"refer:dao"})
|
||||
@@ -21,17 +24,24 @@ public class ClientItemServiceImpl extends BaseServiceImpl<ActivityItemUser> imp
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void signUp(ClientItemSignUpVO signVO) {
|
||||
Activity activity = dao().fetch(Activity.class, Cnd.where(Activity::getId, "=", signVO.getActivityId()));
|
||||
if (activity.getItemEndTime().isBefore(LocalDateTime.now())){
|
||||
throw new RuntimeException("项目报名已结束!");
|
||||
}
|
||||
// 删除掉之前的
|
||||
clear(Cnd.where(ActivityItemUser::getActivityId, "=", signVO.getActivityId())
|
||||
.and(ActivityItemUser::getGroupId, "=", signVO.getGroupId())
|
||||
.and(ActivityItemUser::getItemId, "=", signVO.getItemId())
|
||||
);
|
||||
|
||||
List<ActivityItemUser> userList = signVO.getUserList();
|
||||
for (ActivityItemUser itemUser : userList) {
|
||||
List<ActivityItemUser> userList = new ArrayList<>();
|
||||
for (Long userId : signVO.getUserList()) {
|
||||
ActivityItemUser itemUser = new ActivityItemUser();
|
||||
itemUser.setActivityId(signVO.getActivityId());
|
||||
itemUser.setItemId(signVO.getItemId());
|
||||
itemUser.setGroupId(signVO.getGroupId());
|
||||
itemUser.setUserId(userId);
|
||||
userList.add(itemUser);
|
||||
}
|
||||
insert(userList);
|
||||
}
|
||||
|
||||
+1
-1
@@ -14,6 +14,6 @@ public class ClientItemSignUpVO {
|
||||
|
||||
private Long groupId;
|
||||
|
||||
private List<ActivityItemUser> userList;
|
||||
private List<Long> userList;
|
||||
|
||||
}
|
||||
|
||||
@@ -50,6 +50,16 @@ public class Activity extends BaseModel {
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private LocalDateTime signEndTime;
|
||||
|
||||
@Comment("项目报名开始时间")
|
||||
@Column
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private LocalDateTime itemStartTime;
|
||||
|
||||
@Comment("项目报名结束时间")
|
||||
@Column
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private LocalDateTime itemEndTime;
|
||||
|
||||
@Comment("主办单位")
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 255)
|
||||
|
||||
@@ -6,7 +6,7 @@ const addOrUpdate = {
|
||||
<!-- <el-step title="项目信息" icon="el-icon-upload"></el-step>-->
|
||||
<!-- </el-steps>-->
|
||||
<!-- class="mt-3"-->
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="140px">
|
||||
<el-form-item label="标题" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入标题"></el-input>
|
||||
</el-form-item>
|
||||
@@ -43,6 +43,22 @@ const addOrUpdate = {
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目报名开始时间" prop="itemStartTime">
|
||||
<el-date-picker v-model="form.itemStartTime" type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="请选择项目报名开始时间"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目报名结束时间" prop="itemEndTime">
|
||||
<el-date-picker v-model="form.itemEndTime" type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="请选择项目报名结束时间"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="主办单位" prop="hostUnit">
|
||||
<el-input v-model="form.hostUnit" placeholder="请输入主办单位"></el-input>
|
||||
</el-form-item>
|
||||
@@ -95,6 +111,12 @@ const addOrUpdate = {
|
||||
signEndTime: [
|
||||
{required: true, message: '请选择报名结束时间', trigger: ['blur', 'change']}
|
||||
],
|
||||
itemStartTime: [
|
||||
{required: true, message: '请选择项目报名开始时间', trigger: ['blur', 'change']}
|
||||
],
|
||||
itemEndTime: [
|
||||
{required: true, message: '请选择项目报名结束时间', trigger: ['blur', 'change']}
|
||||
],
|
||||
hostUnit: [{required: true, message: '请输入主办单位', trigger: ['blur', 'change']}],
|
||||
coHostUnit: [{required: true, message: '请输入承办单位', trigger: ['blur', 'change']}],
|
||||
contact: [{required: true, message: '请输入联系人', trigger: ['blur', 'change']}],
|
||||
|
||||
Reference in New Issue
Block a user