From dc8e24159de4fe9ba8d3d4e8f62d9d7f5afef3b1 Mon Sep 17 00:00:00 2001
From: quyixiao <2621048238@qq.com>
Date: Mon, 10 Nov 2025 13:40:15 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../heyu/api/data/dao/vv/VvMyAccountDao.java | 39 ++++
.../api/data/entity/vv/VvMyAccountEntity.java | 182 ++++++++++++++++++
.../data/entity/vv/VvMySettlementEntity.java | 33 +++-
.../api/data/enums/AccountOperateEnums.java | 35 ++++
.../heyu/api/data/enums/AccountTypeEnums.java | 33 ++++
.../impl/vv/VvMyAccountServiceImpl.java | 68 +++++++
.../data/service/vv/VvMyAccountService.java | 34 ++++
.../data/utils/DingDingSettlementUtils.java | 70 +++++++
.../resources/mapper/vv/VvMyAccountDao.xml | 6 +
.../java/com/test/xxx/MysqlMain_insert.java | 3 +-
.../java/com/test/xxx/MysqlMain_update.java | 1 +
.../order/VVMySettlementApprovalRequest.java | 24 +++
.../request/mm/order/resp/MyAccountDTO.java | 19 ++
.../mm/AdminMySettlementController.java | 56 +++++-
14 files changed, 584 insertions(+), 19 deletions(-)
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMyAccountDao.java
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMyAccountEntity.java
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/enums/AccountOperateEnums.java
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/enums/AccountTypeEnums.java
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvMyAccountServiceImpl.java
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/vv/VvMyAccountService.java
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/utils/DingDingSettlementUtils.java
create mode 100644 api-mapper/src/main/resources/mapper/vv/VvMyAccountDao.xml
create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java
create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/MyAccountDTO.java
diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMyAccountDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMyAccountDao.java
new file mode 100644
index 0000000..90185cc
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMyAccountDao.java
@@ -0,0 +1,39 @@
+package com.heyu.api.data.dao.vv;
+/**
+*
+* 结算 服务类
+*
+*
+* @author quyixiao
+* @since 2025-11-10
+*/
+import com.heyu.api.data.entity.vv.VvMyAccountEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lz.mybatis.plugin.annotations.LIMIT;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+@Mapper
+public interface VvMyAccountDao extends BaseMapper {
+
+
+ VvMyAccountEntity selectVvMyAccountById(@Param("id")Long id);
+
+
+ Long insertVvMyAccount(VvMyAccountEntity vvMyAccount);
+
+
+ Long insertOrUpdateVvMyAccount(VvMyAccountEntity vvMyAccount);
+
+
+ int updateVvMyAccountById(VvMyAccountEntity vvMyAccount);
+
+
+ int updateCoverVvMyAccountById(VvMyAccountEntity vvMyAccount);
+
+
+ int deleteVvMyAccountById(@Param("id")Long id);
+
+
+ @LIMIT
+ VvMyAccountEntity selectVvMyAccount(String type);
+}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMyAccountEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMyAccountEntity.java
new file mode 100644
index 0000000..634e297
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMyAccountEntity.java
@@ -0,0 +1,182 @@
+package com.heyu.api.data.entity.vv;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.lz.mybatis.plugin.annotations.AS;
+
+import java.math.BigDecimal;
+import java.util.Date;import java.util.Date;
+/**
+*结算
+* @author quyixiao
+* @since 2025-11-10
+*/
+
+@Data
+@TableName("vv_my_account")
+public class VvMyAccountEntity implements java.io.Serializable {
+private static final long serialVersionUID = 1L;
+
+ public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvMyAccountEntity:";
+
+ public final static String all = CLASS_NAME + "*";
+ public final static String id_ = CLASS_NAME + "id"; //
+ public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除
+ public final static String create_time = CLASS_NAME + "create_time"; // 创建时间
+ public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间
+ public final static String amount_ = CLASS_NAME + "amount"; // 账户金额
+ public final static String recharge_amount = CLASS_NAME + "recharge_amount"; // 充值金额
+ public final static String sub_amount = CLASS_NAME + "sub_amount"; // 报销金额
+ public final static String type_ = CLASS_NAME + "type"; // 账户类型, 公款:common
+ //
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+ //是否删除:0 否 1 删除
+ private Integer isDelete;
+ //创建时间
+ private Date createTime;
+ //修改时间
+ private Date modifyTime;
+ //账户金额
+ private BigDecimal amount;
+ //充值金额
+ private BigDecimal rechargeAmount;
+ //报销金额
+ private BigDecimal subAmount;
+ //账户类型, 公款:common
+ private String type;
+ /**
+ *
+ * @return
+ */
+ public Long getId() {
+ return id;
+ }
+ /**
+ *
+ * @param id
+ */
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ /**
+ * 是否删除:0 否 1 删除
+ * @return
+ */
+ public Integer getIsDelete() {
+ return isDelete;
+ }
+ /**
+ * 是否删除:0 否 1 删除
+ * @param isDelete
+ */
+ public void setIsDelete(Integer isDelete) {
+ this.isDelete = isDelete;
+ }
+
+ /**
+ * 创建时间
+ * @return
+ */
+ public Date getCreateTime() {
+ return createTime;
+ }
+ /**
+ * 创建时间
+ * @param createTime
+ */
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ /**
+ * 修改时间
+ * @return
+ */
+ public Date getModifyTime() {
+ return modifyTime;
+ }
+ /**
+ * 修改时间
+ * @param modifyTime
+ */
+ public void setModifyTime(Date modifyTime) {
+ this.modifyTime = modifyTime;
+ }
+
+ /**
+ * 账户金额
+ * @return
+ */
+ public BigDecimal getAmount() {
+ return amount;
+ }
+ /**
+ * 账户金额
+ * @param amount
+ */
+ public void setAmount(BigDecimal amount) {
+ this.amount = amount;
+ }
+
+ /**
+ * 充值金额
+ * @return
+ */
+ public BigDecimal getRechargeAmount() {
+ return rechargeAmount;
+ }
+ /**
+ * 充值金额
+ * @param rechargeAmount
+ */
+ public void setRechargeAmount(BigDecimal rechargeAmount) {
+ this.rechargeAmount = rechargeAmount;
+ }
+
+ /**
+ * 报销金额
+ * @return
+ */
+ public BigDecimal getSubAmount() {
+ return subAmount;
+ }
+ /**
+ * 报销金额
+ * @param subAmount
+ */
+ public void setSubAmount(BigDecimal subAmount) {
+ this.subAmount = subAmount;
+ }
+
+ /**
+ * 账户类型, 公款:common
+ * @return
+ */
+ public String getType() {
+ return type;
+ }
+ /**
+ * 账户类型, 公款:common
+ * @param type
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ @Override
+ public String toString() {
+ return "VvMyAccountEntity{" +
+ ",id=" + id +
+ ",isDelete=" + isDelete +
+ ",createTime=" + createTime +
+ ",modifyTime=" + modifyTime +
+ ",amount=" + amount +
+ ",rechargeAmount=" + rechargeAmount +
+ ",subAmount=" + subAmount +
+ ",type=" + type +
+ "}";
+ }
+}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMySettlementEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMySettlementEntity.java
index af51d58..7ed6e5c 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMySettlementEntity.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMySettlementEntity.java
@@ -1,12 +1,12 @@
package com.heyu.api.data.entity.vv;
+
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
-import com.lz.mybatis.plugin.annotations.AS;
import java.math.BigDecimal;
-import java.util.Date;import java.util.Date;
+import java.util.Date;
/**
*结算
* @author quyixiao
@@ -29,10 +29,11 @@ private static final long serialVersionUID = 1L;
public final static String operate_ = CLASS_NAME + "operate"; // 操作 + ,-
public final static String amount_ = CLASS_NAME + "amount"; // 金额
public final static String features_ = CLASS_NAME + "features"; // 特点
- public final static String status_ = CLASS_NAME + "status"; // apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批
+ public final static String status_ = CLASS_NAME + "status"; // apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批
public final static String remain_amount = CLASS_NAME + "remain_amount"; // 剩下金额
public final static String create_timestamp = CLASS_NAME + "create_timestamp"; // 创建时间
public final static String modify_timestamp = CLASS_NAME + "modify_timestamp"; // 修改时间
+ public final static String type_ = CLASS_NAME + "type"; // common,公款
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@@ -44,13 +45,13 @@ private static final long serialVersionUID = 1L;
private Date modifyTime;
//谁结算的
private String userName;
- //操作 + ,-
+ //操作 + , -
private String operate;
//金额
private BigDecimal amount;
//特点
private String features;
- //apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批
+ //apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批
private String status;
//剩下金额
private BigDecimal remainAmount;
@@ -58,6 +59,8 @@ private static final long serialVersionUID = 1L;
private Long createTimestamp;
//修改时间
private Long modifyTimestamp;
+ //common,公款
+ private String type;
/**
*
* @return
@@ -179,14 +182,14 @@ private static final long serialVersionUID = 1L;
}
/**
- * apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批
+ * apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批
* @return
*/
public String getStatus() {
return status;
}
/**
- * apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批
+ * apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批
* @param status
*/
public void setStatus(String status) {
@@ -238,6 +241,21 @@ private static final long serialVersionUID = 1L;
this.modifyTimestamp = modifyTimestamp;
}
+ /**
+ * common,公款
+ * @return
+ */
+ public String getType() {
+ return type;
+ }
+ /**
+ * common,公款
+ * @param type
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
@Override
public String toString() {
return "VvMySettlementEntity{" +
@@ -253,6 +271,7 @@ private static final long serialVersionUID = 1L;
",remainAmount=" + remainAmount +
",createTimestamp=" + createTimestamp +
",modifyTimestamp=" + modifyTimestamp +
+ ",type=" + type +
"}";
}
}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/enums/AccountOperateEnums.java b/api-mapper/src/main/java/com/heyu/api/data/enums/AccountOperateEnums.java
new file mode 100644
index 0000000..a64022a
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/enums/AccountOperateEnums.java
@@ -0,0 +1,35 @@
+package com.heyu.api.data.enums;
+
+
+public enum AccountOperateEnums {
+
+ plus("+", "加"),
+ sub("-", "减");
+
+
+ AccountOperateEnums(String sign, String desc) {
+ this.sign = sign;
+ this.desc = desc;
+ }
+
+ private String sign;
+
+ private String desc;
+
+
+ public String getSign() {
+ return sign;
+ }
+
+ public void setSign(String sign) {
+ this.sign = sign;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
diff --git a/api-mapper/src/main/java/com/heyu/api/data/enums/AccountTypeEnums.java b/api-mapper/src/main/java/com/heyu/api/data/enums/AccountTypeEnums.java
new file mode 100644
index 0000000..7fa03cd
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/enums/AccountTypeEnums.java
@@ -0,0 +1,33 @@
+package com.heyu.api.data.enums;
+
+public enum AccountTypeEnums {
+ common("common","公款"),
+ ;
+
+
+ private String type;
+
+ private String desc;
+
+
+ AccountTypeEnums(String type, String desc) {
+ this.type = type;
+ this.desc = desc;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+}
diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvMyAccountServiceImpl.java b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvMyAccountServiceImpl.java
new file mode 100644
index 0000000..1d77547
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvMyAccountServiceImpl.java
@@ -0,0 +1,68 @@
+package com.heyu.api.data.service.impl.vv;
+/**
+*
+* 结算 服务类
+*
+*
+* @author quyixiao
+* @since 2025-11-10
+*/
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.heyu.api.data.dao.vv.VvMyAccountDao;
+import com.heyu.api.data.entity.vv.VvMyAccountEntity;
+import com.heyu.api.data.service.vv.VvMyAccountService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+@Service
+public class VvMyAccountServiceImpl extends ServiceImpl implements VvMyAccountService {
+
+
+ @Autowired
+ private VvMyAccountDao vvMyAccountDao;
+
+
+
+ @Override
+ public VvMyAccountEntity selectVvMyAccountById(Long id){
+ return vvMyAccountDao.selectVvMyAccountById(id);
+ }
+
+
+
+ @Override
+ public Long insertVvMyAccount(VvMyAccountEntity vvMyAccount){
+ return vvMyAccountDao.insertVvMyAccount(vvMyAccount);
+ }
+
+
+
+ @Override
+ public Long insertOrUpdateVvMyAccount(VvMyAccountEntity vvMyAccount){
+ return vvMyAccountDao.insertOrUpdateVvMyAccount(vvMyAccount);
+ }
+
+
+
+ @Override
+ public int updateVvMyAccountById(VvMyAccountEntity vvMyAccount){
+ return vvMyAccountDao.updateVvMyAccountById(vvMyAccount);
+ }
+
+
+
+ @Override
+ public int updateCoverVvMyAccountById(VvMyAccountEntity vvMyAccount){
+ return vvMyAccountDao.updateCoverVvMyAccountById(vvMyAccount);
+ }
+
+
+
+ @Override
+ public int deleteVvMyAccountById(Long id){
+ return vvMyAccountDao.deleteVvMyAccountById(id);
+ }
+
+
+
+}
diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvMyAccountService.java b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvMyAccountService.java
new file mode 100644
index 0000000..1e1c5c4
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvMyAccountService.java
@@ -0,0 +1,34 @@
+package com.heyu.api.data.service.vv;
+/**
+*
+* 结算 服务类
+*
+*
+* @author quyixiao
+* @since 2025-11-10
+*/
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.heyu.api.data.entity.vv.VvMyAccountEntity;
+public interface VvMyAccountService extends IService {
+
+
+
+ VvMyAccountEntity selectVvMyAccountById(Long id);
+
+
+ Long insertVvMyAccount(VvMyAccountEntity vvMyAccount);
+
+
+ Long insertOrUpdateVvMyAccount(VvMyAccountEntity vvMyAccount);
+
+
+ int updateVvMyAccountById(VvMyAccountEntity vvMyAccount);
+
+
+ int updateCoverVvMyAccountById(VvMyAccountEntity vvMyAccount);
+
+
+ int deleteVvMyAccountById(Long id);
+
+
+}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/DingDingSettlementUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/DingDingSettlementUtils.java
new file mode 100644
index 0000000..0eb0245
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/utils/DingDingSettlementUtils.java
@@ -0,0 +1,70 @@
+package com.heyu.api.data.utils;
+
+
+import com.dingtalk.api.DefaultDingTalkClient;
+import com.dingtalk.api.DingTalkClient;
+import com.dingtalk.api.request.OapiRobotSendRequest;
+import com.dingtalk.api.response.OapiRobotSendResponse;
+import com.lz.mybatis.plugins.interceptor.entity.DingTalkDto;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Arrays;
+
+/***
+ * https://oapi.dingtalk.com/robot/send?access_token=4e9917f5f782cec0bf139ac867b95c64b9c8bcd71266f334905f5196d9828314
+ */
+@Slf4j
+public class DingDingSettlementUtils {
+
+ // 财务小助手
+
+ protected static String dingTalkUrlPre = "https://oapi.dingtalk.com/robot/send?access_token=";
+ protected static String token = "4c36a91c1dbd4b3c2827cd8cd63f2342d2da7c6d7ebc5f62cf06197034b12bec";
+
+
+ public static void sendText(String text,String title) {
+ try {
+ String content = text + "\n";
+ content = "【财务小助手】:"
+ + "\n" + content;
+ DingTalkDto dingTalk = new DingTalkDto();
+ dingTalk.setToken("");
+ dingTalk.setText(content);
+ dingTalk.setTitle(title);
+ dingTalk.setMsgType("text");
+ process(dingTalk,token);
+ } catch (Exception e) {
+ log.error("DingDingUtils",e);
+ }
+ }
+
+ private static OapiRobotSendResponse process(DingTalkDto dingTalk, String token ) throws Exception {
+ DingTalkClient client = new DefaultDingTalkClient(dingTalkUrlPre + token);
+ OapiRobotSendRequest request = new OapiRobotSendRequest();
+ request.setMsgtype("text");
+
+ OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
+ text.setContent(dingTalk.getText());
+ request.setText(text);
+ // 被@人的手机号(在text内容里要有@手机号)
+ OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
+
+ String[] mobiles = "18458195149".split(",");
+
+
+ if(StringUtils.isNotBlank(dingTalk.getAtMobiles())){
+ mobiles = dingTalk.getAtMobiles().split(",");
+ }
+ at.setAtMobiles(Arrays.asList(mobiles));
+
+ request.setAt(at);
+ OapiRobotSendResponse response = client.execute(request);
+ return response;
+ }
+
+
+ public static void main(String[] args) {
+ sendText("xx","cc");
+ }
+
+}
diff --git a/api-mapper/src/main/resources/mapper/vv/VvMyAccountDao.xml b/api-mapper/src/main/resources/mapper/vv/VvMyAccountDao.xml
new file mode 100644
index 0000000..411af47
--- /dev/null
+++ b/api-mapper/src/main/resources/mapper/vv/VvMyAccountDao.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java
index eee9dcf..489e805 100644
--- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java
+++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java
@@ -94,8 +94,7 @@ public class MysqlMain_insert {
List list = new ArrayList();
- list.add(new TablesBean("vv_my_settlement"));
-
+ list.add(new TablesBean("vv_my_account"));
List list2 = new ArrayList();
diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java
index 4653b46..b605514 100644
--- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java
+++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java
@@ -49,6 +49,7 @@ public class MysqlMain_update {
List list = new ArrayList();
list.add(new TablesBean("vv_my_settlement"));
+ list.add(new TablesBean("vv_my_account"));
//list.add(new TablesBean("vv_trade_order"));
diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java
new file mode 100644
index 0000000..d8ad526
--- /dev/null
+++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java
@@ -0,0 +1,24 @@
+package com.heyu.api.alibaba.request.mm.order;
+
+
+import com.heyu.api.alibaba.request.mm.AdminBaseDTO;
+import lombok.Data;
+
+@Data
+public class VVMySettlementApprovalRequest extends AdminBaseDTO {
+
+
+
+ // 结算状态
+ // 'apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 '
+ private String status;
+
+
+ /***
+ * id
+ */
+ private Long id;
+
+}
+
+
diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/MyAccountDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/MyAccountDTO.java
new file mode 100644
index 0000000..c9bf1c4
--- /dev/null
+++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/MyAccountDTO.java
@@ -0,0 +1,19 @@
+package com.heyu.api.alibaba.request.mm.order.resp;
+
+
+import com.heyu.api.data.entity.vv.VvMyAccountEntity;
+import com.heyu.api.utils.PPageUtils;
+import lombok.Data;
+
+@Data
+public class MyAccountDTO {
+ /***
+ * 账户
+ */
+ private VvMyAccountEntity vvMyAccountEntity;
+
+ /***
+ * 账户信息
+ */
+ private PPageUtils pageUtils;
+}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminMySettlementController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminMySettlementController.java
index df7b1a6..624e61b 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminMySettlementController.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminMySettlementController.java
@@ -2,10 +2,17 @@ package com.heyu.api.controller.mm;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.heyu.api.alibaba.request.mm.order.VVMySettlementApprovalRequest;
import com.heyu.api.alibaba.request.mm.order.VVMySettlementRequest;
+import com.heyu.api.alibaba.request.mm.order.resp.MyAccountDTO;
+import com.heyu.api.data.dao.vv.VvMyAccountDao;
import com.heyu.api.data.dao.vv.VvMySettlementDao;
+import com.heyu.api.data.entity.vv.VvMyAccountEntity;
import com.heyu.api.data.entity.vv.VvMySettlementEntity;
+import com.heyu.api.data.enums.AccountOperateEnums;
+import com.heyu.api.data.enums.AccountTypeEnums;
import com.heyu.api.data.utils.BigDecimalUtil;
+import com.heyu.api.data.utils.DingDingSettlementUtils;
import com.heyu.api.data.utils.R;
import com.heyu.api.utils.ISelect;
import com.heyu.api.utils.PPageUtils;
@@ -18,19 +25,24 @@ import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.List;
+// https://oapi.dingtalk.com/robot/send?access_token=4c36a91c1dbd4b3c2827cd8cd63f2342d2da7c6d7ebc5f62cf06197034b12bec
@Slf4j
@RestController
-@RequestMapping("/mm/my/")
+@RequestMapping("/mm/my/settlement")
public class AdminMySettlementController {
@Autowired
private VvMySettlementDao vvMySettlementDao;
+ @Autowired
+ private VvMyAccountDao vvMyAccountDao;
+
/***
* 列表
*/
@RequestMapping("/list")
public R list(@RequestBody VVMySettlementRequest vvMySettlementRequest) {
+ VvMyAccountEntity vvMyAccountEntity = vvMyAccountDao.selectVvMyAccount(AccountTypeEnums.common.getType());
PPageUtils pageUtils = PPageUtils.startPage(vvMySettlementRequest.getPageNum(), vvMySettlementRequest.getPageSize())
.doSelect(new ISelect() {
@Override
@@ -45,25 +57,49 @@ public class AdminMySettlementController {
);
}
});
- return R.ok().setData(pageUtils);
+
+ MyAccountDTO myAccountDTO = new MyAccountDTO();
+ myAccountDTO.setVvMyAccountEntity(vvMyAccountEntity);
+ myAccountDTO.setPageUtils(pageUtils);
+
+ return R.ok().setData(myAccountDTO);
}
-
-
/***
* 插入数据
*/
- @RequestMapping("/insertOrUpdate")
- public R insertOrUpdate(@RequestBody VvMySettlementEntity vvMySettlementEntity) {
- VvMySettlementEntity vvMySettlement = vvMySettlementDao.selectVvMySettlementOrderByIdDescLimit1();
+ @RequestMapping("/add")
+ public R add(@RequestBody VvMySettlementEntity vvMySettlementEntity) {
+ vvMySettlementDao.insertOrUpdateVvMySettlement(vvMySettlementEntity);
+ if (AccountOperateEnums.plus.getSign().equals(vvMySettlementEntity.getOperate())) {
+ VvMyAccountEntity vvMyAccountEntity = vvMyAccountDao.selectVvMyAccount(AccountTypeEnums.common.getType());
+ vvMyAccountEntity.setAmount(vvMySettlementEntity.getAmount().add(vvMyAccountEntity.getAmount()));
+ vvMyAccountEntity.setRechargeAmount(vvMySettlementEntity.getAmount().add(vvMyAccountEntity.getRechargeAmount()));
+ vvMyAccountDao.updateVvMyAccountById(vvMyAccountEntity);
+ } else {
+ String content = vvMySettlementEntity.getUserName() + ",提交了报销单,报销金额:" + vvMySettlementEntity.getAmount();
+ DingDingSettlementUtils.sendText(content, "报销申请");
+ }
+ return R.ok().setData(vvMySettlementEntity);
+ }
+
+ /***
+ * 审批
+ */
+ @RequestMapping("/approval")
+ public R approval(@RequestBody VVMySettlementApprovalRequest vvMySettlementApprovalRequest) {
+
+
+ VvMySettlementEntity vvMySettlement = vvMySettlementDao.selectVvMySettlementById(vvMySettlementApprovalRequest.getId());
BigDecimal remainAmount = vvMySettlement.getRemainAmount();
BigDecimal lastRemainAmount = BigDecimalUtil.subtract(remainAmount, vvMySettlement.getRemainAmount());
- vvMySettlementEntity.setRemainAmount(lastRemainAmount);
+ vvMySettlement.setRemainAmount(lastRemainAmount);
+
+ vvMySettlement.setStatus(vvMySettlementApprovalRequest.getStatus());
vvMySettlementDao.insertOrUpdateVvMySettlement(vvMySettlement);
- return R.ok().setData(vvMySettlementEntity);
+ return R.ok().setData(vvMySettlement);
}
-
}