diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java index 2194796b4..6d20fea59 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java @@ -2,6 +2,7 @@ package com.wzj.soopin.member.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.member.convert.MemberConvert; import com.wzj.soopin.member.domain.bo.MemberBO; @@ -10,6 +11,7 @@ import com.wzj.soopin.member.domain.vo.MemberDataStatisticsVO; import com.wzj.soopin.member.domain.vo.MemberVO; import com.wzj.soopin.member.service.IMemberService; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; @@ -19,10 +21,9 @@ import org.dromara.common.web.core.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.HashMap; -import lombok.extern.slf4j.Slf4j; /** * 会员信息Controller @@ -44,13 +45,13 @@ public class MemberController extends BaseController { @Tag(name = "查询会员信息列表") @SaCheckPermission("ums:member:list") @PostMapping("list") - public R> list(@RequestBody MemberBO bo,@RequestBody Page page) { - Page memberPage = service.page(page,bo.toWapper()); + public R> list(@RequestBody MemberBO bo, @RequestBody Page page) { + Page memberPage = service.page(page, bo.toWapper()); TableDataInfo.build(memberPage); return R.ok(convert.toVO(memberPage)); } - @Tag(name ="导出会员信息列表") + @Tag(name = "导出会员信息列表") @Log(title = "会员信息", businessType = BusinessType.EXPORT) @PostMapping("export") public R export(MemberBO query) { @@ -59,13 +60,13 @@ public class MemberController extends BaseController { return R.ok(util.writeExcel(convert.toVO(list), "会员信息数据")); } - @Tag(name ="获取会员信息详细信息") + @Tag(name = "获取会员信息详细信息") @GetMapping(value = "{id}") public R getInfo(@PathVariable("id") Long id) { return R.ok(service.getMemberInfo(id)); } - @Tag(name ="新增会员信息") + @Tag(name = "新增会员信息") @SaCheckPermission("'ums:member:add") @Log(title = "会员信息", businessType = BusinessType.INSERT) @PostMapping("add") @@ -73,14 +74,14 @@ public class MemberController extends BaseController { return R.ok(service.save(convert.toPo(member))); } - @Tag(name ="修改会员信息") + @Tag(name = "修改会员信息") @SaCheckPermission("ums:member:edit") @Log(title = "会员信息", businessType = BusinessType.UPDATE) @PostMapping("update") public Object edit(@RequestBody(required = false) Map callbackData, - @RequestParam(required = false) Long id, - @RequestParam(required = false) String nickname, - @RequestParam(required = false) Integer gender) { + @RequestParam(required = false) Long id, + @RequestParam(required = false) String nickname, + @RequestParam(required = false) Integer gender) { // 1. IM回调格式 - 用户资料更新回调 if (callbackData != null && callbackData.containsKey("CallbackCommand")) { log.info("收到IM用户资料更新回调: {}", callbackData); @@ -193,7 +194,7 @@ public class MemberController extends BaseController { } } - @Tag(name ="修改会员备注信息") + @Tag(name = "修改会员备注信息") @SaCheckPermission("ums:member:edit") @Log(title = "会员备注信息", businessType = BusinessType.UPDATE) @PostMapping("mark/update") @@ -201,47 +202,61 @@ public class MemberController extends BaseController { return R.ok(service.updateMark(member)); } - @Tag(name ="删除会员信息") + @Tag(name = "删除会员信息") @SaCheckPermission("ums:member:remove") @Log(title = "会员信息", businessType = BusinessType.DELETE) - @DeleteMapping("{id}") - public R remove(@PathVariable Long id) { + @DeleteMapping("{id}") + public R remove(@PathVariable Long id) { return R.ok(service.removeById(id)); } - @Tag(name =("修改会员账户状态")) + @Tag(name = ("修改会员账户状态")) @Log(title = "会员信息", businessType = BusinessType.UPDATE) @PostMapping("status/change") - public R changeStatus(@RequestBody MemberBO memberBO){ + public R changeStatus(@RequestBody MemberBO memberBO) { return R.ok(service.changeStatus(memberBO)); } - @Tag(name ="会员手机号解密") + @Tag(name = "会员手机号解密") @GetMapping("phone/decrypt/{phoneEncrypted}") - public R getPhoneDecrypted(@PathVariable String phoneEncrypted){ + public R getPhoneDecrypted(@PathVariable String phoneEncrypted) { return R.ok(service.getPhoneDecrypted(phoneEncrypted)); } - @Tag(name ="查看会员统计数据") + @Tag(name = "查看会员统计数据") @GetMapping("view/statistics/{memberId}") - public R viewStatistics(@PathVariable Long memberId){ + public R viewStatistics(@PathVariable Long memberId) { // return ResponseEntity.ok(service.viewStatistics(memberId)); return null; } - @Tag(name ="获取登录会员的信息") + @Tag(name = "获取登录会员的信息") @GetMapping(value = "/login/info") public R getLoinInfo() { return R.ok(service.getLoginMemberInfo()); } - @Tag(name ="同步会员的信息") + @Tag(name = "同步会员的信息") @GetMapping(value = "/sync") public R syncInfo() { service.syncInfo(); return R.ok(); } + /** + * 分页查询团长租户绑定的会员账户信息 + * + * @param bo 查询条件 + */ +// @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) 团长 + @GetMapping(value = "/getByReference") + public R> getByReference(MemberBO bo) { + Page memberPage = service.getByReference(bo); + TableDataInfo.build(memberPage); + return R.ok(convert.toVO(memberPage)); + } + + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java index af5c52225..53a3450aa 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java @@ -73,10 +73,13 @@ public class MemberBO extends BaseBO { @Schema(description = "用户剩余积分 精确匹配") private BigDecimal integral; + @Schema(description = "团长租户id") + private String tenantId; + /** * 视频点赞数 */ - @Schema(description ="视频点赞数") + @Schema(description = "视频点赞数") private Integer vlogLikeCount; public QueryWrapper toWapper() { @@ -85,6 +88,7 @@ public class MemberBO extends BaseBO { .like(StringUtils.isNotEmpty(this.getNickname()), Member::getNickname, this.getNickname()) .eq(getId() != null, Member::getId, this.getId()) .eq(status != null, Member::getStatus, status) + .eq(spreadUid != null, Member::getSpreadUid, spreadUid) .eq(StringUtils.isNotEmpty(this.getPhone()), Member::getPhoneHidden, phone); qw.ge(getBeginTime() != null, "create_time", this.getBeginTime()); qw.lt(getEndTime() != null, "create_time", this.getEndTime()); @@ -100,6 +104,7 @@ public class MemberBO extends BaseBO { break; } } + qw.orderByDesc("create_time"); return qw; } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java index 2bf65c10e..8025bae5c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.wzj.soopin.member.domain.bo.MemberBO; -import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm; import com.wzj.soopin.member.domain.po.Member; import com.wzj.soopin.member.domain.vo.MemberVO; import org.dromara.common.core.constant.ResultCode; @@ -86,4 +85,11 @@ public interface IMemberService extends IService { void syncInfo(); + + /** + * 通过团长ID获取会员信息 + * @param bo + * @return + */ + Page getByReference(MemberBO bo); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java index c13c0ef1a..9ba3c6913 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java @@ -1,6 +1,8 @@ package com.wzj.soopin.member.service.impl; import cn.dev33.satoken.secure.BCrypt; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -10,8 +12,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wzj.soopin.member.convert.MemberConvert; import com.wzj.soopin.member.domain.bo.MemberBO; -import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm; -import com.wzj.soopin.member.domain.po.Fans; import com.wzj.soopin.member.domain.po.Member; import com.wzj.soopin.member.domain.po.MemberAccount; import com.wzj.soopin.member.domain.vo.MemberVO; @@ -22,20 +22,16 @@ import com.wzj.soopin.member.service.IFansService; import com.wzj.soopin.member.service.IMemberService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.common.core.constant.CacheConstants; -import org.dromara.common.core.constant.CachePrefix; import org.dromara.common.core.constant.GlobalConstants; import org.dromara.common.core.constant.ResultCode; import org.dromara.common.core.domain.model.LoginUser; -import org.dromara.common.core.enums.YesOrNo; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.redis.redis.RedisCache; -import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.tenant.helper.TenantHelper; -import org.springframework.beans.factory.annotation.Autowired; +import org.dromara.system.domain.SysUser; +import org.dromara.system.mapper.SysUserMapper; import org.springframework.cache.annotation.CacheEvict; -import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; @@ -45,8 +41,6 @@ import java.time.LocalDateTime; import java.util.Calendar; import java.util.Date; import java.util.List; -import java.util.Objects; -import java.util.concurrent.TimeUnit; /** * 会员信息Service业务层处理 @@ -70,6 +64,8 @@ public class MemberServiceImpl extends ServiceImpl implemen private final MemberMapper memberMapper; private final IFansService fansService; + private final SysUserMapper sysUserMapper; + @Override public boolean usernameExists(String username) { return baseMapper.countByUsername(username) > 0; // 确保实现 @@ -323,4 +319,16 @@ public class MemberServiceImpl extends ServiceImpl implemen return; } + + @Override + public Page getByReference(MemberBO bo) { + Assert.notNull(bo.getCurrent(), "分页参数不能为空"); + Assert.notNull(bo.getSize(), "分页参数不能为空"); + String tenantId = StrUtil.isBlank(bo.getTenantId()) ? TenantHelper.getTenantId() : bo.getTenantId(); + SysUser sysUser = sysUserMapper.selectReferneceByTenantId(tenantId); + Member member = memberMapper.selectOne(Wrappers.lambdaQuery(Member.class).eq(Member::getUserId, sysUser.getUserId()).last("LIMIT 1")); + Assert.notNull(member, () -> new ServiceException("团长未绑定会员账户")); + bo.setSpreadUid(member.getId()); + return this.page(Page.of(bo.getCurrent(), bo.getSize()), bo.toWapper()); + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderDeliveryHistory.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderDeliveryHistory.java index b2f06b5db..a8b98b067 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderDeliveryHistory.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderDeliveryHistory.java @@ -3,18 +3,25 @@ package com.wzj.soopin.order.domain.entity; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import lombok.EqualsAndHashCode; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; +import java.io.Serial; +import java.io.Serializable; + /** * 订单发货记录对象 oms_order_delivery_history * * @author zcc */ +@EqualsAndHashCode(callSuper = true) @Schema(description = "订单发货记录对象") @Data @TableName("oms_order_delivery_history") -public class OrderDeliveryHistory extends BaseAudit { +public class OrderDeliveryHistory extends BaseAudit implements Serializable { + + @Serial private static final long serialVersionUID = 1L; @Schema(description = "ID") diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java index 28f14996d..080b135e5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java @@ -35,7 +35,7 @@ public interface OrderMapper extends BaseMapper { List selectManagerOrderPage(ManagerOrderQueryForm request); - IPage getlist(@Param("page") Page page,@Param("query") OrderBo query,@Param("tenantId") Long tenantId); + IPage getlist(@Param("page") Page page,@Param("query") OrderBo query,@Param("tenantId") String tenantId); @Select("SELECT " + "COUNT(*) AS count1, " + diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java index 2543b6881..20adcbef5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java @@ -1,13 +1,11 @@ package com.wzj.soopin.order.service.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.lang.Assert; import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -21,30 +19,25 @@ import com.wzj.soopin.goods.mapper.ProductMapper; import com.wzj.soopin.goods.mapper.SkuMapper; import com.wzj.soopin.member.domain.po.Member; import com.wzj.soopin.member.mapper.MemberMapper; -import com.wzj.soopin.member.mapper.MemberWechatMapper; import com.wzj.soopin.order.domain.bo.OrderBo; import com.wzj.soopin.order.domain.bo.RefundBO; import com.wzj.soopin.order.domain.bo.SaveOrderBO; import com.wzj.soopin.order.domain.bo.SaveOrderSkuItemBO; import com.wzj.soopin.order.domain.entity.*; -import com.wzj.soopin.order.domain.form.DeliverProductForm; import com.wzj.soopin.order.domain.form.ManagerOrderQueryForm; -import com.wzj.soopin.order.domain.query.OrderH5Query; import com.wzj.soopin.order.domain.vo.*; import com.wzj.soopin.order.emum.AftersaleStatus; import com.wzj.soopin.order.emum.OrderStatusEnum; import com.wzj.soopin.order.mapper.*; import com.wzj.soopin.order.service.OrderService; -import com.wzj.soopin.order.service.VerificationCodeService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.event.Constants; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.exception.ServiceException; -import org.dromara.common.core.utils.SecurityUtils; -import org.dromara.common.redis.redis.RedisService; import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.system.domain.SysTenant; import org.dromara.system.mapper.SysTenantMapper; import org.springframework.beans.BeanUtils; @@ -415,8 +408,7 @@ public class OrderServiceImpl extends ServiceImpl implements @Override public IPage getlist(Page page, OrderBo query) { - Long tenantId = Long.valueOf(LoginHelper.getTenantId()); - IPage resultPage = orderMapper.getlist(page, query, tenantId); + IPage resultPage = orderMapper.getlist(page, query, TenantHelper.getTenantId()); List orderVOList = resultPage.getRecords(); if (orderVOList.isEmpty()) { return resultPage; diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml index 6429113fd..60e2f1857 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml @@ -259,7 +259,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysReferenceController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysReferenceController.java new file mode 100644 index 000000000..c58e91e3f --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysReferenceController.java @@ -0,0 +1,92 @@ +package org.dromara.system.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.lock.annotation.Lock4j; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.tenant.helper.TenantHelper; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.bo.SysReferenceBo; +import org.dromara.system.domain.query.SysReferenceQuery; +import org.dromara.system.domain.vo.SysReferenceVO; +import org.dromara.system.service.ISysTenantService; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + + +/** + * 团长管理 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/reference") +@ConditionalOnProperty(value = "tenant.enable", havingValue = "true") +public class SysReferenceController extends BaseController { + + private final ISysTenantService tenantService; + + + + /** + * 新增团长租户 + */ +// @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) +// @SaCheckPermission("system:reference:add") + @Log(title = "新增团长", businessType = BusinessType.INSERT) + @Lock4j + @RepeatSubmit() + @PostMapping("/add") + public R add(@Validated @RequestBody SysReferenceBo bo) { + if (!tenantService.checkCompanyNameUnique(null,bo.getPersonName())) { + return R.fail("新增团长'" + bo.getPersonName() + "'失败,团长名称已存在"); + } + return toAjax(TenantHelper.ignore(() -> tenantService.insertByBo(tenantService.convert(bo)))); + } + + /** + * 修改团长租户 + */ +// @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) +// @SaCheckPermission("system:reference:edit") + @Log(title = "修改团长", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PostMapping("/update") + public R edit(@Validated @RequestBody SysReferenceBo bo) { + Assert.notNull(bo.getId(), () -> new ServiceException("id不可为空")); + Assert.notNull(bo.getId(), () -> new ServiceException("tenantId不可为空")); + tenantService.checkTenantAllowed(bo.getTenantId()); + if (!tenantService.checkCompanyNameUnique(bo.getTenantId(), bo.getPersonName())) { + return R.fail("修改团长'" + bo.getPersonName() + "'失败,团长名称已存在"); + } + return toAjax(tenantService.updateByBo(tenantService.convert(bo))); + } + + + /** + * 查询团长列表 + * @param query + * @return + */ +// @SaCheckRole(value = { +// TenantConstants.SUPER_ADMIN_ROLE_KEY, +// TenantConstants.TENANT_ADMIN_ROLE_KEY +// }, mode = SaMode.OR) +// @SaCheckPermission("system:tenant:list") + @GetMapping("/list") + public R> list(@RequestBody SysReferenceQuery query){ + return R.ok(tenantService.getReferenceList(query)); + } + + + + + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysTenantController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysTenantController.java index 26efb8627..d3d6df620 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysTenantController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysTenantController.java @@ -80,7 +80,7 @@ public class SysTenantController extends BaseController { * @param id 主键 */ @Tag(name ="获取租户表详细信息") -// @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) +// @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) 团长 @SaCheckPermission("system:tenant:query") @GetMapping(value = "/{id}") public R getInfo(@PathVariable("id") Long id) { @@ -99,7 +99,7 @@ public class SysTenantController extends BaseController { @RepeatSubmit() @PostMapping("/add") public R add(@Validated(AddGroup.class) @RequestBody SysTenantExtendBo bo) { - if (!tenantService.checkCompanyNameUnique(bo)) { + if (!tenantService.checkCompanyNameUnique(null, bo.getCompanyName())) { return R.fail("新增租户'" + bo.getCompanyName() + "'失败,企业名称已存在"); } return toAjax(TenantHelper.ignore(() -> tenantService.insertByBo(bo))); @@ -115,7 +115,7 @@ public class SysTenantController extends BaseController { @PostMapping("/update") public R edit(@Validated(EditGroup.class) @RequestBody SysTenantExtendBo bo) { tenantService.checkTenantAllowed(bo.getTenantId()); - if (!tenantService.checkCompanyNameUnique(bo)) { + if (!tenantService.checkCompanyNameUnique(bo.getTenantId(), bo.getCompanyName())) { return R.fail("修改租户'" + bo.getCompanyName() + "'失败,公司名称已存在"); } return toAjax(tenantService.updateByBo(bo)); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantAccount.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantAccount.java index 975371b7d..589defdda 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantAccount.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantAccount.java @@ -1,12 +1,10 @@ package org.dromara.system.domain; -import lombok.Builder; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import io.swagger.v3.oas.annotations.media.Schema; import java.math.BigDecimal; -import java.util.Date; @Data @Schema(description = "租户账户实体") @@ -25,6 +23,6 @@ public class SysTenantAccount extends BaseAudit { private Long createBy; @Schema(description = "更新人") private Long updateBy; - @Schema(description = "账户类型(0.店铺 1.代理 2.推广人)") + @Schema(description = "账户类型(2->商家,3->代理,4->平台,5->达人)") private Integer type; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysReferenceBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysReferenceBo.java new file mode 100644 index 000000000..980cc5310 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysReferenceBo.java @@ -0,0 +1,82 @@ +package org.dromara.system.domain.bo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +/** + * 达人类型租户接口请求对象 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class SysReferenceBo { + + @Schema(description = "主键, 修改必填") + private Long id; + + @Schema(description = "租户编号, 修改必填") + private String tenantId; + + @Schema(description = "团长姓名") + @NotBlank(message = "团长姓名不能为空") + private String personName; + + @Schema(description = "团长手机号") + @NotBlank(message = "团长手机号不能为空") + private String personPhone; + + @NotBlank(message = "地址不能为空") + @Schema(description = "地址") + private String address; + + @NotBlank(message = "用户名不能为空") + @Schema(description = "用户名") + private String username; + + @NotBlank(message = "用户密码不能为空") + @Schema(description = "用户密码") + private String password; + + + @Schema(description = "租户状态(0正常 1停用)", hidden = true) + @Builder.Default + private String status = "0"; + + @Schema(description = "任聘时间") + private LocalDateTime joinTime; + + @NotBlank(message = "证件类型不能为空") + @Schema(description = "证件类型,数据字典") + private String idCardType; + + @NotBlank(message = "证件信息不能为空") + @Schema(description = "证件信息") + private String idCard; + + @Schema(description = "其它附件路径") + private String otherAttachment; + + @Schema(description = "备注") + private String remark; + + @NotBlank(message = "合同年限不能为空") + @Schema(description = "合同年限") + private String contractYear; + + @NotNull(message = "租户套餐不能为空") + @Schema(description = "套餐") + private Long packageId; + + @Schema(description = "易生分配的商户编码") + private String mchtCode; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantExtendBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantExtendBo.java index 5d68b5542..677d0ce0a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantExtendBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantExtendBo.java @@ -162,7 +162,7 @@ public class SysTenantExtendBo { @Schema(description = "代理人资质") private String qualification; - @Schema(description = "类型(0.店铺 1.代理 2.推广人)") + @Schema(description = "类型(2->商家,3->代理,4->平台,5->达人)") @NotNull(message = "租户类型不能为空") private Integer type; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/query/SysReferenceQuery.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/query/SysReferenceQuery.java new file mode 100644 index 000000000..7e657e635 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/query/SysReferenceQuery.java @@ -0,0 +1,41 @@ +package org.dromara.system.domain.query; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.dromara.common.core.domain.BaseBO; +import org.dromara.system.domain.SysTenant; + +/** + * 达人类型租户接口请求对象 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class SysReferenceQuery extends BaseBO { + + /** + * 所属代理商 + */ + @Schema(description = "所属代理商id", hidden = true) + private Long oneParentId; + + /** + * 团长姓名 + */ + private String personName; + + /** + * 团长手机号 + */ + private String personPhone; + + /** + * 租户状态(0正常 1停用) + */ + private String status; +} + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysReferenceVO.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysReferenceVO.java new file mode 100644 index 000000000..8d45fc60f --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysReferenceVO.java @@ -0,0 +1,75 @@ +package org.dromara.system.domain.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +/** + * 团长类型租户VO + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class SysReferenceVO { + + @Schema(description = "主键") + private Long id; + + @Schema(description = "团长租户编号") + private String tenantId; + + @Schema(description = "所属代理商id") + private String agencyTenantId; + + @Schema(description = "所属代理商名称") + private String agencyTenantName; + + @Schema(description = "团长姓名") + private String personName; + + @Schema(description = "团长手机号") + private String personPhone; + + @Schema(description = "地址") + private String address; + + @Schema(description = "用户名") + private String username; + + @Schema(description = "用户密码") + private String password; + + @Schema(description = "租户状态(0正常 1停用)") + private String status = "0"; + + @Schema(description = "任聘时间") + private LocalDateTime joinTime; + + @Schema(description = "证件类型,数据字典") + private String idCardType; + + @Schema(description = "证件信息") + private String idCard; + + @Schema(description = "其它附件路径") + private String otherAttachment; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "合同年限") + private String contractYear; + + @Schema(description = "套餐") + private Long packageId; + + @Schema(description = "易生分配的商户编码") + private String mchtCode; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java index da4c8093d..30d2fd0d4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java @@ -9,6 +9,8 @@ import org.dromara.system.domain.SysTenant; import org.dromara.system.domain.bo.SysTenantBo; import org.dromara.system.domain.bo.SysTenantExtendBo; import org.dromara.system.domain.dto.TenantDTO; +import org.dromara.system.domain.query.SysReferenceQuery; +import org.dromara.system.domain.vo.SysReferenceVO; import org.dromara.system.domain.vo.SysTenantVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -108,4 +110,6 @@ public interface SysTenantMapper extends BaseMapperPlus " AND sys_tenant.del_flag = '0' " + " AND sys_dept.del_flag = '0'") SysTenant queryByDeptId(@Param("deptId") Long deptId); + + IPage getReferenceList(@Param("page")Page page, @Param("query")SysReferenceQuery query); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java index e85b6b062..06a64187e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import jakarta.validation.constraints.NotBlank; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.annotation.DataColumn; @@ -13,7 +13,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.system.domain.SysUser; import org.dromara.system.domain.vo.SysUserExportVo; import org.dromara.system.domain.vo.SysUserVo; -import org.hibernate.validator.constraints.Length; import java.util.List; @@ -22,6 +21,7 @@ import java.util.List; * * @author Lion Li */ +@Mapper public interface SysUserMapper extends BaseMapperPlus { /** @@ -150,4 +150,8 @@ public interface SysUserMapper extends BaseMapperPlus { @InterceptorIgnore(tenantLine = "true") @Select("SELECT tenant_id FROM sys_user WHERE phonenumber = #{phonenumber} and del_flag = '0'") String selectTenantIdByPhonenumber(@Param("phonenumber")String phonenumber); + + @InterceptorIgnore(tenantLine = "true") + @Select("SELECT * FROM sys_user WHERE tenant_id = #{tenantId} order by create_time limit 1") + SysUser selectReferneceByTenantId(@Param("tenantId") String tenantId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantService.java index e1093d91b..881d4ce85 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantService.java @@ -2,14 +2,17 @@ package org.dromara.system.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.system.domain.SysTenant; +import org.dromara.system.domain.bo.SysReferenceBo; +import org.dromara.system.domain.bo.SysTenantBo; import org.dromara.system.domain.bo.SysTenantExtendBo; import org.dromara.system.domain.bo.SysTenantReviewBo; import org.dromara.system.domain.dto.TenantDTO; +import org.dromara.system.domain.query.SysReferenceQuery; +import org.dromara.system.domain.vo.SysReferenceVO; import org.dromara.system.domain.vo.SysTenantVo; -import org.dromara.system.domain.bo.SysTenantBo; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; import java.util.Collection; import java.util.List; @@ -69,7 +72,7 @@ public interface ISysTenantService { /** * 校验企业名称是否唯一 */ - boolean checkCompanyNameUnique(SysTenantExtendBo bo); + boolean checkCompanyNameUnique(String tenantId, String companyName); /** * 校验账号余额 @@ -128,4 +131,20 @@ public interface ISysTenantService { * @return */ List getByParentId(Long id); + + /** + * 将团长BO转换为租户BO + * + * @param sysReferenceBo + * @return + */ + SysTenantExtendBo convert(SysReferenceBo sysReferenceBo); + + /** + * 查询团长列表 + * + * @param query + * @return + */ + IPage getReferenceList(SysReferenceQuery query); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java index 3ae9d750f..923f482f8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java @@ -34,10 +34,13 @@ import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.tenant.core.TenantEntity; import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.system.domain.*; +import org.dromara.system.domain.bo.SysReferenceBo; import org.dromara.system.domain.bo.SysTenantBo; import org.dromara.system.domain.bo.SysTenantExtendBo; import org.dromara.system.domain.bo.SysTenantReviewBo; import org.dromara.system.domain.dto.TenantDTO; +import org.dromara.system.domain.query.SysReferenceQuery; +import org.dromara.system.domain.vo.SysReferenceVO; import org.dromara.system.domain.vo.SysTenantVo; import org.dromara.system.mapper.*; import org.dromara.system.service.ISysTenantService; @@ -125,6 +128,7 @@ public class SysTenantServiceImpl implements ISysTenantService { lqw.eq(bo.getAccountCount() != null, SysTenant::getAccountCount, bo.getAccountCount()); lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysTenant::getStatus, bo.getStatus()); lqw.orderByAsc(SysTenant::getType); + lqw.orderByDesc(SysTenant::getCreateTime); return lqw; } @@ -148,13 +152,22 @@ public class SysTenantServiceImpl implements ISysTenantService { ); String tenantId = generateTenantId(tenantIds); - String tenantName = bo.getAgencyName(); - if (bo.getType() == TenantType.REFERENCE.getType()){ - tenant.setAgencyTenantId(currentTenantId); - } - if (bo.getType() == TenantType.MERCHANT.getType()){ - tenant.setPromoterTenantId(currentTenantId); + String tenantName = bo.getCompanyName(); + String nickName = bo.getEmergencyContact(); + String phoneNumber = bo.getEmergencyContactPhone(); + tenant.setAgencyTenantId(currentTenantId); + if (bo.getType() == TenantType.AGENT.getType()) { + tenantName = bo.getAgencyName(); + } else if (bo.getType() == TenantType.MERCHANT.getType()){ + tenant.setPromoterTenantId(LoginHelper.getUserIdStr()); tenantName = bo.getStoreName(); + nickName = bo.getContactUserName(); + phoneNumber = bo.getContactPhone(); + } else if (bo.getType() == TenantType.REFERENCE.getType()){ + tenant.setPromoterTenantId(LoginHelper.getUserIdStr()); + tenantName = bo.getPersonName(); + nickName = bo.getPersonName(); + phoneNumber = bo.getPersonPhone(); } // 设置sys_tenant表字段 tenant.setTenantId(tenantId); @@ -166,9 +179,9 @@ public class SysTenantServiceImpl implements ISysTenantService { tenant.setDomain(bo.getDomain()); tenant.setIntro(bo.getIntro()); tenant.setPackageId(bo.getPackageId()); - tenant.setAccountCount(10l); + tenant.setAccountCount(10L); tenant.setStatus(bo.getStatus()); - tenant.setDelFlag(bo.getDelFlag()); + tenant.setDelFlag("0"); tenant.setBusinessLicense(bo.getBusinessLicense()); tenant.setJoinTime(LocalDateTime.now()); tenant.setAttachment(bo.getAttachment()); @@ -241,7 +254,7 @@ public class SysTenantServiceImpl implements ISysTenantService { tenantExtend.setEntryTime(bo.getEntryTime()); tenantExtend.setExpiryDate(bo.getExpiryDate()); tenantExtend.setPromoterStatus(bo.getPromoterStatus()); - + tenantExtend.setMchtCode(bo.getMchtCode()); boolean extendInserted = tenantExtendMapper.insert(tenantExtend) > 0; @@ -281,10 +294,10 @@ public class SysTenantServiceImpl implements ISysTenantService { SysUser user = new SysUser(); user.setTenantId(tenantId); user.setUserName(bo.getUsername()); - user.setNickName(bo.getContactUserName()); + user.setNickName(nickName); user.setPassword(BCrypt.hashpw(bo.getPassword())); user.setDeptId(deptId); - user.setPhonenumber(bo.getContactPhone()); + user.setPhonenumber(phoneNumber); userMapper.insert(user); // 设置部门负责人 @@ -429,10 +442,7 @@ public class SysTenantServiceImpl implements ISysTenantService { existingTenant.setIntro(bo.getIntro()); existingTenant.setPackageId(bo.getPackageId()); existingTenant.setAccountCount(bo.getAccountCount()); - existingTenant.setStatus(bo.getStatus()); - existingTenant.setDelFlag(bo.getDelFlag()); existingTenant.setBusinessLicense(bo.getBusinessLicense()); - existingTenant.setJoinTime(LocalDateTime.now()); existingTenant.setAttachment(bo.getAttachment()); existingTenant.setPromoteList(bo.getPromoteList()); existingTenant.setExpireTime(bo.getExpireTime()); @@ -446,7 +456,6 @@ public class SysTenantServiceImpl implements ISysTenantService { existingTenant.setCounty(bo.getCounty()); existingTenant.setBirthday(bo.getBirthday()); existingTenant.setQualification(bo.getQualification()); - existingTenant.setType(bo.getType()); // 4. 查询扩展表现有数据 LambdaQueryWrapper extendQuery = new LambdaQueryWrapper<>(); @@ -506,6 +515,7 @@ public class SysTenantServiceImpl implements ISysTenantService { existingExtend.setEntryTime(bo.getEntryTime()); existingExtend.setExpiryDate(bo.getExpiryDate()); existingExtend.setPromoterStatus(bo.getPromoterStatus()); + existingExtend.setMchtCode(bo.getMchtCode()); // 执行更新 boolean success = baseMapper.updateById(existingTenant) > 0 @@ -563,10 +573,10 @@ public class SysTenantServiceImpl implements ISysTenantService { * 校验企业名称是否唯一 */ @Override - public boolean checkCompanyNameUnique(SysTenantExtendBo bo) { + public boolean checkCompanyNameUnique(String tenantId, String companyName) { boolean exist = baseMapper.exists(new LambdaQueryWrapper() - .eq(SysTenant::getCompanyName, bo.getCompanyName()) - .ne(ObjectUtil.isNotNull(bo.getTenantId()), SysTenant::getTenantId, bo.getTenantId())); + .eq(SysTenant::getCompanyName, companyName) + .ne(ObjectUtil.isNotNull(tenantId), SysTenant::getTenantId, tenantId)); return !exist; } @@ -824,5 +834,19 @@ public class SysTenantServiceImpl implements ISysTenantService { return this.queryList(SysTenantBo.builder().oneParentId(id).status("0").build()); } + @Override + public SysTenantExtendBo convert(SysReferenceBo sysReferenceBo) { + SysTenantExtendBo sysTenantExtendBo = BeanUtil.copyProperties(sysReferenceBo, SysTenantExtendBo.class); + sysTenantExtendBo.setType(TenantType.REFERENCE.getType()); + return sysTenantExtendBo; + } + + @Override + public IPage getReferenceList(SysReferenceQuery query) { + SysTenantVo sysTenantVo = queryByTenantId(TenantHelper.getTenantId()); + query.setOneParentId(sysTenantVo.getId()); + IPage resultPage = baseMapper.getReferenceList(Page.of(query.getCurrent(), query.getSize()),query); + return resultPage; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml index 4852472fb..4d4855b97 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml @@ -93,5 +93,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/config/EasypayConfig.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/config/EasypayConfig.java index 4fa4a0f91..1fe0e3971 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/config/EasypayConfig.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/config/EasypayConfig.java @@ -19,16 +19,16 @@ public class EasypayConfig { */ private String reqId; + /** + * 易生分配的证书Id + */ + private String certificateId; + /** * 易生分配的商户号 */ private String mchtCode; - /** - * 微信子商户号 - */ - private String wechatMchid; - /** * 易生公钥 */ diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/EasypayServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/EasypayServiceImpl.java index b5392ee41..47091f160 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/EasypayServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/EasypayServiceImpl.java @@ -122,6 +122,7 @@ public class EasypayServiceImpl implements IEasypayService { return EasyPayRequestHeader.builder() .reqType(REQ_TYPE) .reqId(easypayConfig.getReqId()) + .certificateId(easypayConfig.getCertificateId()) .transTime(DateUtils.parseDateToStr(FormatsType.YYYYMMDDHHMMSS, new Date())) .build(); }