|
@@ -3,10 +3,14 @@ package com.ruoyi.business.service.impl;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
+import cn.hutool.json.JSONArray;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
+import com.junziqian.sdk.bean.req.sign.ext.SignatoryReq;
|
|
|
|
|
+import com.ruoyi.base.platform.domain.vo.PlatformInfoVo;
|
|
|
|
|
+import com.ruoyi.base.platform.service.IPlatformInfoService;
|
|
|
import com.ruoyi.business.domain.Business;
|
|
import com.ruoyi.business.domain.Business;
|
|
|
import com.ruoyi.business.domain.bo.BusinessBalanceRecordBo;
|
|
import com.ruoyi.business.domain.bo.BusinessBalanceRecordBo;
|
|
|
import com.ruoyi.business.domain.bo.BusinessBo;
|
|
import com.ruoyi.business.domain.bo.BusinessBo;
|
|
@@ -23,13 +27,18 @@ import com.ruoyi.common.core.domain.PageQuery;
|
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
import com.ruoyi.common.enums.ExceptionEnum;
|
|
import com.ruoyi.common.enums.ExceptionEnum;
|
|
|
|
|
+import com.ruoyi.common.enums.InviteType;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.BeanCopyUtils;
|
|
import com.ruoyi.common.utils.BeanCopyUtils;
|
|
|
import com.ruoyi.common.utils.MapTools;
|
|
import com.ruoyi.common.utils.MapTools;
|
|
|
|
|
+import com.ruoyi.common.utils.ShareCodeUtils;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.shop.product.IProductInnerApi;
|
|
import com.ruoyi.shop.product.IProductInnerApi;
|
|
|
import com.ruoyi.shop.product.IUserShoppingCartApi;
|
|
import com.ruoyi.shop.product.IUserShoppingCartApi;
|
|
|
import com.ruoyi.system.service.ISysDeptService;
|
|
import com.ruoyi.system.service.ISysDeptService;
|
|
|
|
|
+import com.ruoyi.tool.service.JzqService;
|
|
|
|
|
+import com.ruoyi.user.domain.User;
|
|
|
|
|
+import com.ruoyi.user.service.IUserService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -50,12 +59,12 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
|
|
|
|
|
private final BusinessMapper baseMapper;
|
|
private final BusinessMapper baseMapper;
|
|
|
private final ISysDeptService sysDeptService;
|
|
private final ISysDeptService sysDeptService;
|
|
|
-
|
|
|
|
|
private final IProductInnerApi iProductInnerApi;
|
|
private final IProductInnerApi iProductInnerApi;
|
|
|
-
|
|
|
|
|
private final IUserShoppingCartApi iUserShoppingCartApi;
|
|
private final IUserShoppingCartApi iUserShoppingCartApi;
|
|
|
-
|
|
|
|
|
private final IBusinessVerifierService businessVerifierService;
|
|
private final IBusinessVerifierService businessVerifierService;
|
|
|
|
|
+ private final JzqService jzqService;
|
|
|
|
|
+ private final IPlatformInfoService platformInfoService;
|
|
|
|
|
+ private final IUserService userService;
|
|
|
|
|
|
|
|
private final IBusinessBalanceRecordService iBusinessBalanceRecordService;
|
|
private final IBusinessBalanceRecordService iBusinessBalanceRecordService;
|
|
|
|
|
|
|
@@ -207,14 +216,31 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
@Override
|
|
|
public Boolean insertByBo(BusinessBo bo) {
|
|
public Boolean insertByBo(BusinessBo bo) {
|
|
|
-
|
|
|
|
|
SysDept sysDept = insertDept(bo);
|
|
SysDept sysDept = insertDept(bo);
|
|
|
|
|
|
|
|
validEntityBeforeSave(bo);
|
|
validEntityBeforeSave(bo);
|
|
|
Business add = BeanUtil.toBean(bo, Business.class);
|
|
Business add = BeanUtil.toBean(bo, Business.class);
|
|
|
add.setDeptId(sysDept.getDeptId());
|
|
add.setDeptId(sysDept.getDeptId());
|
|
|
|
|
+ add.setBusinessStatus(true);
|
|
|
|
|
+ //到期时间 1年后到期
|
|
|
|
|
+ add.setExpiresTime(DateUtil.offsetDay(new Date(), 365));
|
|
|
|
|
+ //签合同 TODO
|
|
|
|
|
+// Boolean signFlag = jzqService.uploadPersSign(bo.getLegalIdCard(), bo.getSignImage());
|
|
|
|
|
+// if(!signFlag){
|
|
|
|
|
+// throw new ServiceException(BusinessExceptionEnum.Business_SIGN_FAIL);
|
|
|
|
|
+// }
|
|
|
|
|
+// String contractNo = jzqService.applySign(buildSignatories(add));
|
|
|
|
|
+// if (StringUtils.isEmpty(contractNo)) {
|
|
|
|
|
+// throw new ServiceException(BusinessExceptionEnum.Business_SIGN_CONTRACT_FAIL);
|
|
|
|
|
+// }
|
|
|
|
|
+// add.setContractNo(contractNo);
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
if (flag) {
|
|
if (flag) {
|
|
|
|
|
+ //生成邀请码
|
|
|
|
|
+ String inviteCode = ShareCodeUtils.idToCode(add.getBusinessId());
|
|
|
|
|
+ add.setInviteCode(InviteType.SHOP.getCode() + inviteCode);
|
|
|
|
|
+ baseMapper.updateById(add);
|
|
|
|
|
+
|
|
|
bo.setBusinessId(add.getBusinessId());
|
|
bo.setBusinessId(add.getBusinessId());
|
|
|
//添加核销员
|
|
//添加核销员
|
|
|
BusinessVerifierBo verifierBo = new BusinessVerifierBo();
|
|
BusinessVerifierBo verifierBo = new BusinessVerifierBo();
|
|
@@ -226,6 +252,42 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
return flag;
|
|
return flag;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private JSONArray buildSignatories(Business business) {
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 签约方1(个人)
|
|
|
|
|
+ */
|
|
|
|
|
+ User user = userService.getById(business.getRelationUserId(), true);
|
|
|
|
|
+ JSONArray signatories = new JSONArray();
|
|
|
|
|
+ SignatoryReq sReq = new SignatoryReq();
|
|
|
|
|
+ sReq.setFullName(business.getLegalName()); //姓名
|
|
|
|
|
+ sReq.setIdentityType(1); //证件类型
|
|
|
|
|
+ sReq.setIdentityCard(business.getLegalIdCard());//身份证号
|
|
|
|
|
+ sReq.setMobile(user.getMobile()); //手机号
|
|
|
|
|
+ sReq.setChapteJson("[{\"page\":0,\"chaptes\":[{\"offsetX\":0.3047,\"offsetY\":0.2677}]},{\"page\":4,\"chaptes\":[{\"offsetX\":0.2378,\"offsetY\":0.1681}]}]");//坐标(X Y)定位签字位置
|
|
|
|
|
+ // sReq.setSearchKey("服务组件");//关键字定位签字位置
|
|
|
|
|
+ sReq.setNoNeedVerify(1); //取消签约前短信校验
|
|
|
|
|
+ sReq.setServerCaAuto(0);//是否使用自动签署完成,0或null不使用,1自动(当且只当合同处理方式为部份自动或收集批量签时有效)
|
|
|
|
|
+ sReq.setSignLevel(1);//签字类型,标准图形章或公章:0标准图形章,1公章或手写,2公章手写或手写,3个人方形标准章(用户类型是个人且姓名2-4个字符生效,其他情况默认使用系统标准图形章)
|
|
|
|
|
+ signatories.add(sReq);
|
|
|
|
|
+
|
|
|
|
|
+ PlatformInfoVo platformInfoVo = platformInfoService.getInfo();
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 签约方2(企业)
|
|
|
|
|
+ */
|
|
|
|
|
+ SignatoryReq eReq = new SignatoryReq();
|
|
|
|
|
+ eReq.setFullName(platformInfoVo.getEnterpriseFullName()); //企业姓名
|
|
|
|
|
+ eReq.setIdentityType(12); //证件类型
|
|
|
|
|
+ eReq.setIdentityCard(platformInfoVo.getUscCode());//统一社会信用代码
|
|
|
|
|
+ eReq.setEmail(platformInfoVo.getEmail()); //在君子签注册认证的邮箱
|
|
|
|
|
+ eReq.setChapteJson("[{\"page\":4,\"chaptes\":[{\"offsetX\":0.121,\"offsetY\":0.3941}]}]");//坐标(X Y)定位签字位置
|
|
|
|
|
+ // eReq.setSearchKey("服务组件");//关键字定位签字位置
|
|
|
|
|
+ eReq.setSignLevel(0);
|
|
|
|
|
+ eReq.setNoNeedVerify(1);
|
|
|
|
|
+ eReq.setServerCaAuto(1);//当前签约方自动签署
|
|
|
|
|
+ signatories.add(eReq);
|
|
|
|
|
+ return signatories;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 修改商家
|
|
* 修改商家
|
|
|
*
|
|
*
|
|
@@ -379,7 +441,6 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
insertByBo(businessBo);
|
|
insertByBo(businessBo);
|
|
|
} else {
|
|
} else {
|
|
|
updateByBo(businessBo);
|
|
updateByBo(businessBo);
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
return businessBo.getBusinessId();
|
|
return businessBo.getBusinessId();
|
|
|
}
|
|
}
|
|
@@ -447,4 +508,23 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
build.setEntryAfterBalance(business.getBalance());
|
|
build.setEntryAfterBalance(business.getBalance());
|
|
|
iBusinessBalanceRecordService.insertByBo(build);
|
|
iBusinessBalanceRecordService.insertByBo(build);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public BusinessVo queryByInviteCode(String inviteCode) {
|
|
|
|
|
+ return baseMapper.selectVoOne(new LambdaQueryWrapper<Business>().eq(Business::getInviteCode, inviteCode));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<Business> needAutoExpires() {
|
|
|
|
|
+ return baseMapper.selectList(new LambdaQueryWrapper<Business>()
|
|
|
|
|
+ .eq(Business::getCloseStatus, false)
|
|
|
|
|
+ .eq(Business::getExpiresStatus, false)
|
|
|
|
|
+ .le(Business::getExpiresTime, DateUtil.date()));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void autoExpires(Business business) {
|
|
|
|
|
+ business.setExpiresStatus(true);
|
|
|
|
|
+ baseMapper.updateById(business);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|