From 5208a38ba080c322f0f0b6a01ac527ee30fe4204 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Tue, 25 Nov 2025 15:51:41 +0800
Subject: [PATCH] 新增税务信息
---
trading-order-admin/src/main/java/com/yami/trading/admin/model/W8BENModel.java | 15 ++
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java | 61 ++++++---
trading-order-service/src/main/java/com/yami/trading/service/user/impl/W8BENServiceImpl.java | 31 +++++
trading-order-bean/src/main/java/com/yami/trading/bean/model/W8BEN.java | 48 ++++++++
trading-order-service/src/main/java/com/yami/trading/service/user/W8BENService.java | 14 ++
trading-order-service/src/main/resources/mapper/user/UserW8BENMapper.xml | 18 +++
trading-order-service/src/main/java/com/yami/trading/dao/user/W8BENMapper.java | 14 ++
trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserW8BENController.java | 74 ++++++++++++
trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/W8BENDto.java | 44 +++++++
trading-order-service/src/main/resources/mapper/exchange/ExchangeApplyOrderMapper.xml | 2
10 files changed, 298 insertions(+), 23 deletions(-)
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserW8BENController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserW8BENController.java
new file mode 100644
index 0000000..3c4b684
--- /dev/null
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserW8BENController.java
@@ -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("失败");
+ }
+ }
+
+}
+
+
+
+
+
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/model/W8BENModel.java b/trading-order-admin/src/main/java/com/yami/trading/admin/model/W8BENModel.java
new file mode 100644
index 0000000..c0e5daf
--- /dev/null
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/model/W8BENModel.java
@@ -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;
+
+}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
index bfd4d27..946a3de 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
+++ b/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("失败");
+ }
+ }
+
}
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/model/W8BEN.java b/trading-order-bean/src/main/java/com/yami/trading/bean/model/W8BEN.java
new file mode 100644
index 0000000..4439e57
--- /dev/null
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/model/W8BEN.java
@@ -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;
+
+}
+
+
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/W8BENDto.java b/trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/W8BENDto.java
new file mode 100644
index 0000000..cd20db5
--- /dev/null
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/user/dto/W8BENDto.java
@@ -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;
+
+
+}
diff --git a/trading-order-service/src/main/java/com/yami/trading/dao/user/W8BENMapper.java b/trading-order-service/src/main/java/com/yami/trading/dao/user/W8BENMapper.java
new file mode 100644
index 0000000..96c765a
--- /dev/null
+++ b/trading-order-service/src/main/java/com/yami/trading/dao/user/W8BENMapper.java
@@ -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);
+
+}
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/user/W8BENService.java b/trading-order-service/src/main/java/com/yami/trading/service/user/W8BENService.java
new file mode 100644
index 0000000..10b921c
--- /dev/null
+++ b/trading-order-service/src/main/java/com/yami/trading/service/user/W8BENService.java
@@ -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);
+
+}
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/user/impl/W8BENServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/user/impl/W8BENServiceImpl.java
new file mode 100644
index 0000000..4e0e2a3
--- /dev/null
+++ b/trading-order-service/src/main/java/com/yami/trading/service/user/impl/W8BENServiceImpl.java
@@ -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;
+ }
+}
diff --git a/trading-order-service/src/main/resources/mapper/exchange/ExchangeApplyOrderMapper.xml b/trading-order-service/src/main/resources/mapper/exchange/ExchangeApplyOrderMapper.xml
index cb2b691..a699723 100644
--- a/trading-order-service/src/main/resources/mapper/exchange/ExchangeApplyOrderMapper.xml
+++ b/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}
diff --git a/trading-order-service/src/main/resources/mapper/user/UserW8BENMapper.xml b/trading-order-service/src/main/resources/mapper/user/UserW8BENMapper.xml
new file mode 100644
index 0000000..c7fc59d
--- /dev/null
+++ b/trading-order-service/src/main/resources/mapper/user/UserW8BENMapper.xml
@@ -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>
--
Gitblit v1.9.3