品牌活动

This commit is contained in:
Paidax
2025-05-27 17:29:48 +08:00
parent 4818e5bcfe
commit d2412c998c
6 changed files with 603 additions and 374 deletions
@@ -6,6 +6,7 @@ import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.sys.models.Sys_dict;
import io.v.nutz.sys.services.SysDictService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpActivity;
import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpActivityCourse;
import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpType;
@@ -83,6 +84,7 @@ public class TrainSignUpActivityApplyController {
Sql sql = Sqls.create("""
SELECT
tsuc.id,
tsuc.assort,
tsuc.activityId,
tsuc.courseName,
tsuc.coursePeopleNumber,
@@ -99,6 +101,7 @@ public class TrainSignUpActivityApplyController {
tsuc.isReceiveGift,
tsuc.giftType,
tsuc.reserveMode,
tsuc.remarks,
type.lxname
FROM
`train_sign_up_course` tsuc
@@ -108,22 +111,27 @@ public class TrainSignUpActivityApplyController {
CndPlus cnd = CndPlus.create();
cnd.andEX("type.id","=",courseTypeId);
cnd.and("tsuc.activityId","=",activityId);
cnd.asc("type.code");
cnd.asc("tsuc.orderNum");
sql.setCondition(cnd);
Pagination pagination = trainSignUpActivityService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
List<NutMap> courseList = pagination.getList();
List<TrainSignUpActivityCourse> activityCourseList = trainSignUpActivityService.dao().query(TrainSignUpActivityCourse.class, Cnd.where("activityId", "=", activityId));
Map<String, List<TrainSignUpActivityCourse>> map = activityCourseList.stream().collect(Collectors.groupingBy(TrainSignUpActivityCourse::getCourseId));
courseList.forEach(c -> {
List<TrainSignUpActivityCourse> list = map.get(c.getString("id"));
c.put("courseList", list);
TrainSignUpType type = trainSignUpActivityService.dao().fetch(TrainSignUpType.class, c.getString("courseType"));
// trainSignUpActivityService.dao().fetchLinks(c, "^(courseTimeList)$", Cnd.NEW().asc("courseStartTime"));
//已报人数
AtomicInteger hasRegisterNum = new AtomicInteger();
List<TrainSignUpUser> signUpUsers = trainSignUpActivityService.dao().query(TrainSignUpUser.class, Cnd.where("courseId", "=", c.getString("id")));
signUpUsers.forEach(item -> {
if(type.getSelfAddFamily()) {
hasRegisterNum.getAndIncrement();
}
hasRegisterNum.getAndIncrement();
if(type.getIsBringFamily() && type.getIsAddFamily()) {
List<NutMap> mapList = item.getMobileColumnsValue();
if(Lang.isNotEmpty(mapList)) {
@@ -136,7 +144,7 @@ public class TrainSignUpActivityApplyController {
});
c.put("hasRegisterNum",hasRegisterNum.get());
//当前用户是否报过
c.put("isSign",trainSignUpActivityService.isSignCourseByUser(c.getString("id"), (String) io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("id")));
c.put("isSign",trainSignUpActivityService.isSignCourseByUser(c.getString("id"), (String) ShiroUtil.getPrincipalProperty("id")));
});
return pagination;
}
@@ -98,7 +98,7 @@ public class MTrainSignUpActivityController {
@Ok("json:full")
@POST
@RequiresAuthentication
public Object doSignUp(TrainSignUpUser trainSignUpUser) {
public synchronized Object doSignUp(TrainSignUpUser trainSignUpUser) {
try {
lock.lock();
boolean courseByUser = trainSignUpActivityService.isSignCourseByUser(trainSignUpUser.getCourseId(), ShiroUtil.getPlatformUid());
@@ -216,7 +216,7 @@ public class MTrainSignUpActivityController {
@POST
@ViReturn
@RequiresAuthentication
public Object validateSignUp(String courseId,
public synchronized Object validateSignUp(String courseId,
@Param(value = "cndId", required = false) String cndId,
@Param(value = "currentFamilyNumber", required = false) Integer currentFamilyNumber) {
try {
@@ -137,4 +137,11 @@ public class TrainSignUpCourse extends BaseModel implements Serializable {
@Comment("分类标识")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String assort;
@Column
@Comment("详细内容备注")
@ColDefine(type = ColType.TEXT)
private String remarks;
private String courseTimeName;
}