22 Commits

Author SHA1 Message Date
huangqizhen 0f4a27a743 11.21 bug 6 days ago
lijianlin a0eac14737 11-21 时间数据类型继续继续修改 1 week ago
lijianlin f362db2312 11-21 时间数据类型继续修改 1 week ago
lijianlin 882bc6a0d7 11-21 时间数据类型修改 1 week ago
huangqizhen 624e32eb8d 11.21 消息推送 1 week ago
lijianlin 905e2fe5e0 Merge remote-tracking branch 'origin/milestone-20251104-现金管理二期' into milestone-20251104-现金管理二期 1 week ago
lijianlin 6c3c3779fc 11-21 收款页面按照提交时间排序 1 week ago
huangqizhen ed018ec2ec 11.21 消息推送 1 week ago
sunjiabei e6dde95ead 11月21日收款接口 1 week ago
sunjiabei 481dc9fda8 11月21日字符串提示 1 week ago
lijianlin acb4d8c846 Merge branch 'milestone-20251104-现金管理二期' of http://39.101.133.168:8807/huangqizhen/gold-java into lijianlin/feature-20251104110749-现金管理二期 1 week ago
lijianlin a899056770 11-21 收款页面按照付款时间排序 1 week ago
huangqizhen 14d1131e0b Merge remote-tracking branch 'origin/milestone-20251104-现金管理二期' into milestone-20251104-现金管理二期 1 week ago
huangqizhen 918aa0c448 Merge branch 'refs/heads/huangqizheng/feature-20251119150446-退款合并后' into milestone-20251104-现金管理二期 1 week ago
lijianlin 47a6e59350 Merge branch 'milestone-20251104-现金管理二期' of http://39.101.133.168:8807/huangqizhen/gold-java into lijianlin/feature-20251104110749-现金管理二期 1 week ago
lijianlin e7611b6e30 11-21 频道管理-铁粉频道权限管理 1 week ago
lijianlin 1a92ee1066 11-21 频道管理-直播频道权限管理 1 week ago
sunjiabei d36a33d734 11月21日字符串提示 1 week ago
sunjiabei 0ebf0d0bc1 11月21日字符串提示 1 week ago
lijianlin f86a146e31 Merge remote-tracking branch 'refs/remotes/origin/lijianlin/feature-20251104110749-现金管理二期' into milestone-20251104-现金管理二期 1 week ago
lijianlin 9e45a73dbb 11-21 根据goldcoin查询订单 1 week ago
sunjiabei ede69a52b6 11月21日字符串提示 1 week ago
  1. 9
      src/main/java/com/example/demo/controller/cash/CashCollectionController.java
  2. 5
      src/main/java/com/example/demo/controller/cash/MessageController.java
  3. 1
      src/main/java/com/example/demo/domain/entity/RechargeActivity.java
  4. 2
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java
  5. 4
      src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java
  6. 18
      src/main/java/com/example/demo/domain/vo/cash/CashCollection.java
  7. 3
      src/main/java/com/example/demo/domain/vo/cash/CashRecordDone.java
  8. 22
      src/main/java/com/example/demo/domain/vo/cash/Status.java
  9. 1
      src/main/java/com/example/demo/domain/vo/coin/Messages.java
  10. 7
      src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java
  11. 2
      src/main/java/com/example/demo/mapper/cash/MessageMapper.java
  12. 1
      src/main/java/com/example/demo/mapper/coin/AdminMapper.java
  13. 2
      src/main/java/com/example/demo/mapper/coin/RoleMapper.java
  14. 1
      src/main/java/com/example/demo/mapper/live/LiveMapper.java
  15. 2
      src/main/java/com/example/demo/service/cash/CashCollectionService.java
  16. 2
      src/main/java/com/example/demo/service/cash/MessageService.java
  17. 19
      src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java
  18. 8
      src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java
  19. 8
      src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java
  20. 5
      src/main/java/com/example/demo/serviceImpl/cash/MessageServiceImpl.java
  21. 46
      src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java
  22. 31
      src/main/resources/cashMapper/CashCollectionMapper.xml
  23. 21
      src/main/resources/cashMapper/CashRefundMapper.xml
  24. 42
      src/main/resources/cashMapper/MessageMapper.xml
  25. 4
      src/main/resources/mapper/RoleMapper.xml

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

@ -153,4 +153,13 @@ public class CashCollectionController {
return Result.error(e.getMessage()); return Result.error(e.getMessage());
} }
} }
//根据goldcoin订单号查询收款订单
@PostMapping("/selectByGoldCoinOrderCode")
public Result selectByGoldCoinOrderCode(@RequestBody String orderNo) {
try {
return Result.success(cashCollectionService.selectByGoldCoinOrderCode(orderNo));
}catch (Exception e){
return Result.error(e.getMessage());
}
}
} }

5
src/main/java/com/example/demo/controller/cash/MessageController.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.DTO.IdRequest; import com.example.demo.domain.DTO.IdRequest;
import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.vo.cash.Status;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.cash.MessageService; import com.example.demo.service.cash.MessageService;
import com.example.demo.service.coin.MarketService; import com.example.demo.service.coin.MarketService;
@ -38,7 +39,7 @@ public class MessageController {
@Autowired @Autowired
private MarketService marketService; private MarketService marketService;
@PostMapping @PostMapping
public Result getMessage(@RequestParam Integer status) throws Exception {
public Result getMessage(@RequestBody Status status) throws Exception {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader("token"); String token = request.getHeader("token");
@ -51,7 +52,7 @@ public class MessageController {
if (markets.contains("9") || markets.contains("9999")) { if (markets.contains("9") || markets.contains("9999")) {
markets=null; markets=null;
} }
return Result.success(messageService.getMessage(markets, status));
return Result.success(messageService.getMessage(markets, status.getStatus()));
} }
@PostMapping("/update") @PostMapping("/update")
public Result update(@RequestBody IdRequest idRequest) throws Exception { public Result update(@RequestBody IdRequest idRequest) throws Exception {

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

@ -24,6 +24,7 @@ public class RechargeActivity {
private String businessBelong; //业绩归属地 private String businessBelong; //业绩归属地
private Integer status; //状态 0未开始 1进行中 2已结束不是实时更新的仅展示不要拿这个做校验 private Integer status; //状态 0未开始 1进行中 2已结束不是实时更新的仅展示不要拿这个做校验
private Integer creator; //添加人 private Integer creator; //添加人
private String area; //归属地
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime startTime; // 开始时间到秒 private LocalDateTime startTime; // 开始时间到秒
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")

2
src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java

@ -27,6 +27,8 @@ public class BeanConsumeFan {
private Integer id; private Integer id;
@ExcelProperty("姓名") @ExcelProperty("姓名")
private String name; //姓名 private String name; //姓名
@ExcelIgnore
private Integer roleId; //角色Id
@ExcelProperty("精网号") @ExcelProperty("精网号")
private Integer jwcode; //精网号 private Integer jwcode; //精网号
@ExcelProperty("地区") @ExcelProperty("地区")

4
src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java

@ -28,6 +28,8 @@ public class BeanConsumeLive {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ExcelProperty("ID") @ExcelProperty("ID")
private Integer id; private Integer id;
@ExcelIgnore
private Integer roleId; //角色Id
@ExcelProperty("姓名") @ExcelProperty("姓名")
private String name; //姓名 private String name; //姓名
@ExcelProperty("精网号") @ExcelProperty("精网号")
@ -48,7 +50,7 @@ public class BeanConsumeLive {
@ExcelProperty("金豆数量") @ExcelProperty("金豆数量")
private String beanNum; //金豆数量 private String beanNum; //金豆数量
@ExcelProperty("频道") @ExcelProperty("频道")
private String liveChannel; //频道名称截取content
private String liveChannel; //频道名称
@ExcelProperty("免费金豆") @ExcelProperty("免费金豆")
private String freeBean; //免费金豆 private String freeBean; //免费金豆
@ExcelProperty("付费金豆") @ExcelProperty("付费金豆")

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

@ -1,5 +1,6 @@
package com.example.demo.domain.vo.cash; package com.example.demo.domain.vo.cash;
import cn.hutool.core.date.DateTime;
import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -10,6 +11,7 @@ import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -96,16 +98,16 @@ public class CashCollection implements Serializable {
private String rejectReason; // 驳回理由 private String rejectReason; // 驳回理由
@ExcelIgnore @ExcelIgnore
private String auditId; //审核人id private String auditId; //审核人id
@ExcelProperty("审核人")
@ExcelProperty("审核人" )
private String auditName; //审核人姓名 private String auditName; //审核人姓名
@ExcelIgnore @ExcelIgnore
private Integer cashRoleId; //角色id(0客服1地区财务/负责人2总部) private Integer cashRoleId; //角色id(0客服1地区财务/负责人2总部)
@ExcelIgnore @ExcelIgnore
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime createTime;
private Date createTime;
@ExcelIgnore @ExcelIgnore
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime updateTime;
private Date updateTime;
@ExcelIgnore @ExcelIgnore
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime auditTime; private LocalDateTime auditTime;
@ -113,15 +115,21 @@ public class CashCollection implements Serializable {
//搜索筛条件 //搜索筛条件
@ExcelIgnore @ExcelIgnore
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime startTime; // 付款时间起
private Date startTime; // 付款时间起
@ExcelIgnore @ExcelIgnore
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime endTime; // 付款时间止
private Date endTime; // 付款时间止
@ExcelIgnore @ExcelIgnore
private String sortField; //排序字段 private String sortField; //排序字段
@ExcelIgnore @ExcelIgnore
private String sortOrder; //排序顺序 private String sortOrder; //排序顺序
@ExcelIgnore @ExcelIgnore
private List<String> markets; // 所属地区列表 private List<String> markets; // 所属地区列表
@ExcelIgnore
private String orderNo;
@ExcelIgnore
private String orderNoStatus;
@ExcelIgnore
private String payload;
} }

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

@ -119,6 +119,9 @@ public class CashRecordDone {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date eTime; // 结束时间 private Date eTime; // 结束时间
private Integer relatedId; private Integer relatedId;
private BigDecimal NewRefundGold;
private BigDecimal NewRefundFree;
private Integer adminId;
} }

22
src/main/java/com/example/demo/domain/vo/cash/Status.java

@ -0,0 +1,22 @@
package com.example.demo.domain.vo.cash;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @program: GOLD
* @ClassName Status
* @description:
* @author: huangqizhen
* @create: 202511-21 18:32
* @Version 1.0
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Status {
private List<Integer> status;
}

1
src/main/java/com/example/demo/domain/vo/coin/Messages.java

@ -32,6 +32,7 @@ public class Messages {
private Integer typeId; private Integer typeId;
private Integer market; private Integer market;
private Integer flag; private Integer flag;
private String marketName;
} }

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

@ -1,5 +1,6 @@
package com.example.demo.mapper.cash; package com.example.demo.mapper.cash;
//import com.example.demo.domain.DTO.PaymentDTO;
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.RechargeActivity;
@ -48,7 +49,7 @@ public interface CashCollectionMapper {
//根据精网号获取市场名 //根据精网号获取市场名
String getMarketNameByJwcode(Integer jwcode); String getMarketNameByJwcode(Integer jwcode);
//获取收款活动列表 //获取收款活动列表
List<RechargeActivity> getActivityList(@Param("now")LocalDateTime now);
List<RechargeActivity> getActivityList();
//查找未同步的订单 //查找未同步的订单
List<GOrder>getUnSync(@Param("size")int size); List<GOrder>getUnSync(@Param("size")int size);
//给同步过去的gOrder设置同步状态 //给同步过去的gOrder设置同步状态
@ -57,4 +58,8 @@ public interface CashCollectionMapper {
CashCollection selectById(Integer id); CashCollection selectById(Integer id);
List<CashCollection> selectBatchIds(Set<Integer> relatedIds); List<CashCollection> selectBatchIds(Set<Integer> relatedIds);
//根据glodcoin订单号查询收款订单
CashCollection selectByGoldCoinOrderCode(String orderNo);
// void updateByGoldCoinOrderCode(PaymentDTO paymentDTO);
} }

2
src/main/java/com/example/demo/mapper/cash/MessageMapper.java

@ -16,7 +16,7 @@ import java.util.List;
**/ **/
@Mapper @Mapper
public interface MessageMapper { public interface MessageMapper {
List<Messages> getMessage(List<String> markets, Integer status);
List<Messages> getMessage(List<String> markets, List<Integer> status);
void update(Integer id); void update(Integer id);
} }

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

@ -27,4 +27,5 @@ public interface AdminMapper {
String getName(String account); String getName(String account);
} }

2
src/main/java/com/example/demo/mapper/coin/RoleMapper.java

@ -48,4 +48,6 @@ public interface RoleMapper {
RoleVo selectFather(Integer id); RoleVo selectFather(Integer id);
//修改角色 //修改角色
void updateRole(RoleVo roleVo); void updateRole(RoleVo roleVo);
//根据角色id获取频道
String getChannel(Integer roleId);
} }

1
src/main/java/com/example/demo/mapper/live/LiveMapper.java

@ -31,4 +31,5 @@ public interface LiveMapper {
List<String> getDept(); List<String> getDept();
//获取直播消费列表总数 //获取直播消费列表总数
int selectLiveCount(BeanConsumeLive beanConsumeLive); int selectLiveCount(BeanConsumeLive beanConsumeLive);
} }

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

@ -37,4 +37,6 @@ public interface CashCollectionService {
Object syncToCashRecord(); Object syncToCashRecord();
//根据id查询收款订单 //根据id查询收款订单
CashCollection selectById(CashCollection cashCollection); CashCollection selectById(CashCollection cashCollection);
//根据goldcoin订单号查询收款订单
CashCollection selectByGoldCoinOrderCode(String orderNo);
} }

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

@ -16,7 +16,7 @@ import java.util.List;
**/ **/
@Service @Service
public interface MessageService { public interface MessageService {
List<Messages> getMessage(List<String> markets, Integer status);
List<Messages> getMessage(List<String> markets, List<Integer> status);
void update(Integer id) throws Exception; void update(Integer id) throws Exception;
} }

19
src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java

@ -5,7 +5,9 @@ import com.example.demo.domain.vo.bean.*;
import com.example.demo.domain.vo.coin.*; import com.example.demo.domain.vo.coin.*;
import com.example.demo.mapper.bean.BeanConsumeMapper; import com.example.demo.mapper.bean.BeanConsumeMapper;
import com.example.demo.mapper.bean.BeanUserMapper; import com.example.demo.mapper.bean.BeanUserMapper;
import com.example.demo.mapper.coin.AdminMapper;
import com.example.demo.mapper.coin.BeanRechargeMapper1; import com.example.demo.mapper.coin.BeanRechargeMapper1;
import com.example.demo.mapper.coin.RoleMapper;
import com.example.demo.mapper.coin.UserMapper; import com.example.demo.mapper.coin.UserMapper;
import com.example.demo.mapper.live.LiveMapper; import com.example.demo.mapper.live.LiveMapper;
import com.example.demo.service.bean.BeanConsumeService; import com.example.demo.service.bean.BeanConsumeService;
@ -45,7 +47,7 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
@Autowired @Autowired
private BeanRechargeMapper1 beanRechargeMapper1; private BeanRechargeMapper1 beanRechargeMapper1;
@Autowired @Autowired
private UserMapper userMapper;
private RoleMapper roleMapper;
@Autowired @Autowired
private RestTemplate restTemplate; private RestTemplate restTemplate;
// 构建接口URL及参数 // 构建接口URL及参数
@ -157,6 +159,14 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
@Override @Override
public Object selectLiveBy(Integer pageNum, Integer pageSize, BeanConsumeLive beanConsumeLive) { public Object selectLiveBy(Integer pageNum, Integer pageSize, BeanConsumeLive beanConsumeLive) {
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
String channel=roleMapper.getChannel(beanConsumeLive.getRoleId());
if (channel==null){
return "角色频道有误";
}
if (!channel.equals("全部")){
beanConsumeLive.setLiveChannel(channel);
}
List<BeanConsumeLive> beanConsumeLives = liveMapper.selectLiveBy(beanConsumeLive); List<BeanConsumeLive> beanConsumeLives = liveMapper.selectLiveBy(beanConsumeLive);
//int total = liveMapper.selectLiveCount(beanConsumeLive); //int total = liveMapper.selectLiveCount(beanConsumeLive);
return new PageInfo<>(beanConsumeLives); return new PageInfo<>(beanConsumeLives);
@ -165,6 +175,13 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
@Override @Override
public Object selectFanBy(Integer pageNum, Integer pageSize, BeanConsumeFan beanConsumeFan) { public Object selectFanBy(Integer pageNum, Integer pageSize, BeanConsumeFan beanConsumeFan) {
PageHelper.startPage(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize);
String channel=roleMapper.getChannel(beanConsumeFan.getRoleId());
if (channel==null){
return "角色频道有误";
}
if (!channel.equals("全部")){
beanConsumeFan.setChannel(channel);
}
List<BeanConsumeFan> beanConsumeFans = beanConsumeMapper.selectFanBy(beanConsumeFan); List<BeanConsumeFan> beanConsumeFans = beanConsumeMapper.selectFanBy(beanConsumeFan);
return new PageInfo<>(beanConsumeFans); return new PageInfo<>(beanConsumeFans);
} }

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

@ -326,8 +326,7 @@ public User getNameAndMarket(Integer jwcode) {
//获取收款活动列表 //获取收款活动列表
@Override @Override
public List<RechargeActivity> getActivityList() { public List<RechargeActivity> getActivityList() {
LocalDateTime now = LocalDateTime.now();
return cashCollectionMapper.getActivityList(now);
return cashCollectionMapper.getActivityList();
} }
//同步g_order订单到cash_record表 //同步g_order订单到cash_record表
@ -401,4 +400,9 @@ public User getNameAndMarket(Integer jwcode) {
return cashCollectionMapper.selectById(cashCollection.getId()); return cashCollectionMapper.selectById(cashCollection.getId());
} }
//根据goldcoin订单号查询收款订单
@Override
public CashCollection selectByGoldCoinOrderCode(String orderNo) {
return cashCollectionMapper.selectByGoldCoinOrderCode(orderNo);
}
} }

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

@ -232,6 +232,12 @@ public class CashRefundServiceImpl implements RefundService {
if (cashRecordDone.getRefundReason()== null) { if (cashRecordDone.getRefundReason()== null) {
throw new RuntimeException("请填写退款理由"); throw new RuntimeException("请填写退款理由");
} }
if(cashRecordDone.getNewRefundGold()== null){
cashRecordDone.setNewRefundGold(BigDecimal.valueOf(0));
}
if(cashRecordDone.getNewRefundFree()== null){
cashRecordDone.setNewRefundFree(BigDecimal.valueOf(0));
}
int result = cashRefundMapper.update(cashRecordDone); int result = cashRefundMapper.update(cashRecordDone);
return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode(); return (result > 0 ? Result.success("提交成功") : Result.error("提交失败")).getCode();
} }
@ -346,7 +352,7 @@ CashRecordDone cashRecordDone1 = new CashRecordDone();
userGoldRecord.setGoodsName(cashRecordDone.getGoodsName()); userGoldRecord.setGoodsName(cashRecordDone.getGoodsName());
userGoldRecord.setPayPlatform("金币系统"); userGoldRecord.setPayPlatform("金币系统");
userGoldRecord.setRemark(cashRecordDone.getRemark()); userGoldRecord.setRemark(cashRecordDone.getRemark());
userGoldRecord.setAdminId(cashRecordDone.getAuditId());
userGoldRecord.setAdminId(cashRecordDone.getAdminId());
userGoldRecord.setAuditStatus(1); userGoldRecord.setAuditStatus(1);
userGoldRecord.setTaskGold(0); userGoldRecord.setTaskGold(0);
userGoldRecord.setCreateTime(new Date()); userGoldRecord.setCreateTime(new Date());

5
src/main/java/com/example/demo/serviceImpl/cash/MessageServiceImpl.java

@ -23,7 +23,10 @@ public class MessageServiceImpl implements MessageService {
@Autowired @Autowired
private MessageMapper messageMapper; private MessageMapper messageMapper;
@Override @Override
public List<Messages> getMessage(List<String> markets, Integer status) {
public List<Messages> getMessage(List<String> markets, List<Integer> status) {
if(status== null|| status.size()==0){
status.add(99);
}
return messageMapper.getMessage(markets, status) ; return messageMapper.getMessage(markets, status) ;
} }

46
src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java

@ -29,7 +29,7 @@ public class RechargeActivityCenterServiceImpl implements RechargeActivityCenter
@Autowired @Autowired
private RechargeActivityCenterMapper rechargeActivityCenterMapper; private RechargeActivityCenterMapper rechargeActivityCenterMapper;
private static final String ACTIVITY_NAME_REGEX = "^[\\u4e00-\\u9fa5a-zA-Z0-9,。!?、;:\"'()《》【】—~,.:;!'()\\[\\]-_&+=]{1,100}$";
private static final String ACTIVITY_NAME_REGEX = "^[\\u4e00-\\u9fa5a-zA-Z0-9,。!??、;:\"'‘’“”()《》【】—~~,.:;!()\\[\\]\\-_&+=]{1,100}$";
private static final Pattern ACTIVITY_NAME_PATTERN = Pattern.compile(ACTIVITY_NAME_REGEX); private static final Pattern ACTIVITY_NAME_PATTERN = Pattern.compile(ACTIVITY_NAME_REGEX);
// 根据ID查询活动 // 根据ID查询活动
@Override @Override
@ -43,35 +43,51 @@ public class RechargeActivityCenterServiceImpl implements RechargeActivityCenter
// 新增活动 // 新增活动
@Override @Override
public void addActivity(RechargeActivity activity) { public void addActivity(RechargeActivity activity) {
String activityName = activity.getActivityName();
if (activity.getActivityName().length() > 100) {
// 1. 长度校验
if (activityName.length() > 100) {
throw new IllegalArgumentException("活动名称不能超过100个字符"); throw new IllegalArgumentException("活动名称不能超过100个字符");
} }
// 2. 名称重复校验
RechargeActivity activityByName = rechargeActivityCenterMapper.queryActivityByName(activity); RechargeActivity activityByName = rechargeActivityCenterMapper.queryActivityByName(activity);
if (activityByName != null) { if (activityByName != null) {
throw new IllegalArgumentException("活动名称已存在"); throw new IllegalArgumentException("活动名称已存在");
} }
// 3. 字符格式校验
if (!ACTIVITY_NAME_PATTERN.matcher(activity.getActivityName()).matches()) {
throw new IllegalArgumentException("活动名称仅允许包含汉字、英文字母、数字及常见标点符号(中英文标点:,。!?、;:\"'()《》【】——~,.:;!'()[]-_&+=)");
// 3. 字符格式校验提取非法字符
if (!ACTIVITY_NAME_PATTERN.matcher(activityName).matches()) {
// 反向匹配提取所有不符合规则的字符
StringBuilder illegalChars = new StringBuilder();
for (char c : activityName.toCharArray()) {
if (!ACTIVITY_NAME_PATTERN.matcher(String.valueOf(c)).matches()) {
// 去重避免重复输出同一非法字符
if (illegalChars.indexOf(String.valueOf(c)) == -1) {
illegalChars.append(c).append("、");
}
}
}
// 去除最后一个顿号拼接提示信息
String illegalStr = illegalChars.deleteCharAt(illegalChars.length() - 1).toString();
throw new IllegalArgumentException(
String.format("活动名称包含非法字符:%s,仅允许包含汉字、英文字母、数字及常见标点符号(中英文标点:,。!??、;:\"'‘’“”()《》【】—~~,.:;!()[]-_&+=)", illegalStr)
);
} }
// 4. 时间范围判断设置对应状态
Date startTime = activity.getStartTime(); Date startTime = activity.getStartTime();
Date endTime = activity.getEndTime(); Date endTime = activity.getEndTime();
Date now = new Date(); // 当前系统本地时间
//获取当前系统时间本地时间与活动时间时区保持一致
Date now = new Date();
//时间范围判断设置对应状态
if (now.before(startTime)) { if (now.before(startTime)) {
// 当前时间 < 开始时间 未开始状态0
activity.setStatus("0");
activity.setStatus("0"); // 未开始
} else if (now.after(endTime)) { } else if (now.after(endTime)) {
// 当前时间 > 结束时间 已结束状态2
activity.setStatus("2");
activity.setStatus("2"); // 已结束
} else { } else {
// 开始时间 当前时间 结束时间 进行中状态1
activity.setStatus("1");
activity.setStatus("1"); // 进行中
} }
rechargeActivityCenterMapper.addActivity(activity); rechargeActivityCenterMapper.addActivity(activity);
} }

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

@ -170,7 +170,7 @@
</otherwise> </otherwise>
</choose> </choose>
<if test="cashCollection.activity!=null and cashCollection.activity!=''"> <if test="cashCollection.activity!=null and cashCollection.activity!=''">
AND cr.activity like concat('%',#{cashCollection.activity},'%')
AND cr.activity =#{cashCollection.activity}
</if> </if>
<if test="cashCollection.paymentCurrency!=null and cashCollection.paymentCurrency!=''"> <if test="cashCollection.paymentCurrency!=null and cashCollection.paymentCurrency!=''">
AND cr.payment_currency like concat('%',#{cashCollection.paymentCurrency},'%') AND cr.payment_currency like concat('%',#{cashCollection.paymentCurrency},'%')
@ -198,7 +198,7 @@
ORDER BY ${cashCollection.sortField} ${cashCollection.sortOrder} ORDER BY ${cashCollection.sortField} ${cashCollection.sortOrder}
</when> </when>
<otherwise> <otherwise>
ORDER BY update_time DESC
ORDER BY create_time DESC
</otherwise> </otherwise>
</choose> </choose>
</select> </select>
@ -219,10 +219,11 @@
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="com.example.demo.domain.entity.RechargeActivity"> <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 ra.id,ra.activity_name,ra.business_belong,m.name as area,ra.status
from recharge_activity ra
left join market m on m.id=ra.area
where ra.flag=1
</select>
<!--查找未同步的订单--> <!--查找未同步的订单-->
<select id="getUnSync" resultType="com.example.demo.domain.entity.GOrder"> <select id="getUnSync" resultType="com.example.demo.domain.entity.GOrder">
select id,jwcode,order_no,type,price,count,pay_style,state, select id,jwcode,order_no,type,price,count,pay_style,state,
@ -272,4 +273,22 @@
</foreach> </foreach>
</if> </if>
</select> </select>
<select id="selectByGoldCoinOrderCode" resultType="com.example.demo.domain.vo.cash.CashCollection">
select * from cash_record_collection where order_no=#{orderNo}
</select>
<!--根据glodcoin订单号更新收款订单-->
<update id="updateByGoldCoinOrderCode">
update cash_record_collection
<set>
received_time=#{time},
payment_currency=#{currency},
received_currency=#{currency},
payment_amount=#{order_amount},
received_amount=#{net_amount},
handling_charge=#{charge},
order_no_status=0
</set>
where order_code=#{merchant_reference}
</update>
</mapper> </mapper>

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

@ -72,13 +72,22 @@
) )
</insert> </insert>
<!-- ✅ 正确写法:CashRefundMapper.xml -->
<update id="update"> <update id="update">
update cash_record_refund
set
status = 10,
refund_model = #{refundModel},
refund_reason = #{refundReason}
where id = #{id}
UPDATE cash_record_refund
<set>
status = 10,
refund_model = #{refundModel},
refund_reason = #{refundReason},
<if test="newRefundGold != null">
permanent_gold = #{newRefundGold},
</if>
<if test="newRefundFree != null">
free_gold = #{newRefundFree}
<!-- 注意:最后一个字段不要加逗号!<set> 会自动处理 -->
</if>
</set>
WHERE id = #{id}
</update> </update>
<update id="withdraw"> <update id="withdraw">
update cash_record_refund set status = 11 update cash_record_refund set status = 11

42
src/main/resources/cashMapper/MessageMapper.xml

@ -7,22 +7,36 @@
where id=#{id} where id=#{id}
</update> </update>
<select id="getMessage" resultType="com.example.demo.domain.vo.coin.Messages"> <select id="getMessage" resultType="com.example.demo.domain.vo.coin.Messages">
SELECT id, jwcode, name, title, `desc`, status, market,type, type_id,flag,cz_time
FROM message
SELECT
m.id,
m.jwcode,
m.name, <!-- ✅ message.name -->
m.title,
m.`desc`,
m.status,
m.market,
m.type,
m.type_id,
m.flag,
m.cz_time,
mk.name AS market_name <!-- ✅ market.name -->
FROM message m
LEFT JOIN market mk ON m.market = mk.id
<where> <where>
flag=0
<if test="status != null">
and status=#{status}
m.flag = 0
<if test="status != null and status.size() > 0">
AND m.status IN
<foreach item="item" collection="status" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="markets != null and markets.size() > 0">
AND m.market IN
<foreach item="item" collection="markets" open="(" separator="," close=")">
#{item}
</foreach>
</if> </if>
<choose>
<when test="markets != null and markets.size() > 0">
market IN
<foreach item="item" collection="markets" open="(" separator="," close=")">
#{item}
</foreach>
</when>
</choose>
ORDER BY cz_time DESC
</where> </where>
ORDER BY m.cz_time DESC
</select> </select>
</mapper> </mapper>

4
src/main/resources/mapper/RoleMapper.xml

@ -116,5 +116,9 @@
LEFT JOIN role as father ON r.father_id = father.id LEFT JOIN role as father ON r.father_id = father.id
where r.id = #{id} where r.id = #{id}
</select> </select>
<!--根据角色id获取频道-->
<select id="getChannel" resultType="java.lang.String">
select channel from role where id = #{roleId}
</select>
</mapper> </mapper>
Loading…
Cancel
Save