Browse Source

11-04 活动实体类创建 ,新增数量单位,活动联查补充

huangqizheng/feature-20251104113536-现金管理二期退款修改
lijianlin 3 weeks ago
parent
commit
1a7a1aae8b
  1. 3
      src/main/java/com/example/demo/controller/cash/CashCollectionController.java
  2. 1
      src/main/java/com/example/demo/domain/entity/CashRecord.java
  3. 35
      src/main/java/com/example/demo/domain/entity/RechargeActivity.java
  4. 1
      src/main/java/com/example/demo/domain/vo/cash/CashCollection.java
  5. 4
      src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java
  6. 3
      src/main/java/com/example/demo/service/cash/CashCollectionService.java
  7. 27
      src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java
  8. 23
      src/main/resources/cashMapper/CashCollectionMapper.xml

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

@ -3,6 +3,7 @@ package com.example.demo.controller.cash;
import com.example.demo.Util.JWTUtil; import com.example.demo.Util.JWTUtil;
import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.CashRecord;
import com.example.demo.domain.entity.RechargeActivity;
import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.cash.CashCollection; import com.example.demo.domain.vo.cash.CashCollection;
import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.Page;
@ -52,7 +53,7 @@ public class CashCollectionController {
@PostMapping("/getActivityList") @PostMapping("/getActivityList")
public Result getActivityList() public Result getActivityList()
{ {
List<String> list = cashCollectionService.getActivityList();
List<RechargeActivity> list = cashCollectionService.getActivityList();
return Result.success(list); return Result.success(list);
} }
//新增收款订单 //新增收款订单

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

@ -35,6 +35,7 @@ public class CashRecord implements Serializable {
private String bankCode; // 银行流水订单号 private String bankCode; // 银行流水订单号
private String goodsName; // 商品名称 private String goodsName; // 商品名称
private Integer goodNum; // 产品数量 private Integer goodNum; // 产品数量
private String NumUnit; // 数量单位 //
private Integer permanentGold; // 永久金币数量 private Integer permanentGold; // 永久金币数量
private Integer freeGold; // 免费金币数量 private Integer freeGold; // 免费金币数量

35
src/main/java/com/example/demo/domain/entity/RechargeActivity.java

@ -0,0 +1,35 @@
package com.example.demo.domain.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* @program: gold-java
* @ClassName RechargeActivity
* @description:
* @author: Ethan
* @create: 202511-04 11:48
* @Version 1.0
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RechargeActivity {
private Integer id; //活动id
private String activityName; //活动名称
private String businessBelong; //业绩归属地
private Integer status; //状态 0未开始 1进行中 2已结束不是实时更新的仅展示不要拿这个做校验
private Integer creator; //添加人
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime startTime; // 开始时间到秒
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime endTime; // 结束时间到秒
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime createTime; // 创建日期到秒
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime updateTime; // 更新日期到秒
}

1
src/main/java/com/example/demo/domain/vo/cash/CashCollection.java

@ -36,6 +36,7 @@ public class CashCollection implements Serializable {
private String bankCode; // 银行流水订单号 private String bankCode; // 银行流水订单号
private String goodsName; // 商品名称 private String goodsName; // 商品名称
private Integer goodNum; // 商品数量 private Integer goodNum; // 商品数量
private String numUnit; //数量单位 //
private Integer permanentGold; // 永久金币数量 private Integer permanentGold; // 永久金币数量
private Integer freeGold; // 免费金币数量 private Integer freeGold; // 免费金币数量
//金额信息 //金额信息

4
src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java

@ -2,10 +2,12 @@ package com.example.demo.mapper.cash;
import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.CashRecord;
import com.example.demo.domain.entity.GOrder; import com.example.demo.domain.entity.GOrder;
import com.example.demo.domain.entity.RechargeActivity;
import com.example.demo.domain.vo.cash.CashCollection; import com.example.demo.domain.vo.cash.CashCollection;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
@ -45,7 +47,7 @@ public interface CashCollectionMapper {
//根据精网号获取市场名 //根据精网号获取市场名
String getMarketNameByJwcode(Integer jwcode); String getMarketNameByJwcode(Integer jwcode);
//获取收款活动列表 //获取收款活动列表
List<String> getActivityList();
List<RechargeActivity> getActivityList(@Param("now")LocalDateTime now);
//查找未同步的订单 //查找未同步的订单
List<GOrder>getUnSync(@Param("size")int size); List<GOrder>getUnSync(@Param("size")int size);
//给同步过去的gOrder设置同步状态 //给同步过去的gOrder设置同步状态

3
src/main/java/com/example/demo/service/cash/CashCollectionService.java

@ -1,6 +1,7 @@
package com.example.demo.service.cash; package com.example.demo.service.cash;
import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.CashRecord;
import com.example.demo.domain.entity.RechargeActivity;
import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.cash.CashCollection; import com.example.demo.domain.vo.cash.CashCollection;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
@ -31,7 +32,7 @@ public interface CashCollectionService {
//根据精网号获取姓名和地区 //根据精网号获取姓名和地区
User getNameAndMarket(Integer jwcode); User getNameAndMarket(Integer jwcode);
//获取活动列表 //获取活动列表
List<String> getActivityList();
List<RechargeActivity> getActivityList();
//同步g_order订单到cash_record表 //同步g_order订单到cash_record表
Object syncToCashRecord(); Object syncToCashRecord();
} }

27
src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java

@ -2,6 +2,7 @@ package com.example.demo.serviceImpl.cash;
import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.entity.CashRecord;
import com.example.demo.domain.entity.GOrder; import com.example.demo.domain.entity.GOrder;
import com.example.demo.domain.entity.RechargeActivity;
import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.cash.CashCollection; import com.example.demo.domain.vo.cash.CashCollection;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
@ -64,6 +65,9 @@ public class CashCollectionServiceImpl implements CashCollectionService {
if (!cashCollection.getGoodsName().equals("金币充值")){ if (!cashCollection.getGoodsName().equals("金币充值")){
if( cashCollection.getGoodNum()== 0 ){ if( cashCollection.getGoodNum()== 0 ){
throw new IllegalArgumentException("产品数量不能为空");} throw new IllegalArgumentException("产品数量不能为空");}
if(cashCollection.getNumUnit()== null){
throw new IllegalArgumentException("数量单位不能为空");
}
} }
if(cashCollection.getPaymentCurrency()== null){ if(cashCollection.getPaymentCurrency()== null){
throw new IllegalArgumentException("支付币种不能为空"); throw new IllegalArgumentException("支付币种不能为空");
@ -80,12 +84,6 @@ public class CashCollectionServiceImpl implements CashCollectionService {
if(cashCollection.getPayTime()== null){ if(cashCollection.getPayTime()== null){
throw new IllegalArgumentException("付款时间不能为空"); throw new IllegalArgumentException("付款时间不能为空");
} }
if (cashCollection.getVoucher()== null){
throw new IllegalArgumentException("转账凭证不能为空");
}
if (cashCollection.getRemark()==null){
throw new IllegalArgumentException("备注不能为空");
}
//生成订单号后半部分 //生成订单号后半部分
String orderNumber = UUID.randomUUID().toString().replaceAll("-", ""); String orderNumber = UUID.randomUUID().toString().replaceAll("-", "");
CashRecord cashRecord = new CashRecord(); CashRecord cashRecord = new CashRecord();
@ -96,6 +94,7 @@ public class CashCollectionServiceImpl implements CashCollectionService {
cashRecord.setActivity(cashCollection.getActivity()); // 活动 cashRecord.setActivity(cashCollection.getActivity()); // 活动
cashRecord.setGoodsName(cashCollection.getGoodsName()); //商品名称 cashRecord.setGoodsName(cashCollection.getGoodsName()); //商品名称
cashRecord.setGoodNum(cashCollection.getGoodNum()); //商品数量 cashRecord.setGoodNum(cashCollection.getGoodNum()); //商品数量
cashRecord.setNumUnit(cashCollection.getNumUnit()); //数量单位
cashRecord.setPermanentGold(cashCollection.getPermanentGold()); //永久金币 cashRecord.setPermanentGold(cashCollection.getPermanentGold()); //永久金币
cashRecord.setFreeGold(cashCollection.getFreeGold()); //免费金币 cashRecord.setFreeGold(cashCollection.getFreeGold()); //免费金币
cashRecord.setPaymentCurrency(cashCollection.getPaymentCurrency()); //付款币种 cashRecord.setPaymentCurrency(cashCollection.getPaymentCurrency()); //付款币种
@ -153,10 +152,14 @@ public class CashCollectionServiceImpl implements CashCollectionService {
if (cashRecord.getGoodsName().equals("金币充值")){ if (cashRecord.getGoodsName().equals("金币充值")){
if( cashRecord.getPermanentGold()== 0 && cashRecord.getFreeGold()== 0){ if( cashRecord.getPermanentGold()== 0 && cashRecord.getFreeGold()== 0){
throw new IllegalArgumentException("金币数量不能为空");} throw new IllegalArgumentException("金币数量不能为空");}
} }
if (!cashRecord.getGoodsName().equals("金币充值")){ if (!cashRecord.getGoodsName().equals("金币充值")){
if( cashRecord.getGoodNum()== 0 ){ if( cashRecord.getGoodNum()== 0 ){
throw new IllegalArgumentException("产品数量不能为空");} throw new IllegalArgumentException("产品数量不能为空");}
if(cashRecord.getNumUnit()== null){
throw new IllegalArgumentException("数量单位不能为空");
}
} }
if(cashRecord.getPaymentCurrency()== null){ if(cashRecord.getPaymentCurrency()== null){
throw new IllegalArgumentException("支付币种不能为空"); throw new IllegalArgumentException("支付币种不能为空");
@ -173,12 +176,7 @@ public class CashCollectionServiceImpl implements CashCollectionService {
if(cashRecord.getPayTime()== null){ if(cashRecord.getPayTime()== null){
throw new IllegalArgumentException("付款时间不能为空"); throw new IllegalArgumentException("付款时间不能为空");
} }
if (cashRecord.getVoucher()== null){
throw new IllegalArgumentException("转账凭证不能为空");
}
if (cashRecord.getRemark()==null){
throw new IllegalArgumentException("备注不能为空");
}
CashRecord status=cashCollectionMapper.selectByOrderCode(cashRecord.getOrderCode()); CashRecord status=cashCollectionMapper.selectByOrderCode(cashRecord.getOrderCode());
if (!status.getStatus().equals(5)){ if (!status.getStatus().equals(5)){
throw new IllegalArgumentException("只允许编辑已撤回订单"); throw new IllegalArgumentException("只允许编辑已撤回订单");
@ -253,8 +251,9 @@ public class CashCollectionServiceImpl implements CashCollectionService {
} }
//获取收款活动列表 //获取收款活动列表
@Override @Override
public List<String> getActivityList() {
return cashCollectionMapper.getActivityList();
public List<RechargeActivity> getActivityList() {
LocalDateTime now = LocalDateTime.now();
return cashCollectionMapper.getActivityList(now);
} }
//同步g_order订单到cash_record表 //同步g_order订单到cash_record表
@Override @Override

23
src/main/resources/cashMapper/CashCollectionMapper.xml

@ -7,12 +7,12 @@
useGeneratedKeys="true" keyProperty="id"> useGeneratedKeys="true" keyProperty="id">
insert into insert into
cash_record(order_type,jwcode,name,market,activity, cash_record(order_type,jwcode,name,market,activity,
order_code,goods_name,good_num,permanent_gold,free_gold,
order_code,goods_name,good_num,num_unit,permanent_gold,free_gold,
payment_currency,payment_amount,received_market, payment_currency,payment_amount,received_market,
pay_type,pay_time,status,submitter_id,submitter_market, pay_type,pay_time,status,submitter_id,submitter_market,
voucher,remark) voucher,remark)
values(#{orderType},#{jwcode},#{name},#{market},#{activity}, values(#{orderType},#{jwcode},#{name},#{market},#{activity},
#{orderCode},#{goodsName},#{goodNum},#{permanentGold},#{freeGold},#{paymentCurrency},
#{orderCode},#{goodsName},#{goodNum},#{NumUnit},#{permanentGold},#{freeGold},#{paymentCurrency},
#{paymentAmount},#{receivedMarket},#{payType},#{payTime}, #{paymentAmount},#{receivedMarket},#{payType},#{payTime},
#{status},#{submitterId},#{submitterMarket},#{voucher},#{remark}) #{status},#{submitterId},#{submitterMarket},#{voucher},#{remark})
</insert> </insert>
@ -43,6 +43,9 @@
activity = #{cashRecord.activity}, activity = #{cashRecord.activity},
goods_name = #{cashRecord.goodsName}, goods_name = #{cashRecord.goodsName},
good_num = #{cashRecord.goodNum}, good_num = #{cashRecord.goodNum},
permanent_gold = #{cashRecord.permanentGold},
free_gold = #{cashRecord.freeGold},
Num_unit = #{cashRecord.NumUnit},
payment_currency = #{cashRecord.paymentCurrency}, payment_currency = #{cashRecord.paymentCurrency},
payment_amount = #{cashRecord.paymentAmount}, payment_amount = #{cashRecord.paymentAmount},
received_market = #{cashRecord.receivedMarket}, received_market = #{cashRecord.receivedMarket},
@ -114,7 +117,7 @@
<select id="selectCollection1" resultType="com.example.demo.domain.vo.cash.CashCollection"> <select id="selectCollection1" resultType="com.example.demo.domain.vo.cash.CashCollection">
select cr.order_type, cr.id,cr.jwcode,cr.name,cr.market, select cr.order_type, cr.id,cr.jwcode,cr.name,cr.market,
m1.name as marketName, m1.name as marketName,
cr.activity,cr.order_code,cr.bank_code,
ra.activity_name as activity,cr.order_code,cr.bank_code,
cr.goods_name,cr.good_num, cr.goods_name,cr.good_num,
cr.permanent_gold/100 as permanentGold,cr.free_gold/100 as freeGold,cr.payment_amount/100 as paymentAmount, cr.permanent_gold/100 as permanentGold,cr.free_gold/100 as freeGold,cr.payment_amount/100 as paymentAmount,
r1.rate_name as paymentCurrency, r1.rate_name as paymentCurrency,
@ -133,6 +136,7 @@
left join market m2 on m2.id = cr.received_market left join market m2 on m2.id = cr.received_market
left join rate r1 on r1.id = cr.payment_currency left join rate r1 on r1.id = cr.payment_currency
left join rate r2 on r2.id = cr.received_currency left join rate r2 on r2.id = cr.received_currency
left join recharge_activity ra on ra.id = cr.activity
<where> <where>
1 = 1 1 = 1
<if test="cashCollection.market != null and cashCollection.market != ''"> <if test="cashCollection.market != null and cashCollection.market != ''">
@ -207,10 +211,13 @@
</choose> </choose>
</select> </select>
<select id="selectAuditByOrderCode" resultType="com.example.demo.domain.entity.CashRecord"> <select id="selectAuditByOrderCode" resultType="com.example.demo.domain.entity.CashRecord">
select id, status,jwcode,name,market,activity,
select id, status,jwcode,name,market,ra.activity_name as activity,
order_code,bank_code,goods_name,good_num,permanent_gold,free_gold, order_code,bank_code,goods_name,good_num,permanent_gold,free_gold,
payment_currency,payment_amount,pay_type,pay_time,status,submitter_id, payment_currency,payment_amount,pay_type,pay_time,status,submitter_id,
voucher,remark from cash_record where order_code=#{orderCode}
voucher,remark
from cash_record
left join recharge_activity ra on ra.id = cash_record.activity
where order_code=#{orderCode}
</select> </select>
<!--根据精网号获取姓名--> <!--根据精网号获取姓名-->
<select id="getNameByJwcode" resultType="java.lang.String"> <select id="getNameByJwcode" resultType="java.lang.String">
@ -219,8 +226,10 @@
<select id="getMarketNameByJwcode" resultType="java.lang.String"> <select id="getMarketNameByJwcode" resultType="java.lang.String">
select m.name from user u left join market m on u.market=m.id select m.name from user u left join market m on u.market=m.id
where u.jwcode=#{jwcode}</select> where u.jwcode=#{jwcode}</select>
<select id="getActivityList" resultType="java.lang.String">
select distinct activity from cash_record
<select id="getActivityList" resultType="com.example.demo.domain.entity.RechargeActivity">
select id,activity_name,business_belong,status
from recharge_activity
where #{now} between start_time and end_time
</select> </select>
<!--查找未同步的订单--> <!--查找未同步的订单-->
<select id="getUnSync" resultType="com.example.demo.domain.entity.GOrder"> <select id="getUnSync" resultType="com.example.demo.domain.entity.GOrder">

Loading…
Cancel
Save