Browse Source

20260402 查询活动归属地

lijianlin/feature-20260401-现金管理四期
wangguorui 7 days ago
parent
commit
41d5663a5e
  1. 48
      src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java
  2. 13
      src/main/java/com/example/demo/domain/vo/coin/AreaInfo.java
  3. 4
      src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java
  4. 4
      src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java
  5. 17
      src/main/java/com/example/demo/serviceImpl/coin/RechargeActivityCenterServiceImpl.java
  6. 11
      src/main/resources/mapper/RechargeActivityCenterMapper.xml

48
src/main/java/com/example/demo/controller/coin/RechargeActivityCenterController.java

@ -1,6 +1,7 @@
package com.example.demo.controller.coin; package com.example.demo.controller.coin;
import com.example.demo.config.interfac.Log; 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.Page;
import com.example.demo.domain.vo.coin.RechargeActivity; import com.example.demo.domain.vo.coin.RechargeActivity;
import com.example.demo.domain.vo.coin.Result; 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<RechargeActivity> pageInfo, String lang) { private void translateRechargeActivities(com.github.pagehelper.PageInfo<RechargeActivity> pageInfo, String lang) {

13
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; // 归属地名称
}

4
src/main/java/com/example/demo/mapper/coin/RechargeActivityCenterMapper.java

@ -23,9 +23,13 @@ public interface RechargeActivityCenterMapper {
// 根据ID查询活动 // 根据ID查询活动
List<RechargeActivity> queryActivity(RechargeActivity activity); List<RechargeActivity> queryActivity(RechargeActivity activity);
// 根据活动名称查询活动 // 根据活动名称查询活动
RechargeActivity queryActivityByName(RechargeActivity activity); RechargeActivity queryActivityByName(RechargeActivity activity);
// 根据活动 ID 查询活动归属地
RechargeActivity queryActivityAreaById(@Param("id") Integer id);
// 新增活动 // 新增活动
void addActivity(RechargeActivity activity); void addActivity(RechargeActivity activity);

4
src/main/java/com/example/demo/service/coin/RechargeActivityCenterService.java

@ -1,5 +1,6 @@
package com.example.demo.service.coin; package com.example.demo.service.coin;
import com.example.demo.domain.vo.coin.AreaInfo;
import com.example.demo.domain.vo.coin.RechargeActivity; import com.example.demo.domain.vo.coin.RechargeActivity;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
@ -31,4 +32,7 @@ public interface RechargeActivityCenterService {
// 删除活动 // 删除活动
void deleteActivity(RechargeActivity activity); void deleteActivity(RechargeActivity activity);
// 根据活动 ID 查询归属地
AreaInfo queryActivityAreaById(Integer id);
} }

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

@ -1,5 +1,6 @@
package com.example.demo.serviceImpl.coin; 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.domain.vo.coin.RechargeActivity;
import com.example.demo.mapper.coin.RechargeActivityCenterMapper; import com.example.demo.mapper.coin.RechargeActivityCenterMapper;
import com.example.demo.service.coin.RechargeActivityCenterService; import com.example.demo.service.coin.RechargeActivityCenterService;
@ -165,4 +166,20 @@ public class RechargeActivityCenterServiceImpl implements RechargeActivityCenter
public void deleteActivity(RechargeActivity activity) { public void deleteActivity(RechargeActivity activity) {
rechargeActivityCenterMapper.deleteActivity(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;
}
} }

11
src/main/resources/mapper/RechargeActivityCenterMapper.xml

@ -120,7 +120,6 @@
</update> </update>
<!-- 删除活动 --> <!-- 删除活动 -->
<!-- 删除活动 -->
<update id="deleteActivity" parameterType="com.example.demo.domain.vo.coin.RechargeActivity"> <update id="deleteActivity" parameterType="com.example.demo.domain.vo.coin.RechargeActivity">
UPDATE recharge_activity UPDATE recharge_activity
<set> <set>
@ -130,4 +129,14 @@
WHERE id = #{id} WHERE id = #{id}
</update> </update>
<!-- 根据活动 ID 查询归属地 -->
<select id="queryActivityAreaById" resultType="com.example.demo.domain.vo.coin.RechargeActivity">
SELECT
ra.area as area,
m.name as areaName
FROM recharge_activity ra
LEFT JOIN market m on m.id = ra.area
WHERE ra.id = #{id} AND ra.flag = 1
</select>
</mapper> </mapper>
Loading…
Cancel
Save