Commit 8aaa3d9f authored by shiyu's avatar shiyu

完成结款

parent cb772aa2
...@@ -8,6 +8,7 @@ import com.wwdz.ch.db.domain.distribution.DistributionOrder; ...@@ -8,6 +8,7 @@ import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.UserAccountDetail; import com.wwdz.ch.db.domain.distribution.UserAccountDetail;
import com.wwdz.ch.db.dto.request.distribution.*; import com.wwdz.ch.db.dto.request.distribution.*;
import com.xxdxxs.service.FormHandler; import com.xxdxxs.service.FormHandler;
import com.xxdxxs.utils.StringUtils;
import com.xxdxxs.validation.Validator; import com.xxdxxs.validation.Validator;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -54,10 +55,28 @@ public class SysFinanceController { ...@@ -54,10 +55,28 @@ public class SysFinanceController {
return sysFinanceService.findUserBillDetail(dto); return sysFinanceService.findUserBillDetail(dto);
} }
@ApiOperation(value = "查询平台账户明细") @ApiOperation(value = "查询平台账户收入明细")
@PostMapping("/findSystemBillDetail") @PostMapping("/findSystemBillIncomeDetail")
public Result findSystemBillDetail(@RequestBody UserAccountDetailRequestDto dto) { public Result findSystemBillIncomeDetail(@RequestBody UserAccountDetailRequestDto dto) {
logger.info("查询平台账户明细,请求参数:{}", JSON.toJSONString(dto)); logger.info("查询平台账户收入明细,请求参数:{}", JSON.toJSONString(dto));
return sysFinanceService.findSystemBillDetail(dto); return sysFinanceService.findSystemBillIncomeDetail(dto);
}
@ApiOperation(value = "查询平台账户支出明细")
@PostMapping("/findSystemBillExpenditureDetail")
public Result findSystemBillExpenditureDetail(@RequestBody SettlementRecordRequestDto dto) {
logger.info("查询平台账户支出明细,请求参数:{}", JSON.toJSONString(dto));
return sysFinanceService.findSystemBillExpenditureDetail(dto);
}
@ApiOperation(value = "完成结款")
@PostMapping("/finishSettlement")
public Result finishSettlement(@RequestBody SettlementRecordRequestDto dto) {
if (StringUtils.isEmpty(dto.getBillId())) {
return Result.failed(ResultCode.PARAM_ERROR);
}
logger.info("完成结款,请求参数:{}", JSON.toJSONString(dto));
return sysFinanceService.finishSettlement(dto);
} }
} }
package com.wwdz.ch.admin.entity.vo;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
@Data
public class SettlementRecordVo implements Entity {
private Long id;
/**
* 结算id
*/
private String settlementId;
/**
* 用户id
*/
private Long userId;
/**
* 用户名称
*/
private String userName;
/**
* 银行卡号
*/
private String bankCardId;
/**
* 真实姓名
*/
private String realUserName;
/**
* 结算金额
*/
private String settleAmount;
/**
* 结算时间
*/
private Date settleTime;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 关联账单id
*/
private String billId;
/**
* 类型
*/
private Integer type;
/**
* 状态
*/
private Integer state;
/**
* 结算凭证
*/
private String voucher;
}
...@@ -2,10 +2,7 @@ package com.wwdz.ch.admin.service; ...@@ -2,10 +2,7 @@ package com.wwdz.ch.admin.service;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.domain.distribution.DistributionOrder; import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto; import com.wwdz.ch.db.dto.request.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.db.dto.request.distribution.UserAccountDetailRequestDto;
import com.wwdz.ch.db.dto.request.distribution.UserBillRequestDto;
public interface SysFinanceService { public interface SysFinanceService {
...@@ -31,9 +28,23 @@ public interface SysFinanceService { ...@@ -31,9 +28,23 @@ public interface SysFinanceService {
Result findUserBillDetail(UserAccountDetailRequestDto dto); Result findUserBillDetail(UserAccountDetailRequestDto dto);
/** /**
* 查询平台账户明细 * 查询平台账户收入明细
* @param dto * @param dto
* @return * @return
*/ */
Result findSystemBillDetail(UserAccountDetailRequestDto dto); Result findSystemBillIncomeDetail(UserAccountDetailRequestDto dto);
/**
* 查询平台账户支出明细
* @param dto
* @return
*/
Result findSystemBillExpenditureDetail(SettlementRecordRequestDto dto);
/**
* 完成结款
* @param dto
* @return
*/
Result finishSettlement(SettlementRecordRequestDto dto);
} }
...@@ -150,4 +150,39 @@ public class BillEnum { ...@@ -150,4 +150,39 @@ public class BillEnum {
} }
/**
* 结算类型
*/
public enum SettlmentTypeEnum {
COLLECT(1, "藏家收入"),
COMMON_USER(2, "普通用户收入"),
;
private int code;
private String des;
SettlmentTypeEnum(int code, String des) {
this.code = code;
this.des = des;
}
public static String getNameByCode(int code) {
for (BillEnum.SettlmentTypeEnum settlmentTypeEnum : BillEnum.SettlmentTypeEnum.values()) {
if (code == settlmentTypeEnum.getCode()) {
return settlmentTypeEnum.getDes();
}
}
return null;
}
public int getCode() {
return code;
}
public String getDes() {
return des;
}
}
} }
...@@ -78,6 +78,11 @@ public interface CommConsts { ...@@ -78,6 +78,11 @@ public interface CommConsts {
*/ */
public final static String USER_BILL_PREFIX = "BL"; public final static String USER_BILL_PREFIX = "BL";
/**
* 结款记录id前缀
*/
public final static String SETTLEMENT_PREFIX = "ST";
/** /**
* 平台收货地址 * 平台收货地址
*/ */
......
...@@ -150,7 +150,11 @@ public class CacheUtil { ...@@ -150,7 +150,11 @@ public class CacheUtil {
*/ */
public String getAppletUserList(long key) { public String getAppletUserList(long key) {
User user = userDao.queryById(key); User user = userDao.queryById(key);
return user.getNickname(); if (user != null) {
return user.getNickname();
}
return "微信用户";
/* List<User> userList = dtsUserDao.findAll(); /* List<User> userList = dtsUserDao.findAll();
Map<Long, String> map = userList.stream().collect(Collectors.toMap(User::getId, User::getNickname, (k1, k2) -> k2)); Map<Long, String> map = userList.stream().collect(Collectors.toMap(User::getId, User::getNickname, (k1, k2) -> k2));
return map.get(key);*/ return map.get(key);*/
......
package com.wwdz.ch.db.dao.distribution; package com.wwdz.ch.db.dao.distribution;
import com.wwdz.ch.db.domain.distribution.SettlementRecord; import com.wwdz.ch.db.domain.distribution.SettlementRecord;
import com.wwdz.ch.db.dto.request.distribution.SettlementRecordRequestDto;
import java.util.List;
public interface SettlementRecordDao { public interface SettlementRecordDao {
boolean insert(SettlementRecord settlementRecord); boolean insert(SettlementRecord settlementRecord);
boolean update(SettlementRecord settlementRecord); boolean updateByPrimaryKey(SettlementRecord settlementRecord);
SettlementRecord findByBillId(String billId); SettlementRecord findByBillId(String billId);
List<SettlementRecord> findList(SettlementRecordRequestDto dto);
} }
...@@ -14,4 +14,11 @@ public interface UserAccountDetailDao { ...@@ -14,4 +14,11 @@ public interface UserAccountDetailDao {
boolean updateState(String transactionId, int state); boolean updateState(String transactionId, int state);
List<UserAccountDetail> findList(UserAccountDetailRequestDto dto); List<UserAccountDetail> findList(UserAccountDetailRequestDto dto);
/**
* 按照筛选条件汇总账户金额
* @param dto
* @return
*/
long summaryAmount(UserAccountDetailRequestDto dto);
} }
...@@ -17,5 +17,7 @@ public interface UserBillDao { ...@@ -17,5 +17,7 @@ public interface UserBillDao {
UserBill findOne(String accountPeriod, long userId, Integer state); UserBill findOne(String accountPeriod, long userId, Integer state);
UserBill findByBillId(String billId);
List<UserBill> findList(UserBillRequestDto dto); List<UserBill> findList(UserBillRequestDto dto);
} }
package com.wwdz.ch.db.dto.request.distribution; package com.wwdz.ch.db.dto.request.distribution;
import com.wwdz.ch.db.dto.request.BaseRequestDto;
import com.xxdxxs.entity.Entity; import com.xxdxxs.entity.Entity;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
@Data @Data
public class SettlementRecordRequestDto implements Entity { public class SettlementRecordRequestDto extends BaseRequestDto implements Entity {
/** /**
* id * id
...@@ -43,6 +44,10 @@ public class SettlementRecordRequestDto implements Entity { ...@@ -43,6 +44,10 @@ public class SettlementRecordRequestDto implements Entity {
*/ */
private Date settleTime; private Date settleTime;
private Date startSettleTime;
private Date endSettleTime;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -57,6 +57,11 @@ public class UserAccountDetailRequestDto extends BaseRequestDto implements Entit ...@@ -57,6 +57,11 @@ public class UserAccountDetailRequestDto extends BaseRequestDto implements Entit
*/ */
private Integer state; private Integer state;
/**
* 订单状态
*/
private Integer orderState;
/** /**
* 创建时间 * 创建时间
*/ */
......
package com.wwdz.ch.db.impl.distribution; package com.wwdz.ch.db.impl.distribution;
import com.github.pagehelper.PageHelper;
import com.wwdz.ch.db.dao.distribution.SettlementRecordDao; import com.wwdz.ch.db.dao.distribution.SettlementRecordDao;
import com.wwdz.ch.db.domain.distribution.SettlementRecord; import com.wwdz.ch.db.domain.distribution.SettlementRecord;
import com.wwdz.ch.db.domain.distribution.SettlementRecordExample; import com.wwdz.ch.db.domain.distribution.SettlementRecordExample;
import com.wwdz.ch.db.dto.request.distribution.SettlementRecordRequestDto;
import com.wwdz.ch.db.mapper.distribution.SettlementRecordMapper; import com.wwdz.ch.db.mapper.distribution.SettlementRecordMapper;
import com.xxdxxs.db.component.JdbcHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
@Repository @Repository
public class SettlementRecordDaoImpl implements SettlementRecordDao { public class SettlementRecordDaoImpl implements SettlementRecordDao {
...@@ -19,8 +24,8 @@ public class SettlementRecordDaoImpl implements SettlementRecordDao { ...@@ -19,8 +24,8 @@ public class SettlementRecordDaoImpl implements SettlementRecordDao {
} }
@Override @Override
public boolean update(SettlementRecord settlementRecord) { public boolean updateByPrimaryKey(SettlementRecord settlementRecord) {
return false; return settlementRecordMapper.updateByPrimaryKeySelective(settlementRecord) > 0;
} }
@Override @Override
...@@ -30,4 +35,16 @@ public class SettlementRecordDaoImpl implements SettlementRecordDao { ...@@ -30,4 +35,16 @@ public class SettlementRecordDaoImpl implements SettlementRecordDao {
criteria.andBillIdEqualTo(billId); criteria.andBillIdEqualTo(billId);
return settlementRecordMapper.selectOneByExampleWithBLOBs(example); return settlementRecordMapper.selectOneByExampleWithBLOBs(example);
} }
@Override
public List<SettlementRecord> findList(SettlementRecordRequestDto dto) {
SettlementRecordExample example = new SettlementRecordExample();
SettlementRecordExample.Criteria criteria = example.createCriteria();
JdbcHelper.ifPresent(dto.getUserId(), criteria::andUserIdEqualTo);
JdbcHelper.ifPresent(dto.getStartSettleTime(), criteria::andSettleTimeGreaterThanOrEqualTo);
JdbcHelper.ifPresent(dto.getEndSettleTime(), criteria::andSettleTimeLessThanOrEqualTo);
example.setOrderByClause(" settle_time desc");
PageHelper.startPage(dto.getPage(), dto.getLimit());
return settlementRecordMapper.selectByExampleWithBLOBs(example);
}
} }
...@@ -64,4 +64,21 @@ public class UserAccountDetailDaoImpl implements UserAccountDetailDao { ...@@ -64,4 +64,21 @@ public class UserAccountDetailDaoImpl implements UserAccountDetailDao {
PageHelper.startPage(dto.getPage(), dto.getLimit()); PageHelper.startPage(dto.getPage(), dto.getLimit());
return userAccountDetailMapper.selectByExample(example); return userAccountDetailMapper.selectByExample(example);
} }
@Override
public long summaryAmount(UserAccountDetailRequestDto dto) {
UserAccountDetailExample example = new UserAccountDetailExample();
UserAccountDetailExample.Criteria criteria = example.createCriteria();
JdbcHelper.ifPresent(dto.getUserId(), criteria::andUserIdEqualTo);
JdbcHelper.ifPresent(dto.getTransactionId(), criteria::andTransactionIdEqualTo);
JdbcHelper.ifPresent(dto.getTransactionIdList(), criteria::andTransactionIdIn);
JdbcHelper.ifPresent(dto.getFilterTransactionIdList(), criteria::andTransactionIdNotIn);
JdbcHelper.ifPresent(dto.getStartCreateTime(), criteria::andCreateTimeGreaterThanOrEqualTo);
JdbcHelper.ifPresent(dto.getEndCreateTime(), criteria::andCreateTimeLessThanOrEqualTo);
JdbcHelper.ifPresent(dto.getState(), criteria::andStateEqualTo);
JdbcHelper.ifPresent(dto.getType(), criteria::andTypeEqualTo);
JdbcHelper.ifPresent(dto.getFundType(), criteria::andFundTypeEqualTo);
return userAccountDetailMapper.summaryAmount(example);
}
} }
...@@ -30,6 +30,14 @@ public class UserBillDaoImpl implements UserBillDao { ...@@ -30,6 +30,14 @@ public class UserBillDaoImpl implements UserBillDao {
return userBillMapper.selectOneByExample(example); return userBillMapper.selectOneByExample(example);
} }
@Override
public UserBill findByBillId(String billId) {
UserBillExample example = new UserBillExample();
UserBillExample.Criteria criteria = example.createCriteria();
criteria.andBillIdEqualTo(billId);
return userBillMapper.selectOneByExample(example);
}
@Override @Override
public List<UserBill> findList(UserBillRequestDto dto) { public List<UserBill> findList(UserBillRequestDto dto) {
UserBillExample example = new UserBillExample(); UserBillExample example = new UserBillExample();
......
...@@ -66,4 +66,8 @@ public interface UserAccountDetailMapper { ...@@ -66,4 +66,8 @@ public interface UserAccountDetailMapper {
int updateByPrimaryKeySelective(UserAccountDetail record); int updateByPrimaryKeySelective(UserAccountDetail record);
int updateByPrimaryKey(UserAccountDetail record); int updateByPrimaryKey(UserAccountDetail record);
long summaryAmount(UserAccountDetailExample example);
} }
\ No newline at end of file
...@@ -368,4 +368,11 @@ ...@@ -368,4 +368,11 @@
</if> </if>
limit 1 limit 1
</select> </select>
<select id="summaryAmount" parameterType="com.wwdz.ch.db.domain.distribution.UserAccountDetailExample" resultType="java.lang.Long">
select IFNULL(sum(amount), 0) as totalAmount from user_account_detail
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment