diff --git a/src/main/java/com/sqx/modules/ext/controller/AppExtSysController.java b/src/main/java/com/sqx/modules/ext/controller/AppExtSysController.java new file mode 100644 index 00000000..a7371e9d --- /dev/null +++ b/src/main/java/com/sqx/modules/ext/controller/AppExtSysController.java @@ -0,0 +1,31 @@ +package com.sqx.modules.ext.controller; + +import cn.hutool.core.exceptions.ValidateException; +import com.sqx.common.utils.Result; +import com.sqx.modules.ext.param.InviteFriendConfigParam; +import com.sqx.modules.ext.service.ExtSysService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * 扩展功能控制层 + * @author tankaikai + * @since 2025-03-28 09:32 + */ +@RestController +@Api(value = "APP扩展功能", tags = {"APP扩展功能"}) +@RequestMapping("/app/ext/sys") +public class AppExtSysController { + + @Autowired + private ExtSysService extSysService; + + @GetMapping("/invite/friend/config/get") + @ApiOperation("获取邀请好友配置信息") + public Result getInviteFriendConfig(){ + InviteFriendConfigParam data = extSysService.getInviteFriendConfig(); + return Result.success().put("data", data); + } +} diff --git a/src/main/java/com/sqx/modules/ext/controller/ExtSysController.java b/src/main/java/com/sqx/modules/ext/controller/ExtSysController.java index 1deaf3bd..8aa33b54 100644 --- a/src/main/java/com/sqx/modules/ext/controller/ExtSysController.java +++ b/src/main/java/com/sqx/modules/ext/controller/ExtSysController.java @@ -1,7 +1,13 @@ package com.sqx.modules.ext.controller; +import cn.hutool.core.convert.Convert; import cn.hutool.core.exceptions.ValidateException; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.sqx.common.utils.PageUtils; import com.sqx.common.utils.Result; +import com.sqx.modules.app.entity.App; +import com.sqx.modules.app.entity.VipDetails; import com.sqx.modules.coupon.entity.Coupon; import com.sqx.modules.ext.param.InviteFriendConfigParam; import com.sqx.modules.ext.service.ExtSysService; @@ -11,15 +17,17 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.ws.rs.GET; +import java.util.List; /** * 扩展功能控制层 + * * @author tankaikai * @since 2025-03-28 09:32 */ @RestController -@Api(value = "扩展功能", tags = {"扩展功能"}) -@RequestMapping(value = {"/ext/sys","/app/ext/sys"}) +@Api(value = "ADMIN扩展功能", tags = {"ADMIN扩展功能"}) +@RequestMapping("/ext/sys") public class ExtSysController { @Autowired @@ -27,10 +35,10 @@ public class ExtSysController { @PostMapping("/invite/friend/config/save") @ApiOperation("保存邀请好友配置信息") - public Result saveInviteFriendConfig(@RequestBody InviteFriendConfigParam param){ + public Result saveInviteFriendConfig(@RequestBody InviteFriendConfigParam param) { try { extSysService.saveInviteFriendConfig(param); - }catch (ValidateException e){ + } catch (ValidateException e) { return Result.error(e.getMessage()); } return Result.success(); @@ -38,8 +46,29 @@ public class ExtSysController { @GetMapping("/invite/friend/config/get") @ApiOperation("获取邀请好友配置信息") - public Result getInviteFriendConfig(){ + public Result getInviteFriendConfig() { InviteFriendConfigParam data = extSysService.getInviteFriendConfig(); return Result.success().put("data", data); } + + @GetMapping("/invite/friend/award/page") + @ApiOperation("邀请好友奖励分页") + public Result getInviteFriendAwardPage(Integer page, Integer limit, String keywords) { + PageUtils data = extSysService.queryInviteFriendRecord(page, limit, keywords); + return Result.success().put("data", data); + } + + @GetMapping("/invite/friend/signIn/page") + @ApiOperation("邀请好友奖励-签到人数分页") + public Result getInviteFriendSignInPage(Integer page, Integer limit, String userId) { + PageUtils data = extSysService.queryInviteSignInRecord(page, limit, Convert.toLong(userId)); + return Result.success().put("data", data); + } + + @GetMapping("/invite/friend/award/detail/page") + @ApiOperation("邀请好友奖励详情分页") + public Result getInviteFriendAwardDetailPage(Integer page, Integer limit, String userId) { + PageUtils data = extSysService.queryInviteAwardDetailRecord(page, limit, Convert.toLong(userId)); + return Result.success().put("data", data); + } } diff --git a/src/main/java/com/sqx/modules/ext/dao/ExtSysDao.java b/src/main/java/com/sqx/modules/ext/dao/ExtSysDao.java new file mode 100644 index 00000000..11c261af --- /dev/null +++ b/src/main/java/com/sqx/modules/ext/dao/ExtSysDao.java @@ -0,0 +1,23 @@ +package com.sqx.modules.ext.dao; + +import com.sqx.modules.ext.dto.InviteAwardDTO; +import com.sqx.modules.ext.dto.InviteFriendDTO; +import com.sqx.modules.ext.dto.SignInNumDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 扩展系统数据访问层 + * @author tankaikai + * @since 2025-03-28 10:39 + */ +@Mapper +public interface ExtSysDao { + List findInviteFriendList(@Param("keywords") String keywords); + + List findInviteSignInList(@Param("userId") Long userId); + + List findInviteAwardDetailList(@Param("userId") Long userId); +} diff --git a/src/main/java/com/sqx/modules/ext/dto/InviteAwardDTO.java b/src/main/java/com/sqx/modules/ext/dto/InviteAwardDTO.java new file mode 100644 index 00000000..cdecfa6f --- /dev/null +++ b/src/main/java/com/sqx/modules/ext/dto/InviteAwardDTO.java @@ -0,0 +1,41 @@ +package com.sqx.modules.ext.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 邀请奖励明细 + * + * @author tankaikai + * @since 2025-03-28 10:07 + */ +@Data +public class InviteAwardDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 奖励id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long userId; + /** + * 发放金额 + */ + private BigDecimal amount; + /** + * 有效邀请人 + */ + private String userPhone; + /** + * 发放时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; +} diff --git a/src/main/java/com/sqx/modules/ext/dto/InviteFriendDTO.java b/src/main/java/com/sqx/modules/ext/dto/InviteFriendDTO.java new file mode 100644 index 00000000..5b9ae6e0 --- /dev/null +++ b/src/main/java/com/sqx/modules/ext/dto/InviteFriendDTO.java @@ -0,0 +1,50 @@ +package com.sqx.modules.ext.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 邀请好友DTO + * + * @author tankaikai + * @since 2025-03-28 09:56 + */ +@Data +public class InviteFriendDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 用户id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long userId; + + /** + * 用户名称 + */ + private String userName; + + /** + * 手机号 + */ + private String phone; + + /** + * 头像地址 + */ + private String avatar; + + /** + * 签到人数 + */ + private Integer signInNum; + /** + * 已发放奖励金额 + */ + private BigDecimal awardAmount; +} diff --git a/src/main/java/com/sqx/modules/ext/dto/SignInNumDTO.java b/src/main/java/com/sqx/modules/ext/dto/SignInNumDTO.java new file mode 100644 index 00000000..535c83ae --- /dev/null +++ b/src/main/java/com/sqx/modules/ext/dto/SignInNumDTO.java @@ -0,0 +1,73 @@ +package com.sqx.modules.ext.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 签到人数DTO + * + * @author tankaikai + * @since 2025-03-28 10:24 + */ +@Data +public class SignInNumDTO implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 签到账号ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long userId; + /** + * 用户名称 + */ + private String userName; + + /** + * 手机号 + */ + private String phone; + + /** + * 真实姓名 + */ + private String realName; + /** + * 身份证号 + */ + private String idCardNo; + /** + * 银行名称 + */ + private String bankName; + /** + * 银行卡号 + */ + private String bankCardNo; + /** + * 银行预留手机号 + */ + private String mobile; + /** + * 省 + */ + private String province; + /** + * 市 + */ + private String city; + /** + * 开户行 + */ + private String bankBranch; + /** + * 发放时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; +} diff --git a/src/main/java/com/sqx/modules/ext/service/ExtSysService.java b/src/main/java/com/sqx/modules/ext/service/ExtSysService.java index 060f9566..45e118df 100644 --- a/src/main/java/com/sqx/modules/ext/service/ExtSysService.java +++ b/src/main/java/com/sqx/modules/ext/service/ExtSysService.java @@ -1,5 +1,6 @@ package com.sqx.modules.ext.service; +import com.sqx.common.utils.PageUtils; import com.sqx.modules.ext.param.InviteFriendConfigParam; /** @@ -12,4 +13,10 @@ public interface ExtSysService { void saveInviteFriendConfig(InviteFriendConfigParam param); InviteFriendConfigParam getInviteFriendConfig(); + + PageUtils queryInviteFriendRecord(Integer page, Integer limit, String keywords); + + PageUtils queryInviteSignInRecord(Integer page, Integer limit, Long userId); + + PageUtils queryInviteAwardDetailRecord(Integer page, Integer limit, Long userId); } diff --git a/src/main/java/com/sqx/modules/ext/service/impl/ExtSysServiceImpl.java b/src/main/java/com/sqx/modules/ext/service/impl/ExtSysServiceImpl.java index d3efcb72..63ccfe21 100644 --- a/src/main/java/com/sqx/modules/ext/service/impl/ExtSysServiceImpl.java +++ b/src/main/java/com/sqx/modules/ext/service/impl/ExtSysServiceImpl.java @@ -4,14 +4,27 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.exceptions.ValidateException; import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.sqx.common.utils.PageUtils; +import com.sqx.common.utils.Result; +import com.sqx.modules.app.entity.UserEntity; +import com.sqx.modules.app.entity.VipDetails; import com.sqx.modules.common.dao.CommonInfoDao; import com.sqx.modules.common.entity.CommonInfo; import com.sqx.modules.common.service.CommonInfoService; +import com.sqx.modules.ext.dao.ExtSysDao; +import com.sqx.modules.ext.dto.InviteAwardDTO; +import com.sqx.modules.ext.dto.InviteFriendDTO; +import com.sqx.modules.ext.dto.SignInNumDTO; import com.sqx.modules.ext.param.InviteFriendConfigParam; import com.sqx.modules.ext.service.ExtSysService; +import com.sqx.modules.utils.TimeCompleteUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * 扩展功能服务实现类 * @@ -22,6 +35,8 @@ import org.springframework.stereotype.Service; public class ExtSysServiceImpl implements ExtSysService { @Autowired private CommonInfoDao commonInfoDao; + @Autowired + private ExtSysDao extSysDao; @Override public void saveInviteFriendConfig(InviteFriendConfigParam param) { @@ -63,4 +78,28 @@ public class ExtSysServiceImpl implements ExtSysService { data.setImageUrl(commonInfo.getValue()); return data; } + + @Override + public PageUtils queryInviteFriendRecord(Integer page, Integer limit, String keywords) { + PageHelper.startPage(page,limit); + List list = extSysDao.findInviteFriendList(keywords); + PageInfo pageInfo = new PageInfo<>(list); + return PageUtils.page(pageInfo); + } + + @Override + public PageUtils queryInviteSignInRecord(Integer page, Integer limit, Long userId) { + PageHelper.startPage(page,limit); + List list = extSysDao.findInviteSignInList(userId); + PageInfo pageInfo = new PageInfo<>(list); + return PageUtils.page(pageInfo); + } + + @Override + public PageUtils queryInviteAwardDetailRecord(Integer page, Integer limit, Long userId) { + PageHelper.startPage(page,limit); + List list = extSysDao.findInviteAwardDetailList(userId); + PageInfo pageInfo = new PageInfo<>(list); + return PageUtils.page(pageInfo); + } } diff --git a/src/main/resources/mapper/ext/ExtSysDao.xml b/src/main/resources/mapper/ext/ExtSysDao.xml new file mode 100644 index 00000000..8c8b6c1f --- /dev/null +++ b/src/main/resources/mapper/ext/ExtSysDao.xml @@ -0,0 +1,64 @@ + + + + + + + + \ No newline at end of file