linxk 4 天之前
父節點
當前提交
ea735d64a7

+ 22 - 16
cif-service/src/main/java/com/txz/cif/dubbo/impl/AccountDubboServiceImpl.java

@@ -4,6 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
+import com.txz.cif.core.ResultCode;
+import com.txz.cif.core.ResultGenerator;
 import com.txz.cif.core.ServiceException;
 import com.txz.cif.dto.AccountDTO;
 import com.txz.cif.dto.Result;
@@ -90,6 +92,15 @@ public class AccountDubboServiceImpl implements AccountDubboService {
     
     @Override
     public Result openGroup(OpenParam param) {
+        if (param == null){
+            return Result.genFailResult("对象为空");
+        }
+        if (param.getUserId() == null){
+            return Result.genFailResult("userId为空");
+        }
+        if (param.getAmount() == null){
+            return Result.genFailResult("Amount为空");
+        }
         // 支付
         // BizTypeEnum 类型 1001充值 2001提现  3001开团支付 3002参团支付  4001未成团退款 4002成团退款 5001开团红包收益 5002参团红包收益 5003签到红包收益 5004下级红包佣金 5005下下级红包佣金
         Result result = flowService.pay(PayParam.builder().bizNo(param.getBizNo())
@@ -100,11 +111,20 @@ public class AccountDubboServiceImpl implements AccountDubboService {
                 .bizType(BizTypeEnum.OPEN_GROUP_PAY.getKey())
                 .build());
 
-        return Result.genSuccessResult();
+        return result;
     }
     
     @Override
     public Result joinGroup(JoinParam param) {
+        if (param == null){
+            return Result.genFailResult("对象为空");
+        }
+        if (param.getUserId() == null){
+            return Result.genFailResult("userId为空");
+        }
+        if (param.getAmount() == null){
+            return Result.genFailResult("Amount为空");
+        }
         // 支付
         // 类型 1001充值 2001提现  3001开团支付 3002参团支付  4001未成团退款 4002成团退款 5001开团红包收益 5002参团红包收益 5003签到红包收益 5004下级红包佣金 5005下下级红包佣金
         Result result = flowService.pay(PayParam.builder().bizNo(param.getBizNo())
@@ -114,7 +134,7 @@ public class AccountDubboServiceImpl implements AccountDubboService {
                 .transTime(param.getTransTime())
                 .bizType(BizTypeEnum.JOIN_GROUP_PAY.getKey())
                 .build());
-        return Result.genSuccessResult();
+        return result;
     }
     
     @Override
@@ -131,21 +151,7 @@ public class AccountDubboServiceImpl implements AccountDubboService {
             if (!StrUtil.equals("200", result.getCode())) {
                 throw new ServiceException();
             }
-            
         }
-        // TODO 计算参团红包金额
-//        com.txz.operating.result.Result<ConfigDTO> openRedEnvelopeRate = operatingConfigDubboServiceClient.getConfigByCode("join_red_envelope_rate");
-//        String rate = openRedEnvelopeRate.getData().getValueInfo();
-//        BigDecimal amount = param.getAmount().multiply(new BigDecimal(rate)).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN);
-        // 参团红包
-//        param.getUserIds().remove(param.getOpenGroupUserId());
-//        if (CollUtil.isNotEmpty(param.getUserIds())){
-//            Result result1 = redEnvelopeService.addRedEnvelope(RedEnvelopeParam.builder()
-//                    .amount(amount).bizType(BizTypeEnum.JOIN_GROUP_RED_ENVELOPE.getKey()).orderNo(param.getBizNo())
-//                    .userIds(param.getUserIds())
-//                    .transTime(param.getTransTime())
-//                    .build());
-//        }
         return Result.genSuccessResult();
     }
     

+ 96 - 0
cif-service/src/main/java/com/txz/cif/web/mng/ReportController.java

@@ -0,0 +1,96 @@
+package com.txz.cif.web.mng;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.crypto.SecureUtil;
+import cn.hutool.poi.excel.ExcelUtil;
+import cn.hutool.poi.excel.ExcelWriter;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.txz.cif.enums.BizTypeEnum;
+import com.txz.cif.web.bo.UserBo2;
+import com.txz.cif.web.bo.UserDetailBo;
+import com.txz.cif.web.para.*;
+import com.txz.cif.core.*;
+import com.txz.cif.model.*;
+import com.txz.cif.service.*;
+import io.swagger.annotations.*;
+import org.springframework.web.bind.annotation.*;
+import lombok.extern.slf4j.Slf4j;
+import tk.mybatis.mapper.entity.Condition;
+import tk.mybatis.mapper.entity.Example;
+
+@RestController
+@RequestMapping(value = "/report")
+@Api(tags = "[后台]报表管理")
+@Slf4j
+public class ReportController extends AbstractApiController {
+
+
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private FlowService flowService;
+
+    @Resource
+    private AccountService accountService;
+
+    @Resource
+    private RedEnvelopeService redEnvelopeService;
+
+    @Resource
+    private RechargeRecordService rechargeRecordService;
+
+
+
+    @PostMapping("/query")
+    @ApiOperation(value = "获取报表数据",httpMethod = "POST")
+    public Result<BigDecimal> list(@RequestBody CountQuery query) {
+        if (query.getType() == 1){
+            Condition c = new Condition(User.class);
+            c.createCriteria().andLessThanOrEqualTo("createTime",query.getDay()+" 23:59:59");
+            Integer num = userService.countByCondition(c);
+            return ResultGenerator.genSuccessResult(num);
+        } else  if (query.getType() == 2){
+            Condition  c = new Condition(User.class);
+            c.createCriteria().andLessThanOrEqualTo("createTime",query.getDay()+" 23:59:59")
+                    .andGreaterThanOrEqualTo("createTime",query.getDay()+" 00:00:00");
+            Integer num = userService.countByCondition(c);
+            return ResultGenerator.genSuccessResult(num);
+        } else if (query.getType() == 3){
+            Condition  c = new Condition(User.class);
+            Date date = DateUtil.parseDate(query.getDay());
+            Date day7 = DateUtil.offsetDay(date,-7);
+            c.createCriteria().andLessThanOrEqualTo("lastLoginTime",date)
+                    .andGreaterThanOrEqualTo("lastLoginTime",day7);
+            Integer num = userService.countByCondition(c);
+            return ResultGenerator.genSuccessResult(num);
+        } else if (query.getType() == 4){
+            Condition  c = new Condition(RechargeRecord.class);
+            c.createCriteria().andLessThanOrEqualTo("createTime",query.getDay()+" 23:59:59")
+                    .andGreaterThanOrEqualTo("createTime",query.getDay()+" 00:00:00")
+                    .andEqualTo("status",2);
+            c.setDistinct(true);
+            c.setCountProperty("user_id");
+            Integer num = rechargeRecordService.countByCondition(c);
+            return ResultGenerator.genSuccessResult(num);
+        }
+        return ResultGenerator.genSuccessResult(BigDecimal.ZERO);
+    }
+
+
+
+
+
+
+}

+ 40 - 0
cif-service/src/main/java/com/txz/cif/web/para/CountQuery.java

@@ -0,0 +1,40 @@
+package com.txz.cif.web.para;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author: linxk
+ * @Date: 2020/1/2 14:16
+ * @Version 1.0
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class CountQuery implements Serializable {
+
+    private static final long serialVersionUID = -8079862934521748025L;
+    /**
+     * 某一天  yyyy-MM-dd
+     */
+    private String day;
+
+    /**
+     * 统计类型 1总用户数 2新增用户数 3 活跃用户数 4充值用户数 5购买用户数 6提现用户数 7充值总金额 8充值订单数 9充值金额
+     * 10充值成功率 11平均充值金额 12提现总金额 13提现订单数 14提现金额 15提现成功率 16平均提现金额
+     * 17营销总金额 18营销总金额-待结算 19营销总金额-已结算  20 邀请好友奖励金额 21开团奖励金额 22拼团奖励金额 23 签到经理金额
+     */
+    private Byte type;
+
+
+
+
+}