From 3e02abec44a648f01174a4c3494a96ccb46a3b1a Mon Sep 17 00:00:00 2001
From: zqy <2522236926@qq.com>
Date: 星期二, 11 十一月 2025 21:39:20 +0800
Subject: [PATCH] 会员&充值相关模块
---
zhang-content/src/main/java/com/ruoyi/mapper/ZfApplicationMapper.java | 10 +
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 2
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 4
zhang-content/src/main/java/com/ruoyi/service/impl/ZfApplicationServiceImpl.java | 190 +++++++++++++++++++++++++++
zhang-content/src/main/java/com/ruoyi/service/ZfApplicationService.java | 27 +++
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java | 12 +
zhang-content/src/main/java/com/ruoyi/domain/ZfApplication.java | 50 +++++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfApplicationController.java | 116 ++++++++++++++++
9 files changed, 411 insertions(+), 3 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 9994f0a..9cd5b76 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -102,7 +102,7 @@
LocalDateTime startDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
long daysPassed = ChronoUnit.DAYS.between(startDateTime, LocalDateTime.now());
- return AjaxResult.success(daysPassed > 7 ? "鎮ㄧ殑璇曠敤鏈熷凡缁忕粨鏉燂紝璇蜂粯璐圭户缁娇鐢�":"鎮ㄨ繕鏈� " + (7L - daysPassed) + " 澶╃殑璇曠敤澶╂暟");
+ return AjaxResult.success(daysPassed > sysUser.getRemainTime() ? "鎮ㄧ殑璇曠敤鏈熷凡缁忕粨鏉燂紝璇蜂粯璐圭户缁娇鐢�":"鎮ㄨ繕鏈� " + (sysUser.getRemainTime() - daysPassed) + " 澶╃殑璇曠敤澶╂暟");
}else return AjaxResult.success("灏婃暚鐨勪細鍛樼敤鎴凤紝鎮ㄥソ锛�");
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfApplicationController.java
new file mode 100644
index 0000000..ee813d6
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfApplicationController.java
@@ -0,0 +1,116 @@
+package com.ruoyi.web.controller.zhang;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.domain.ZfApplication;
+import com.ruoyi.service.ZfApplicationService;
+import com.ruoyi.system.domain.SysUserRole;
+import com.ruoyi.system.mapper.SysUserRoleMapper;
+import com.ruoyi.system.service.ISysRoleService;
+import com.ruoyi.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+import java.util.List;
+
+import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
+import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
+
+@RestController
+@RequestMapping("/application")
+public class ZfApplicationController extends BaseController {
+
+ @Resource
+ private ZfApplicationService zfApplicationService;
+
+ @Autowired
+ private ISysUserService userService;
+
+ @Autowired
+ private SysUserRoleMapper sysUserRoleMapper;
+
+
+ @GetMapping("/all")
+ public AjaxResult listAll(ZfApplication zfApplication){
+
+ Long userId = SecurityUtils.getUserId();
+
+ SysUserRole role = sysUserRoleMapper.selectUserById(userId);
+
+ Integer roleId = 0;
+
+
+ if (role != null) roleId=role.getRoleId().intValue();
+
+ Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
+ Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
+ return zfApplicationService.selectDoctorList(zfApplication, pageNum, pageSize,roleId);
+ }
+
+
+
+ /**
+ * 鑾峰彇 璇︾粏淇℃伅
+ */
+// @PreAuthorize("@ss.hasPermi('system:property:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(zfApplicationService.getById(id));
+ }
+//
+ /**
+ * 鏂板
+ */
+// @PreAuthorize("@ss.hasPermi('system:property:add')")
+ @Log(title = " ", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ZfApplication zfApplication)
+ {
+ return zfApplicationService.addData(zfApplication);
+ }
+
+
+ /**
+ * 瀹℃牳
+ */
+// @PreAuthorize("@ss.hasPermi('system:property:add')")
+ @Log(title = " ", businessType = BusinessType.INSERT)
+ @PostMapping("/status")
+ public AjaxResult setStatus(@RequestBody ZfApplication zfApplication)
+ {
+ if(zfApplication.getStatus().equals("1")) {
+ ZfApplication byId = zfApplicationService.getById(zfApplication.getId());
+ SysUser sysUser = userService.selectUserById(byId.getApplicant().longValue());
+
+ sysUser.setStatus("0");
+ Integer integer = zfApplication.getApplyDay() == null ? byId.getApplyDay() : zfApplication.getApplyDay();
+
+ sysUser.setRemainTime(sysUser.getRemainTime() + integer);
+ userService.updateUser(sysUser);
+ }
+ System.out.println("[[[[["+zfApplication);
+ return zfApplicationService.setStatus(zfApplication);
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ */
+// @PreAuthorize("@ss.hasPermi('system:property:remove')")
+ @Log(title = " ", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return zfApplicationService.deleteData(ids);
+ }
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index e9b9959..db6db7c 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -94,6 +94,17 @@
/**鏄惁浼氬憳 0鍚� 1鏄�*/
private Integer paid;
+ /**璇曠敤鏈熸椂闂� 榛樿7澶�**/
+ private Integer remainTime;
+
+ public Integer getRemainTime() {
+ return remainTime;
+ }
+
+ public void setRemainTime(Integer remainTime) {
+ this.remainTime = remainTime;
+ }
+
public Integer getPaid() {
return paid;
}
@@ -349,6 +360,7 @@
.append("remark", getRemark())
.append("dept", getDept())
.append("paid",getPaid())
+ .append("remainTime",getRemainTime())
.toString();
}
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index 856846b..4fb0723 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -119,6 +119,7 @@
public boolean endOfLife(String username) {
SysUser sysUser = userService.selectUserByNickName(username);
+ System.out.println(sysUser);
if (sysUser.getPaid() != null && sysUser.getPaid().equals(0) && !"4".equals(sysUser.getStatus())) {
Date startTime = sysUser.getCreateTime();
@@ -127,7 +128,7 @@
LocalDateTime startDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
long daysPassed = ChronoUnit.DAYS.between(startDateTime, LocalDateTime.now());
- if (daysPassed > 7) {
+ if (daysPassed > sysUser.getRemainTime()) {
sysUser.setStatus("4");
userService.updateUserStatus(sysUser);
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 7e19a66..9281dde 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -25,6 +25,7 @@
<result property="clanId" column="clan_id" />
<result property="remark" column="remark" />
<result property="paid" column="paid" />
+ <result property="remainTime" column="remain_time" />
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap>
@@ -49,7 +50,7 @@
</resultMap>
<sql id="selectUserVo">
- select u.clan_id,u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.clan_id,u.paid,
+ select u.clan_id,u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.clan_id,u.paid,u.remain_time,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
@@ -256,6 +257,7 @@
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="paid != null and paid != ''">paid = #{paid},</if>
+ <if test="remainTime != null and remainTime != ''">remain_time = #{remainTime},</if>
update_time = sysdate()
</set>
where user_id = #{userId}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZfApplication.java b/zhang-content/src/main/java/com/ruoyi/domain/ZfApplication.java
new file mode 100644
index 0000000..83a2795
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZfApplication.java
@@ -0,0 +1,50 @@
+package com.ruoyi.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("zf_application")
+public class ZfApplication {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+
+ /**
+ *鐢宠浜�
+ */
+
+ private Integer applicant;
+
+
+ /**
+ * 鐢宠鍘熷洜
+ */
+ private String applyReason;
+
+ /**
+ * 鐘舵��
+ */
+ private String status;
+
+ /**
+ * 鏃堕棿
+ */
+ private Date createTime;
+
+ /**
+ * 鐢宠鏃堕棿
+ */
+ private Integer applyDay;
+
+ /**
+ * 鐢宠浜虹殑瀹舵棌
+ */
+ private Integer clanId;
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/ZfApplicationMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/ZfApplicationMapper.java
new file mode 100644
index 0000000..a729ac1
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/ZfApplicationMapper.java
@@ -0,0 +1,10 @@
+package com.ruoyi.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.domain.ZExperience;
+import com.ruoyi.domain.ZfApplication;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ZfApplicationMapper extends BaseMapper<ZfApplication> {
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/ZfApplicationService.java b/zhang-content/src/main/java/com/ruoyi/service/ZfApplicationService.java
new file mode 100644
index 0000000..37f8074
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/ZfApplicationService.java
@@ -0,0 +1,27 @@
+package com.ruoyi.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.domain.ZfApplication;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+public interface ZfApplicationService extends IService<ZfApplication> {
+
+
+ AjaxResult selectDoctorList(ZfApplication zfApplication, Integer pageNum, Integer pageSize,Integer roleId);
+
+ List<ZfApplication> selectByCondition(ZfApplication zfApplication);
+
+ List<ZfApplication> selectByIds(Long[] ids);
+
+
+ AjaxResult addData(ZfApplication ZfApplication);
+
+ AjaxResult deleteData(Long[] ids);
+
+ AjaxResult setStatus(ZfApplication zfApplication);
+
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfApplicationServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfApplicationServiceImpl.java
new file mode 100644
index 0000000..2d93085
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfApplicationServiceImpl.java
@@ -0,0 +1,190 @@
+package com.ruoyi.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.EsModel;
+import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.domain.*;
+import com.ruoyi.mapper.ZfApplicationMapper;
+import com.ruoyi.service.*;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.*;
+
+
+@Service
+public class ZfApplicationServiceImpl extends ServiceImpl<ZfApplicationMapper, ZfApplication> implements ZfApplicationService {
+
+ @Resource
+ ZInfoUserService zInfoUserService;
+
+
+ @Resource
+ EsService esService;
+
+ @Resource
+ private RestHighLevelClient restHighLevelClient;
+
+
+
+
+
+ @Override
+ public AjaxResult selectDoctorList(ZfApplication zfApplication, Integer pageNum, Integer pageSize,Integer roleId) {
+
+ //瑕佹煡鑷繁瀹跺涵鐨�
+ ZInfoUser myself = zInfoUserService.getMyself();
+ System.out.println("[[[[[[[[["+myself);
+ if (myself !=null) {
+ System.out.println("iiiiiii"+myself.getClanId());
+ zfApplication.setClanId(myself.getClanId());
+ if (roleId != 1) zfApplication.setApplicant(myself.getSysId().intValue());
+ }
+
+
+ LambdaQueryWrapper<ZfApplication> lqw = buildCondition(zfApplication);
+ Page<ZfApplication> zfDoctorPage = new Page<>(pageNum, pageSize);
+ Page<ZfApplication> pageResult = page(zfDoctorPage, lqw);
+ List<ZfApplication> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
+
+ HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
+ return AjaxResult.success(data);
+ }
+
+ @Override
+ public List<ZfApplication> selectByCondition(ZfApplication zfApplication) {
+ LambdaQueryWrapper<ZfApplication> lambdaQueryWrapper = buildCondition(zfApplication);
+ List<ZfApplication> beanRecords = list(lambdaQueryWrapper);
+ return beanRecords;
+ }
+
+ @Override
+ public List<ZfApplication> selectByIds(Long[] ids) {
+ List<ZfApplication> list = new ArrayList<>();
+ if (ids.length != 0)
+ list = listByIds(Arrays.asList(ids));
+ else
+ list = list();
+ return list;
+ }
+
+
+
+ @Override
+ public AjaxResult addData(ZfApplication zfApplication) {
+ ZInfoUser myself = zInfoUserService.getMyself();
+
+ Long userId = SecurityUtils.getUserId();
+
+ if (myself !=null) {
+ zfApplication.setClanId(myself.getClanId());
+ }
+
+ Date currentDate = new Date();
+
+ zfApplication.setApplicant(userId.intValue());
+ zfApplication.setStatus("0");
+ zfApplication.setCreateTime(currentDate);
+ if (save(zfApplication)) {
+ EsModel esModel = new EsModel();
+ Integer inte = zfApplication.getId();
+ String uuid = UUID.randomUUID().toString().replace("-", "");
+ esModel.setId(uuid);
+ esModel.setCtId(Long.valueOf(inte));
+ esModel.setCtTableName("鐢宠琛�");
+ esModel.setBy2(zfApplication.getApplyReason());
+ //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰�
+ esService.insertTable(esModel);
+ return AjaxResult.success();
+ } else {
+ return AjaxResult.error();
+ }
+ }
+
+
+
+ @Override
+ public AjaxResult deleteData(Long[] ids) {
+
+ List<ZfApplication> zfDoctors = listByIds(Arrays.asList(ids));
+
+ if (this.removeByIds(Arrays.asList(ids))) {
+
+ //鍒犻櫎es涓殑鏁版嵁
+ zfDoctors.stream().forEach(zfDoctor -> {
+ EsModel esModel = esService.findByCtId(zfDoctor.getId().intValue(), "鐢宠琛�");
+
+ if (esModel != null) {
+ DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId());
+ try {
+ restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+ });
+ return AjaxResult.success();
+ } else {
+ return AjaxResult.error();
+ }
+ }
+
+ @Override
+ public AjaxResult setStatus(ZfApplication zfApplication)
+ {
+ Date currentDate = new Date();
+ System.out.println("[[[[[[["+zfApplication);
+
+ LambdaUpdateWrapper<ZfApplication> lqw = new LambdaUpdateWrapper();
+ lqw
+ .eq(ZfApplication::getId,zfApplication.getId())
+ .set(ZfApplication::getStatus,zfApplication.getStatus())
+ .set(ZfApplication::getCreateTime, currentDate);
+
+
+ boolean isUpdated = this.update(lqw); // 浣跨敤Service鎵ц鏇存柊
+
+ if (isUpdated) {
+ if (zfApplication.getStatus().equals("1"))
+ return AjaxResult.success("宸茬粡缁欒鐢ㄦ埛寤堕暱璇曠敤鏃堕棿");
+ else return AjaxResult.success("宸查┏鍥炶鐢ㄦ埛鐨勭敵璇�");
+ } else {
+ return AjaxResult.error("鏇存柊澶辫触锛岃妫�鏌ユ暟鎹�");
+ }
+ }
+
+
+ private LambdaQueryWrapper<ZfApplication> uniqueCondition(ZfApplication zfApplication) {
+ LambdaQueryWrapper<ZfApplication> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(zfApplication.getApplicant() != null,ZfApplication::getApplicant, zfApplication.getApplicant())
+ .eq(StringUtils.isNotEmpty(zfApplication.getApplyReason()), ZfApplication::getApplyReason, zfApplication.getApplyReason())
+ .eq(zfApplication.getStatus() != null, ZfApplication::getStatus, zfApplication.getStatus())
+ .eq(zfApplication.getClanId() != null, ZfApplication::getClanId, zfApplication.getClanId())
+ .eq(zfApplication.getApplyDay() != null, ZfApplication::getApplyDay, zfApplication.getApplyDay());
+ return lqw;
+ }
+
+ private LambdaQueryWrapper<ZfApplication> buildCondition(ZfApplication zfApplication) {
+ LambdaQueryWrapper<ZfApplication> lqw = new LambdaQueryWrapper<>();
+ lqw.orderByDesc(ZfApplication::getCreateTime);
+ lqw.like(zfApplication.getApplicant() !=null,ZfApplication::getApplicant, zfApplication.getApplicant())
+ .like(StringUtils.isNotEmpty(zfApplication.getApplyReason()), ZfApplication::getApplyReason, zfApplication.getApplyReason())
+ .like(zfApplication.getStatus() != null, ZfApplication::getStatus, zfApplication.getStatus())
+ .like(zfApplication.getClanId() != null, ZfApplication::getClanId, zfApplication.getClanId())
+ .like(zfApplication.getApplyDay() != null, ZfApplication::getApplyDay, zfApplication.getApplyDay())
+ .like(zfApplication.getId() != null, ZfApplication::getId, zfApplication.getId())
+ ;
+
+ return lqw;
+ }
+}
--
Gitblit v1.9.1