diff --git a/accompany-admin/accompany-admin-service/pom.xml b/accompany-admin/accompany-admin-service/pom.xml index d0011d52e..ed86f8625 100644 --- a/accompany-admin/accompany-admin-service/pom.xml +++ b/accompany-admin/accompany-admin-service/pom.xml @@ -61,7 +61,7 @@ org.apache.shardingsphere sharding-jdbc-core - 4.0.0-RC2 + 4.1.1 com.accompany diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/user/BillRecordAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/user/BillRecordAdminService.java index 6f14f5650..021a99004 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/user/BillRecordAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/user/BillRecordAdminService.java @@ -1,6 +1,5 @@ package com.accompany.admin.service.user; -import com.accompany.admin.common.BusinessException; import com.accompany.admin.service.base.BaseService; import com.accompany.admin.vo.BillRecordVo; import com.accompany.business.model.Gift; @@ -13,10 +12,14 @@ import com.accompany.common.utils.DateTimeUtil; import com.accompany.core.enumeration.BillObjTypeEnum; import com.accompany.core.model.Users; import com.accompany.core.service.user.UsersBaseService; +import com.accompany.payment.model.ChargeRecord; +import com.accompany.payment.service.ChargeRecordService; import com.accompany.sharding.mapper.BillRecordMapper; import com.accompany.sharding.model.BillRecord; import com.accompany.sharding.vo.BillRecordGroupVo; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.beust.jcommander.internal.Lists; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -25,6 +28,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @@ -43,8 +48,18 @@ public class BillRecordAdminService extends BaseService { private BillRecordService billRecordService; @Autowired private GiftService giftService; + @Autowired + private ChargeRecordService chargeRecordService; - public PageInfo getBillRecordList(Integer pageNum, Integer pageSize, Byte billType, Long uid, String startDate, String endDate){ + public void pageBillRecordList(Page page, Long erbanNo, Byte billType, String startDate, String endDate){ + Long uid = null; + if (erbanNo != null) { + Users users = usersBaseService.getUsersByErBanNo(erbanNo); + if (users == null) { + return; + } + uid = users.getUid(); + } List bList = new ArrayList<>(); QueryWrapper wrapper = new QueryWrapper<>(); @@ -57,15 +72,15 @@ public class BillRecordAdminService extends BaseService { bList.add(billType); } } - wrapper.lambda().eq(uid != null, BillRecord::getUid,uid) + + wrapper.lambda().eq(uid != null, BillRecord::getUid, uid) .ge(!BlankUtil.isBlank(startDate), BillRecord::getCreateTime, DateTimeUtil.convertStrToDate(startDate)) .le(!BlankUtil.isBlank(endDate),BillRecord::getCreateTime, DateTimeUtil.convertStrToDate(endDate)); if (!CollectionUtils.isEmpty(bList)) { wrapper.lambda().in(BillRecord::getObjType, bList); } wrapper.lambda().orderByDesc(BillRecord::getCreateTime); - PageHelper.startPage(pageNum, pageSize); - return new PageInfo<>(billRecordService.list(wrapper)); + billRecordService.page(page, wrapper); } public List convertVoList(List list) { @@ -77,13 +92,21 @@ public class BillRecordAdminService extends BaseService { List usersList = usersBaseService.getUsersListByUids(uids); Map erbanNoMap = usersList.stream().collect(Collectors.toMap(Users::getUid, Users::getErbanNo)); Map nickMap = usersList.stream().collect(Collectors.toMap(Users::getUid, Users::getNick)); + List roomUids = list.stream().map(BillRecord::getRoomUid).collect(Collectors.toList()); List roomUsersList = usersBaseService.getUsersListByUids(roomUids); Map roomErbanNoMap = roomUsersList.stream().collect(Collectors.toMap(Users::getUid, Users::getErbanNo)); Map roomNickMap = roomUsersList.stream().collect(Collectors.toMap(Users::getUid, Users::getNick)); + List giftIds = list.stream().map(BillRecord::getGiftId).collect(Collectors.toList()); List giftList = giftService.getGiftByIdsFromDb(giftIds); Map giftNameMap = giftList.stream().collect(Collectors.toMap(Gift::getGiftId, Gift::getGiftName)); + + List chargeRecordIds = list.stream().filter(b->b.getBillType() == BillObjTypeEnum.CHARGE.getValue() || b.getBillType() == BillObjTypeEnum.OPEN_VIP.getValue()) + .map(BillRecord::getBillId).collect(Collectors.toList()); + List chargeRecordList = chargeRecordService.listChargeRecordByIds(chargeRecordIds); + Map chargeRecordMap = chargeRecordList.stream().collect(Collectors.toMap(ChargeRecord::getChargeRecordId, c->c)); + List voList = new ArrayList<>(list.size()); Map userMap = new HashMap<>(); @@ -109,6 +132,14 @@ public class BillRecordAdminService extends BaseService { if (billRecordAdminVo.getGiftId() != null) { billRecordAdminVo.setGiftName(giftNameMap.getOrDefault(billRecordAdminVo.getGiftId(), null)); } + if (billRecordAdminVo.getObjType() == BillObjTypeEnum.CHARGE.getValue() + || billRecordAdminVo.getObjType() == BillObjTypeEnum.OPEN_VIP.getValue()){ + ChargeRecord chargeRecord = chargeRecordMap.get(billRecordAdminVo.getObjId()); + if (null != chargeRecord){ + billRecordAdminVo.setLocalCurrencyCode(chargeRecord.getLocalCurrencyCode()); + billRecordAdminVo.setLocalAmount(new BigDecimal(chargeRecord.getLocalAmount()).divide(Constant.HUNDRED, 2, RoundingMode.HALF_UP)); + } + } voList.add(billRecordAdminVo); } return voList; diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/vo/BillRecordVo.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/vo/BillRecordVo.java index 6f1bfc26a..e8e5b281b 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/vo/BillRecordVo.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/vo/BillRecordVo.java @@ -33,9 +33,13 @@ public class BillRecordVo extends BaseVo { public String roomNick; @FieldComment("钻石/水晶/金币") public BigDecimal amount; - @FieldComment("人民币数") + @FieldComment("货币数") + public BigDecimal localAmount; + @FieldComment("本地货币代码") + public String localCurrencyCode; + @FieldComment("货币数") public BigDecimal actualAmount; - @FieldComment("货币") + @FieldComment("游戏货币") public String currencyDesc; @FieldComment("收入支出") public String billTypeDesc; @@ -43,6 +47,7 @@ public class BillRecordVo extends BaseVo { public String objTypeDesc; @FieldComment("账单类型code") private Byte objType; + private String objId; @FieldComment("账单创建时间") public Date createTime; @FieldComment("备注") diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/user/BillRecordAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/user/BillRecordAdminController.java index ff4dc7071..706a41ea6 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/user/BillRecordAdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/user/BillRecordAdminController.java @@ -1,9 +1,11 @@ package com.accompany.admin.controller.user; +import com.accompany.admin.base.Pagination; import com.accompany.admin.controller.BaseController; import com.accompany.admin.service.user.BillRecordAdminService; import com.accompany.admin.vo.BillRecordVo; import com.accompany.business.service.user.UsersService; +import com.accompany.common.result.BusiResult; import com.accompany.core.model.Users; import com.accompany.core.service.user.UsersBaseService; import com.accompany.core.util.ExcelUtils; @@ -16,6 +18,7 @@ import com.google.common.collect.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @@ -32,49 +35,32 @@ import java.util.*; @ResponseBody public class BillRecordAdminController extends BaseController { @Autowired - BillRecordAdminService billRecordAdminService; - @Autowired - UsersService usersService; - - @Autowired - private UsersBaseService usersBaseService; + private BillRecordAdminService billRecordAdminService; @RequestMapping("/getList") @ResponseBody - public void getBillRecordList(Byte billType,Long erbanNo,String startDate,String endDate){ - Long uid = null; - if (erbanNo != null) { - Users users = usersBaseService.getUsersByErBanNo(erbanNo); - if (users == null) { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("total",0); - jsonObject.put("rows", Collections.emptyList()); - - writeJson(jsonObject.toJSONString()); - return; - } - uid = users.getUid(); + public Pagination getBillRecordList(Long erbanNo, Byte billType, String startDate, String endDate){ + Page page = new Page<>(getPageNumber(), getPageSize()); + billRecordAdminService.pageBillRecordList(page, erbanNo, billType, startDate, endDate); + Pagination p = new Pagination(page); + if (!CollectionUtils.isEmpty(page.getRecords())){ + p.setRows(billRecordAdminService.convertVoList(page.getRecords())); } - PageInfo pageInfo = billRecordAdminService.getBillRecordList(getPageNumber(), getPageSize(), billType, uid, startDate, endDate); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("total", pageInfo.getTotal()); - jsonObject.put("rows", billRecordAdminService.convertVoList(pageInfo.getList())); - - writeJson(jsonObject.toJSONString()); + return p; } @RequestMapping("/exportList") @ResponseBody - public void exportBillRecordList(Byte billType, Long erbanNo, String startDate, String endDate, HttpServletResponse response) throws Exception { - Users users = usersBaseService.getUsersByErBanNo(erbanNo); + public void exportBillRecordList(Long erbanNo, Byte billType, String startDate, String endDate, HttpServletResponse response) throws Exception { + /*Users users = usersBaseService.getUsersByErBanNo(erbanNo); Long uid = users.getUid(); PageInfo pageInfo = billRecordAdminService.getBillRecordList(1,1000000, billType, uid, startDate, endDate); List voList = billRecordAdminService.convertVoList(pageInfo.getList()); String filename = erbanNo.toString() + "_bill_record"; List fields = Arrays.asList("nick", "erbanNo", "targetNick", "targetErbanNo", "roomNick", "roomErbanNo", "giftName", "giftNum", "actualAmount", "amount", "billTypeDesc", "objTypeDesc", "createTime"); - ExcelUtils.exportExcel("用户账单", filename, fields, voList, response); + ExcelUtils.exportExcel("用户账单", filename, fields, voList, response);*/ } /** diff --git a/accompany-admin/accompany-admin-web/src/main/resources/static/html/users/bill_record_admin.html b/accompany-admin/accompany-admin-web/src/main/resources/static/html/users/bill_record_admin.html index ab3c642d8..bd991aa5b 100644 --- a/accompany-admin/accompany-admin-web/src/main/resources/static/html/users/bill_record_admin.html +++ b/accompany-admin/accompany-admin-web/src/main/resources/static/html/users/bill_record_admin.html @@ -1,15 +1,10 @@ -

-
+
@@ -17,14 +12,29 @@
- 平台号: - 账单类型: - 开始时间: - 结束时间: - - +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+
+
@@ -46,8 +56,9 @@ {field:'roomErbanNo',title:'房主平台号',align:'center',valign:'middle',width:'10%'}, {field:'giftName',title:'礼物名称',align:'center',valign:'middle',width:'5%'}, {field:'giftNum',title:'礼物数量',align:'center',valign:'middle',width:'5%'}, - {field:'actualAmount',title:'人民币数',align:'center',valign:'middle',width:'5%'}, {field:'amount',title:'钻石/水晶/金币',align:'center',valign:'middle',width:'5%'}, + {field:'localCurrencyCode',title:'本地货币数',align:'center',valign:'middle',width:'5%'}, + {field:'localAmount',title:'货币数',align:'center',valign:'middle',width:'5%'}, {field:'billTypeDesc',title:'收入支出',align:'center',valign:'middle',width:'10%'}, {field:'objTypeDesc',title:'账单类型',align:'center',valign:'middle',width:'10%'}, {field:'createTime',title:'账单创建时间',align:'center',valign:'middle',width:'10%',formatter:function (val,row,index) { @@ -99,7 +110,6 @@ // $("#tipModal").modal('show'); // return; // } - console.debug('ASDFASDF') if ($('#startDate').val() && $('#endDate').val()) { var dateStart = new Date($('#startDate').val().replace(/\-/g, "/")); var dateEnd = new Date($('#endDate').val().replace(/\-/g, "/")); diff --git a/accompany-base/accompany-payment/src/main/java/com/accompany/payment/service/ChargeRecordService.java b/accompany-base/accompany-payment/src/main/java/com/accompany/payment/service/ChargeRecordService.java index 7c3991d8e..720e30d93 100644 --- a/accompany-base/accompany-payment/src/main/java/com/accompany/payment/service/ChargeRecordService.java +++ b/accompany-base/accompany-payment/src/main/java/com/accompany/payment/service/ChargeRecordService.java @@ -44,6 +44,12 @@ public class ChargeRecordService extends BaseService { return chargeRecord; } + public List listChargeRecordByIds(List ids) { + ChargeRecordExample example = new ChargeRecordExample(); + example.createCriteria().andChargeRecordIdIn(ids); + return chargeRecordMapper.selectByExample(example); + } + public void insertChargeRecord(ChargeRecord chargeRecord) { chargeRecord.setCreateTime(new Date()); chargeRecordMapper.insertSelective(chargeRecord); diff --git a/accompany-business/accompany-business-sharding/src/main/resources/sharding/sqlmappers/BillRecordMapper.xml b/accompany-business/accompany-business-sharding/src/main/resources/sharding/sqlmappers/BillRecordMapper.xml index fc77d171a..4aeeefdc6 100644 --- a/accompany-business/accompany-business-sharding/src/main/resources/sharding/sqlmappers/BillRecordMapper.xml +++ b/accompany-business/accompany-business-sharding/src/main/resources/sharding/sqlmappers/BillRecordMapper.xml @@ -5,17 +5,12 @@ - - - - -