ruoyi-admin/src/main/java/com/ruoyi/im/ImApiController.java
@@ -322,7 +322,11 @@ .eq(UserAccount::getInvitationAccount, userAccount.getAccount()) ); UserTeamAndPositionOut userTeamAndPositionOut = new UserTeamAndPositionOut(); List<InsurancePosition> positions = insurancePositionService.list(); if(CollectionUtils.isEmpty(userAccountList)){ userTeamAndPositionOut.setInsurancePosition(positions); return Result.success(userTeamAndPositionOut); } List<Integer> idList = userAccountList.stream() @@ -346,7 +350,7 @@ long activeNumber = UserPolicyUtils.countActivePolicies(userPolicyList); userTeamAndPositionOut.setInsureNumber(activeNumber); List<InsurancePosition> positions = insurancePositionService.list(); positions.forEach(f->{ if(userPolicyList.size() >= f.getNumberPeople()){ userTeamAndPositionOut.setPosition(f.getPosition()); ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/ImApiServcieImpl.java
@@ -127,7 +127,7 @@ String invitationCode = getInvitationCode(); UserAccount user = new UserAccount(); if(dto.getAccountType() == 0 && StringUtils.isNotEmpty(dto.getInvitationCode()) && !dto.getInvitationCode().equals("000000")){ if(dto.getAccountType() == 0 && StringUtils.isNotEmpty(dto.getInvitationCode()) && !dto.getInvitationCode().equals("00000000")){ user = userAccountService.getOne(new LambdaQueryWrapper<UserAccount>() .eq(UserAccount::getInvitationCode, dto.getInvitationCode()).last(" limit 1")); if(ObjectUtil.isEmpty(user)){ @@ -231,7 +231,7 @@ */ public static String generateInvitationCode() { Random random = new Random(); int code = 100000 + random.nextInt(900000); int code = 10000000 + random.nextInt(90000000); return String.valueOf(code); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/InsurancePositionController.java
@@ -33,6 +33,7 @@ insurancePosition.setNumberPeople(dto.getNumberPeople()); insurancePosition.setRank(dto.getRank()); insurancePosition.setSalary(dto.getSalary()); insurancePosition.setSort(dto.getSort()); insurancePosition.setCreatedAt(new Date()); insurancePosition.setUpdatedAt(new Date()); service.save(insurancePosition); @@ -86,6 +87,7 @@ position.setNumberPeople(dto.getNumberPeople()); position.setRank(dto.getRank()); position.setSalary(dto.getSalary()); position.setSort(dto.getSort()); position.setUpdatedAt(new Date()); service.updateById(position); return AjaxResult.success("修改成功"); ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/MedicalInsuranceAccountController.java
@@ -41,7 +41,7 @@ return medicalInsuranceAccountService.getReceiveStatus(account); }catch (Exception e){ e.printStackTrace(); return Result.error("购买失败!"); return Result.error("获取失败!"); } } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserKycController.java
@@ -121,12 +121,18 @@ * 什么认证列表 */ @GetMapping("/list") public TableDataInfo list(@RequestParam(value = "account",required = false) String account) { public TableDataInfo list(@RequestParam(value = "account",required = false) String account, @RequestParam(value = "state",required = false) Integer state ) { startPage(); LambdaQueryWrapper<UserKyc> wrapper = new LambdaQueryWrapper<>(); if(StringUtils.isNotEmpty(account)){ wrapper.eq(UserKyc::getAccount,account); } if(state != null){ wrapper.eq(UserKyc::getState,state); } // 按创建时间倒序排列 wrapper.orderByDesc(UserKyc::getCreatedAt); List<UserKyc> list = userKycService.list(wrapper); ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
@@ -78,7 +78,8 @@ @GetMapping("/list") public TableDataInfo list(@RequestParam(value = "account",required = false) String account, @RequestParam(value = "approvalStatus",required = false) Integer approvalStatus, @RequestParam(value = "productName",required = false) String productName) { @RequestParam(value = "productName",required = false) String productName, @RequestParam(value = "policyStatus",required = false) String policyStatus) { startPage(); LambdaQueryWrapper<UserPolicy> wrapper = new LambdaQueryWrapper<>(); @@ -93,11 +94,16 @@ wrapper.like(UserPolicy::getProductName, productName); } // 产品状态精确查询 // 审批状态 if (approvalStatus != null) { wrapper.eq(UserPolicy::getApprovalStatus, approvalStatus); } // 保单状态 if (StringUtils.isNotEmpty(policyStatus)) { wrapper.eq(UserPolicy::getPolicyStatus, policyStatus); } // 按创建时间倒序排列 wrapper.orderByDesc(UserPolicy::getCreatedAt); ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserWalletControlkler.java
New file @@ -0,0 +1,67 @@ package com.ruoyi.web.controller.product; import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.UserAccount; import com.ruoyi.system.domain.UserKyc; import com.ruoyi.system.service.UserAccountService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.Date; @RestController @RequestMapping("/wallet") public class UserWalletControlkler { @Autowired UserAccountService userAccountService; /** * 用户资金操作 * @param userId 用户id * @param type 账变类型 1:充值 2:扣款 * @param money 账变金额 * @return */ @GetMapping("/topUp") @Transactional public AjaxResult topUp(@RequestParam(value = "userId") Integer userId, @RequestParam(value = "type") Integer type, @RequestParam(value = "money") BigDecimal money) { if(userId == null || type == null || money.compareTo(BigDecimal.ZERO) <= 0) { return AjaxResult.error("参数不正确"); } try { UserAccount userAccount = userAccountService.getById(userId); if(ObjectUtil.isEmpty(userAccount)){ return AjaxResult.error("用户不存在"); } if(type == 1){ userAccount.setBalance(userAccount.getBalance().add(money)); }else if(type == 2){ BigDecimal balance = userAccount.getBalance().subtract(money); if(balance.compareTo(BigDecimal.ZERO) < 0){ return AjaxResult.success("扣款金额超过用户余额,操作失败!"); } userAccount.setBalance(balance); }else { return AjaxResult.success("充值类型错误"); } userAccountService.updateById(userAccount); return AjaxResult.success("充值成功"); }catch (Exception e){ e.printStackTrace(); // 手动设置回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error("充值失败!"); } } } ruoyi-system/src/main/java/com/ruoyi/system/domain/InsurancePosition.java
@@ -23,6 +23,8 @@ private String rank; //工资 private BigDecimal salary; //排序 private Integer sort; //创建时间 private Date createdAt; //更新时间 ruoyi-system/src/main/java/com/ruoyi/system/domain/InsuranceProduct.java
@@ -75,7 +75,7 @@ // 枚举类型 产品状态(ACTIVE 上架,INACTIVE 下架) public enum ProductStatus { ACTIVE, INACTIVE ACTIVE, INACTIVE ,SOLDOUT } ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/InsurancePositionDto.java
@@ -16,4 +16,6 @@ private String rank; //工资 private BigDecimal salary; //排序 private Integer sort; }