1
zj
2025-09-24 5b16e50ef283a1ccdd6408ee2ccf41726f349923
1
9 files modified
1 files added
105 ■■■■■ changed files
ruoyi-admin/src/main/java/com/ruoyi/im/ImApiController.java 6 ●●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/ImApiServcieImpl.java 4 ●●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/InsurancePositionController.java 2 ●●●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/MedicalInsuranceAccountController.java 2 ●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserKycController.java 8 ●●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java 10 ●●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserWalletControlkler.java 67 ●●●●● patch | view | raw | blame | history
ruoyi-system/src/main/java/com/ruoyi/system/domain/InsurancePosition.java 2 ●●●●● patch | view | raw | blame | history
ruoyi-system/src/main/java/com/ruoyi/system/domain/InsuranceProduct.java 2 ●●● patch | view | raw | blame | history
ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/InsurancePositionDto.java 2 ●●●●● patch | view | raw | blame | history
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;
}