Browse Source

10.19连接erp,金币

lijianlin/feature-202509231533026-现金管理-收款管理
huangqizhen 1 month ago
parent
commit
d3ef7684ac
  1. 3
      src/main/java/com/example/demo/controller/cash/CashRefundController.java
  2. 1
      src/main/java/com/example/demo/domain/entity/UserGoldRecord.java
  3. 2
      src/main/java/com/example/demo/domain/vo/cash/CashRecordDone.java
  4. 1
      src/main/java/com/example/demo/mapper/coin/RefundMapper.java
  5. 2
      src/main/java/com/example/demo/service/cash/RefundService.java
  6. 1
      src/main/java/com/example/demo/service/coin/RefundService.java
  7. 67
      src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java
  8. 1
      src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java
  9. 13
      src/main/resources/cashMapper/CashRefundMapper.xml

3
src/main/java/com/example/demo/controller/cash/CashRefundController.java

@ -105,6 +105,7 @@ public class CashRefundController {
return Result.success(refundService.update(cashRecordDone)); return Result.success(refundService.update(cashRecordDone));
} }
else return Result.error("该订单状态无法支持此操作"); else return Result.error("该订单状态无法支持此操作");
} }
@PostMapping("/review") @PostMapping("/review")
@ -113,7 +114,7 @@ public class CashRefundController {
} }
@PostMapping("/finalReview") @PostMapping("/finalReview")
public Result finalReview(@RequestBody CashRecordDone cashRecordDone) { public Result finalReview(@RequestBody CashRecordDone cashRecordDone) {
return Result.success(refundService.review(cashRecordDone));
return Result.success(refundService.finalreview(cashRecordDone));
} }
@PostMapping("/executor") @PostMapping("/executor")
public Result executor(@RequestBody CashRecordDone cashRecordDone) { public Result executor(@RequestBody CashRecordDone cashRecordDone) {

1
src/main/java/com/example/demo/domain/entity/UserGoldRecord.java

@ -31,6 +31,7 @@ public class UserGoldRecord implements Serializable {
private String goodsName; // 商品名称 private String goodsName; // 商品名称
private String refundType; // 退款类型 private String refundType; // 退款类型
private Byte refundModel; // 退款方式0全部/1部分退款 private Byte refundModel; // 退款方式0全部/1部分退款
private Integer CrefundModel;
private String remark; // 备注 private String remark; // 备注
private Byte type; // 类型0充值/1消耗/2退款 private Byte type; // 类型0充值/1消耗/2退款
private Byte isRefund; // 是否已退款消费限定1退款0未退款 private Byte isRefund; // 是否已退款消费限定1退款0未退款

2
src/main/java/com/example/demo/domain/vo/cash/CashRecordDone.java

@ -99,6 +99,8 @@ public class CashRecordDone {
private Integer refundAmount; private Integer refundAmount;
private String marketName; private String marketName;
private List<Integer> statuses; private List<Integer> statuses;
private Integer permanentGold;
private Integer freeGold;
private String processInstanceId; // 流程实例ID private String processInstanceId; // 流程实例ID
private String currentTaskId; // 当前任务ID private String currentTaskId; // 当前任务ID

1
src/main/java/com/example/demo/mapper/coin/RefundMapper.java

@ -37,4 +37,5 @@ public interface RefundMapper {
List<RefundUser> selectGoods(RefundUser refundUser); List<RefundUser> selectGoods(RefundUser refundUser);
Gold sumGold(RefundUser refundUser); Gold sumGold(RefundUser refundUser);
} }

2
src/main/java/com/example/demo/service/cash/RefundService.java

@ -26,4 +26,6 @@ public interface RefundService {
int executor(CashRecordDone cashRecordDone); int executor(CashRecordDone cashRecordDone);
//修改原数据状态 //修改原数据状态
int updateStatus(CashRecordDone cashRecordDone); int updateStatus(CashRecordDone cashRecordDone);
int finalreview(CashRecordDone cashRecordDone);
} }

1
src/main/java/com/example/demo/service/coin/RefundService.java

@ -37,4 +37,5 @@ public interface RefundService {
//查找退款商品 //查找退款商品
List<RefundUser> selectGoods(RefundUser refundUser); List<RefundUser> selectGoods(RefundUser refundUser);
} }

67
src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java

@ -1,17 +1,24 @@
package com.example.demo.serviceImpl.cash; package com.example.demo.serviceImpl.cash;
import com.example.demo.Util.GoldTistV2;
import com.example.demo.domain.entity.UserGoldRecord;
import com.example.demo.domain.vo.cash.CashRecordDone; import com.example.demo.domain.vo.cash.CashRecordDone;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
import com.example.demo.mapper.cash.CashRefundMapper; import com.example.demo.mapper.cash.CashRefundMapper;
import com.example.demo.mapper.coin.AuditMapper;
import com.example.demo.mapper.coin.RefundMapper;
import com.example.demo.service.cash.RefundService; import com.example.demo.service.cash.RefundService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import static org.apache.commons.lang3.StringUtils.substring;
/** /**
* @program: GOLD * @program: GOLD
* @ClassName CashRefundServiceImpl * @ClassName CashRefundServiceImpl
@ -26,6 +33,10 @@ public class CashRefundServiceImpl implements RefundService {
@Autowired @Autowired
private CashRefundMapper cashRefundMapper; private CashRefundMapper cashRefundMapper;
@Autowired
private RefundMapper refundMapper;
@Autowired
private AuditMapper auditMapper;
@Override @Override
public PageInfo<CashRecordDone> select(Integer pageNum, Integer pageSize, CashRecordDone cashRecordDone) { public PageInfo<CashRecordDone> select(Integer pageNum, Integer pageSize, CashRecordDone cashRecordDone) {
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
@ -57,9 +68,9 @@ public class CashRefundServiceImpl implements RefundService {
cashRecordDone.setOrderType(2); cashRecordDone.setOrderType(2);
cashRecordDone.setStatus(10); cashRecordDone.setStatus(10);
//生成订单号后半部分 //生成订单号后半部分
String orderNumber = UUID.randomUUID().toString().replaceAll("-", "");
String orderNumber = cashRecordDone.getOrderCode();
//构建订单信息 //构建订单信息
cashRecordDone.setOrderCode("TKXJ_" + orderNumber); //订单号
cashRecordDone.setOrderCode("TK_" + orderNumber); //订单号
cashRefundMapper.insert(cashRecordDone); cashRefundMapper.insert(cashRecordDone);
CashRecordDone cashRecordDone1 = new CashRecordDone(); CashRecordDone cashRecordDone1 = new CashRecordDone();
cashRecordDone1.setId(cashRecordDone.getId()); cashRecordDone1.setId(cashRecordDone.getId());
@ -95,6 +106,12 @@ public class CashRefundServiceImpl implements RefundService {
@Override @Override
public int review(CashRecordDone cashRecordDone) { public int review(CashRecordDone cashRecordDone) {
if(cashRecordDone.getStatus()== 12|| cashRecordDone.getStatus()== 22){
CashRecordDone cashRecordDone1 = new CashRecordDone();
cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2));
cashRecordDone1.setStatus(4);
cashRefundMapper.updateStatus(cashRecordDone1);
}
int result = cashRefundMapper.review(cashRecordDone); int result = cashRefundMapper.review(cashRecordDone);
return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();
} }
@ -127,4 +144,50 @@ public class CashRefundServiceImpl implements RefundService {
public int updateStatus(CashRecordDone cashRecordDone) { public int updateStatus(CashRecordDone cashRecordDone) {
return cashRefundMapper.updateStatus(cashRecordDone); return cashRefundMapper.updateStatus(cashRecordDone);
} }
@Override
public int finalreview(CashRecordDone cashRecordDone) {
if(cashRecordDone.getStatus()== 32){
CashRecordDone cashRecordDone1 = new CashRecordDone();
cashRecordDone1.setOrderCode(cashRecordDone.getOrderCode().substring(2));
cashRecordDone1.setStatus(4);
cashRefundMapper.updateStatus(cashRecordDone1);
}
if (cashRecordDone.getGoodsName() != null &&
(cashRecordDone.getGoodsName().equals("金币充值") ||
cashRecordDone.getGoodsName().contains("金币充值"))) {
UserGoldRecord userGoldRecord = new UserGoldRecord();
userGoldRecord.setOrderCode(cashRecordDone.getOrderCode());
userGoldRecord.setType((byte) 2);
userGoldRecord.setIsRefund((byte) 1);
userGoldRecord.setRefundType("金币退款");
userGoldRecord.setCrefundModel(cashRecordDone.getRefundModel());
userGoldRecord.setJwcode(cashRecordDone.getJwcode());
userGoldRecord.setSumGold(cashRecordDone.getPermanentGold()+cashRecordDone.getFreeGold());
userGoldRecord.setPermanentGold(cashRecordDone.getPermanentGold());
int currentMonth = LocalDate.now().getMonthValue();
if (currentMonth >= 1 && currentMonth <= 6) {
// 1-6月设置12月额度6月保持默认值
userGoldRecord.setFreeJune(0);
userGoldRecord.setFreeDecember(cashRecordDone.getFreeGold());
} else {
// 7-12月设置6月额度12月保持默认值
userGoldRecord.setFreeJune(cashRecordDone.getFreeGold());
userGoldRecord.setFreeDecember(0);
}
userGoldRecord.setGoodsName(cashRecordDone.getGoodsName());
userGoldRecord.setPayPlatform("金币系统");
userGoldRecord.setRemark(cashRecordDone.getRemark());
userGoldRecord.setAdminId(cashRecordDone.getAuditId());
userGoldRecord.setAuditStatus(1);
String auditName = auditMapper.getName(cashRecordDone.getAuditId());
refundMapper.add(userGoldRecord);
GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 58, //退款免费+永久金币-充值
(double) (userGoldRecord.getFreeDecember()+userGoldRecord.getFreeJune()+userGoldRecord.getPermanentGold() ) /100,
userGoldRecord.getRemark(),(double) userGoldRecord.getPermanentGold() / 100, auditName, "退款金币充值");}
int result = cashRefundMapper.review(cashRecordDone);
return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();
}
} }

1
src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java

@ -251,4 +251,5 @@ public class RefundServiceImpl implements RefundService {
} }
return list; return list;
} }
} }

13
src/main/resources/cashMapper/CashRefundMapper.xml

@ -93,7 +93,14 @@
<update id="updateStatus"> <update id="updateStatus">
update cash_record update cash_record
set status = #{status} set status = #{status}
where id = #{id}
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="orderCode != null">
and order_code = #{orderCode}
</if>
</where>
</update> </update>
@ -110,9 +117,9 @@
cr.goods_name, cr.goods_name,
cr.good_num, cr.good_num,
cr.payment_currency, cr.payment_currency,
cr.payment_amount,
Round((payment_amount) / 100.0, 2) AS freeGold,
cr.received_currency, cr.received_currency,
cr.received_amount,
Round((received_amount) / 100.0, 2) AS freeGold,
cr.handling_charge, cr.handling_charge,
cr.pay_type, cr.pay_type,
cr.received_market, cr.received_market,

Loading…
Cancel
Save