commit
This commit is contained in:
+107
@@ -0,0 +1,107 @@
|
||||
package com.budwk.app.client.module.activity.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.budwk.app.base.page.PageForm;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.client.module.activity.service.ClientDynamicService;
|
||||
import com.budwk.app.module.activity.models.ActDynamic;
|
||||
import com.budwk.app.module.activity.models.ActDynamicPraise;
|
||||
import com.budwk.app.web.commons.auth.satoken.StpClientUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.adaptor.JsonAdaptor;
|
||||
import org.nutz.mvc.annotation.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
/**
|
||||
* @ClassName ClientDynamicController
|
||||
* @Author JyuHsin
|
||||
* @Date 2025/4/30 14:16
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/client/activity/dynamic")
|
||||
public class ClientDynamicController {
|
||||
|
||||
@Inject
|
||||
private ClientDynamicService dynamicService;
|
||||
|
||||
@At("/list")
|
||||
@AdaptBy(type = JsonAdaptor.class)
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
public Result list(@Param("pageForm") PageForm pageForm, @Param("activityId") Long activityId) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
ad.*,
|
||||
cu.userName,
|
||||
cu.sex,
|
||||
(select count(1) from act_dynamic_praise where dynamicId = ad.id) as praiseCount,
|
||||
(select count(1) from act_dynamic_praise where dynamicId = ad.id and userId = '') as selfPraiseCount
|
||||
FROM
|
||||
`act_dynamic` ad
|
||||
LEFT JOIN client_user cu ON ad.userId = cu.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("ad.activityId", "=", activityId);
|
||||
cnd.desc("ad.publishTime");
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = dynamicService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At("/onHandle")
|
||||
@AdaptBy(type = JsonAdaptor.class)
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
public Result onHandle(ActDynamic actDynamic) {
|
||||
actDynamic.setUserId(StpClientUtil.STP.getLoginIdAsLong());
|
||||
actDynamic.setPublishTime(DateUtil.now());
|
||||
dynamicService.insert(actDynamic);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At("/praise/?")
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
public Result praise(Long id) {
|
||||
int count = dynamicService.dao().count(
|
||||
ActDynamicPraise.class,
|
||||
Cnd.where("dynamicId", "=", id).and("userId", "=", StpClientUtil.STP.getLoginIdAsLong())
|
||||
);
|
||||
if(count > 0) {
|
||||
dynamicService.dao().clear(
|
||||
ActDynamicPraise.class,
|
||||
Cnd.where("dynamicId", "=", id).and("userId", "=", StpClientUtil.STP.getLoginIdAsLong())
|
||||
);
|
||||
} else {
|
||||
ActDynamicPraise praise = new ActDynamicPraise();
|
||||
praise.setUserId(StpClientUtil.STP.getLoginIdAsLong());
|
||||
praise.setDynamicId(id);
|
||||
praise.setPraiseTime(DateUtil.now());
|
||||
dynamicService.dao().insert(praise);
|
||||
}
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At("/onDelete/?")
|
||||
@SaCheckLogin(type = StpClientUtil.TYPE)
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result onDelete(Long id) {
|
||||
dynamicService.delete(id);
|
||||
dynamicService.dao().clear(ActDynamicPraise.class, Cnd.where("dynamicId", "=", id));
|
||||
return Result.success();
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.budwk.app.client.module.activity.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.module.activity.models.ActDynamic;
|
||||
|
||||
/**
|
||||
* @ClassName ActHighLightsService
|
||||
* @Author JyuHsin
|
||||
* @Date 2025/4/30 14:17
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
*/
|
||||
public interface ClientDynamicService extends BaseService<ActDynamic> {
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
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.ClientDynamicService;
|
||||
import com.budwk.app.module.activity.models.ActDynamic;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @ClassName ActHighLightsServiceImpl
|
||||
* @Author JyuHsin
|
||||
* @Date 2025/4/30 14:17
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class ClientDynamicServiceImpl extends BaseServiceImpl<ActDynamic> implements ClientDynamicService {
|
||||
|
||||
public ClientDynamicServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.budwk.app.module.activity.models;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.json.JSONObject;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName ActDynamic
|
||||
* @Author JyuHsin
|
||||
* @Date 2025/4/30 14:13
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
*/
|
||||
@Data
|
||||
@Comment("高光时刻")
|
||||
@Table("act_dynamic")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
public class ActDynamic extends BaseModel {
|
||||
|
||||
@Id
|
||||
@Comment("ID")
|
||||
private Long id;
|
||||
|
||||
@Column
|
||||
@Comment("活动ID")
|
||||
@ColDefine(customType = "bigint")
|
||||
private Long activityId;
|
||||
|
||||
@Column
|
||||
@Comment("用户id")
|
||||
@ColDefine(customType = "bigint")
|
||||
private Long userId;
|
||||
|
||||
@Column
|
||||
@Comment("发布内容")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 500)
|
||||
private String content;
|
||||
|
||||
@Comment("发布时间")
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
private String publishTime;
|
||||
|
||||
@Comment("发布图片")
|
||||
@Column
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<String> files;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.budwk.app.module.activity.models;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
|
||||
/**
|
||||
* @ClassName ActDynamicPraise
|
||||
* @Author JyuHsin
|
||||
* @Date 2025/4/30 14:27
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
*/
|
||||
@Data
|
||||
@Comment("赞")
|
||||
@Table("act_dynamic_praise")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
public class ActDynamicPraise extends BaseModel {
|
||||
|
||||
@Id
|
||||
@Comment("ID")
|
||||
private Long id;
|
||||
|
||||
@Column
|
||||
@Comment("精彩瞬间id")
|
||||
@ColDefine(customType = "bigint")
|
||||
private Long dynamicId;
|
||||
|
||||
@Column
|
||||
@Comment("用户id")
|
||||
@ColDefine(customType = "bigint")
|
||||
private Long userId;
|
||||
|
||||
@Comment("点赞时间")
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
private String praiseTime;
|
||||
}
|
||||
Reference in New Issue
Block a user