zyy
2025-11-25 5208a38ba080c322f0f0b6a01ac527ee30fe4204
新增税务信息
2 files modified
8 files added
321 ■■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserW8BENController.java 74 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/model/W8BENModel.java 15 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java 61 ●●●●● patch | view | raw | blame | history
trading-order-bean/src/main/java/com/yami/trading/bean/model/W8BEN.java 48 ●●●●● patch | view | raw | blame | history
trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/W8BENDto.java 44 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/dao/user/W8BENMapper.java 14 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/user/W8BENService.java 14 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/user/impl/W8BENServiceImpl.java 31 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/resources/mapper/exchange/ExchangeApplyOrderMapper.xml 2 ●●● patch | view | raw | blame | history
trading-order-service/src/main/resources/mapper/user/UserW8BENMapper.xml 18 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserW8BENController.java
New file
@@ -0,0 +1,74 @@
package com.yami.trading.admin.controller.user;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yami.trading.admin.model.*;
import com.yami.trading.bean.model.*;
import com.yami.trading.bean.user.dto.W8BENDto;
import com.yami.trading.common.domain.Result;
import com.yami.trading.service.user.W8BENService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@CrossOrigin
@RequestMapping("w8ben")
@Api(tags = "用户税务信息管理")
public class UserW8BENController {
    @Autowired
    W8BENService w8BENService;
    @PostMapping("list")
    @ApiOperation("列表")
    public Result<Page<W8BENDto>> list(@RequestBody W8BENModel model) {
        Page<W8BENDto> page = new Page(model.getCurrent(), model.getSize());
        w8BENService.listUser(page, model.getUserName());
        return Result.ok(page);
    }
    @PostMapping("update")
    @ApiOperation("修改")
    public Result update(@RequestBody W8BEN model) {
        try {
            w8BENService.updateById(model);
            return Result.succeed(null);
        } catch (Exception e) {
            log.error("updateW8BEN error", e);
            return Result.failed("失败");
        }
    }
    @GetMapping("get")
    @ApiOperation("获取单个")
    public Result get(String uuid) {
        try {
            W8BEN w8BEN = w8BENService.getById(uuid);
            return Result.succeed(w8BEN);
        } catch (Exception e) {
            log.error("getW8BEN error", e);
            return Result.failed("失败");
        }
    }
    @GetMapping("delete")
    @ApiOperation("删除单个")
    public Result delete(String uuid) {
        try {
            w8BENService.removeById(uuid);
            return Result.succeed();
        } catch (Exception e) {
            log.error("deleteW8BEN error", e);
            return Result.failed("失败");
        }
    }
}
trading-order-admin/src/main/java/com/yami/trading/admin/model/W8BENModel.java
New file
@@ -0,0 +1,15 @@
package com.yami.trading.admin.model;
import com.yami.trading.common.domain.PageRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel
public class W8BENModel extends PageRequest {
    @ApiModelProperty("用户名")
    private String userName;
}
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
@@ -1,31 +1,18 @@
package com.yami.trading.api.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yami.trading.api.dto.UserDto;
import com.yami.trading.api.model.SetSafewordModel;
import com.yami.trading.api.service.UserCacheService;
import com.yami.trading.bean.model.HighLevelAuthRecord;
import com.yami.trading.bean.model.Log;
import com.yami.trading.bean.model.RealNameAuthRecord;
import com.yami.trading.bean.model.User;
import com.yami.trading.bean.model.UserRecom;
import com.yami.trading.bean.model.UserSafewordApply;
import com.yami.trading.bean.model.*;
import com.yami.trading.bean.syspara.domain.Syspara;
import com.yami.trading.common.constants.Constants;
import com.yami.trading.common.domain.Result;
import com.yami.trading.common.exception.BusinessException;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.DateUtils;
import com.yami.trading.common.util.GoogleAuthenticator;
import com.yami.trading.common.util.IPHelper;
import com.yami.trading.common.util.ImageVerificationCodeUtil;
import com.yami.trading.common.util.ImageVerificationEndecrypt;
import com.yami.trading.common.util.IpUtil;
import com.yami.trading.common.util.LockFilter;
import com.yami.trading.common.util.RegexUtil;
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.common.util.Strings;
import com.yami.trading.common.util.UUIDGenerator;
import com.yami.trading.common.util.*;
import com.yami.trading.security.common.bo.UserInfoInTokenBO;
import com.yami.trading.security.common.enums.SysTypeEnum;
import com.yami.trading.security.common.manager.TokenStore;
@@ -41,6 +28,7 @@
import com.yami.trading.service.user.UserRecomService;
import com.yami.trading.service.user.UserSafewordApplyService;
import com.yami.trading.service.user.UserService;
import com.yami.trading.service.user.W8BENService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -48,14 +36,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.sql.Wrapper;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -97,6 +82,8 @@
    LogService logService;
    @Autowired
    QRGenerateService qrGenerateService;
    @Autowired
    W8BENService w8BENService;
    /**
     * 用户名登录接口
@@ -1040,4 +1027,34 @@
        return null;
    }
    @GetMapping("getW8BENForm")
    @ApiOperation("获取税务信息")
    public Result getW8BENForm() {
        try {
            User user = userCacheService.currentUser();
            W8BEN w8BEN = w8BENService.getOne(new LambdaQueryWrapper<W8BEN>().eq(W8BEN::getUserId, user.getUserId()));
            return Result.succeed(w8BEN);
        } catch (Exception e) {
            log.error("getW8BENForm error", e);
            return Result.failed("失败");
        }
    }
    @PostMapping("setW8BENForm")
    @ApiOperation("设置税务信息")
    public Result setW8BENForm(W8BEN model) {
        try {
            User user = userCacheService.currentUser();
            String userId = user.getUserId();
            w8BENService.remove(new LambdaQueryWrapper<W8BEN>().eq(W8BEN::getUserId, user.getUserId()));
            model.setUserId(userId);
            model.setCreateTime(new Date());
            w8BENService.saveOrUpdate(model);
            return Result.succeed(null);
        } catch (Exception e) {
            log.error("setW8BENForm error", e);
            return Result.failed("失败");
        }
    }
}
trading-order-bean/src/main/java/com/yami/trading/bean/model/W8BEN.java
New file
@@ -0,0 +1,48 @@
package com.yami.trading.bean.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yami.trading.common.domain.UUIDEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 用户税务表信息
 */
@Data
@TableName("tz_user_w8ben")
public class W8BEN extends UUIDEntity {
    private static final long serialVersionUID = 15254654818792589L;
    private String userId;
    @ApiModelProperty("姓名")
    private String name;
    @ApiModelProperty("国籍")
    private String citizenship;
    @ApiModelProperty("居住地址")
    private String address;
    @ApiModelProperty("外国税号")
    @TableField(value = "foreign_tin")
    private String foreignTIN;
    @ApiModelProperty("美国税号")
    @TableField(value = "us_tin")
    private String usTIN;
    @ApiModelProperty("税收协定")
    private String treatyBenefits;
    @ApiModelProperty("提交时间")
    private Date createTime;
}
trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/W8BENDto.java
New file
@@ -0,0 +1,44 @@
package com.yami.trading.bean.user.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ApiModel
public class W8BENDto implements Serializable {
    private String uuid;
    private String userId;
    @ApiModelProperty("用户名")
    private String userName;
    @ApiModelProperty("姓名")
    private String name;
    @ApiModelProperty("国籍")
    private String citizenship;
    @ApiModelProperty("居住地址")
    private String address;
    @ApiModelProperty("外国税号")
    private String foreignTIN;
    @ApiModelProperty("美国税号")
    private String usTIN;
    @ApiModelProperty("税收协定")
    private String treatyBenefits;
    @ApiModelProperty("提交时间")
    private String createTime;
}
trading-order-service/src/main/java/com/yami/trading/dao/user/W8BENMapper.java
New file
@@ -0,0 +1,14 @@
package com.yami.trading.dao.user;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yami.trading.bean.model.W8BEN;
import com.yami.trading.bean.user.dto.W8BENDto;
import org.apache.ibatis.annotations.Param;
public interface W8BENMapper extends BaseMapper<W8BEN> {
    Page<W8BENDto> listUser(Page page, @Param("userName") String userName);
}
trading-order-service/src/main/java/com/yami/trading/service/user/W8BENService.java
New file
@@ -0,0 +1,14 @@
package com.yami.trading.service.user;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.trading.bean.model.W8BEN;
import com.yami.trading.bean.user.dto.W8BENDto;
import java.util.List;
public interface W8BENService extends IService<W8BEN> {
    Page<W8BENDto> listUser(Page page, String userName);
}
trading-order-service/src/main/java/com/yami/trading/service/user/impl/W8BENServiceImpl.java
New file
@@ -0,0 +1,31 @@
package com.yami.trading.service.user.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yami.trading.bean.model.User;
import com.yami.trading.bean.model.W8BEN;
import com.yami.trading.bean.user.dto.UserDto;
import com.yami.trading.bean.user.dto.W8BENDto;
import com.yami.trading.common.domain.Result;
import com.yami.trading.dao.user.W8BENMapper;
import com.yami.trading.service.user.W8BENService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class W8BENServiceImpl extends ServiceImpl<W8BENMapper, W8BEN> implements W8BENService {
    @Autowired
    private W8BENMapper w8BENMapper;
    @Override
    public Page<W8BENDto> listUser(Page page, String userName) {
        try {
            Page<W8BENDto> listUser = w8BENMapper.listUser(page,userName);
            return listUser;
        } catch (Exception e) {
            log.error("setW8BENForm error", e);
        }
        return null;
    }
}
trading-order-service/src/main/resources/mapper/exchange/ExchangeApplyOrderMapper.xml
@@ -40,7 +40,7 @@
          and item.type=#{symbolType}
      </if>
      <if test="userName!=null and userName!=''">
          and party.user_name=#{userName} or party.user_code=#{userName}
          and (party.user_name=#{userName} or party.user_code=#{userName})
      </if>
      <if test="userCode!=null and userCode!=''">
          and party.user_code=#{userCode}
trading-order-service/src/main/resources/mapper/user/UserW8BENMapper.xml
New file
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yami.trading.dao.user.W8BENMapper">
    <select id="listUser" resultType="com.yami.trading.bean.user.dto.W8BENDto">
        SELECT w.*,u.user_name FROM `tz_user_w8ben` w
        LEFT JOIN tz_user u ON u.user_id=w.user_id
        where 1=1
        <if test="userName!=null and userName!=''">
            and u.user_name like CONCAT('%', #{userName}, '%')
        </if>
        order by w.create_time desc
    </select>
</mapper>