lsw 1 rok pred
rodič
commit
ab6e993d83

+ 2 - 7
admin-ui/src/views/work/statement/give/send.vue

@@ -20,7 +20,7 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="手机号码">
-              <sms v-model="user.phone"></sms>
+              <sms v-model="user.phone" url="/work/statement/give/sms"></sms>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -60,16 +60,11 @@ export default {
       type: String
     }
   },
-  mounted() {
-    this.ajax({ url: '/work/company/index' }).then((response) => {
-      this.company = response.data;
-    });
-  },
   methods: {
     submitForm() {
       this.$refs['form'].validate((valid) => {
         if (valid) {
-          this.ajax({ url: '/work/statement/give/send/' + this.param.id }).then((response) => {
+          this.ajax({ method: 'post', url: '/work/statement/give/send', data: { id: this.param.id, code: this.form.code } }).then((response) => {
             this.$modal.msgSuccess('发放成功');
             this.$layer.close(this.layerid);
             this.$parent.getList();

+ 6 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/StatementController.java

@@ -10,6 +10,7 @@ import com.ruoyi.web.work.domain.Statement;
 import com.ruoyi.web.work.domain.StatementDetail;
 import com.ruoyi.web.work.domain.dto.RejectDto;
 import com.ruoyi.web.work.domain.dto.SmsDto;
+import com.ruoyi.web.work.domain.dto.StatementDto;
 import com.ruoyi.web.work.service.ICommonService;
 import com.ruoyi.web.work.service.IStatementDetailService;
 import com.ruoyi.web.work.service.IStatementService;
@@ -19,6 +20,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.rmi.ServerException;
 import java.util.List;
 
 /**
@@ -99,16 +101,16 @@ public class StatementController extends BaseController {
 
     @PreAuthorize("@ss.hasPermi('work:statement:give')")
     @Log(title = "发放业务费获取验证码", businessType = BusinessType.INSERT)
-    @GetMapping("/sms")
+    @GetMapping("/give/sms")
     public AjaxResult sms() {
         return commonService.sms(new SmsDto().setTemplateCode("SMS_465690916"));
     }
 
     @PreAuthorize("@ss.hasPermi('work:statement:give')")
     @Log(title = "发放业务费", businessType = BusinessType.UPDATE)
-    @GetMapping("/give/send/{id}")
-    public AjaxResult giveSend(@PathVariable("id") Long id) {
-        return statementService.giveSend(id);
+    @PostMapping("/give/send")
+    public AjaxResult giveSend(@Validated @RequestBody StatementDto dto) throws ServerException {
+        return statementService.giveSend(dto);
     }
 
     @PreAuthorize("@ss.hasPermi('work:statement:audit')")

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/dto/StatementDto.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.work.domain.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class StatementDto {
+
+    @NotNull(message = "参数错误")
+    private Long id;
+
+    @NotBlank(message = "验证码不能为空")
+    private String code;
+}

+ 5 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/mapper/StatementMapper.java

@@ -2,6 +2,8 @@ package com.ruoyi.web.work.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.web.work.domain.Statement;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
@@ -13,4 +15,7 @@ public interface StatementMapper extends BaseMapper<Statement> {
     List<Statement> selectList(Statement statement);
 
     List<Statement> selectAuditList(Statement statement);
+
+    @Select("SELECT s.id,s.audit,s.give,s.company_id,(SELECT SUM(money) FROM tb_statement_detail d WHERE d.statement_id=s.id)AS money FROM tb_statement s WHERE s.id=#{id}")
+    Statement selectById(@Param("id") Long id);
 }

+ 4 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IStatementService.java

@@ -5,7 +5,9 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.web.work.domain.Statement;
 import com.ruoyi.web.work.domain.StatementDetail;
 import com.ruoyi.web.work.domain.dto.RejectDto;
+import com.ruoyi.web.work.domain.dto.StatementDto;
 
+import java.rmi.ServerException;
 import java.util.List;
 
 /**
@@ -77,8 +79,8 @@ public interface IStatementService extends IService<Statement> {
 
     /**
      * 发放业务费
-     * @param id
+     * @param dto
      * @return
      */
-    AjaxResult giveSend(Long id);
+    AjaxResult giveSend(StatementDto dto) throws ServerException;
 }

+ 22 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/StatementServiceImpl.java

@@ -8,12 +8,16 @@ import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanValidators;
+import com.ruoyi.web.work.domain.Company;
 import com.ruoyi.web.work.domain.Platform;
 import com.ruoyi.web.work.domain.Statement;
 import com.ruoyi.web.work.domain.StatementDetail;
 import com.ruoyi.web.work.domain.dto.RejectDto;
+import com.ruoyi.web.work.domain.dto.StatementDto;
 import com.ruoyi.web.work.mapper.StatementDetailMapper;
 import com.ruoyi.web.work.mapper.StatementMapper;
+import com.ruoyi.web.work.service.ICommonService;
+import com.ruoyi.web.work.service.ICompanyService;
 import com.ruoyi.web.work.service.IStatementDetailService;
 import com.ruoyi.web.work.service.IStatementService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.validation.Validator;
 import java.math.BigDecimal;
+import java.rmi.ServerException;
 import java.util.Date;
 import java.util.List;
 
@@ -41,11 +46,17 @@ public class StatementServiceImpl extends ServiceImpl<StatementMapper, Statement
     private IStatementDetailService detailService;
 
     @Autowired
+    private ICompanyService companyService;
+
+    @Autowired
     protected Validator validator;
 
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private ICommonService commonService;
+
     @Override
     public List<Statement> selectList(Statement statement) {
         return statementMapper.selectList(statement);
@@ -197,14 +208,22 @@ public class StatementServiceImpl extends ServiceImpl<StatementMapper, Statement
     }
 
     @Override
-    public AjaxResult giveSend(Long id) {
-        Statement statement = getById(id);
+    public AjaxResult giveSend(StatementDto dto) throws ServerException {
+        commonService.verifyCode(SecurityUtils.getLoginUser().getUser().getPhonenumber(), dto.getCode());
+        Statement statement = statementMapper.selectById(dto.getId());
         if (statement == null || !statement.getCompanyId().equals(SecurityUtils.getLoginUser().getUser().getCompanyId())) {
             return AjaxResult.error("结算单不存在或非法操作");
         }
-        if (statement.getAudit() != 2&&statement.getGive()!=0) {
+        if (statement.getAudit() != 2 && statement.getGive() != 0) {
             return AjaxResult.error("当前业务费不能发放");
         }
+        Company company = companyService.getById(SecurityUtils.getLoginUser().getUser().getCompanyId());
+        if (company == null) {
+            return AjaxResult.error("企业信息不存在");
+        }
+        if (statement.getMoney().compareTo(company.getMoney()) > 0) {
+            return AjaxResult.error("发放金额不能超过账户余额");
+        }
         statement.setGiveTime(new Date());
         statement.setGive(1);
         if (!updateById(statement)) {

+ 3 - 4
ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java

@@ -2,11 +2,10 @@ package com.ruoyi.common.enums;
 
 /**
  * 业务操作类型
- * 
+ *
  * @author ruoyi
  */
-public enum BusinessType
-{
+public enum BusinessType {
     /**
      * 其它
      */
@@ -56,7 +55,7 @@ public enum BusinessType
      * 生成代码
      */
     GENCODE,
-    
+
     /**
      * 清空数据
      */