Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

LiFei 6 лет назад
Родитель
Сommit
86b7822005

+ 57 - 32
happy-boot-module-flexjob/src/main/java/org/jeecg/modules/ordermanager/service/impl/HwOrderServiceImpl.java

@@ -41,6 +41,7 @@ import org.jeecg.modules.util.TokenUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
@@ -690,40 +691,64 @@ public class HwOrderServiceImpl extends ServiceImpl<HwOrderMapper, HwOrder> impl
                     return returnMap;
                 }
             }
-            /**
-             * 1、填充在线合同模板并生成合同
-             * 2、直接签署页面
-             */
-            //模板填充
-            List<HwContractTemplate> hwContractTemplateList = makeContractTemplate(hwOrder, hwSubcontractor, hwUser);
-            RestResult resultFill = contractUtil.templateFill(accountId, hwSubcontractor.getName(), hwContractTemplateList);
-            if (ContractConst.CODE_1.equals(resultFill.getCode())) {
-                JSONObject jsonObject = JSONObject.parseObject(resultFill.getData().toString());
-                //更新订单表
-                String contractNo = jsonObject.getString("contractNo");
-                QueryWrapper<HwElectronicContract> queryWrapper = new QueryWrapper<>();
-                queryWrapper.eq("contract_no", contractNo);
-                List<HwElectronicContract> hwElectronicContractList = hwElectronicContractService.list(queryWrapper);
-                if (hwElectronicContractList.size() > 0) {
-                    HwElectronicContract hwElectronicContract = hwElectronicContractList.get(0);
-                    hwOrder.setElectronicContractId(hwElectronicContract.getId());
-                    hwOrder.setElectronicContractStatus(6);
-                    updateById(hwOrder);
-                }
-                //返回签署url
-                //1、未实名认证返回
-                String url = jsonObject.getString("url");
-                //始终返回长链
-                String longUrl = jsonObject.getString("longUrl");
-                //2、已实名认证返回
-                String shortUrl = jsonObject.getString("shortUrl");
-                if (StringUtils.isNotBlank(longUrl)) {
-                    returnMap.put("url", longUrl);
-                }
-            } else {
+            try {
+                //电子合同确认订单(第二步)
+                returnMap = this.confirmECOrdersNext(hwOrder, hwSubcontractor, hwUser, accountId);
+            } catch (Exception e) {
+                System.out.println("电子合同确认订单(第二步)异常");
                 returnMap.put("success", "1030");
-                return returnMap;
+                e.printStackTrace();
+            }
+        }
+        return returnMap;
+    }
+
+    /**
+     * 电子合同确认订单(第二步)
+     * PROPAGATION_REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则把当前事务挂起。
+     *
+     * @param hwOrder
+     * @param hwSubcontractor
+     * @param hwUser
+     * @param accountId
+     * @return
+     */
+    @Transactional(propagation = Propagation.REQUIRES_NEW)
+    public Map<String, Object> confirmECOrdersNext(HwOrder hwOrder, HwSubcontractor hwSubcontractor, HwUser hwUser, String accountId) {
+        Map<String, Object> returnMap = new HashMap<String, Object>();
+        /**
+         * 1、填充在线合同模板并生成合同
+         * 2、直接签署页面
+         */
+        //模板填充
+        List<HwContractTemplate> hwContractTemplateList = makeContractTemplate(hwOrder, hwSubcontractor, hwUser);
+        RestResult resultFill = contractUtil.templateFill(accountId, hwSubcontractor.getName(), hwContractTemplateList);
+        if (ContractConst.CODE_1.equals(resultFill.getCode())) {
+            JSONObject jsonObject = JSONObject.parseObject(resultFill.getData().toString());
+            //更新订单表
+            String contractNo = jsonObject.getString("contractNo");
+            QueryWrapper<HwElectronicContract> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("contract_no", contractNo);
+            List<HwElectronicContract> hwElectronicContractList = hwElectronicContractService.list(queryWrapper);
+            if (hwElectronicContractList.size() > 0) {
+                HwElectronicContract hwElectronicContract = hwElectronicContractList.get(0);
+                hwOrder.setElectronicContractId(hwElectronicContract.getId());
+                hwOrder.setElectronicContractStatus(6);
+                updateById(hwOrder);
             }
+            //返回签署url
+            //1、未实名认证返回
+            String url = jsonObject.getString("url");
+            //始终返回长链
+            String longUrl = jsonObject.getString("longUrl");
+            //2、已实名认证返回
+            String shortUrl = jsonObject.getString("shortUrl");
+            if (StringUtils.isNotBlank(longUrl)) {
+                returnMap.put("url", longUrl);
+            }
+        } else {
+            returnMap.put("success", "1030");
+            return returnMap;
         }
         return returnMap;
     }

+ 1 - 1
happy-boot-module-flexjob/src/main/java/org/jeecg/modules/saasmanager/mapper/xml/HwPlatformCompanyAccountDetailMapper.xml

@@ -55,7 +55,7 @@
 		hr.service_contract as "hwRequirement.serviceContract",
 		hpc.company_name as "hwRequirement.companyName",
 		hs.name as "subName",
-		hsad.service_fee as "subServiceFee",
+		hsad.service_fee as "subServiceFee"
         FROM hw_platform_company_account_detail a
 		left join hw_requirement hr on hr.id=a.requirement_id
 		left join hw_platform_company hpc on hpc.id=hr.platform_company_id