Browse Source

2.7 修改导出

dev
huangqizhen 2 weeks ago
parent
commit
9c28aa17f2
  1. 2
      src/main/java/com/example/demo/Util/GoldTistV2.java
  2. 32
      src/main/java/com/example/demo/controller/coin/GoldDetailController.java
  3. 3
      src/main/java/com/example/demo/mapper/sqlserver/HistoryRecordMapper.java
  4. 3
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
  5. 15
      src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java
  6. 13
      src/main/resources/sqlserverMapper/HistoryRecordMapper.xml

2
src/main/java/com/example/demo/Util/GoldTistV2.java

@ -269,7 +269,7 @@ public class GoldTistV2 {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
//调用demo //调用demo
addDCCoinNew("90039082",65,-20,"123","测试",0,"黄其振","文章11");
addCoinNew("90044554",65,-1286,"","清除刷金币数量",0,"黄其振","清除刷金币数量");
} }
//初始化类型 //初始化类型

32
src/main/java/com/example/demo/controller/coin/GoldDetailController.java

@ -323,9 +323,41 @@ public class GoldDetailController {
@PostMapping("/exportqqq") @PostMapping("/exportqqq")
public Result ExcelGoldDetail(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception { public Result ExcelGoldDetail(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(page.getGoldDetail().getToken()), Admin.class);
// 解析语言代码 // 解析语言代码
String languageCode = parseLanguageCode(lang); String languageCode = parseLanguageCode(lang);
List<String> userMarkets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
List<String> markets = marketService.getMarketIds(userMarkets);
// 校验分页参数
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.error("页码数为空!");
}
if (ObjectUtils.isEmpty(page.getPageSize())) {
return Result.error("页大小为空!");
}
// 获取传入的市场列表
List<String> requestedMarkets = page.getGoldDetail() != null ? page.getGoldDetail().getMarkets() : null;
// 权限校验逻辑
if (markets.contains("9") || markets.contains("9999")) {
// 特权市场9 9999跳过权限校验直接放行传入的 markets
// 如果业务需要也可以在这里做空值处理
if (page.getGoldDetail() != null) {
// 保持 requestedMarkets 不变原样接受
// 可选如果 requestedMarkets null可设为默认值或保持 null
}
} else {
// 普通用户必须校验权限
if (requestedMarkets == null || requestedMarkets.isEmpty()) {
page.getGoldDetail().setMarkets(markets);
}
if (!markets.containsAll(requestedMarkets)) {
return Result.error("无权限!请求的市场不在授权范围内。");
}
// 校验通过保持 requestedMarkets 不变
}
// 如果不是中文环境将查询条件中的翻译文本转换为中文简体 // 如果不是中文环境将查询条件中的翻译文本转换为中文简体
if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) { if (!"zh".equalsIgnoreCase(languageCode) && !"zh_cn".equalsIgnoreCase(languageCode)) {
convertGoldDetailTranslatedFieldsToChinese(page.getGoldDetail(), languageCode); convertGoldDetailTranslatedFieldsToChinese(page.getGoldDetail(), languageCode);

3
src/main/java/com/example/demo/mapper/sqlserver/HistoryRecordMapper.java

@ -1,6 +1,7 @@
package com.example.demo.mapper.sqlserver; package com.example.demo.mapper.sqlserver;
import com.example.demo.domain.vo.coin.GoldUser;
import com.example.demo.domain.vo.coin.HistoryRecord; import com.example.demo.domain.vo.coin.HistoryRecord;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -27,4 +28,6 @@ public interface HistoryRecordMapper {
long countNewHistoryRecord(HistoryRecord historyRecord); long countNewHistoryRecord(HistoryRecord historyRecord);
// 统计总条数 // 统计总条数
long countOldHistoryRecord(HistoryRecord historyRecord); long countOldHistoryRecord(HistoryRecord historyRecord);
// 获取用户信息
GoldUser selectUser(String jwcode);
} }

3
src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java

@ -102,7 +102,10 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode rootNode = objectMapper.readTree(message); JsonNode rootNode = objectMapper.readTree(message);
JsonNode requestDataNode = rootNode.path("requestData"); JsonNode requestDataNode = rootNode.path("requestData");
JsonNode GoldDetailNode = requestDataNode.path("goldDetail"); JsonNode GoldDetailNode = requestDataNode.path("goldDetail");
JsonNode tokenNode = requestDataNode.path("token");
String token = tokenNode.asText();
GoldDetail goldDetail = objectMapper.treeToValue(GoldDetailNode, GoldDetail.class); GoldDetail goldDetail = objectMapper.treeToValue(GoldDetailNode, GoldDetail.class);
goldDetail.setToken(token);
page.setGoldDetail(goldDetail); page.setGoldDetail(goldDetail);
// 从请求数据中获取语言设置如果没有则使用默认值 // 从请求数据中获取语言设置如果没有则使用默认值

15
src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java

@ -12,6 +12,7 @@ import com.example.demo.domain.vo.coin.Result;
import com.example.demo.mapper.bean.BeanUserMapper; import com.example.demo.mapper.bean.BeanUserMapper;
import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.mapper.coin.MarketMapper;
import com.example.demo.mapper.coin.UserMapper; import com.example.demo.mapper.coin.UserMapper;
import com.example.demo.mapper.sqlserver.HistoryRecordMapper;
import com.example.demo.service.Temporary.RedService; import com.example.demo.service.Temporary.RedService;
import com.example.demo.service.coin.UserService; import com.example.demo.service.coin.UserService;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
@ -49,6 +50,8 @@ public class UserServiceImpl implements UserService {
private LanguageTranslationUtil languageTranslationUtil; private LanguageTranslationUtil languageTranslationUtil;
@Autowired @Autowired
private BeanUserMapper beanUserMapper; private BeanUserMapper beanUserMapper;
@Autowired
private HistoryRecordMapper historyRecordMapper;
//查找用户部分信息 //查找用户部分信息
@Override @Override
@ -165,16 +168,16 @@ public class UserServiceImpl implements UserService {
if (userCount == 0) { if (userCount == 0) {
return Result.error("精网号有误!请检查"); return Result.error("精网号有误!请检查");
} }
GoldUser goldUser = userMapper.selectUser(dcUser.getJwcode());
GoldUser goldUser = historyRecordMapper.selectUser(dcUser.getJwcode());
BeanUserCard user = beanUserMapper.userCard(dcUser.getJwcode()); BeanUserCard user = beanUserMapper.userCard(dcUser.getJwcode());
dcUser.setJwcode(String.valueOf(goldUser.getJwcode())); dcUser.setJwcode(String.valueOf(goldUser.getJwcode()));
dcUser.setName(goldUser.getName());
dcUser.setPermanentBean(BigDecimal.valueOf(user.getPermanentBean())); dcUser.setPermanentBean(BigDecimal.valueOf(user.getPermanentBean()));
dcUser.setFreeBean(BigDecimal.valueOf(user.getFreeBean())); dcUser.setFreeBean(BigDecimal.valueOf(user.getFreeBean()));
dcUser.setNowFreeGold(goldUser.getNowFreeGold());
dcUser.setNowPermanentGold(goldUser.getNowPermanentGold());
dcUser.setNowTaskGold(goldUser.getNowTaskGold());
dcUser.setNowSumGold(goldUser.getNowSumGold());
// 如果字段类型是 BigDecimal
dcUser.setNowFreeGold(goldUser.getNowFreeGold().divide(BigDecimal.valueOf(100)));
dcUser.setNowPermanentGold(goldUser.getNowPermanentGold().divide(BigDecimal.valueOf(100)));
dcUser.setNowTaskGold(goldUser.getNowTaskGold().divide(BigDecimal.valueOf(100)));
dcUser.setNowSumGold(goldUser.getNowSumGold().divide(BigDecimal.valueOf(100)));
return Result.success(dcUser); return Result.success(dcUser);
} }

13
src/main/resources/sqlserverMapper/HistoryRecordMapper.xml

@ -84,4 +84,17 @@
<if test="name != null and name!=''">AND ui.Name = #{name}</if> <!-- 修复姓名关联字段 --> <if test="name != null and name!=''">AND ui.Name = #{name}</if> <!-- 修复姓名关联字段 -->
</where> </where>
</select> </select>
<select id="selectUser" resultType="com.example.demo.domain.vo.coin.GoldUser">
SELECT
jwcode AS "jwcode",
(COALESCE(free_6, 0) + COALESCE(free_12, 0) + COALESCE(core_jb, 0) +
COALESCE(buy_jb, 0)) AS "nowSumGold",
buy_jb AS "nowPermanentGold",
(COALESCE(free_6, 0) + COALESCE(free_12, 0)) AS "nowFreeGold",
core_jb AS "nowTaskGold"
FROM [hwhcGold].[dbo].[user_gold]
<where>
jwcode = #{jwcode}
</where>
</select>
</mapper> </mapper>
Loading…
Cancel
Save