|
@@ -54,10 +54,7 @@ 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;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -86,7 +83,7 @@ public class TOrderController {
|
|
|
@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 ) {
|
|
|
+ public ResponseModel<IPage<?>> pageOrder(String adminId,String adminType,String type,String sn,String status,String userName,String payType,String productNo,String clientId,String trxNo,String dateType, String startDate, String endDate, long current, long size ) {
|
|
|
//判断当前账号状态
|
|
|
TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(adminId));
|
|
|
//类型
|
|
@@ -95,7 +92,7 @@ public class TOrderController {
|
|
|
LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
|
|
|
//adminType="all"时,代表查全部下级 子账户没有这个权限 公司人员默认查所有人
|
|
|
if(StringUtils.isNotEmpty(adminType)){
|
|
|
- if(admin.getIsAdmined().equals("0")&&admin.getType()>1){
|
|
|
+ if(admin.getIsAdmined()&&admin.getType()>1){
|
|
|
if(admin.getType()>1){
|
|
|
if(adminType.equals("all")){
|
|
|
//查找所有下级
|
|
@@ -125,7 +122,7 @@ public class TOrderController {
|
|
|
//商家 判断是否子账户
|
|
|
if(admin.getIsAdmined()){
|
|
|
//商家自己
|
|
|
- query.eq(TOrder::getAdminId,adminId);
|
|
|
+// query.eq(TOrder::getAdminId,adminId);
|
|
|
}else {
|
|
|
//商家 子账户
|
|
|
//登录账户为子账户 不查下级 只查对应机器的订单
|
|
@@ -142,7 +139,7 @@ public class TOrderController {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(userName)){
|
|
|
+ if(StringUtils.isNotEmpty(userName)&&!userName.equals("admin")){
|
|
|
ResponseModel<TAdmin> adminByUsername = szwlFeign.getAdminByUsername(userName);
|
|
|
TAdmin data = adminByUsername.getData();
|
|
|
if(data==null||data.getId()==null){
|
|
@@ -156,6 +153,15 @@ public class TOrderController {
|
|
|
if(StringUtils.isNotEmpty(productNo)){
|
|
|
query.eq(TOrder::getProductNo,productNo);
|
|
|
}
|
|
|
+ if(StringUtils.isNotEmpty(sn)){
|
|
|
+ query.like(TOrder::getSn,sn);
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(trxNo)){
|
|
|
+ query.like(TOrder::getTrxNo,trxNo);
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(status)){
|
|
|
+ query.eq(TOrder::getStatus,status);
|
|
|
+ }
|
|
|
if(StringUtils.isNotEmpty(clientId)){
|
|
|
TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(clientId));
|
|
|
//判断机器是否属于这个登陆账号
|
|
@@ -169,25 +175,60 @@ public class TOrderController {
|
|
|
}
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(dateType)){
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
if(dateType.equals("0")){
|
|
|
//创建时间
|
|
|
- if(startDate!=null){
|
|
|
- query.gt(TOrder::getCreateDate,startDate);
|
|
|
+ if(StringUtils.isNotEmpty(startDate)){
|
|
|
+ try {
|
|
|
+ query.gt(TOrder::getCreateDate,simpleDateFormat.parse(startDate));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- if(endDate!=null){
|
|
|
- query.lt(TOrder::getCreateDate,endDate);
|
|
|
+ if(StringUtils.isNotEmpty(endDate)){
|
|
|
+ try {
|
|
|
+ query.lt(TOrder::getCreateDate,simpleDateFormat.parse(endDate));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StringUtils.isEmpty(startDate)&&StringUtils.isEmpty(endDate)){
|
|
|
+ try {
|
|
|
+ query.gt(TOrder::getCreateDate,getStartTime(new Date()));
|
|
|
+ query.lt(TOrder::getCreateDate,getEndTime(new Date()));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if(dateType.equals("1")){
|
|
|
//退款时间
|
|
|
- if(startDate!=null){
|
|
|
- query.gt(TOrder::getRefundDate,startDate);
|
|
|
+ if(StringUtils.isNotEmpty(startDate)){
|
|
|
+ try {
|
|
|
+ query.gt(TOrder::getRefundDate,simpleDateFormat.parse(startDate));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
}
|
|
|
- if(endDate!=null){
|
|
|
- query.lt(TOrder::getRefundDate,endDate);
|
|
|
+ if(StringUtils.isNotEmpty(endDate)){
|
|
|
+ try {
|
|
|
+ query.lt(TOrder::getRefundDate,simpleDateFormat.parse(startDate));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StringUtils.isEmpty(startDate)&&StringUtils.isEmpty(endDate)){
|
|
|
+ try {
|
|
|
+ query.gt(TOrder::getRefundDate,getStartTime(new Date()));
|
|
|
+ query.lt(TOrder::getRefundDate,getEndTime(new Date()));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ query.orderByDesc(TOrder::getCreateDate);
|
|
|
Page<TOrder> page = new Page<>(current, size, true);
|
|
|
IPage<TOrder> iPage = orderService.page(page, query);
|
|
|
return R.ok(iPage);
|
|
@@ -228,7 +269,7 @@ public class TOrderController {
|
|
|
//商家 判断是否子账户
|
|
|
if(admin.getIsAdmined()){
|
|
|
//商家自己
|
|
|
- query.eq(TCoinOrder::getAdminId,adminId);
|
|
|
+// query.eq(TCoinOrder::getAdminId,adminId);
|
|
|
}else {
|
|
|
//商家 子账户
|
|
|
//登录账户为子账户 不查下级 只查对应机器的订单
|
|
@@ -277,6 +318,29 @@ public class TOrderController {
|
|
|
if(endDate!=null){
|
|
|
query.lt(TCoinOrder::getPayDate,endDate);
|
|
|
}
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ if(StringUtils.isNotEmpty(startDate)){
|
|
|
+ try {
|
|
|
+ query.gt(TCoinOrder::getPayDate,simpleDateFormat.parse(startDate));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(endDate)){
|
|
|
+ try {
|
|
|
+ query.lt(TCoinOrder::getPayDate,simpleDateFormat.parse(endDate));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StringUtils.isEmpty(startDate)&&StringUtils.isEmpty(endDate)){
|
|
|
+ try {
|
|
|
+ query.gt(TCoinOrder::getPayDate,getStartTime(new Date()));
|
|
|
+ query.lt(TCoinOrder::getPayDate,getEndTime(new Date()));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
Page<TCoinOrder> page = new Page<>(current, size, true);
|
|
|
IPage<TCoinOrder> iPage = coinOrderService.page(page, query);
|
|
|
return R.ok(iPage);
|
|
@@ -318,7 +382,7 @@ public class TOrderController {
|
|
|
return R.fail(ResponseCodesEnum.A0001);
|
|
|
}
|
|
|
/**
|
|
|
- * 判断查询用户是否为外国
|
|
|
+ * 获取首页数据统计
|
|
|
* @return
|
|
|
*/
|
|
|
private String isForeignUser(String userId){
|
|
@@ -349,6 +413,178 @@ public class TOrderController {
|
|
|
//补全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&¶m.getEquipmentId()!=""){
|
|
|
+ //查机器
|
|
|
+ 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"));
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @ApiOperation(value = "机器获取数据统计")
|
|
|
+ @PostMapping("/getStatisticsByClientId")
|
|
|
+ public ResponseEntity<?> getStatisticsByClientId(@RequestBody StatisticsParam param) {
|
|
|
+ TEquipment equipment0 = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(param.getClientId()));
|
|
|
+ param.setAdminId(String.valueOf(equipment0.getAdminId()));
|
|
|
+ // 判断是否为外国
|
|
|
+ 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 {
|
|
@@ -600,7 +836,7 @@ public class TOrderController {
|
|
|
@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) {
|
|
|
+ public Object findOrder(String clientId, String sn, String productName, String status, String begin, String end, int pageNumber) {
|
|
|
|
|
|
LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
|
|
|
if (StringUtils.isNotEmpty(sn)) {
|
|
@@ -620,14 +856,21 @@ public class TOrderController {
|
|
|
query.eq(TOrder::getStatus,3);
|
|
|
}
|
|
|
}
|
|
|
- if (begin != null && end != null) {
|
|
|
- query.gt(TOrder::getCreateDate,begin);
|
|
|
- query.lt(TOrder::getCreateDate,end);
|
|
|
+ if (StringUtils.isNotEmpty(begin)&&StringUtils.isNotEmpty(end)) {
|
|
|
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ try {
|
|
|
+ //使用SimpleDateFormat的parse()方法生成Date
|
|
|
+ query.gt(TOrder::getCreateDate,sf.parse(begin));
|
|
|
+ query.lt(TOrder::getCreateDate,sf.parse(end));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
query.like(TOrder::getClientId,clientId);
|
|
|
|
|
|
- int size = pageable.getPageSize();
|
|
|
- int current = pageable.getPageNumber();
|
|
|
+ int size = 20;
|
|
|
+ int current =pageNumber;
|
|
|
Page<TOrder> page = new Page<>(current, size, true);
|
|
|
IPage<TOrder> iPage = orderService.page(page, query);
|
|
|
long total = page.getTotal();
|
|
@@ -1182,5 +1425,35 @@ public class TOrderController {
|
|
|
|
|
|
return JsonMessage.success("导出错误");
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取每天的开始时间 00:00:00:00
|
|
|
+ *
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getStartTime(Date date) {
|
|
|
+ Calendar dateStart = Calendar.getInstance();
|
|
|
+ dateStart.setTime(date);
|
|
|
+ dateStart.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ dateStart.set(Calendar.MINUTE, 0);
|
|
|
+ dateStart.set(Calendar.SECOND, 0);
|
|
|
+ return dateStart.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取每天的开始时间 23:59:59:999
|
|
|
+ *
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getEndTime(Date date) {
|
|
|
+ Calendar dateEnd = Calendar.getInstance();
|
|
|
+ dateEnd.setTime(date);
|
|
|
+ dateEnd.set(Calendar.HOUR_OF_DAY, 23);
|
|
|
+ dateEnd.set(Calendar.MINUTE, 59);
|
|
|
+ dateEnd.set(Calendar.SECOND, 59);
|
|
|
+ return dateEnd.getTime();
|
|
|
+ }
|
|
|
}
|
|
|
|