From 0c7cd31afb4ce68e867f8a6252dfabce194356a0 Mon Sep 17 00:00:00 2001 From: ljw <706814450@qq.com> Date: Thu, 22 Jan 2026 10:38:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E9=87=91=E8=B4=A6=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/result/AddCustomerResult.java | 18 ++++ .../cst/customer/service/CustomerService.java | 7 +- .../dispose/finance/constant/AccountType.java | 24 +++++ .../controller/MoneyAccountController.java | 8 +- .../finance/mapper/MoneyAccountMapper.java | 11 ++ .../pojo/entity/MoneyAccountEntity.java | 46 +++++++- .../pojo/param/SearchMoneyAccountParam.java | 36 +++++++ .../pojo/result/MoneyAccountResult.java | 101 ++++++++++++++++++ .../finance/service/MoneyAccountService.java | 7 +- .../service/impl/MoneyAccountServiceImpl.java | 36 ++++++- .../dispose/sys/user/service/UserService.java | 18 +++- .../dispose/wh/service/InOrderService.java | 2 +- .../mapper/finance/MoneyAccountMapper.xml | 56 ++++++++++ 13 files changed, 354 insertions(+), 16 deletions(-) create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/pojo/result/AddCustomerResult.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/constant/AccountType.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/SearchMoneyAccountParam.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/result/MoneyAccountResult.java create mode 100644 njzscloud-svr/src/main/resources/mapper/finance/MoneyAccountMapper.xml diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/pojo/result/AddCustomerResult.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/pojo/result/AddCustomerResult.java new file mode 100644 index 0000000..d5afb58 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/pojo/result/AddCustomerResult.java @@ -0,0 +1,18 @@ +package com.njzscloud.dispose.cst.customer.pojo.result; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class AddCustomerResult { + + private Long customerId; + + private Long orgId; + +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java index 59af532..d57efe5 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java @@ -16,6 +16,7 @@ import com.njzscloud.dispose.cst.customer.mapper.CustomerMapper; import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity; import com.njzscloud.dispose.cst.customer.pojo.param.AddCustomerParam; import com.njzscloud.dispose.cst.customer.pojo.param.SearchCustomerParam; +import com.njzscloud.dispose.cst.customer.pojo.result.AddCustomerResult; import com.njzscloud.dispose.cst.customer.pojo.result.SearchCustomerResult; import com.njzscloud.dispose.cst.org.pojo.param.AddOrgParam; import com.njzscloud.dispose.cst.org.service.OrgService; @@ -45,7 +46,7 @@ public class CustomerService extends ServiceImpl * 新增 */ @Transactional(rollbackFor = Exception.class) - public void add(AddCustomerParam addCustomerParam) { + public AddCustomerResult add(AddCustomerParam addCustomerParam) { Boolean manager = addCustomerParam.getManager(); Long orgId = null; AddOrgParam addOrgParam = addCustomerParam.getAddOrgParam(); @@ -72,6 +73,10 @@ public class CustomerService extends ServiceImpl } this.save(entity); + AddCustomerResult customerResult = new AddCustomerResult(); + customerResult.setCustomerId(entity.getId()); + customerResult.setOrgId(orgId); + return customerResult; } /** diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/constant/AccountType.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/constant/AccountType.java new file mode 100644 index 0000000..501ddd9 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/constant/AccountType.java @@ -0,0 +1,24 @@ +package com.njzscloud.dispose.finance.constant; + +import com.njzscloud.common.core.ienum.DictStr; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * 字典代码:AccountType + * 字典名称:账户类型 + * + * @author ljw + */ +@Getter +@RequiredArgsConstructor +public enum AccountType implements DictStr { + + GeRen("GeRen", "个人"), + + QiYe("QiYe", "企业"); + + private final String val; + + private final String txt; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/controller/MoneyAccountController.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/controller/MoneyAccountController.java index 7cde6d1..1d389c3 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/controller/MoneyAccountController.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/controller/MoneyAccountController.java @@ -4,6 +4,8 @@ import com.njzscloud.common.core.utils.R; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.dispose.finance.pojo.entity.MoneyAccountEntity; +import com.njzscloud.dispose.finance.pojo.param.SearchMoneyAccountParam; +import com.njzscloud.dispose.finance.pojo.result.MoneyAccountResult; import com.njzscloud.dispose.finance.service.MoneyAccountService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -54,7 +56,7 @@ public class MoneyAccountController { * 详情 */ @GetMapping("/detail") - public R detail(@RequestParam("id") Long id) { + public R detail(@RequestParam("id") Long id) { return R.success(moneyAccountService.detail(id)); } @@ -62,8 +64,8 @@ public class MoneyAccountController { * 分页查询 */ @GetMapping("/paging") - public R> paging(PageParam pageParam, MoneyAccountEntity moneyAccountEntity) { - return R.success(moneyAccountService.paging(pageParam, moneyAccountEntity)); + public R> paging(PageParam pageParam, SearchMoneyAccountParam param) { + return R.success(moneyAccountService.paging(pageParam, param)); } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/mapper/MoneyAccountMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/mapper/MoneyAccountMapper.java index 435cc04..abd2eab 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/mapper/MoneyAccountMapper.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/mapper/MoneyAccountMapper.java @@ -1,14 +1,25 @@ package com.njzscloud.dispose.finance.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njzscloud.dispose.finance.pojo.entity.MoneyAccountEntity; +import com.njzscloud.dispose.finance.pojo.result.MoneyAccountResult; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 资金账户表 + * * @author ljw */ @Mapper public interface MoneyAccountMapper extends BaseMapper { + + IPage paging(Page page, @Param("ew") QueryWrapper ew); + + MoneyAccountResult detail(@Param("id") Long id); + } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/MoneyAccountEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/MoneyAccountEntity.java index f872bd8..08624b0 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/MoneyAccountEntity.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/MoneyAccountEntity.java @@ -1,16 +1,18 @@ package com.njzscloud.dispose.finance.pojo.entity; -import com.baomidou.mybatisplus.annotation.TableName; -import com.njzscloud.dispose.common.pojo.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import com.njzscloud.dispose.finance.constant.AccountType; import lombok.Getter; import lombok.Setter; import lombok.ToString; import lombok.experimental.Accessors; import java.math.BigDecimal; +import java.time.LocalDateTime; /** * 资金账户表 + * * @author ljw */ @Getter @@ -18,7 +20,13 @@ import java.math.BigDecimal; @ToString @Accessors(chain = true) @TableName(value = "fin_money_account", autoResultMap = true) -public class MoneyAccountEntity extends BaseEntity { +public class MoneyAccountEntity { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; /** * 账户编号 @@ -28,7 +36,7 @@ public class MoneyAccountEntity extends BaseEntity { /** * 账户类型;account_type,GeRen-->个人、QiYe-->企业 */ - private String accountType; + private AccountType accountType; /** * 用户 Id @@ -55,5 +63,35 @@ public class MoneyAccountEntity extends BaseEntity { */ private BigDecimal recharge; + /** + * 创建人 Id;sys_user.id + */ + @TableField(fill = FieldFill.INSERT) + private Long creatorId; + + /** + * 修改人 Id; sys_user.id + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Long modifierId; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime modifyTime; + + /** + * 是否删除; 0-->未删除、1-->已删除 + */ + @TableLogic + private Boolean deleted; + } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/SearchMoneyAccountParam.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/SearchMoneyAccountParam.java new file mode 100644 index 0000000..d6a94f5 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/param/SearchMoneyAccountParam.java @@ -0,0 +1,36 @@ +package com.njzscloud.dispose.finance.pojo.param; + +import com.njzscloud.dispose.finance.constant.AccountType; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +/** + * 资金账户表 + * + * @author ljw + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class SearchMoneyAccountParam { + + /** + * 账户编号 + */ + private String sn; + + /** + * 账户名称 + */ + private String accountName; + + /** + * 账户类型;account_type,GeRen-->个人、QiYe-->企业 + */ + private AccountType accountType; + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/result/MoneyAccountResult.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/result/MoneyAccountResult.java new file mode 100644 index 0000000..6fe4d37 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/result/MoneyAccountResult.java @@ -0,0 +1,101 @@ +package com.njzscloud.dispose.finance.pojo.result; + +import com.baomidou.mybatisplus.annotation.*; +import com.njzscloud.dispose.finance.constant.AccountType; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 资金账户表 + * + * @author ljw + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class MoneyAccountResult { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** + * 账户编号 + */ + private String sn; + + /** + * 账户名称 + */ + private String accountName; + + /** + * 账户类型;account_type,GeRen-->个人、QiYe-->企业 + */ + private AccountType accountType; + + /** + * 用户 Id + */ + private Long userId; + + /** + * 客户 Id + */ + private Long customerId; + + /** + * 组织 Id + */ + private Long orgId; + + /** + * 营收余额 + */ + private BigDecimal revenue; + + /** + * 充值余额 + */ + private BigDecimal recharge; + + /** + * 创建人 Id;sys_user.id + */ + @TableField(fill = FieldFill.INSERT) + private Long creatorId; + + /** + * 修改人 Id; sys_user.id + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Long modifierId; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime modifyTime; + + /** + * 是否删除; 0-->未删除、1-->已删除 + */ + @TableLogic + private Boolean deleted; + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/MoneyAccountService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/MoneyAccountService.java index 4f4280d..228d9c5 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/MoneyAccountService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/MoneyAccountService.java @@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.dispose.finance.pojo.entity.MoneyAccountEntity; +import com.njzscloud.dispose.finance.pojo.param.SearchMoneyAccountParam; +import com.njzscloud.dispose.finance.pojo.result.MoneyAccountResult; import java.util.List; /** * 资金账户表 + * * @author ljw */ public interface MoneyAccountService extends IService { @@ -31,11 +34,11 @@ public interface MoneyAccountService extends IService { /** * 详情 */ - MoneyAccountEntity detail(Long id); + MoneyAccountResult detail(Long id); /** * 分页查询 */ - PageResult paging(PageParam pageParam, MoneyAccountEntity moneyAccountEntity); + PageResult paging(PageParam pageParam, SearchMoneyAccountParam param); } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/impl/MoneyAccountServiceImpl.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/impl/MoneyAccountServiceImpl.java index 8662a4b..7925209 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/impl/MoneyAccountServiceImpl.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/service/impl/MoneyAccountServiceImpl.java @@ -1,11 +1,15 @@ package com.njzscloud.dispose.finance.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; +import com.njzscloud.common.sn.support.SnUtil; import com.njzscloud.dispose.finance.mapper.MoneyAccountMapper; import com.njzscloud.dispose.finance.pojo.entity.MoneyAccountEntity; +import com.njzscloud.dispose.finance.pojo.param.SearchMoneyAccountParam; +import com.njzscloud.dispose.finance.pojo.result.MoneyAccountResult; import com.njzscloud.dispose.finance.service.MoneyAccountService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -29,6 +33,7 @@ public class MoneyAccountServiceImpl extends ServiceImpl paging(PageParam pageParam, MoneyAccountEntity moneyAccountEntity) { - return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(moneyAccountEntity))); + public PageResult paging(PageParam pageParam, SearchMoneyAccountParam param) { + return PageResult.of(baseMapper.paging(pageParam.toPage(), Wrappers.query() + .eq("fma.deleted", 0) + .like(StrUtil.isNotBlank(param.getSn()), "fma.sn", param.getSn()) + .and(StrUtil.isNotBlank(param.getAccountName()), wrapper -> + wrapper.like("cc.customer_name", param.getAccountName()) + .or() + .like("co.org_name", param.getAccountName()) + ) + .eq(param.getAccountType() != null, "fma.account_type", param.getAccountType()) + )); + } + + /** + * 生成账户编号 + * + * @return sn 账户编号 + */ + public String generateSn() { + String sn = SnUtil.next("Account-SN"); + if (this.exists(Wrappers.lambdaQuery().eq(MoneyAccountEntity::getSn, sn) + .eq(MoneyAccountEntity::getDeleted, Boolean.FALSE))) { + this.generateSn(); + } + return sn; } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/user/service/UserService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/user/service/UserService.java index 68931da..afb5a51 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/user/service/UserService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/user/service/UserService.java @@ -18,8 +18,12 @@ import com.njzscloud.common.wechat.param.Code2SessionParam; import com.njzscloud.common.wechat.result.Code2SessionResult; import com.njzscloud.dispose.cst.customer.constant.IdentityCategory; import com.njzscloud.dispose.cst.customer.pojo.param.AddCustomerParam; +import com.njzscloud.dispose.cst.customer.pojo.result.AddCustomerResult; import com.njzscloud.dispose.cst.customer.service.CustomerService; import com.njzscloud.dispose.cst.org.pojo.param.AddOrgParam; +import com.njzscloud.dispose.finance.constant.AccountType; +import com.njzscloud.dispose.finance.pojo.entity.MoneyAccountEntity; +import com.njzscloud.dispose.finance.service.MoneyAccountService; import com.njzscloud.dispose.sys.auth.service.AuthService; import com.njzscloud.dispose.sys.role.pojo.entity.RoleEntity; import com.njzscloud.dispose.sys.role.pojo.result.RoleDetailResult; @@ -56,6 +60,7 @@ public class UserService extends ServiceImpl implements private final UserRoleService userRoleService; private final CustomerService customerService; private final AuthService authService; + private final MoneyAccountService moneyAccountService; /** * 新增 @@ -177,7 +182,7 @@ public class UserService extends ServiceImpl implements customer.setUserId(userId); UserRegisterParam.Org org = userRegisterParam.getOrg(); - customerService.add(BeanUtil.copyProperties(customer, AddCustomerParam.class) + AddCustomerResult customerResult = customerService.add(BeanUtil.copyProperties(customer, AddCustomerParam.class) .setAddOrgParam(BeanUtil.copyProperties(org, AddOrgParam.class))); List roleDetailResults = userRoleService.listRole(userId); @@ -187,6 +192,17 @@ public class UserService extends ServiceImpl implements UserDetail userDetail = authService.my(userId, account.getClientCode()) .setAuthWay(userRegisterParam.getAuthWay()) .setRoles(roles); + // 添加账户信息 + MoneyAccountEntity moneyAccount = new MoneyAccountEntity(); + if (Boolean.TRUE.equals(customer.getManager())) { + moneyAccount.setAccountType(AccountType.QiYe); + moneyAccount.setOrgId(customerResult.getOrgId()); + } else { + moneyAccount.setAccountType(AccountType.GeRen); + } + moneyAccount.setUserId(userId); + moneyAccount.setCustomerId(customerResult.getCustomerId()); + moneyAccountService.add(moneyAccount); return SecurityUtil.registrationUser(userDetail); } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/InOrderService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/InOrderService.java index 43ec150..14e9506 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/InOrderService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/InOrderService.java @@ -90,7 +90,7 @@ public class InOrderService extends ServiceImpl { public PageResult paging(PageParam pageParam, SearchInOrderParam param) { return PageResult.of(baseMapper.paging(pageParam.toPage(), Wrappers.query() .eq("wio.deleted", 0) - .eq(StrUtil.isNotBlank(param.getSn()), "wio.sn", param.getSn()) + .like(StrUtil.isNotBlank(param.getSn()), "wio.sn", param.getSn()) .eq(StrUtil.isNotBlank(param.getOrderSn()), "wio.order_sn", param.getOrderSn()) .eq(StrUtil.isNotBlank(param.getWarehouseName()), "ww.warehouse_name", param.getWarehouseName()) .eq(StrUtil.isNotBlank(param.getGoodsName()), "wio.goods_name", param.getGoodsName()) diff --git a/njzscloud-svr/src/main/resources/mapper/finance/MoneyAccountMapper.xml b/njzscloud-svr/src/main/resources/mapper/finance/MoneyAccountMapper.xml new file mode 100644 index 0000000..73c0de4 --- /dev/null +++ b/njzscloud-svr/src/main/resources/mapper/finance/MoneyAccountMapper.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + SELECT fma.id, + fma.sn, + fma.account_type, + fma.user_id, + CASE fma.account_type + WHEN 'GeRen' THEN cc.customer_name + WHEN 'QiYe' THEN co.org_name + ELSE NULL + END as account_name, + fma.customer_id, + fma.org_id, + fma.revenue, + fma.recharge, + fma.creator_id, + fma.modifier_id, + fma.create_time, + fma.modify_time, + fma.deleted + FROM fin_money_account fma + LEFT JOIN cst_customer cc ON cc.id = fma.customer_id + LEFT JOIN cst_org co ON co.id = fma.org_id + + + + + +