diff --git a/src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java b/src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java index ed77c18..a7b31bc 100644 --- a/src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java +++ b/src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java @@ -1,6 +1,7 @@ package com.example.demo.controller.coin; import com.example.demo.config.interfac.Log; +import com.example.demo.domain.vo.coin.AreaInfo; import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.RechargeActivity; import com.example.demo.domain.vo.coin.Result; @@ -264,6 +265,53 @@ public class RechargeActivityCenterController { } /** + * 根据活动 ID 查询归属地 + * + * @param activity 充值活动请求参数(包含活动 ID) + * @return 查询结果(成功返回归属地信息,失败返回错误信息) + * @throws NullPointerException 当活动 ID 为空时抛出 + * @throws IllegalArgumentException 当活动 ID 无效时抛出 + */ + @Log("查询活动归属地") + @PostMapping("/queryActivityArea") + public Result queryActivityArea(@RequestBody RechargeActivity activity, @RequestHeader(defaultValue = "zh_CN") String lang) { + try { + // 解析语言代码 + String languageCode = parseLanguageCode(lang); + + if (activity.getId() == null) { + String errorMsg = languageTranslationUtil.translate("查询失败:活动 ID 不能为空", lang); + return Result.error(errorMsg); + } + + AreaInfo result = rechargeActivityCenterService.queryActivityAreaById(activity.getId()); + + // 如果 area 为 "0",直接返回 + if ("0".equals(result.getArea())) { + return Result.success(result); + } + + // 对返回结果进行多语言转换 + if (result.getArea() != null && !result.getArea().isEmpty()) { + result.setArea(languageTranslationUtil.translate(result.getArea(), lang)); + } + if (result.getAreaName() != null && !result.getAreaName().isEmpty()) { + result.setAreaName(languageTranslationUtil.translate(result.getAreaName(), lang)); + } + + return Result.success(result); + } catch (NullPointerException e) { + log.error("查询活动归属地失败:空指针异常", e); + String errorMsg = languageTranslationUtil.translate("查询失败:数据为空", lang); + return Result.error(errorMsg); + } catch (IllegalArgumentException e) { + log.error("查询活动归属地失败:参数异常", e); + String errorMsg = languageTranslationUtil.translate("查询失败:" + e.getMessage(), lang); + return Result.error(errorMsg); + } + } + + /** * 转换充值活动的多语言字段 */ private void translateRechargeActivities(com.github.pagehelper.PageInfo pageInfo, String lang) { diff --git a/src/main/java/com/example/demo/domain/entity/CashRecord.java b/src/main/java/com/example/demo/domain/entity/CashRecord.java index 9ef9580..e439093 100644 --- a/src/main/java/com/example/demo/domain/entity/CashRecord.java +++ b/src/main/java/com/example/demo/domain/entity/CashRecord.java @@ -83,7 +83,8 @@ public class CashRecord implements Serializable { private LocalDateTime refundTime; // 退款日期(到天) private String refundRemark; // 退款备注(执行人填写) private String refundVoucher; // 退款截图 - + private Integer performanceMarket; // 业绩地区 + private String performanceMarketName; // 业绩地区名称 // 系统字段 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; diff --git a/src/main/java/com/example/demo/domain/vo/coin/AreaInfo.java b/src/main/java/com/example/demo/domain/vo/coin/AreaInfo.java new file mode 100644 index 0000000..849dc13 --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/coin/AreaInfo.java @@ -0,0 +1,13 @@ +package com.example.demo.domain.vo.coin; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class AreaInfo { + private String area; // 归属地 ID + private String areaName; // 归属地名称 +} diff --git a/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java b/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java index 9ddd306..54ea90e 100644 --- a/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java @@ -23,9 +23,13 @@ public interface RechargeActivityCenterMapper { // 根据ID查询活动 List queryActivity(RechargeActivity activity); + // 根据活动名称查询活动 RechargeActivity queryActivityByName(RechargeActivity activity); + // 根据活动 ID 查询活动归属地 + RechargeActivity queryActivityAreaById(@Param("id") Integer id); + // 新增活动 void addActivity(RechargeActivity activity); diff --git a/src/main/java/com/example/demo/mapper/coin/UserMapper.java b/src/main/java/com/example/demo/mapper/coin/UserMapper.java index e61d39f..da2f0e3 100644 --- a/src/main/java/com/example/demo/mapper/coin/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/UserMapper.java @@ -40,6 +40,7 @@ public interface UserMapper { //查找用户全部信息 User selectAllUser(String jwcode); + User selectUserMarket(String jwcode); //查找用户的首充日期 Date getFirstRecharge(String jwcode); diff --git a/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java b/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java index 5e97a88..3beb7fd 100644 --- a/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java +++ b/src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java @@ -1,5 +1,6 @@ package com.example.demo.service.coin; +import com.example.demo.domain.vo.coin.AreaInfo; import com.example.demo.domain.vo.coin.RechargeActivity; import com.github.pagehelper.PageInfo; @@ -31,4 +32,7 @@ public interface RechargeActivityCenterService { // 删除活动 void deleteActivity(RechargeActivity activity); + + // 根据活动 ID 查询归属地 + AreaInfo queryActivityAreaById(Integer id); } diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index e441933..ef935a9 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -7,6 +7,7 @@ import com.example.demo.domain.DTO.AddFundsDTO; import com.example.demo.domain.DTO.PerformanceDTO; import com.example.demo.domain.entity.*; import com.example.demo.domain.vo.cash.*; +import com.example.demo.domain.vo.coin.AreaInfo; import com.example.demo.domain.vo.coin.GoldUser; import com.example.demo.domain.vo.coin.Messages; import com.example.demo.domain.vo.coin.Result; @@ -14,6 +15,7 @@ import com.example.demo.mapper.cash.CashCollectionMapper; import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.mapper.coin.UserMapper; import com.example.demo.service.cash.CashCollectionService; +import com.example.demo.service.coin.RechargeActivityCenterService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import jakarta.servlet.http.HttpServletRequest; @@ -55,6 +57,8 @@ public class CashCollectionServiceImpl implements CashCollectionService { private RabbitTemplate rabbitTemplate; @Autowired private LanguageTranslationUtil languageTranslationUtil; + @Autowired + private RechargeActivityCenterService rechargeActivityCenterService; //新增收款订单 @Override @@ -105,7 +109,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { if (cashCollection.getPayTime() == null) { throw new IllegalArgumentException("付款时间不能为空"); } - + AreaInfo areaInfo = rechargeActivityCenterService.queryActivityAreaById(Integer.parseInt(cashCollection.getActivity())); // 校验钱包 ID 和到账地区的对应关系 validateWalletAndMarket(cashCollection.getWalletId(), cashCollection.getReceivedMarket()); @@ -135,6 +139,12 @@ public class CashCollectionServiceImpl implements CashCollectionService { cashRecord.setSubmitterMarket(cashCollection.getSubmitterMarket()); cashRecord.setOrderType(1); //订单类型:1-收款 cashRecord.setMarket(cashCollection.getMarket()); + if(areaInfo.getArea().equals("0")){ + cashRecord.setPerformanceMarket(Integer.valueOf(cashCollection.getMarket())); + }else { + cashRecord.setPerformanceMarket(Integer.valueOf(areaInfo.getArea())); + } + //地区,根据 jwcode 插入 //cashRecord.setMarket(cashCollectionMapper.getMarketByJwcode(cashRecord.getJwcode())); //插入新收款订单 diff --git a/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java index 51c28e5..6c6f3c5 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java @@ -1,5 +1,6 @@ package com.example.demo.serviceImpl.coin; +import com.example.demo.domain.vo.coin.AreaInfo; import com.example.demo.domain.vo.coin.RechargeActivity; import com.example.demo.mapper.coin.RechargeActivityCenterMapper; import com.example.demo.service.coin.RechargeActivityCenterService; @@ -165,4 +166,20 @@ public class RechargeActivityCenterServiceImpl implements RechargeActivityCenter public void deleteActivity(RechargeActivity activity) { rechargeActivityCenterMapper.deleteActivity(activity); } + + // 根据活动 ID 查询归属地 + @Override + public AreaInfo queryActivityAreaById(Integer id) { + RechargeActivity activity = rechargeActivityCenterMapper.queryActivityAreaById(id); + if (activity == null || activity.getArea() == null) { + AreaInfo result = new AreaInfo(); + result.setArea("0"); + result.setAreaName(null); + return result; + } + AreaInfo areaInfo = new AreaInfo(); + areaInfo.setArea(activity.getArea()); + areaInfo.setAreaName(activity.getAreaName()); + return areaInfo; + } } \ No newline at end of file diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index 3008008..8b1f67a 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -6,12 +6,12 @@ insert into - cash_record_collection(order_type,jwcode,name,market,activity, + cash_record_collection(order_type,jwcode,name,market,activity,performance_market, order_code,bank_code,goods_name,good_num,num_unit,permanent_gold,free_gold, payment_currency,payment_amount,received_market, pay_type,pay_time,status,submitter_id,submitter_market,payload,audit_time, voucher,remark,wallet_id) - values(#{orderType},#{jwcode},#{name},#{market},#{activity}, + values(#{orderType},#{jwcode},#{name},#{market},#{activity},#{performanceMarket}, #{orderCode},#{bankCode},#{goodsName},#{goodNum},#{numUnit},#{permanentGold},#{freeGold},#{paymentCurrency}, #{paymentAmount},#{receivedMarket},#{payType},#{payTime}, #{status},#{submitterId},#{submitterMarket},#{payload},#{auditTime},#{voucher},#{remark},#{walletId}) diff --git a/src/main/resources/mapper/RechargeActivityCenterMapper.xml b/src/main/resources/mapper/RechargeActivityCenterMapper.xml index bb05bf7..0d66cdb 100644 --- a/src/main/resources/mapper/RechargeActivityCenterMapper.xml +++ b/src/main/resources/mapper/RechargeActivityCenterMapper.xml @@ -120,7 +120,6 @@ - UPDATE recharge_activity @@ -130,4 +129,14 @@ WHERE id = #{id} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index 265bc65..9e4a62c 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -88,6 +88,12 @@ FROM user WHERE jwcode = #{jwcode} +