123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026 |
- package com.szwl.controller;
- import cn.afterturn.easypoi.excel.ExcelExportUtil;
- import cn.afterturn.easypoi.excel.entity.ExportParams;
- import cn.com.crbank.ommo.bean.ResultMessage;
- import cn.com.crbank.ommo.esclient.ElasticsearchRunner;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.szwl.feign.SzwlFeign;
- import com.szwl.feign.bean.TAdminParam;
- import com.szwl.model.bean.ChartColumn;
- import com.szwl.model.bean.OrderDaoChuDTO;
- import com.szwl.model.bean.OrderVo;
- import com.szwl.model.bo.JsonMessage;
- import com.szwl.model.bo.R;
- import com.szwl.model.bo.ResponseModel;
- import com.szwl.model.entity.*;
- import com.szwl.model.excel.CoinOrderTarget;
- import com.szwl.model.excel.OrderByAdminTarget;
- import com.szwl.model.excel.OrderByClientidTarget;
- import com.szwl.model.excel.OrderTarget;
- import com.szwl.model.query.Filter;
- import com.szwl.model.query.Pageable;
- import com.szwl.model.query.StatisticsParam;
- import com.szwl.model.utils.FgObjectUtil;
- import com.szwl.service.TAreaService;
- import com.szwl.service.TCoinOrderService;
- import com.szwl.service.TOrderService;
- import com.szwl.service.es.EsTEquipmentService;
- import com.szwl.service.es.EsTOrderService;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang.StringUtils;
- import org.apache.commons.lang.time.DateUtils;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.HttpStatus;
- import org.springframework.http.ResponseEntity;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.net.URLEncoder;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Optional;
- /**
- * <p>
- * 前端控制器
- * </p>
- *
- * @author wuhs
- * @since 2022-06-14
- */
- @Slf4j
- @RestController
- @RequestMapping("/tOrder")
- public class TOrderController {
- @Autowired
- TOrderService orderService;
- @Autowired
- TAreaService areaService;
- @Autowired
- EsTOrderService esTOrderService;
- @Autowired
- EsTEquipmentService esTEquipmentService;
- @Autowired
- TCoinOrderService coinOrderService;
- @Autowired
- SzwlFeign szwlFeign;
- @GetMapping("/pageOrder")
- public ResponseModel<IPage<?>> pageOrder(String adminId,String adminType,String type,String userName,String payType,String productNo,String clientId,String dateType, Date startDate, Date endDate, long current, long size ) {
- //判断当前账号状态
- TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(adminId));
- //类型
- //0,线上
- if(type.equals("0")){
- LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
- //adminType="all"时,代表查全部下级 子账户没有这个权限 公司人员默认查所有人
- if(StringUtils.isNotEmpty(adminType)){
- if(admin.getIsAdmined().equals("0")&&admin.getType()>1){
- if(admin.getType()>1){
- if(adminType.equals("all")){
- //查找所有下级
- List<Long> admidIdList = R.getDataIfSuccess(szwlFeign.getAdminIdList(adminId));
- query.in(TOrder::getAdminId,admidIdList);
- }
- }
- }else{
- if(admin.getType()>1){
- //登录账户为子账户 不查下级 只查对应机器的订单
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getParentId())));
- if(adminEquipment.getType().equals("0")){
- //全部机器
- TAdmin upAdmin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- query.eq(TOrder::getAdminId,upAdmin.getId());
- }else {
- String equipmentIds = adminEquipment.getEquipmentIds();
- List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
- query.in(TOrder::getClientId,equipmentIdList);
- }
- }
- }
- }else {
- //判断当前账号状态 公司还是商家
- if(admin.getType()>1){
- //商家 判断是否子账户
- if(admin.getIsAdmined()){
- //商家自己
- query.eq(TOrder::getAdminId,adminId);
- }else {
- //商家 子账户
- //登录账户为子账户 不查下级 只查对应机器的订单
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getParentId())));
- if(adminEquipment.getType().equals("0")){
- //全部机器
- TAdmin upAdmin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- query.eq(TOrder::getAdminId,upAdmin.getId());
- }else {
- String equipmentIds = adminEquipment.getEquipmentIds();
- List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
- query.in(TOrder::getClientId,equipmentIdList);
- }
- }
- }
- }
- if(StringUtils.isNotEmpty(userName)){
- TAdmin admin1 = R.getDataIfSuccess(szwlFeign.getAdminByUsername(userName));
- query.eq(TOrder::getAdminId,admin1.getId());
- }
- if(StringUtils.isNotEmpty(payType)){
- query.eq(TOrder::getFrpCode,payType);
- }
- if(StringUtils.isNotEmpty(productNo)){
- query.eq(TOrder::getProductNo,productNo);
- }
- if(StringUtils.isNotEmpty(clientId)){
- TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(clientId));
- //判断机器是否属于这个登陆账号
- if(admin.getType()>1){
- //商家
- if(equipment.getAdminId().toString().equals(admin.getId().toString())){
- query.eq(TOrder::getEquipmentId,equipment.getId());
- }
- }else {
- query.eq(TOrder::getEquipmentId,equipment.getId());
- }
- }
- if(StringUtils.isNotEmpty(dateType)){
- if(dateType.equals("0")){
- //创建时间
- if(startDate!=null&&endDate!=null){
- query.gt(TOrder::getCreateDate,startDate);
- query.lt(TOrder::getCreateDate,endDate);
- }
- }
- if(dateType.equals("1")){
- //退款时间
- if(startDate!=null&&endDate!=null){
- query.gt(TOrder::getRefundDate,startDate);
- query.lt(TOrder::getRefundDate,endDate);
- }
- }
- }
- Page<TOrder> page = new Page<>(current, size, true);
- IPage<TOrder> iPage = orderService.page(page, query);
- return R.ok(iPage);
- };
- //1,线下
- if(type.equals("1")){
- LambdaQueryWrapper<TCoinOrder> query = Wrappers.lambdaQuery();
- //adminType="all"时,代表查全部下级 子账户没有这个权限 公司人员默认查所有人
- if(StringUtils.isNotEmpty(adminType)){
- if(admin.getIsAdmined()&&admin.getType()>1){
- if(admin.getType()>1){
- if(adminType.equals("all")){
- //查找所有下级
- List<Long> admidIdList = R.getDataIfSuccess(szwlFeign.getAdminIdList(adminId));
- query.in(TCoinOrder::getAdminId,admidIdList);
- }
- }
- }else{
- if(admin.getType()>1){
- //登录账户为子账户 不查下级 只查对应机器的订单
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getParentId())));
- if(adminEquipment.getType().equals("0")){
- //全部机器
- TAdmin upAdmin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- query.eq(TCoinOrder::getAdminId,upAdmin.getId());
- }else {
- String equipmentIds = adminEquipment.getEquipmentIds();
- List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
- query.in(TCoinOrder::getClientId,equipmentIdList);
- }
- }
- }
- }else {
- //判断当前账号状态 公司还是商家
- if(admin.getType()>1){
- //商家 判断是否子账户
- if(admin.getIsAdmined()){
- //商家自己
- query.eq(TCoinOrder::getAdminId,adminId);
- }else {
- //商家 子账户
- //登录账户为子账户 不查下级 只查对应机器的订单
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getParentId())));
- if(adminEquipment.getType().equals("0")){
- //全部机器
- TAdmin upAdmin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- query.eq(TCoinOrder::getAdminId,upAdmin.getId());
- }else {
- String equipmentIds = adminEquipment.getEquipmentIds();
- List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
- query.in(TCoinOrder::getClientId,equipmentIdList);
- }
- }
- }
- }
- if(StringUtils.isNotEmpty(userName)){
- TAdmin admin1 = R.getDataIfSuccess(szwlFeign.getAdminByUsername(userName));
- query.eq(TCoinOrder::getAdminId,admin1.getId());
- }
- if(StringUtils.isNotEmpty(payType)){
- query.eq(TCoinOrder::getPayType,payType);
- }
- if(StringUtils.isNotEmpty(productNo)){
- query.eq(TCoinOrder::getProductNo,productNo);
- }
- if(StringUtils.isNotEmpty(clientId)){
- TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(clientId));
- //判断机器是否属于这个登陆账号
- if(admin.getType()>1){
- //商家
- if(equipment.getAdminId().toString().equals(admin.getId().toString())){
- query.eq(TCoinOrder::getClientId,equipment.getClientId());
- }
- }else {
- query.eq(TCoinOrder::getClientId,equipment.getClientId());
- }
- }
- if(startDate!=null&&endDate!=null){
- query.gt(TCoinOrder::getPayDate,startDate);
- query.lt(TCoinOrder::getPayDate,endDate);
- }
- Page<TCoinOrder> page = new Page<>(current, size, true);
- IPage<TCoinOrder> iPage = coinOrderService.page(page, query);
- return R.ok(iPage);
- }
- return R.ok();
- }
- /**
- * 判断查询用户是否为外国
- * @return
- */
- private String isForeignUser(String userId){
- if(StringUtils.isNotEmpty(userId)){
- try {
- TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(userId));
- return admin.getIfForeign();
- } catch (NumberFormatException e) {
- }
- }
- return "0";
- }
- @ApiOperation(value = "获取首页数据统计")
- @PostMapping("/getStatistics")
- public ResponseEntity<?> getStatistics(@RequestBody StatisticsParam param) {
- // 判断是否为外国
- param.setIfForeign(isForeignUser(param.getAdminId()));
- log.info("param:{}", param);
- TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(param.getAdminId()));
- if(admin.getType()<2){
- param.setAdminId(null);
- if(param.getEquipmentId()!=null){
- //查机器
- TEquipment equipment = R.getDataIfSuccess(szwlFeign.findById(param.getEquipmentId()));
- param.setClientId(equipment.getClientId());
- }
- if(StringUtils.isNotEmpty(param.getClientId())){
- //补全clientId
- TEquipment tEquipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(param.getClientId()));
- param.setClientId(tEquipment.getClientId());
- param.setClientId(tEquipment.getClientId());
- }
- }else {
- if(admin.getType()==2){
- //商家
- if(param.getEquipmentId()!=null){
- //查机器
- TEquipment equipment = R.getDataIfSuccess(szwlFeign.findById(param.getEquipmentId()));
- param.setClientId(equipment.getClientId());
- }
- if(StringUtils.isNotEmpty(param.getClientId())){
- param.setAdminId(null);
- //判断是否是这个商家的
- TEquipment tEquipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(param.getClientId()));
- if(tEquipment.getAdminId().toString().equals(admin.getId().toString())){
- param.setClientId(tEquipment.getClientId());
- param.setEquipmentId(String.valueOf(tEquipment.getId()));
- }
- }
- }
- if(admin.getType()==3){
- //子账户只能查相对的机器的订单
- //商家子账户
- if(param.getEquipmentId()!=null){
- //查机器
- TEquipment equipment = R.getDataIfSuccess(szwlFeign.findById(param.getEquipmentId()));
- param.setClientId(equipment.getClientId());
- }else{
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getId())));
- if(adminEquipment.getType().equals("0")){
- TAdmin admin1 = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- param.setAdminId(admin1.getId().toString());
- }else {
- List<String> list = R.getDataIfSuccess(szwlFeign.getClientIds(param.getAdminId()));
- param.setClientIds(list);
- }
- }
- if(StringUtils.isNotEmpty(param.getClientId())){
- param.setAdminId(null);
- //判断是否是这个子账号的
- TEquipment tEquipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(param.getClientId()));
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getId())));
- if(adminEquipment.getType().equals("0")){
- TAdmin admin1 = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- if(tEquipment.getAdminId().toString().equals(admin1.getId())){
- param.setAdminId(null);
- param.setClientId(tEquipment.getClientId());
- param.setEquipmentId(String.valueOf(tEquipment.getId()));
- }
- }else {
- int i = 0;
- List<String> list = R.getDataIfSuccess(szwlFeign.getClientIds(param.getAdminId()));
- if(list.size()>0){
- for(String clientID:list){
- if(clientID.equals(tEquipment.getClientId())){
- i++;
- }
- }
- }
- if(i>0){
- param.setClientId(tEquipment.getClientId());
- param.setEquipmentId(String.valueOf(tEquipment.getId()));
- }
- }
- }
- }
- }
- if(StringUtils.isNotEmpty(param.getUsername())){
- if(param.getUsername().equals("all")){
- //商家查全部
- //判断是不是商家账户
- if(admin.getType()==3){
- //查下级账户id集合
- List<Long> list = R.getDataIfSuccess(szwlFeign.getAdminIdList(param.getAdminId()));
- if(list.size()>0){
- param.setAdminIds(list);
- param.setAdminId(null);
- }
- }
- }
- }
- FgObjectUtil.objectNullOrEmptySel(param, "chartType$");
- ChartColumn chartColumn = new ChartColumn();
- if(StringUtils.isNotEmpty(param.getIfForeign())&¶m.getIfForeign().equals("1")){
- if(StringUtils.isNotEmpty(param.getPayType())&¶m.getPayType().equals("all")){
- param.setPayType(null);
- }
- //国外查MYSQL
- chartColumn = orderService.getStatistics(param);
- }else{
- //查去年的数据找数据库
- String endDate = param.getEndDate();
- String toYear = "2022-01-01 00:00:00";
- Date date =null;
- Date year = null;
- SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- try {
- //使用SimpleDateFormat的parse()方法生成Date
- date = sf.parse(endDate);
- year = sf.parse(toYear);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- if(date.getTime()<year.getTime()){
- chartColumn = orderService.getStatistics(param);
- }else {
- if (ElasticsearchRunner.ES_RUNNING) {
- try {
- // 查es
- chartColumn = esTOrderService.getStatistics(param);
- }catch (Exception e){
- log.error("使用es 查询发生错误:{}",e);
- // 查 mysql
- // chartColumn = tOrderService.getStatistics(param);
- }
- }else{
- // 查 mysql
- // chartColumn = tOrderService.getStatistics(param);
- }
- }
- }
- // if (ElasticsearchRunner.ES_RUNNING) {
- // try {
- // // 查es
- // chartColumn = esTOrderService.getStatistics(param);
- // }catch (Exception e){
- // log.error("使用es 查询发生错误:{}",e);
- // // 查 mysql
- // chartColumn = tOrderService.getStatistics(param);
- // }
- // }else{
- // // 查 mysql
- // chartColumn = tOrderService.getStatistics(param);
- // }
- return ResponseEntity
- .status(HttpStatus.OK)
- .body(new ResultMessage()
- .setCode(true)
- .setData(chartColumn)
- .setMessage("SUCCESS"));
- }
- /**
- * 统计 机器销售排行
- * @param param
- * @return
- */
- @ApiOperation(value = "机器销售排行统计")
- @PostMapping("/getEquipmentStatistics")
- public ResponseEntity<?> getEquipmentStatistics(@RequestBody StatisticsParam param) {
- // 判断是否为外国
- param.setIfForeign(isForeignUser(param.getAdminId()));
- log.info("param:{}", param);
- FgObjectUtil.objectNullOrEmptySel(param, "chartType$");
- ChartColumn chartColumn = new ChartColumn();
- if(StringUtils.isNotEmpty(param.getIfForeign())&¶m.getIfForeign().equals("1")){
- //国外
- // chartColumn = orderService.getEquipmentStatistics(param);
- chartColumn = esTEquipmentService.getEquipmentStatistics(param);
- }else{
- //查去年的数据找数据库
- String endDate = param.getEndDate();
- String toYear = "2022-01-01 00:00:00";
- Date date = new Date();
- Date year = new Date();
- SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- try {
- //使用SimpleDateFormat的parse()方法生成Date
- date = sf.parse(endDate);
- year = sf.parse(toYear);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- if(date.getTime()<year.getTime()){
- chartColumn = orderService.getEquipmentStatistics(param);
- }else {
- if (ElasticsearchRunner.ES_RUNNING) {
- try {
- // 查es
- chartColumn = esTEquipmentService.getEquipmentStatistics(param);
- }catch (Exception e){
- log.error("使用es 查询发生错误:{}",e);
- // 查 mysql
- // chartColumn = tOrderService.getStatistics(param);
- }
- }else{
- // 查 mysql
- // chartColumn = tOrderService.getStatistics(param);
- }
- }
- // if (ElasticsearchRunner.ES_RUNNING) {
- // try {
- // // 查es
- // chartColumn = esTEquipmentService.getEquipmentStatistics(param);
- // }catch (Exception e){
- // log.error("使用es 查询发生错误:{}",e);
- // // 查 mysql
- //// chartColumn = tOrderService.getEquipmentStatistics(param);
- // }
- // }else{
- // // 查 mysql
- //// chartColumn = tOrderService.getEquipmentStatistics(param);
- // }
- }
- // try {
- // // 查es
- // chartColumn = esTEquipmentService.getEquipmentStatistics(param);
- // }catch (Exception e){
- // log.error("使用es 查询发生错误:{}",e);
- // // 查 mysql
- //// chartColumn = tOrderService.getEquipmentStatistics(param);
- // }
- // if (ElasticsearchRunner.ES_RUNNING) {
- // try {
- // // 查es
- // chartColumn = esTEquipmentService.getEquipmentStatistics(param);
- // }catch (Exception e){
- // log.error("使用es 查询发生错误:{}",e);
- // // 查 mysql
- // chartColumn = tOrderService.getEquipmentStatistics(param);
- // }
- // }else{
- // // 查 mysql
- // chartColumn = tOrderService.getEquipmentStatistics(param);
- // }
- return ResponseEntity
- .status(HttpStatus.OK)
- .body(new ResultMessage()
- .setCode(true)
- .setData(chartColumn)
- .setMessage("SUCCESS"));
- }
- //查询线上订单
- @ApiOperation(value = "查询线上订单")
- @RequestMapping(value = "/findOrder", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
- @ResponseBody
- public Object findOrder(String clientId, String sn, String productName, String status, Date begin, Date end, Pageable pageable) {
- LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
- if (StringUtils.isNotEmpty(sn)) {
- query.like(TOrder::getSn,sn);
- }
- if (StringUtils.isNotEmpty(productName)) {
- query.like(TOrder::getProductName,productName);
- }
- if (StringUtils.isNotEmpty(status)) {
- if(status.equals("unpay")){
- query.eq(TOrder::getStatus,0);
- }
- if(status.equals("pay")){
- query.eq(TOrder::getStatus,1);
- }
- if(status.equals("refund")){
- query.eq(TOrder::getStatus,3);
- }
- }
- if (begin != null && end != null) {
- query.gt(TOrder::getCreateDate,begin);
- query.lt(TOrder::getCreateDate,end);
- }
- query.like(TOrder::getClientId,clientId);
- int size = pageable.getPageSize();
- int current = pageable.getPageNumber();
- Page<TOrder> page = new Page<>(current, size, true);
- IPage<TOrder> iPage = orderService.page(page, query);
- long total = page.getTotal();
- List<TOrder> content = iPage.getRecords();
- // List<Order> content = page.getContent();
- ArrayList<OrderVo> orderVos = new ArrayList<>();
- for (TOrder order : content) {
- OrderVo orderVo = new OrderVo();
- orderVo.setSn(order.getSn());
- orderVo.setProductName(order.getProductName());
- orderVo.setPrice(order.getPrice());
- orderVo.setTrxNo(order.getTrxNo());
- orderVo.setRefundTrxNo(order.getRefundTrxNo());
- orderVo.setRefundAmount(order.getRefundAmount());
- orderVo.setPayDate(order.getPayDate());
- orderVo.setRefundDate(order.getRefundDate());
- if(order.getStatus()==0){
- orderVo.setStatus(OrderVo.Status.unpay);
- }
- if(order.getStatus()==1){
- orderVo.setStatus(OrderVo.Status.pay);
- }
- if(order.getStatus()==3){
- orderVo.setStatus(OrderVo.Status.refund);
- }
- orderVo.setCreateDate(order.getCreateDate());
- orderVo.setFrp_code(order.getFrpCode());
- orderVos.add(orderVo);
- }
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("total", total);
- jsonObject.put("orders", com.gexin.fastjson.JSON.toJSONString(orderVos));
- return jsonObject.toJSONString();
- }
- /**
- * 订单数据导出
- */
- @ApiOperation(value = "订单数据导出-查询")
- @RequestMapping(value = "/orderSelect", method = RequestMethod.GET)
- public String orderSelect(String type, String clientId, String username, Date startDate, Date endDate, long current, long size) {
- if(size>50){
- return "error";
- }
- JSONObject jsonObject = new JSONObject();
- if (startDate!=null&&endDate!=null) {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- Date begin = null;
- Date end = null;
- Long adminId = null;
- begin = startDate;
- end = endDate;
- long time = end.getTime() - begin.getTime();
- if(time>31*24*60*60*1000l){
- return "时间跨度过长";
- }
- if(!StringUtils.isEmpty(username)){
- TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdminByUsername(username));
- adminId = admin.getId();
- }
- List<OrderDaoChuDTO> OrderDaoChuDTOList =orderService.orderDaoChu(simpleDateFormat.format(begin),simpleDateFormat.format(end),adminId,clientId,type,current,size);
- for(OrderDaoChuDTO orderDaoChuDTO: OrderDaoChuDTOList){
- String adminId1 = orderDaoChuDTO.getAdminId().toString();
- TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(adminId1));
- if(admin==null){
- continue;
- }
- orderDaoChuDTO.setPhone(admin.getPhone());
- orderDaoChuDTO.setUsername(admin.getUsername());
- orderDaoChuDTO.setName(admin.getName());
- if(!StringUtils.isEmpty(type)&&type.equals("2")){
- //商户为单位
- TAdmin parent = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- orderDaoChuDTO.setLastUsername(parent.getUsername());
- TArea area = areaService.getById(admin.getAreaId());
- if(area!=null){
- orderDaoChuDTO.setAddress(area.getFullName());
- }
- List<String> stringList = R.getDataIfSuccess(szwlFeign.getClientIds(String.valueOf(admin.getId())));
- orderDaoChuDTO.setEquipmentTotal(String.valueOf(stringList.size()));
- }else {
- //设备为单位
- TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(String.valueOf(orderDaoChuDTO.getClientId())));
- if(equipment!=null){
- if(StringUtils.isNotEmpty(equipment.getFullName())){
- orderDaoChuDTO.setAddress(equipment.getFullName());
- }
- orderDaoChuDTO.setEquipmentType(equipment.getEquimentType());
- orderDaoChuDTO.setCreateDate(equipment.getCreateDate());
- }
- }
- }
- jsonObject.put("OrderDaoChuDTOList", OrderDaoChuDTOList);
- }
- if(!StringUtils.isEmpty(type)&&type.equals("2")){
- IPage<TAdmin> iPage = R.getDataIfSuccess(szwlFeign.pageAdmin2(current, size));
- }else {
- IPage<TEquipment> page = R.getDataIfSuccess(szwlFeign.pageEquipment2(current, size));
- jsonObject.put("page", page);
- }
- return jsonObject.toJSONString();
- }
- /**
- * 订单数据导出
- */
- @ApiOperation(value = "订单数据导出-导出")
- @RequestMapping(value = "/orderExport", method = RequestMethod.GET)
- public Object orderExport(HttpServletResponse response, String type, String clientId, String username, Date startDate, Date endDate, long current, long size) {
- if(size>500){
- return JsonMessage.success("页数过大");
- }
- if (startDate!=null&&endDate!=null) {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- Date begin = null;
- Date end = null;
- Long adminId = null;
- begin = startDate;
- end = endDate;
- long time = end.getTime() - begin.getTime();
- if(time>31*24*60*60*1000l){
- return JsonMessage.success("时间跨度过长");
- }
- if(!StringUtils.isEmpty(username)){
- TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdminByUsername(username));
- adminId = admin.getId();
- }
- List<OrderDaoChuDTO> OrderDaoChuDTOList =orderService.orderDaoChu(simpleDateFormat.format(begin),simpleDateFormat.format(end),adminId,clientId,type,current,size);
- for(OrderDaoChuDTO orderDaoChuDTO: OrderDaoChuDTOList){
- Long adminId1 = Long.valueOf(orderDaoChuDTO.getAdminId().toString());
- TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(adminId1.toString()));
- if(admin==null){
- continue;
- }
- orderDaoChuDTO.setPhone(admin.getPhone());
- orderDaoChuDTO.setUsername(admin.getUsername());
- orderDaoChuDTO.setName(admin.getName());
- if(!StringUtils.isEmpty(type)&&type.equals("2")){
- //商户为单位
- TAdmin parent = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- orderDaoChuDTO.setLastUsername(parent.getUsername());
- TArea area = areaService.getById(admin.getAreaId());
- if(area!=null){
- orderDaoChuDTO.setAddress(area.getFullName());
- }
- List<String> stringList = R.getDataIfSuccess(szwlFeign.getClientIds(String.valueOf(admin.getId())));
- orderDaoChuDTO.setEquipmentTotal(String.valueOf(stringList.size()));
- }else {
- //设备为单位
- TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(String.valueOf(orderDaoChuDTO.getClientId())));
- if(equipment!=null){
- if(StringUtils.isNotEmpty(equipment.getFullName())){
- orderDaoChuDTO.setAddress(equipment.getFullName());
- }
- orderDaoChuDTO.setEquipmentType(equipment.getEquimentType());
- orderDaoChuDTO.setCreateDate(equipment.getCreateDate());
- }
- }
- }
- ExportParams exportParams = new ExportParams("订单记录", "sheet1");
- Workbook workbook = null;
- if(!StringUtils.isEmpty(type)&&type.equals("2")){
- List<OrderByAdminTarget> orderByAdminTargetList = new ArrayList<>();
- for(OrderDaoChuDTO orderDaoChuDTO: OrderDaoChuDTOList){
- OrderByAdminTarget orderByAdminTarget = new OrderByAdminTarget();
- orderByAdminTarget.setUsername(orderDaoChuDTO.getUsername());
- orderByAdminTarget.setAddress(orderDaoChuDTO.getAddress());
- orderByAdminTarget.setEquipmentTotal(orderDaoChuDTO.getEquipmentTotal());
- orderByAdminTarget.setLastUsername(orderDaoChuDTO.getLastUsername());
- orderByAdminTarget.setPhone(orderDaoChuDTO.getPhone());
- orderByAdminTarget.setPriceTotal(orderDaoChuDTO.getPriceTotal());
- orderByAdminTarget.setName(orderDaoChuDTO.getName());
- orderByAdminTargetList.add(orderByAdminTarget);
- }
- workbook = ExcelExportUtil.exportExcel(exportParams, OrderByAdminTarget.class, orderByAdminTargetList);
- }else {
- List<OrderByClientidTarget> orderByClientidTargetList = new ArrayList<>();
- for(OrderDaoChuDTO orderDaoChuDTO: OrderDaoChuDTOList){
- OrderByClientidTarget orderByClientidTarget = new OrderByClientidTarget();
- orderByClientidTarget.setAddress(orderDaoChuDTO.getAddress());
- orderByClientidTarget.setClientId(orderDaoChuDTO.getClientId());
- orderByClientidTarget.setCreateDate(orderDaoChuDTO.getCreateDate());
- orderByClientidTarget.setEquipmentType(orderDaoChuDTO.getEquipmentType());
- orderByClientidTarget.setName(orderDaoChuDTO.getName());
- orderByClientidTarget.setPhone(orderDaoChuDTO.getPhone());
- orderByClientidTarget.setPriceTotal(orderDaoChuDTO.getPriceTotal());
- orderByClientidTarget.setUsername(orderDaoChuDTO.getUsername());
- orderByClientidTargetList.add(orderByClientidTarget);
- }
- workbook = ExcelExportUtil.exportExcel(exportParams, OrderByClientidTarget.class, orderByClientidTargetList);
- }
- if (workbook != null) {
- OutputStream os = null;
- try {
- os = response.getOutputStream();
- SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("订单记录数据导出" + format.format(new Date()) + ".xls", "UTF-8"));
- workbook.write(os);
- return JsonMessage.success("导出成功");
- } catch (Exception e) {
- e.printStackTrace();
- return JsonMessage.success("导出错误");
- } finally {
- try {
- os.close();
- workbook.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- return JsonMessage.success("导出成功");
- }
- @RequestMapping(value = "/onlineExport", method = RequestMethod.GET)
- public Object onlineExport(HttpServletResponse response, String adminId,String adminType,String type,String userName,String payType,String productNo,String clientId,String dateType, Date stratDate, Date endDate, long current, long size) {
- //判断当前账号状态
- TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(adminId));
- //类型
- //0,线上
- if(type.equals("0")){
- LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
- //adminType="all"时,代表查全部下级 子账户没有这个权限 公司人员默认查所有人
- if(StringUtils.isNotEmpty(adminType)){
- if(admin.getIsAdmined()&&admin.getType()>1){
- if(admin.getType()>1){
- if(adminType.equals("all")){
- //查找所有下级
- List<Long> admidIdList = R.getDataIfSuccess(szwlFeign.getAdminIdList(adminId));
- query.in(TOrder::getAdminId,admidIdList);
- }
- }
- }else{
- if(admin.getType()>1){
- //登录账户为子账户 不查下级 只查对应机器的订单
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getParentId())));
- if(adminEquipment.getType().equals("0")){
- //全部机器
- TAdmin upAdmin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- query.eq(TOrder::getAdminId,upAdmin.getId());
- }else {
- String equipmentIds = adminEquipment.getEquipmentIds();
- List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
- query.in(TOrder::getClientId,equipmentIdList);
- }
- }
- }
- }else {
- //判断当前账号状态 公司还是商家
- if(admin.getType()>1){
- //商家 判断是否子账户
- if(admin.getIsAdmined()){
- //商家自己
- query.eq(TOrder::getAdminId,adminId);
- }else {
- //商家 子账户
- //登录账户为子账户 不查下级 只查对应机器的订单
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getParentId())));
- if(adminEquipment.getType().equals("0")){
- //全部机器
- TAdmin upAdmin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- query.eq(TOrder::getAdminId,upAdmin.getId());
- }else {
- String equipmentIds = adminEquipment.getEquipmentIds();
- List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
- query.in(TOrder::getClientId,equipmentIdList);
- }
- }
- }
- }
- if(StringUtils.isNotEmpty(userName)){
- TAdmin admin1 = R.getDataIfSuccess(szwlFeign.getAdminByUsername(userName));
- query.eq(TOrder::getAdminId,admin1.getId());
- }
- if(StringUtils.isNotEmpty(payType)){
- query.eq(TOrder::getFrpCode,payType);
- }
- if(StringUtils.isNotEmpty(productNo)){
- query.eq(TOrder::getProductNo,productNo);
- }
- if(StringUtils.isNotEmpty(clientId)){
- TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(clientId));
- //判断机器是否属于这个登陆账号
- if(admin.getType()>1){
- //商家
- if(equipment.getAdminId().toString().equals(admin.getId().toString())){
- query.eq(TOrder::getEquipmentId,equipment.getId());
- }
- }else {
- query.eq(TOrder::getEquipmentId,equipment.getId());
- }
- }
- if(StringUtils.isNotEmpty(dateType)){
- if(dateType.equals("0")){
- //创建时间
- if(stratDate!=null&&endDate!=null){
- query.gt(TOrder::getCreateDate,stratDate);
- query.lt(TOrder::getCreateDate,endDate);
- }
- }
- if(dateType.equals("1")){
- //退款时间
- if(stratDate!=null&&endDate!=null){
- query.gt(TOrder::getRefundDate,stratDate);
- query.lt(TOrder::getRefundDate,endDate);
- }
- }
- }
- Page<TOrder> page = new Page<>(current, size, true);
- IPage<TOrder> iPage = orderService.page(page, query);
- List<TOrder> list = iPage.getRecords();
- List<OrderTarget> orderTargetList = orderService.findById(admin, list);
- ExportParams exportParams = new ExportParams("订单记录", "sheet1");
- Workbook workbook = ExcelExportUtil.exportExcel(exportParams, OrderTarget.class, orderTargetList);
- if (workbook != null) {
- OutputStream os = null;
- try {
- os = response.getOutputStream();
- SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("订单记录数据导出" + format.format(new Date()) + ".xls", "UTF-8"));
- workbook.write(os);
- return JsonMessage.success("导出成功");
- } catch (Exception e) {
- e.printStackTrace();
- return JsonMessage.success("导出错误");
- } finally {
- try {
- os.close();
- workbook.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- };
- //1,线下
- if(type.equals("1")){
- LambdaQueryWrapper<TCoinOrder> query = Wrappers.lambdaQuery();
- //adminType="all"时,代表查全部下级 子账户没有这个权限 公司人员默认查所有人
- if(StringUtils.isNotEmpty(adminType)){
- if(admin.getIsAdmined()&&admin.getType()>1){
- if(admin.getType()>1){
- if(adminType.equals("all")){
- //查找所有下级
- List<Long> admidIdList = R.getDataIfSuccess(szwlFeign.getAdminIdList(adminId));
- query.in(TCoinOrder::getAdminId,admidIdList);
- }
- }
- }else{
- if(admin.getType()>1){
- //登录账户为子账户 不查下级 只查对应机器的订单
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getParentId())));
- if(adminEquipment.getType().equals("0")){
- //全部机器
- TAdmin upAdmin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- query.eq(TCoinOrder::getAdminId,upAdmin.getId());
- }else {
- String equipmentIds = adminEquipment.getEquipmentIds();
- List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
- query.in(TCoinOrder::getClientId,equipmentIdList);
- }
- }
- }
- }else {
- //判断当前账号状态 公司还是商家
- if(admin.getType()>1){
- //商家 判断是否子账户
- if(admin.getIsAdmined()){
- //商家自己
- query.eq(TCoinOrder::getAdminId,adminId);
- }else {
- //商家 子账户
- //登录账户为子账户 不查下级 只查对应机器的订单
- TAdminEquipment adminEquipment = R.getDataIfSuccess(szwlFeign.getClientIdList(String.valueOf(admin.getParentId())));
- if(adminEquipment.getType().equals("0")){
- //全部机器
- TAdmin upAdmin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(admin.getParentId())));
- query.eq(TCoinOrder::getAdminId,upAdmin.getId());
- }else {
- String equipmentIds = adminEquipment.getEquipmentIds();
- List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
- query.in(TCoinOrder::getClientId,equipmentIdList);
- }
- }
- }
- }
- if(StringUtils.isNotEmpty(userName)){
- TAdmin admin1 = R.getDataIfSuccess(szwlFeign.getAdminByUsername(userName));
- query.eq(TCoinOrder::getAdminId,admin1.getId());
- }
- if(StringUtils.isNotEmpty(payType)){
- query.eq(TCoinOrder::getPayType,payType);
- }
- if(StringUtils.isNotEmpty(productNo)){
- query.eq(TCoinOrder::getProductNo,productNo);
- }
- if(StringUtils.isNotEmpty(clientId)){
- TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(clientId));
- //判断机器是否属于这个登陆账号
- if(admin.getType()>1){
- //商家
- if(equipment.getAdminId().toString().equals(admin.getId().toString())){
- query.eq(TCoinOrder::getClientId,equipment.getClientId());
- }
- }else {
- query.eq(TCoinOrder::getClientId,equipment.getClientId());
- }
- }
- if(stratDate!=null&&endDate!=null){
- query.gt(TCoinOrder::getPayDate,stratDate);
- query.lt(TCoinOrder::getPayDate,endDate);
- }
- Page<TCoinOrder> page = new Page<>(current, size, true);
- IPage<TCoinOrder> iPage = coinOrderService.page(page, query);
- List<TCoinOrder> list = iPage.getRecords();
- List<CoinOrderTarget> coinOrderTargets = coinOrderService.findByCoinOrder(admin,list);
- ExportParams exportParams = new ExportParams("线下订单记录", "sheet1");
- Workbook workbook = ExcelExportUtil.exportExcel(exportParams, CoinOrderTarget.class, coinOrderTargets);
- if (workbook != null) {
- OutputStream os = null;
- try {
- os = response.getOutputStream();
- SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("线下订单记录数据导出" + format.format(new Date()) + ".xls", "UTF-8"));
- workbook.write(os);
- return JsonMessage.success("导出成功");
- } catch (Exception e) {
- e.printStackTrace();
- return JsonMessage.success("导出错误");
- } finally {
- try {
- os.close();
- workbook.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- return JsonMessage.success("导出错误");
- }
- }
|