|
|
@@ -11,11 +11,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.fs.common.core.domain.model.LoginUser;
|
|
|
import com.fs.common.utils.DateUtils;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.fs.company.service.ICompanyTrafficRecordService;
|
|
|
import com.fs.system.domain.SysConfig;
|
|
|
import com.fs.system.mapper.SysConfigMapper;
|
|
|
import com.fs.system.service.ISysDeptConfigLogService;
|
|
|
-import lombok.AllArgsConstructor;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.fs.system.mapper.SysDeptConfigMapper;
|
|
|
@@ -29,12 +27,12 @@ import com.fs.system.service.ISysDeptConfigService;
|
|
|
* @date 2025-09-22
|
|
|
*/
|
|
|
@Service
|
|
|
-@AllArgsConstructor
|
|
|
public class SysDeptConfigServiceImpl extends ServiceImpl<SysDeptConfigMapper, SysDeptConfig> implements ISysDeptConfigService {
|
|
|
|
|
|
-
|
|
|
- private final ISysDeptConfigLogService sysDeptConfigLogService;
|
|
|
- private final SysConfigMapper sysConfigMapper;
|
|
|
+ @Autowired
|
|
|
+ private ISysDeptConfigLogService sysDeptConfigLogService;
|
|
|
+ @Autowired
|
|
|
+ private SysConfigMapper sysConfigMapper;
|
|
|
|
|
|
/**
|
|
|
* 查询部门配置
|
|
|
@@ -123,29 +121,65 @@ public class SysDeptConfigServiceImpl extends ServiceImpl<SysDeptConfigMapper, S
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void addRedMoney(Long deptId, BigDecimal num, LoginUser loginUser) {
|
|
|
+ public void addRedMoney(Long deptId, BigDecimal num, LoginUser loginUser, String remark) {
|
|
|
SysDeptConfig deptConfig = getDeptConfig(deptId, loginUser);
|
|
|
deptConfig.setUpdateBy(loginUser.getUsername());
|
|
|
deptConfig.setUpdateTime(new Date());
|
|
|
BigDecimal red = deptConfig.getRedPackage() == null ? BigDecimal.ZERO : deptConfig.getRedPackage();
|
|
|
deptConfig.setRedPackage(red.add(num));
|
|
|
- sysDeptConfigLogService.addLog(deptId, 0, 0, num.setScale(2, RoundingMode.UP).toString(), red.setScale(2, RoundingMode.UP).toString(), deptConfig.getRedPackage().setScale(2, RoundingMode.UP).toString(), loginUser.getUsername(), "");
|
|
|
+ // 如果remark为空,使用默认值
|
|
|
+ String finalRemark = (remark != null && !remark.isEmpty()) ? remark : "手动充值";
|
|
|
+ sysDeptConfigLogService.addLog(deptId, 0, 0, num.setScale(2, RoundingMode.UP).toString(), red.setScale(2, RoundingMode.UP).toString(), deptConfig.getRedPackage().setScale(2, RoundingMode.UP).toString(), loginUser.getUsername(), finalRemark);
|
|
|
updateById(deptConfig);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void deductRedMoney(Long deptId, BigDecimal num, LoginUser loginUser, String remark) {
|
|
|
+ SysDeptConfig deptConfig = getDeptConfig(deptId, loginUser);
|
|
|
+ deptConfig.setUpdateBy(loginUser.getUsername());
|
|
|
+ deptConfig.setUpdateTime(new Date());
|
|
|
+ BigDecimal red = deptConfig.getRedPackage() == null ? BigDecimal.ZERO : deptConfig.getRedPackage();
|
|
|
+
|
|
|
+ if (red.compareTo(num) < 0) {
|
|
|
+ throw new RuntimeException("部门红包金额不足,当前余额: " + red + ", 需要扣减: " + num);
|
|
|
+ }
|
|
|
|
|
|
+ String finalRemark = (remark != null && !remark.isEmpty()) ? remark : "手动扣减";
|
|
|
+ sysDeptConfigLogService.addLog(deptId, 0, 1, num.setScale(2, RoundingMode.UP).toString(), red.setScale(2, RoundingMode.UP).toString(), deptConfig.getRedPackage().setScale(2, RoundingMode.UP).toString(), loginUser.getUsername(), finalRemark);
|
|
|
+ updateById(deptConfig);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void addFlowNum(Long deptId, BigDecimal money, LoginUser loginUser) {
|
|
|
+ public void addFlowNum(Long deptId, BigDecimal money, LoginUser loginUser, String remark) {
|
|
|
SysDeptConfig deptConfig = getDeptConfig(deptId, loginUser);
|
|
|
deptConfig.setUpdateBy(loginUser.getUsername());
|
|
|
deptConfig.setUpdateTime(new Date());
|
|
|
Long l = trafficConversion(money.longValue());
|
|
|
long flowNum = deptConfig.getFlowNum() == null ? 0 : deptConfig.getFlowNum();
|
|
|
deptConfig.setFlowNum(flowNum + l);
|
|
|
- sysDeptConfigLogService.addLog(deptId, 1, 0, l.toString(), flowNum + "", deptConfig.getFlowNum().toString(), loginUser.getUsername(), "");
|
|
|
+ String finalRemark = (remark != null && !remark.isEmpty()) ? remark : "手动充值";
|
|
|
+ sysDeptConfigLogService.addLog(deptId, 1, 0, l.toString(), flowNum + "", deptConfig.getFlowNum().toString(), loginUser.getUsername(), finalRemark);
|
|
|
updateById(deptConfig);
|
|
|
+ }
|
|
|
|
|
|
+ @Override
|
|
|
+ public void deductFlowNum(Long deptId, BigDecimal money, LoginUser loginUser, String remark) {
|
|
|
+ SysDeptConfig deptConfig = getDeptConfig(deptId, loginUser);
|
|
|
+ deptConfig.setUpdateBy(loginUser.getUsername());
|
|
|
+ deptConfig.setUpdateTime(new Date());
|
|
|
+ Long l = trafficConversion(money.longValue());
|
|
|
+ long flowNum = deptConfig.getFlowNum() == null ? 0 : deptConfig.getFlowNum();
|
|
|
+
|
|
|
+ if (flowNum < l) {
|
|
|
+ throw new RuntimeException("部门流量余额不足,当前余额: " + flowNum + ", 需要扣减: " + l);
|
|
|
+ }
|
|
|
+
|
|
|
+ deptConfig.setFlowNum(flowNum - l);
|
|
|
+ String finalRemark = (remark != null && !remark.isEmpty()) ? remark : "手动扣减";
|
|
|
+ sysDeptConfigLogService.addLog(deptId, 1, 1, l.toString(), flowNum + "", deptConfig.getFlowNum().toString(), loginUser.getUsername(), finalRemark);
|
|
|
+ updateById(deptConfig);
|
|
|
}
|
|
|
+
|
|
|
public Long trafficConversion(Long amount) {
|
|
|
SysConfig config = sysConfigMapper.selectConfigByConfigKey("statis.config");
|
|
|
JSONObject jsonObject = JSONObject.parseObject(config.getConfigValue());
|