Browse Source

接口—查询企业服务商账户信息+验证付款+确认付款+服务验收

ZhangWenQiang 3 years ago
parent
commit
238843c681
18 changed files with 536 additions and 44 deletions
  1. 21 0
      happy-cloud-auth/src/main/java/org/jeecg/modules/api/controller/HlwPaymentController.java
  2. 9 0
      happy-cloud-auth/src/main/java/org/jeecg/modules/feign/client/HlwPaymentServiceClient.java
  3. 4 0
      happy-cloud-auth/src/main/java/org/jeecg/modules/feign/client/fallback/HlwPaymentServiceClientFallbackImpl.java
  4. 3 2
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/api/controller/HlwCompanyAccountApiController.java
  5. 14 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/api/controller/HlwPaymentApiController.java
  6. 171 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/controller/HlwServiceCheckController.java
  7. 15 15
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/entity/HlwPayment.java
  8. 71 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/entity/HlwServiceCheck.java
  9. 4 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/mapper/HlwPaymentDetailMapper.java
  10. 17 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/mapper/HlwServiceCheckMapper.java
  11. 20 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/mapper/xml/HlwPaymentDetailMapper.xml
  12. 2 1
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/mapper/xml/HlwPaymentMapper.xml
  13. 5 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/mapper/xml/HlwServiceCheckMapper.xml
  14. 2 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/IHlwPaymentDetailService.java
  15. 14 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/IHlwServiceCheckService.java
  16. 101 6
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/impl/HlwPaymentDetailServiceImpl.java
  17. 19 0
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/impl/HlwServiceCheckServiceImpl.java
  18. 44 20
      happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwsubcontractor/entity/HlwSubcontractor.java

+ 21 - 0
happy-cloud-auth/src/main/java/org/jeecg/modules/api/controller/HlwPaymentController.java

@@ -138,6 +138,27 @@ public class HlwPaymentController {
     }
 
     /**
+     * 验证付款
+     *
+     * @param json
+     * @return
+     */
+    @AutoLog(value = "验证付款")
+    @ApiOperation(value = "验证付款", notes = "验证付款")
+    @PostMapping(value = "/verifyPayment")
+    public Result<?> verifyPayment(@RequestBody String json) {
+        log.info("json========{}", json);
+        //数据解密
+        json = CryptTool.decode(json);
+        JSONObject jsonObject = JSONObject.parseObject(json);
+        //获取应用信息
+        OauthApplication oauthApplication = authService.getApplication(SecurityUtils.getClient());
+        jsonObject.put("applicationId", oauthApplication.getApplicationId());
+        Result<?> result = hlwPaymentServiceClient.verifyPayment(jsonObject);
+        return result;
+    }
+
+    /**
      * 确认付款
      *
      * @param json

+ 9 - 0
happy-cloud-auth/src/main/java/org/jeecg/modules/feign/client/HlwPaymentServiceClient.java

@@ -67,6 +67,15 @@ public interface HlwPaymentServiceClient {
     Result<?> paymentDetail(JSONObject jsonObject);
 
     /**
+     * 验证付款
+     *
+     * @param jsonObject
+     * @return
+     */
+    @PostMapping(value = "/wisdom/hlwPayment/api/verifyPayment")
+    Result<?> verifyPayment(JSONObject jsonObject);
+
+    /**
      * 确认付款
      *
      * @param jsonObject

+ 4 - 0
happy-cloud-auth/src/main/java/org/jeecg/modules/feign/client/fallback/HlwPaymentServiceClientFallbackImpl.java

@@ -44,6 +44,10 @@ public class HlwPaymentServiceClientFallbackImpl implements HlwPaymentServiceCli
         return Result.error("查询付款详情失败");
     }
 
+    @Override
+    public Result<?> verifyPayment(JSONObject jsonObject) {
+        return Result.error("验证付款失败");
+    }
 
     @Override
     public Result<?> confirmPayment(JSONObject jsonObject) {

+ 3 - 2
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/api/controller/HlwCompanyAccountApiController.java

@@ -106,10 +106,11 @@ public class HlwCompanyAccountApiController extends JeecgController<HlwCompanyAc
         Integer cpType = jsonObject.getInteger("cpType");
         //cpType=1时subcontractorId为服务商subcontractorId,cpType=2时subcontractorId为开心平台cpid
         Integer subcontractorId = jsonObject.getInteger("subcontractorId");
-        Integer companyId = jsonObject.getInteger("companyId");
+        String companyCode = jsonObject.getString("companyCode");
+        HlwCompany hlwCompany = hlwCompanyService.getByCompanyCode(companyCode);
         QueryWrapper<HlwCompanyAccount> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("application_id", applicationId);
-        queryWrapper.eq("company_id", companyId);
+        queryWrapper.eq("company_id", hlwCompany.getId());
         if (cpType == 1) {
             queryWrapper.eq("subcontractor_id", subcontractorId);
         } else if (cpType == 2) {

+ 14 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/api/controller/HlwPaymentApiController.java

@@ -176,6 +176,20 @@ public class HlwPaymentApiController extends JeecgController<HlwPayment, IHlwPay
     }
 
     /**
+     * 验证付款
+     *
+     * @param jsonObject
+     * @return
+     */
+    @AutoLog(value = "验证付款")
+    @ApiOperation(value = "验证付款", notes = "验证付款")
+    @PostMapping(value = "/verifyPayment")
+    public Result<?> verifyPayment(@RequestBody JSONObject jsonObject) {
+        Result<?> result = hlwPaymentDetailService.verifyPayment(jsonObject);
+        return result;
+    }
+
+    /**
      * 确认付款
      *
      * @param jsonObject

+ 171 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/controller/HlwServiceCheckController.java

@@ -0,0 +1,171 @@
+package org.jeecg.modules.hlwpayment.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.hlwpayment.entity.HlwServiceCheck;
+import org.jeecg.modules.hlwpayment.service.IHlwServiceCheckService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: hlw_service_check
+ * @Author: jeecg-boot
+ * @Date:   2022-11-17
+ * @Version: V1.0
+ */
+@Api(tags="hlw_service_check")
+@RestController
+@RequestMapping("/wisdom/hlwServiceCheck")
+@Slf4j
+public class HlwServiceCheckController extends JeecgController<HlwServiceCheck, IHlwServiceCheckService> {
+	@Autowired
+	private IHlwServiceCheckService hlwServiceCheckService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param hlwServiceCheck
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "hlw_service_check-分页列表查询")
+	@ApiOperation(value="hlw_service_check-分页列表查询", notes="hlw_service_check-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(HlwServiceCheck hlwServiceCheck,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<HlwServiceCheck> queryWrapper = QueryGenerator.initQueryWrapper(hlwServiceCheck, req.getParameterMap());
+		Page<HlwServiceCheck> page = new Page<HlwServiceCheck>(pageNo, pageSize);
+		IPage<HlwServiceCheck> pageList = hlwServiceCheckService.page(page, queryWrapper);
+		return Result.ok(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param hlwServiceCheck
+	 * @return
+	 */
+	@AutoLog(value = "hlw_service_check-添加")
+	@ApiOperation(value="hlw_service_check-添加", notes="hlw_service_check-添加")
+	@PostMapping(value = "/add")
+	public Result<?> add(@RequestBody HlwServiceCheck hlwServiceCheck) {
+		hlwServiceCheckService.save(hlwServiceCheck);
+		return Result.ok("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param hlwServiceCheck
+	 * @return
+	 */
+	@AutoLog(value = "hlw_service_check-编辑")
+	@ApiOperation(value="hlw_service_check-编辑", notes="hlw_service_check-编辑")
+	@PutMapping(value = "/edit")
+	public Result<?> edit(@RequestBody HlwServiceCheck hlwServiceCheck) {
+		hlwServiceCheckService.updateById(hlwServiceCheck);
+		return Result.ok("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "hlw_service_check-通过id删除")
+	@ApiOperation(value="hlw_service_check-通过id删除", notes="hlw_service_check-通过id删除")
+	@DeleteMapping(value = "/delete")
+	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+		hlwServiceCheckService.removeById(id);
+		return Result.ok("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "hlw_service_check-批量删除")
+	@ApiOperation(value="hlw_service_check-批量删除", notes="hlw_service_check-批量删除")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.hlwServiceCheckService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.ok("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "hlw_service_check-通过id查询")
+	@ApiOperation(value="hlw_service_check-通过id查询", notes="hlw_service_check-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
+		HlwServiceCheck hlwServiceCheck = hlwServiceCheckService.getById(id);
+		if(hlwServiceCheck==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.ok(hlwServiceCheck);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param hlwServiceCheck
+    */
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, HlwServiceCheck hlwServiceCheck) {
+        return super.exportXls(request, hlwServiceCheck, HlwServiceCheck.class, "hlw_service_check");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, HlwServiceCheck.class);
+    }
+
+}

+ 15 - 15
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/entity/HlwPayment.java

@@ -93,17 +93,26 @@ public class HlwPayment implements Serializable {
     @ApiModelProperty(value = "是否通过平台(0:否 1:是)")
     @Dict(dicCode = "is_through_platform")
     private Integer isThroughPlatform;
-
+    /**
+     * 只有通过平台的此字段才有值
+     */
+    private Integer cpId;
+    /**
+     * 付款通道(0:外部通道 1:内部通道)
+     */
+    private Integer paymentLane;
     /**
      * 对账单地址
      */
     private String statementUrl;
-
+    /**
+     * 服务验收id
+     */
+    private Integer serviceCheckId;
     /**
      * 是否对账单(0: 否;1:是),历史数据默认0
      */
     private Integer isStatement;
-
     /**
      * 状态(0:打回 1:待支付 2:支付中 3:已支付)
      */
@@ -134,7 +143,6 @@ public class HlwPayment implements Serializable {
      */
     @ApiModelProperty(value = "更新者")
     private java.lang.String updateBy;
-
     /**
      * 是否删除(0:否 1:是)
      */
@@ -385,17 +393,6 @@ public class HlwPayment implements Serializable {
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date maxPaymentTime;
-
-    /**
-     * 只有通过平台的此字段才有值
-     */
-    private Integer cpId;
-
-    /**
-     * 付款通道(0:外部通道 1:内部通道)
-     */
-    private Integer paymentLane;
-
     /**
      * 平台简称
      */
@@ -417,4 +414,7 @@ public class HlwPayment implements Serializable {
 
     @TableField(exist = false)
     private String requirementCode;
+
+    @TableField(exist = false)
+    private String companyCode;
 }

+ 71 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/entity/HlwServiceCheck.java

@@ -0,0 +1,71 @@
+package org.jeecg.modules.hlwpayment.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: hlw_service_check
+ * @Author: jeecg-boot
+ * @Date: 2022-11-17
+ * @Version: V1.0
+ */
+@Data
+@TableName("hlw_service_check")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "hlw_service_check对象", description = "hlw_service_check")
+public class HlwServiceCheck implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private java.lang.Integer id;
+    /**
+     * 验收文件
+     */
+    @Excel(name = "验收文件", width = 15)
+    @ApiModelProperty(value = "验收文件")
+    private java.lang.String checkFile;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;
+    /**
+     * 创建者
+     */
+    @ApiModelProperty(value = "创建者")
+    private java.lang.String createBy;
+    /**
+     * 更新时间
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "更新时间")
+    private java.util.Date updateTime;
+    /**
+     * 更新者
+     */
+    @ApiModelProperty(value = "更新者")
+    private java.lang.String updateBy;
+}

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

@@ -56,4 +56,8 @@ public interface HlwPaymentDetailMapper extends BaseMapper<HlwPaymentDetail> {
     void updatePaymentDetail(@Param("hlwUser")HlwUser hlwUser, @Param("idcardNumberOld")String idcardNumberOld,@Param("applicationId") Integer applicationId);
 
     List<HlwPaymentDetail> detailList(Page<HlwPaymentDetail> page,@Param("hlwPaymentDetail") HlwPaymentDetail hlwPaymentDetail, @Param(Constants.WRAPPER) QueryWrapper<HlwPaymentDetail> queryWrapper);
+
+    Double getCurrentUserDailyAmount(@Param("idcardNumber") String idcardNumber);
+
+    Double getCurrentUserMonthlyAmount(@Param("idcardNumber")String idcardNumber);
 }

+ 17 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/mapper/HlwServiceCheckMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.hlwpayment.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.hlwpayment.entity.HlwServiceCheck;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: hlw_service_check
+ * @Author: jeecg-boot
+ * @Date:   2022-11-17
+ * @Version: V1.0
+ */
+public interface HlwServiceCheckMapper extends BaseMapper<HlwServiceCheck> {
+
+}

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

@@ -538,4 +538,24 @@
 		ORDER BY a.create_time DESC, a.id DESC
 	</select>
 
+	<select id="getCurrentUserDailyAmount" resultType="Double">
+		SELECT
+		ifnull(sum(a.net_payment),0)
+		FROM hlw_payment_detail a
+		<where>
+			a.idcard_number = #{idcardNumber}
+			and to_days(a.payment_result_time) = to_days(now())
+		</where>
+	</select>
+
+	<select id="getCurrentUserMonthlyAmount" resultType="Double">
+		SELECT
+		ifnull(sum(a.net_payment),0)
+		FROM hlw_payment_detail a
+		<where>
+			a.idcard_number = #{idcardNumber}
+			and DATE_FORMAT(a.payment_result_time,'%Y-%m') = DATE_FORMAT(CURDATE(),'%Y-%m')
+		</where>
+	</select>
+
 </mapper>

+ 2 - 1
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/mapper/xml/HlwPaymentMapper.xml

@@ -396,7 +396,8 @@
 		hr.requirement_time AS "requirementTime",
 		hr.requirement_code as "requirementCode",
 		hi.invoice_category_name as "invoiceCategoryName",
-		(select count(b.id) from hlw_payment_detail b where b.payment_id=a.id) as "paymentNumber"
+		(select count(b.id) from hlw_payment_detail b where b.payment_id=a.id) as "paymentNumber",
+		com.company_code AS "companyCode"
 		FROM hlw_payment a
 		<include refid="hlwPaymentJoins"/>
 		left join hlw_order ho on ho.id = pd.order_id

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.hlwpayment.mapper.HlwServiceCheckMapper">
+
+</mapper>

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

@@ -57,6 +57,8 @@ public interface IHlwPaymentDetailService extends IService<HlwPaymentDetail> {
 
     Page<HlwPaymentDetail> detailList(Page<HlwPaymentDetail> page, HlwPaymentDetail hlwPaymentDetail, QueryWrapper<HlwPaymentDetail> queryWrapper);
 
+    Result<?> verifyPayment(JSONObject jsonObject);
+
     Result<?> confirmPayment(JSONObject jsonObject);
 
     Result<?> serviceCheck(JSONObject jsonObject);

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.hlwpayment.service;
+
+import org.jeecg.modules.hlwpayment.entity.HlwServiceCheck;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: hlw_service_check
+ * @Author: jeecg-boot
+ * @Date:   2022-11-17
+ * @Version: V1.0
+ */
+public interface IHlwServiceCheckService extends IService<HlwServiceCheck> {
+
+}

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

@@ -1,5 +1,6 @@
 package org.jeecg.modules.hlwpayment.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -20,9 +21,13 @@ import org.jeecg.modules.hlworder.service.IHlwOrderService;
 import org.jeecg.modules.hlworder.service.IHlwRequirementService;
 import org.jeecg.modules.hlwpayment.entity.HlwPayment;
 import org.jeecg.modules.hlwpayment.entity.HlwPaymentDetail;
+import org.jeecg.modules.hlwpayment.entity.HlwServiceCheck;
 import org.jeecg.modules.hlwpayment.mapper.HlwPaymentDetailMapper;
 import org.jeecg.modules.hlwpayment.service.IHlwPaymentDetailService;
 import org.jeecg.modules.hlwpayment.service.IHlwPaymentService;
+import org.jeecg.modules.hlwpayment.service.IHlwServiceCheckService;
+import org.jeecg.modules.hlwsubcontractor.entity.HlwSubcontractor;
+import org.jeecg.modules.hlwsubcontractor.service.IHlwSubcontractorService;
 import org.jeecg.modules.hlwuser.entity.HlwUser;
 import org.jeecg.modules.hlwuser.service.IHlwUserService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,6 +62,10 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
     private IHlwCompanyCpService hlwCompanyCpService;
     @Autowired
     private IHlwCompanySubcontractorService hlwCompanySubcontractorService;
+    @Autowired
+    private IHlwSubcontractorService hlwSubcontractorService;
+    @Autowired
+    private IHlwServiceCheckService hlwServiceCheckService;
 
     @Override
     public Page<HlwPaymentDetail> pageList(Page<HlwPaymentDetail> page, HlwPaymentDetail hlwPaymentDetail, QueryWrapper<HlwPaymentDetail> queryWrapper) {
@@ -282,7 +291,7 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
             }
             hlwPaymentDetail.setPaymentType(hlwCompany.getPaymentType());
             //-1状态慧盈设置为null,其他应用还是默认1
-            if(status==null){
+            if (status == null) {
                 hlwPaymentDetail.setStatus(1);
             }
             hlwPaymentDetail.setIsSupplementPayment(0);
@@ -366,18 +375,104 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
     }
 
     @Override
-    public Result<?> confirmPayment(JSONObject jsonObject) {
+    public Result<?> verifyPayment(JSONObject jsonObject) {
+        Integer paymentId = jsonObject.getInteger("paymentId");
+        // 付款单
+        HlwPayment hlwPayment = hlwPaymentService.getById(paymentId);
+        /**
+         * 1、付款单状态
+         */
+        if (hlwPayment.getStatus() != null) {
+            return Result.error("该付款单状态已变更,请刷新后重试!");
+        }
+        // 服务商
+        HlwSubcontractor hlwSubcontractor = hlwSubcontractorService.getById(hlwPayment.getSubcontractorId());
+        Double dailyLimit = hlwSubcontractor.getDailyLimit();
+        Double monthlyLimit = hlwSubcontractor.getMonthlyLimit();
+        BigDecimal bigDailyLimit = BigDecimal.valueOf(dailyLimit);
+        BigDecimal bigMonthlyLimit = BigDecimal.valueOf(monthlyLimit);
+        // 付款明细
+        QueryWrapper<HlwPaymentDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("payment_id", paymentId);
+        List<HlwPaymentDetail> list = this.list(queryWrapper);
+        // 错误信息集合
+        List errorList = new ArrayList<>();
         /**
-         * 1、拦截日限额
+         * 2、拦截日限额
          */
+        for (HlwPaymentDetail hlwPaymentDetail : list) {
+            // 查询用户当日付款金额总和
+            Double currentUserDailyAmount = baseMapper.getCurrentUserDailyAmount(hlwPaymentDetail.getIdcardNumber());
+            // 比较double大小
+            BigDecimal data = BigDecimal.valueOf(currentUserDailyAmount);
+            if (bigDailyLimit.compareTo(data) == -1) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("userName", hlwPaymentDetail.getUserName());
+                map.put("idcardNumber", hlwPaymentDetail.getIdcardNumber());
+                map.put("reason", "超出日限额上限");
+                errorList.add(map);
+            }
+        }
         /**
-         * 2、拦截月限额
+         * 3、拦截月限额
          */
-        return null;
+        for (HlwPaymentDetail hlwPaymentDetail : list) {
+            // 查询用户当月付款金额总和
+            Double currentUserMonthlyAmount = baseMapper.getCurrentUserMonthlyAmount(hlwPaymentDetail.getIdcardNumber());
+            // 比较double大小
+            BigDecimal data = BigDecimal.valueOf(currentUserMonthlyAmount);
+            if (bigMonthlyLimit.compareTo(data) == -1) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("userName", hlwPaymentDetail.getUserName());
+                map.put("idcardNumber", hlwPaymentDetail.getIdcardNumber());
+                map.put("reason", "超出月限额上限");
+                errorList.add(map);
+            }
+        }
+        if (errorList != null && errorList.size() > 0) {
+            JSONArray jsonArray = new JSONArray(errorList);
+            return Result.error(jsonArray.toString());
+        }
+        return Result.ok("验证通过");
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result<?> confirmPayment(JSONObject jsonObject) {
+        Integer paymentId = jsonObject.getInteger("paymentId");
+        // 付款单
+        HlwPayment hlwPayment = hlwPaymentService.getById(paymentId);
+        hlwPayment.setStatus(1);
+        hlwPaymentService.updateById(hlwPayment);
+        // 付款明细
+        QueryWrapper<HlwPaymentDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("payment_id", paymentId);
+        List<HlwPaymentDetail> list = this.list(queryWrapper);
+        for (HlwPaymentDetail hlwPaymentDetail : list) {
+            hlwPaymentDetail.setStatus(1);
+        }
+        this.updateBatch(list);
+        return Result.ok("确认付款成功");
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result<?> serviceCheck(JSONObject jsonObject) {
-        return null;
+        Integer paymentId = jsonObject.getInteger("paymentId");
+        String checkFile = jsonObject.getString("checkFile");
+        // 付款单
+        HlwPayment hlwPayment = hlwPaymentService.getById(paymentId);
+        if (hlwPayment.getServiceCheckId() != null) {
+            HlwServiceCheck hlwServiceCheck = hlwServiceCheckService.getById(hlwPayment.getServiceCheckId());
+            hlwServiceCheck.setCheckFile(checkFile);
+            hlwServiceCheckService.updateById(hlwServiceCheck);
+        } else {
+            HlwServiceCheck hlwServiceCheck = new HlwServiceCheck();
+            hlwServiceCheck.setCheckFile(checkFile);
+            hlwServiceCheckService.save(hlwServiceCheck);
+            hlwPayment.setServiceCheckId(hlwServiceCheck.getId());
+            hlwPaymentService.updateById(hlwPayment);
+        }
+        return Result.ok("验收成功");
     }
 }

+ 19 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/impl/HlwServiceCheckServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.hlwpayment.service.impl;
+
+import org.jeecg.modules.hlwpayment.entity.HlwServiceCheck;
+import org.jeecg.modules.hlwpayment.mapper.HlwServiceCheckMapper;
+import org.jeecg.modules.hlwpayment.service.IHlwServiceCheckService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: hlw_service_check
+ * @Author: jeecg-boot
+ * @Date:   2022-11-17
+ * @Version: V1.0
+ */
+@Service
+public class HlwServiceCheckServiceImpl extends ServiceImpl<HlwServiceCheckMapper, HlwServiceCheck> implements IHlwServiceCheckService {
+
+}

+ 44 - 20
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwsubcontractor/entity/HlwSubcontractor.java

@@ -1,23 +1,21 @@
 package org.jeecg.modules.hlwsubcontractor.entity;
 
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import java.math.BigDecimal;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @Description: hlw_subcontractor
@@ -46,6 +44,14 @@ public class HlwSubcontractor implements Serializable {
     @ApiModelProperty(value = "名称")
     private String name;
     /**
+     * 简称
+     */
+    private String abbreviation;
+    /**
+     * 信用代码
+     */
+    private String licenseCode;
+    /**
      * 法人代表
      */
     @Excel(name = "法人代表", width = 15)
@@ -58,6 +64,35 @@ public class HlwSubcontractor implements Serializable {
     @ApiModelProperty(value = "联系电话")
     private String contactPhone;
     /**
+     * 所属地区-省Code
+     */
+    private Integer provinceCode;
+    /**
+     * 所属地区-市Code
+     */
+    private Integer cityCode;
+    /**
+     * 所属地区-区Code
+     */
+    private Integer districtCode;
+    /**
+     * 省市区全称
+     */
+    private String provinceCityDistrict;
+    /**
+     * 单日限额
+     */
+    private Double dailyLimit;
+
+    /**
+     * 单月限额
+     */
+    private Double monthlyLimit;
+    /**
+     * 模式(1:自然人代征 2:临时税务登记)
+     */
+    private Integer mode;
+    /**
      * 前置机IP
      */
     @Excel(name = "前置机IP", width = 15)
@@ -256,12 +291,6 @@ public class HlwSubcontractor implements Serializable {
     @TableField(exist = false)
     private Integer isAutoRenew;
 
-    /**
-     * 简称
-     */
-    private String abbreviation;
-
-
     @TableField(exist = false)
     private Integer cpId;
 
@@ -274,9 +303,4 @@ public class HlwSubcontractor implements Serializable {
     @TableField(exist = false)
     @Dict(dicCode = "is_invoice")
     private Integer isInvoice;
-
-    /**
-     * 信用代码
-     */
-    private String licenseCode;
 }