Преглед на файлове

招行支付2.0—退单情况处理为支付失败,走补发流程

ZhangWenQiang преди 4 години
родител
ревизия
407a82743b

+ 24 - 8
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/controller/HlwPaymentDetailController.java

@@ -14,6 +14,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.alibaba.fastjson.JSONObject;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
@@ -236,6 +237,21 @@ public class HlwPaymentDetailController extends JeecgController<HlwPaymentDetail
     }
 
     /**
+     * 退单处理
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "付款明细表-退单")
+    @ApiOperation(value = "付款明细表-退单", notes = "付款明细表-退单")
+    @PutMapping(value = "/chargeBack")
+    public Result<?> chargeBack(@RequestBody String ids) {
+        JSONObject jsonObject = JSONObject.parseObject(ids);
+        Result<?> result = hlwPaymentDetailService.chargeBack(jsonObject.getString("ids"));
+        return result;
+    }
+
+    /**
      * 通过id删除
      *
      * @param id
@@ -418,10 +434,10 @@ public class HlwPaymentDetailController extends JeecgController<HlwPaymentDetail
         for (int i = 0; i < 6; i++) {
             Map map = new HashMap();
             //type=1获取前6个数据,type=2获取前前6个月数据
-            if("1".equals(type)){
-                 lastDate = localDate.minusMonths(i + 1);
-            }else{
-                 lastDate = localDate.minusMonths(i + 7);
+            if ("1".equals(type)) {
+                lastDate = localDate.minusMonths(i + 1);
+            } else {
+                lastDate = localDate.minusMonths(i + 7);
             }
             Double monthPayment1 = hlwPaymentDetailService.monthPayment(DateUtils.asDate(lastDate));
             map.put("value", monthPayment1);
@@ -448,17 +464,17 @@ public class HlwPaymentDetailController extends JeecgController<HlwPaymentDetail
         Random rand = new Random();
         list.add(weekUser);
         //本周新增用户占月新增用户比例
-        if(monthUser>0){
+        if (monthUser > 0) {
             list.add(businessAccountUtils.round(businessAccountUtils.div(weekUser, monthUser), 2) * 100);
-        }else{
+        } else {
             list.add(0);
         }
 
         list.add(monthUser);
         //本月新增用户占年新增用户比例
-        if(yearUser>0){
+        if (yearUser > 0) {
             list.add(businessAccountUtils.round(businessAccountUtils.div(monthUser, yearUser), 2) * 100);
-        }else{
+        } else {
             list.add(0);
         }
         //用户环增长比

+ 3 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/mapper/xml/HlwPaymentDetailMapper.xml

@@ -58,6 +58,9 @@
             <if test="hlwPaymentDetail.status != null">
                 and a.status = #{hlwPaymentDetail.status}
             </if>
+			<if test="hlwPaymentDetail.userName != null and hlwPaymentDetail.userName != ''">
+				and a.user_name like concat('%',#{hlwPaymentDetail.userName},'%')
+			</if>
         </where>
         ORDER BY a.update_time DESC, a.id ASC
     </select>

+ 2 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/IHlwPaymentDetailService.java

@@ -50,4 +50,6 @@ public interface IHlwPaymentDetailService extends IService<HlwPaymentDetail> {
     Double monthPayment(Date date);
 
     Double yearPayment();
+
+    Result<?> chargeBack(String ids);
 }

+ 69 - 49
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/impl/HlwPaymentDetailServiceImpl.java

@@ -32,10 +32,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @Description: 付款明细表
@@ -46,8 +43,8 @@ import java.util.Map;
 @Service
 @Slf4j
 public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMapper, HlwPaymentDetail> implements IHlwPaymentDetailService {
-     @Autowired
-     private IHlwUserService hlwUserService;
+    @Autowired
+    private IHlwUserService hlwUserService;
     @Autowired
     private IHlwCompanyService hlwCompanyService;
     @Autowired
@@ -124,6 +121,7 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
 
     /**
      * 导入
+     *
      * @param jsonObject
      * @return
      */
@@ -132,21 +130,21 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
     public Result<?> saveInfo(JSONObject jsonObject) {
         Result<List<Map<String, Object>>> result = new Result<List<Map<String, Object>>>();
         //cpType 1:服务商 2:开心
-        Integer cpType=jsonObject.getInteger("cpType");
+        Integer cpType = jsonObject.getInteger("cpType");
         //cpType=2为通过平台这时subcontractorId为cpid
-        Integer subcontractorId=jsonObject.getInteger("subcontractorId");
-        Integer applicationId=jsonObject.getInteger("applicationId");
+        Integer subcontractorId = jsonObject.getInteger("subcontractorId");
+        Integer applicationId = jsonObject.getInteger("applicationId");
         //是否已存在订单  true代表开心灵工,走开心灵工导入模式
-        Boolean existOrder=jsonObject.getBoolean("existOrder");
-        HlwCompany hlwCompany=hlwCompanyService.getByCompanyCode(jsonObject.getString("companyCode"));
-        List<Map<String, Object>> list= (List<Map<String, Object>>) jsonObject.get("userList");
-        log.info("444444444444444==="+list);
-        HlwRequirement hlwRequirement=new HlwRequirement();
+        Boolean existOrder = jsonObject.getBoolean("existOrder");
+        HlwCompany hlwCompany = hlwCompanyService.getByCompanyCode(jsonObject.getString("companyCode"));
+        List<Map<String, Object>> list = (List<Map<String, Object>>) jsonObject.get("userList");
+        log.info("444444444444444===" + list);
+        HlwRequirement hlwRequirement = new HlwRequirement();
         //开心灵工模式,不创建用户需求订单,不判断60天
-        if(!existOrder){
+        if (!existOrder) {
             //判断60内是否存在相同笔数和金额的付款
-            Double sumMoney=jsonObject.getDouble("sumMoney");
-            int paymentSize=jsonObject.getInteger("paymentSize");
+            Double sumMoney = jsonObject.getDouble("sumMoney");
+            int paymentSize = jsonObject.getInteger("paymentSize");
             //查询60天内所有付款
             List<HlwPayment> hlwPaymentList = hlwPaymentService.findHlwPaymentList();
             //遍历查询是否60内存在相同笔数和金额的付款
@@ -157,9 +155,9 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
                         if (hlgPaymentDetailList1.size() == paymentSize) {
                             Double money1 = 0.00;
                             for (int j = 0; j < hlgPaymentDetailList1.size(); j++) {
-                                if(hlgPaymentDetailList1.get(j).getPaymentType()==1){
+                                if (hlgPaymentDetailList1.get(j).getPaymentType() == 1) {
                                     money1 = businessAccountUtils.add(money1, hlgPaymentDetailList1.get(j).getNetPayment());
-                                }else{
+                                } else {
                                     money1 = businessAccountUtils.add(money1, hlgPaymentDetailList1.get(j).getPayment());
                                 }
                             }
@@ -169,16 +167,16 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
                             if (data1.compareTo(data2) == 0) {
                                 result.setMessage("60天内已存在相同笔数相同金额的付款");
                                 break;
-                            }else{
+                            } else {
                                 result.setMessage("导入成功");
                             }
                         }
                     }
                 }
             }
-            log.info("2222222222222233333332==="+jsonObject);
+            log.info("2222222222222233333332===" + jsonObject);
             //保存用户
-            for (int i = 0; i <list.size() ; i++) {
+            for (int i = 0; i < list.size(); i++) {
                 HlwUser hlwUser = new HlwUser();
                 Map<String, Object> parameters = list.get(i);
                 hlwUser.setUserId((Integer) parameters.get("id"));
@@ -190,56 +188,56 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
                 log.info("userCode========={}", userCode);
                 hlwUser.setUserCode(userCode);
                 hlwUser.setApplicationId(applicationId);
-                parameters.put("userId",(Integer) parameters.get("id"));
-                parameters.put("userCode",userCode);
-                parameters.put("applicationId",applicationId);
+                parameters.put("userId", (Integer) parameters.get("id"));
+                parameters.put("userCode", userCode);
+                parameters.put("applicationId", applicationId);
                 hlwUser.setCreateBy(jsonObject.getString("loginUserName"));
                 hlwUser.setUpdateBy(jsonObject.getString("loginUserName"));
                 hlwUserService.save(hlwUser);
             }
             //保存需求
             hlwRequirement.setApplicationId(applicationId);
-            if(cpType==1){
+            if (cpType == 1) {
                 hlwRequirement.setSubcontractorId(subcontractorId);
-            }else if(cpType==2){
+            } else if (cpType == 2) {
                 hlwRequirement.setCpId(subcontractorId);
             }
             hlwRequirement.setCompanyId(hlwCompany.getId());
             hlwRequirementService.save(hlwRequirement);
         }
         //是否提示设置付款类型
-        if(hlwCompany.getPaymentType()==null){
+        if (hlwCompany.getPaymentType() == null) {
             return Result.error("请先配置支付类型");
         }
 
         //保存付款
-        HlwPayment hlwPayment=new HlwPayment();
+        HlwPayment hlwPayment = new HlwPayment();
         hlwPayment.setApplicationId(applicationId);
         hlwPayment.setCompanyId(hlwCompany.getId());
 
-        String code = "FK" + System.currentTimeMillis() +hlwCompany.getId() ;
+        String code = "FK" + System.currentTimeMillis() + hlwCompany.getId();
         hlwPayment.setPaymentCode(code);
-        List<Map<String, Object>> paymentList= (List<Map<String, Object>>) jsonObject.get("paymentList");
+        List<Map<String, Object>> paymentList = (List<Map<String, Object>>) jsonObject.get("paymentList");
         Double payment = 0.00;
         for (int i = 0; i < paymentList.size(); i++) {
             payment = businessAccountUtils.add(payment, Double.parseDouble((String) paymentList.get(i).get("payment")));
         }
         hlwPayment.setPayment(payment);
-        Double serviceFee=0.00;
-        Double serviceRate=jsonObject.getDouble("serviceRate");
-        if(cpType==1){
+        Double serviceFee = 0.00;
+        Double serviceRate = jsonObject.getDouble("serviceRate");
+        if (cpType == 1) {
             hlwPayment.setSubcontractorId(subcontractorId);
-        }else{
-            Integer cpSubcontractorId=jsonObject.getInteger("cpSubcontractorId");
-            if(cpSubcontractorId!=null){
-               hlwPayment.setSubcontractorId(cpSubcontractorId);
+        } else {
+            Integer cpSubcontractorId = jsonObject.getInteger("cpSubcontractorId");
+            if (cpSubcontractorId != null) {
+                hlwPayment.setSubcontractorId(cpSubcontractorId);
             }
         }
-        serviceFee=businessAccountUtils.mul(serviceRate*0.01,payment);
+        serviceFee = businessAccountUtils.mul(serviceRate * 0.01, payment);
         hlwPayment.setServiceRate(serviceRate);
         hlwPayment.setServiceFee(serviceFee);
-        hlwPayment.setTotalPayment(businessAccountUtils.add(payment,serviceFee));
-        Integer isThroughPlatform=cpType==1?0:1;
+        hlwPayment.setTotalPayment(businessAccountUtils.add(payment, serviceFee));
+        Integer isThroughPlatform = cpType == 1 ? 0 : 1;
         hlwPayment.setIsThroughPlatform(isThroughPlatform);
         hlwPayment.setStatus(1);
         hlwPayment.setCreateBy(jsonObject.getString("loginUserName"));
@@ -248,8 +246,8 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
 
         //保存付款明细
         for (int i = 0; i < paymentList.size(); i++) {
-            HlwOrder hlwOrder=new HlwOrder();
-            if(!existOrder){
+            HlwOrder hlwOrder = new HlwOrder();
+            if (!existOrder) {
                 //保存订单
 
                 hlwOrder.setRequirementId(hlwRequirement.getId());
@@ -257,8 +255,8 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
                 hlwOrder.setCreateBy(jsonObject.getString("loginUserName"));
                 hlwOrder.setUpdateBy(jsonObject.getString("loginUserName"));
                 hlwOrderService.save(hlwOrder);
-            }else{
-                hlwOrder=hlwOrderService.getByOrderCode((String)paymentList.get(i).get("orderId"));
+            } else {
+                hlwOrder = hlwOrderService.getByOrderCode((String) paymentList.get(i).get("orderId"));
             }
             HlwPaymentDetail hlwPaymentDetail = new HlwPaymentDetail();
             hlwPaymentDetail.setOrderId(hlwOrder.getId());
@@ -270,9 +268,9 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
             hlwPaymentDetail.setBnkflg((String) paymentList.get(i).get("bnkflg"));
             hlwPaymentDetail.setEacbnk((String) paymentList.get(i).get("eacbnk"));
             hlwPaymentDetail.setRcveaa((String) paymentList.get(i).get("rcveaa"));
-            if(hlwCompany.getPaymentType()==1){
+            if (hlwCompany.getPaymentType() == 1) {
                 hlwPaymentDetail.setNetPayment(Double.parseDouble((String) paymentList.get(i).get("payment")));
-            }else{
+            } else {
                 hlwPaymentDetail.setPayment(Double.parseDouble((String) paymentList.get(i).get("payment")));
             }
             hlwPaymentDetail.setPaymentType(hlwCompany.getPaymentType());
@@ -283,10 +281,10 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
             hlwPaymentDetail.setUpdateBy(jsonObject.getString("loginUserName"));
             save(hlwPaymentDetail);
         }
-        if(!existOrder){
+        if (!existOrder) {
             result.setResult(list);
             result.setSuccess(true);
-        }else{
+        } else {
             result.success("导入成功");
         }
         return result;
@@ -294,6 +292,7 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
 
     /**
      * 付款申请-详情列表(不分页)
+     *
      * @param hlwPaymentDetail
      * @return
      */
@@ -324,4 +323,25 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
     public Double yearPayment() {
         return baseMapper.yearPayment();
     }
+
+    /**
+     * 退单处理
+     *
+     * @param ids
+     * @return
+     */
+    @Override
+    public Result<?> chargeBack(String ids) {
+        List<String> list = Arrays.asList(ids.split(","));
+        for (String id : list) {
+            HlwPaymentDetail hlwPaymentDetail = this.getById(id);
+            if (!hlwPaymentDetail.getStatus().equals(3)) {
+                return Result.error("有付款明细不满足退单条件!");
+            }
+            hlwPaymentDetail.setStatus(4);
+            hlwPaymentDetail.setFailureReason("退单");
+            this.updateById(hlwPaymentDetail);
+        }
+        return Result.ok("退单成功");
+    }
 }

+ 0 - 1
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/task/PaymentRsaDownloadJob.java

@@ -325,7 +325,6 @@ public class PaymentRsaDownloadJob {
                 iOssClientUtil.uploadFileOSS(inputStream, objectName);
                 //上传后的文件路径
                 String filePath = "/" + objectName;
-                log.info("dff==={}", filePath);
                 //删除临时文件
                 fileObject.delete();
                 /**