瀏覽代碼

管理后台user模块

lyhzzz 3 年之前
父節點
當前提交
47372a0000
共有 41 個文件被更改,包括 1674 次插入29 次删除
  1. 21 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/common/DownloadStatusEnum.java
  2. 5 5
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/generate/AutoGenerate.java
  3. 91 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/manager/ManagerSdkController.java
  4. 4 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/ICompanyService.java
  5. 14 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/CompanyServiceImpl.java
  6. 88 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/controller/manager/ManagerOrderController.java
  7. 39 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/controller/manager/ManagerVirtualOrderController.java
  8. 3 3
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/controller/pay/OrderWechatPayController.java
  9. 5 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/mapper/IOrderMapper.java
  10. 5 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/mapper/IVirtualOrderMapper.java
  11. 4 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/IOrderItemService.java
  12. 3 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/IOrderService.java
  13. 9 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/ISpaceSdkService.java
  14. 2 4
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/IVirtualOrderService.java
  15. 19 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/OrderItemServiceImpl.java
  16. 56 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/OrderServiceImpl.java
  17. 166 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/SpaceSdkServiceImpl.java
  18. 16 4
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/VirtualOrderServiceImpl.java
  19. 57 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/task/Schedule.java
  20. 218 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/manager/ManagerUserController.java
  21. 99 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/entity/IncrementLog.java
  22. 1 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/entity/Manager.java
  23. 18 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/mapper/IIncrementLogMapper.java
  24. 8 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/mapper/IUserMapper.java
  25. 16 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestIncrement.java
  26. 2 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestOrder.java
  27. 19 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IIncrementLogService.java
  28. 19 3
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IManagerService.java
  29. 2 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IReceiverInfoService.java
  30. 2 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IUserIncrementService.java
  31. 5 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IUserService.java
  32. 89 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/UserSceneService.java
  33. 37 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/IncrementLogServiceImpl.java
  34. 247 9
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/ManagerServiceImpl.java
  35. 12 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/ReceiverInfoServiceImpl.java
  36. 60 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserIncrementServiceImpl.java
  37. 30 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserServiceImpl.java
  38. 86 0
      4dkankan-center-platform/src/main/resources/mapper/order/OrderMapper.xml
  39. 58 0
      4dkankan-center-platform/src/main/resources/mapper/order/VirtualOrderMapper.xml
  40. 5 0
      4dkankan-center-platform/src/main/resources/mapper/user/IncrementLogMapper.xml
  41. 34 0
      4dkankan-center-platform/src/main/resources/mapper/user/UserMapper.xml

+ 21 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/common/DownloadStatusEnum.java

@@ -0,0 +1,21 @@
+package com.fdkankan.platform.common;
+
+public enum DownloadStatusEnum {
+    DOWNLOADING(1000, "文件正在下载"),
+    DOWNLOAD_COMPRESSING(1001, "文件正在压缩"),
+    DOWNLOAD_SUCCESS(1002, "文件压缩成功/下载处理成功"),
+    DOWNLOAD_FAILED(1003, "下载处理失败");
+
+    public static final int DOWNLOADING_CODE = 1000;
+    public static final int DOWNLOAD_COMPRESSING_CODE = 1001;
+    public static final int DOWNLOAD_SUCCESS_CODE = 1002;
+    public static final int DOWNLOAD_FAILED_CODE = 1003;
+
+    private int status;
+    private String desc;
+
+    DownloadStatusEnum(int status, String desc) {
+        this.status = status;
+        this.desc = desc;
+    }
+}

+ 5 - 5
4dkankan-center-platform/src/main/java/com/fdkankan/platform/generate/AutoGenerate.java

@@ -16,9 +16,9 @@ public class AutoGenerate {
     public static void main(String[] args) {
         String path ="H:\\project\\4dkankan-parent\\4dkankan-center-platform";
 
-//        generate(path,"agent", getTables(new String[]{
-//                "t_agent","t_agent_audit","t_agent_framework","t_agent_notice","t_vaild_cameras"
-//        }));
+        generate(path,"user", getTables(new String[]{
+                "tm_increment_log"
+        }));
 
 //        generate(path,"goods", getTables(new String[]{
 //                        "t_camera","t_camera_detail","t_camera_out","t_camera_space","t_camera_version",
@@ -57,7 +57,7 @@ public class AutoGenerate {
 
                 })
                 .packageConfig(builder -> {
-                    builder.parent("com.fdkankan")
+                    builder.parent("com.fdkankan.platform")
                             .moduleName(moduleName)
                             .entity("entity")
                             .service("service")
@@ -69,7 +69,7 @@ public class AutoGenerate {
                 })
                 .strategyConfig(builder -> {
                     builder.addInclude(tables)
-                            .addTablePrefix("t_")
+                            .addTablePrefix("tm_")
                             .serviceBuilder()
                             .formatServiceFileName("I%sService")
                             .formatServiceImplFileName("%sServiceImpl")

+ 91 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/controller/manager/ManagerSdkController.java

@@ -0,0 +1,91 @@
+package com.fdkankan.platform.goods.controller.manager;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.platform.order.entity.SpaceSdk;
+import com.fdkankan.platform.order.service.ISpaceSdkService;
+import com.fdkankan.platform.user.request.RequestSdkVersion;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 后台管理-sdk上传下载
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/manager/sdk")
+public class ManagerSdkController extends BaseController {
+
+    @Autowired
+    private ISpaceSdkService spaceSdkService;
+
+
+    /**
+     * 上传文件
+     * @param file
+     * @param version
+     * @param imprintCh
+     * @param imprintEn
+     * @param isTop
+     * @param platformType
+     */
+    @PostMapping(value = "/upload", consumes = { "multipart/form-data" })
+    private String upload(@RequestParam("file") MultipartFile file,
+                          @RequestParam("version") String version,
+                          @RequestParam("imprintCh") String imprintCh,
+                          @RequestParam("imprintEn") String imprintEn,
+                          @RequestParam("isTop") Integer isTop,
+                          @RequestParam("platformType") String platformType) {
+
+        try {
+            return spaceSdkService.upload(file, version,imprintCh,imprintEn,isTop,platformType);
+        }catch (Exception e){
+            throw new BusinessException(-1,"上传失败!");
+        }
+    }
+
+    /**
+     * 查询列表
+     * @return
+     */
+    @PostMapping(value = "/list")
+    private Page<SpaceSdk> list(@RequestBody RequestSdkVersion param) {
+        return spaceSdkService.getPageByParam(param);
+    }
+
+    /**
+     * 编辑
+     */
+    @PostMapping(value = "/update")
+    private String update(@RequestBody SpaceSdk param) {
+        return  spaceSdkService.updateByEntity(param);
+    }
+
+    /**
+     * 删除
+     */
+    @PostMapping(value = "/del")
+    private String del(@RequestBody RequestSdkVersion param) {
+        return  spaceSdkService.delById(param.getId());
+    }
+
+    /**
+     * 上下架
+     */
+    @PostMapping(value = "/online")
+    private String online(@RequestBody RequestSdkVersion param) {
+        return  spaceSdkService.online(param);
+    }
+
+    /**
+     * 置顶
+     */
+    @PostMapping(value = "/top")
+    private String top(@RequestBody RequestSdkVersion param) {
+        return  spaceSdkService.online(param);
+    }
+
+}

+ 4 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/ICompanyService.java

@@ -5,6 +5,8 @@ import com.fdkankan.platform.goods.entity.Company;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.platform.goods.request.RequestCompany;
 
+import java.util.List;
+
 /**
  * <p>
  * 客户企业logo信息 服务类
@@ -18,4 +20,6 @@ public interface ICompanyService extends IService<Company> {
     String saveOrUpdateByParam(RequestCompany param);
 
     Page<Company> pageList(RequestCompany param);
+
+    List<Long> getManagerId();
 }

+ 14 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/CompanyServiceImpl.java

@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -64,4 +65,17 @@ public class CompanyServiceImpl extends ServiceImpl<ICompanyMapper, Company> imp
         }
         return pageInfo;
     }
+
+    @Override
+    public List<Long> getManagerId() {
+        LambdaQueryWrapper<Company> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Company::getRecStatus,"A");
+        queryWrapper.isNotNull(Company::getManagerId);
+        List<Company> list = this.list(queryWrapper);
+        List<Long> returnList = new ArrayList<>();
+        for (Company company : list) {
+            returnList.add(company.getId());
+        }
+        return returnList;
+    }
 }

+ 88 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/controller/manager/ManagerOrderController.java

@@ -0,0 +1,88 @@
+package com.fdkankan.platform.order.controller.manager;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.platform.order.service.IOrderService;
+import com.fdkankan.platform.user.request.RequestOrder;
+import com.fdkankan.platform.user.service.IManagerService;
+import com.fdkankan.platform.user.vo.ResponseOrder;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 后台管理-订单管理
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/manager/order")
+public class ManagerOrderController extends BaseController {
+
+    @Autowired
+    private IManagerService managerService;
+    @Autowired
+    private IOrderService orderService;
+
+    /**
+     * 获取订单列表
+     * type             类型
+     * orderSn          订单编号
+     * phoneNum         手机号码
+     * expressNum       快递码
+     * startDate        开始时间
+     * endDate          结束时间
+     * pageNum          分页
+     * pageSize         每页大小
+     */
+    @RequestMapping(value = {"/list"}, method = RequestMethod.POST)
+    public Page<ResponseOrder> list(@RequestBody RequestOrder param) throws Exception {
+        return orderService.getPageVoByParam(param);
+    }
+
+    /**
+     * 获取订单详情
+     * orderId          订单id
+     */
+    @RequestMapping(value = "/detail", method = RequestMethod.POST)
+    public ResponseOrder detail(@RequestBody RequestOrder param) throws Exception {
+        return orderService.getOrderDetail(param.getOrderId());
+    }
+
+    /**
+     * 订单发货确认
+     * orderId          订单id
+     * orderItemIds     订单详情id,多个用“,”分开
+     * expressName      快递公司
+     * expressNum       快递码
+     */
+    @RequestMapping(value = "/confirmDelivery", method = RequestMethod.POST)
+    public String confirmDelivery(@RequestBody RequestOrder param) throws Exception {
+        return orderService.confirmOrderDelivery(param);
+    }
+
+    /**
+     * 订单发货确认
+     * type         类型
+     * orderSn      订单编号
+     * phoneNum     手机号码
+     * expressNum   快递码
+     * startDate    开始时间
+     * endDate      结束时间
+     */
+    @RequestMapping(value = "/export", method = RequestMethod.GET)
+    public void export(String type, String orderSn, String phoneNum, String expressNum, String startDate, String endDate) throws Exception {
+        RequestOrder param = new RequestOrder();
+        param.setType(type);
+        param.setOrderSn(orderSn);
+        param.setPhoneNum(phoneNum);
+        param.setExpressNum(expressNum);
+        param.setStartDate(startDate);
+        param.setEndDate(endDate);
+        managerService.export(param, request, response);
+    }
+
+
+}

+ 39 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/controller/manager/ManagerVirtualOrderController.java

@@ -0,0 +1,39 @@
+package com.fdkankan.platform.order.controller.manager;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.platform.order.service.IVirtualOrderService;
+import com.fdkankan.platform.user.request.RequestTrade;
+import com.fdkankan.platform.user.vo.ResponseVirtualOrder;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 后台管理-增值服务
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/manager/virtualOrder")
+public class ManagerVirtualOrderController extends BaseController {
+
+    @Autowired
+    private IVirtualOrderService virtualOrderService;
+
+    /**
+     * 查看增值记录-充值记录\消费记录
+     * startDate        开始时间
+     * endDate          结束时间
+     * searchKey        关键词
+     * type             1充值,2消费
+     * pageNum          分页
+     * pageSize         每页大小
+     */
+    @RequestMapping(value = {"/list"}, method = RequestMethod.POST)
+    public Page<ResponseVirtualOrder> list(@RequestBody RequestTrade param) throws Exception {
+        return virtualOrderService.getPageVoByParam(param);
+    }
+}

+ 3 - 3
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/controller/pay/OrderWechatPayController.java

@@ -1,7 +1,6 @@
 package com.fdkankan.platform.order.controller.pay;
 
 import com.alibaba.fastjson.JSONObject;
-import com.fdkankan.common.config.RedisDefaultConfig;
 import com.fdkankan.common.constant.Constant;
 import com.fdkankan.common.constant.ConstantUrl;
 import com.fdkankan.common.constant.OrderConstant;
@@ -21,6 +20,7 @@ import com.fdkankan.platform.user.factory.PayFactory;
 import com.fdkankan.platform.user.strategy.OrderStrategyFactory;
 import com.fdkankan.platform.user.vo.ResponseOrder;
 import com.fdkankan.platform.user.vo.ResponseOrderItem;
+import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -270,10 +270,10 @@ public class OrderWechatPayController extends BaseController {
 //                        orderSn += "_" + out_trade_no.split("_")[1];
 
                         log.warn("orderSnE:" + orderSn + "_expansion");
-                        redisUtil.set(orderSn + "_expansion", out_trade_no, RedisDefaultConfig.DEFAULT_EXPIRE_TIME);
+                        redisUtil.set(orderSn + "_expansion", out_trade_no, RedisKey.EXPIRE_TIME_2_HOUR);
                     }else {
                         log.warn("orderSnE:" + orderSnE);
-                        redisUtil.set(orderSnE, out_trade_no ,RedisDefaultConfig.DEFAULT_EXPIRE_TIME);
+                        redisUtil.set(orderSnE, out_trade_no , RedisKey.EXPIRE_TIME_2_HOUR);
                     }
                     orderStrategyFactory.doHandler(orderSn, trade_no, openid, out_trade_no.split("_")[1], 0);
                     log.warn("微信支付成功,订单号:"  + orderSn);

+ 5 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/mapper/IOrderMapper.java

@@ -2,6 +2,7 @@ package com.fdkankan.platform.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fdkankan.platform.order.entity.Order;
+import com.fdkankan.platform.user.request.RequestOrder;
 import com.fdkankan.platform.user.vo.ResponseOrder;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -47,4 +48,8 @@ public interface IOrderMapper extends BaseMapper<Order> {
 
     @Select(" SELECT order_time as orderTime, count(id) as orderCount, finish_time FROM t_order WHERE (DATE_SUB(CURDATE(), INTERVAL 12 DAY) <=date(order_time)) AND REC_STATUS = 'A' AND payment_status = 'paid' group by day(order_time) ")
     List<ResponseOrder> queryTrendOrder();
+
+    Integer getCountByParam(RequestOrder param);
+
+    List<ResponseOrder> getListByParam(@Param("param") RequestOrder param, @Param("start") Integer start, @Param("pageSize") Integer pageSize, @Param("orderBy") String orderBy);
 }

+ 5 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/mapper/IVirtualOrderMapper.java

@@ -2,6 +2,7 @@ package com.fdkankan.platform.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fdkankan.platform.order.entity.VirtualOrder;
+import com.fdkankan.platform.user.request.RequestTrade;
 import com.fdkankan.platform.user.vo.ResponseVirtualOrder;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -55,4 +56,8 @@ public interface IVirtualOrderMapper extends BaseMapper<VirtualOrder> {
 
     @Select(" SELECT trade_time as tradeTime, count(id) as orderCount FROM t_virtual_order WHERE (DATE_SUB(CURDATE(), INTERVAL 12 DAY) <=date(trade_time)) AND REC_STATUS = 'A' AND pay_status = 1 AND status = #{status} group by day(create_time) ")
     List<ResponseVirtualOrder> queryTrendRechargeOrder(@Param("status")int status);
+
+    Integer getCountByParam(@Param("param") RequestTrade param);
+
+    List<ResponseVirtualOrder> getListByParam(@Param("param")RequestTrade param, @Param("start")Integer start, @Param("pageSize")Integer pageSize,@Param("orderBy") String orderBy);
 }

+ 4 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/IOrderItemService.java

@@ -17,4 +17,8 @@ import java.util.List;
 public interface IOrderItemService extends IService<OrderItem> {
 
     List<ResponseOrderItem> getByOrderId(Long orderId);
+
+    Integer getCountByOrderIdAndShipped(Long orderId, String name);
+
+    Integer getCountByOrderId(Long orderId);
 }

+ 3 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/IOrderService.java

@@ -72,4 +72,7 @@ public interface IOrderService extends IService<Order> {
 
     List<ResponseOrder> queryTrendOrder();
 
+    Page<ResponseOrder> getPageVoByParam(RequestOrder param);
+
+    String confirmOrderDelivery(RequestOrder param) throws Exception;
 }

+ 9 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/ISpaceSdkService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.platform.order.entity.SpaceSdk;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.platform.user.request.RequestSdkVersion;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * <p>
@@ -16,4 +17,12 @@ import com.fdkankan.platform.user.request.RequestSdkVersion;
 public interface ISpaceSdkService extends IService<SpaceSdk> {
 
     Page<SpaceSdk> getPageByParam(RequestSdkVersion param);
+
+    String upload(MultipartFile file, String version, String imprintCh, String imprintEn, Integer isTop, String platformType) throws Exception;
+
+    String updateByEntity(SpaceSdk param);
+
+    String delById(Long id);
+
+    String online(RequestSdkVersion param);
 }

+ 2 - 4
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/IVirtualOrderService.java

@@ -6,10 +6,7 @@ import com.fdkankan.platform.agent.vo.AgentVo;
 import com.fdkankan.platform.agent.vo.ResponseAgentCamera;
 import com.fdkankan.platform.order.entity.VirtualOrder;
 import com.fdkankan.platform.order.vo.ResponseExpansionOrder;
-import com.fdkankan.platform.user.request.RequestCamera;
-import com.fdkankan.platform.user.request.RequestDownloadOrder;
-import com.fdkankan.platform.user.request.RequestIncrementOrder;
-import com.fdkankan.platform.user.request.RequestVirtualOrder;
+import com.fdkankan.platform.user.request.*;
 import com.fdkankan.platform.user.vo.ResponseDownloadOrder;
 import com.fdkankan.platform.user.vo.ResponseIncrementOrder;
 import com.fdkankan.platform.user.vo.ResponseVirtualOrder;
@@ -50,6 +47,7 @@ public interface IVirtualOrderService extends IService<VirtualOrder> {
     List<VirtualOrder> getAllByParam(RequestCamera param);
 
     Page<ResponseVirtualOrder> getPageVoByParam(RequestCamera param);
+    Page<ResponseVirtualOrder> getPageVoByParam(RequestTrade param);
 
     boolean addVirtualOrder(RequestVirtualOrder vo);
 

+ 19 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/OrderItemServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.platform.order.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.platform.order.entity.OrderItem;
 import com.fdkankan.platform.order.mapper.IOrderItemMapper;
 import com.fdkankan.platform.order.service.IOrderItemService;
@@ -28,4 +29,22 @@ public class OrderItemServiceImpl extends ServiceImpl<IOrderItemMapper, OrderIte
     public List<ResponseOrderItem> getByOrderId(Long orderId) {
         return orderItemMapper.getByOrderId(orderId);
     }
+
+    @Override
+    public Integer getCountByOrderIdAndShipped(Long orderId, String status) {
+        LambdaQueryWrapper<OrderItem> query = getQuery(orderId);
+        query.eq(OrderItem::getShippingStatus,status);
+        return Math.toIntExact(this.count(query));
+    }
+
+    @Override
+    public Integer getCountByOrderId(Long orderId) {
+        return Math.toIntExact(this.count(query()));
+    }
+
+    public LambdaQueryWrapper<OrderItem> getQuery(Long orderId){
+        LambdaQueryWrapper<OrderItem> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(OrderItem::getOrderId,orderId);
+        return queryWrapper;
+    }
 }

+ 56 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/OrderServiceImpl.java

@@ -25,6 +25,7 @@ import com.fdkankan.platform.order.constant.OrderEnum;
 import com.fdkankan.platform.order.entity.Invoice;
 import com.fdkankan.platform.order.entity.Order;
 import com.fdkankan.platform.order.entity.OrderItem;
+import com.fdkankan.platform.order.entity.TradeLog;
 import com.fdkankan.platform.order.mapper.IOrderMapper;
 import com.fdkankan.platform.order.request.RequestPlaceOrder;
 import com.fdkankan.platform.order.service.*;
@@ -38,6 +39,8 @@ import com.fdkankan.platform.user.vo.*;
 import com.fdkankan.redis.util.RedisUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -58,6 +61,7 @@ import java.util.stream.Collectors;
 @Service
 public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implements IOrderService {
 
+    public static final Logger log = LoggerFactory.getLogger("programLog");
     @Autowired
     RedisUtil redisUtil;
     @Autowired
@@ -92,6 +96,8 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
     private AlipayService alipayService;
     @Autowired
     private IUserIncrementService userIncrementService;
+    @Autowired
+    ITradeLogService tradeLogService;
     @Resource
     private IOrderMapper orderMapper;
 
@@ -522,4 +528,54 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
     public List<ResponseOrder> queryTrendOrder() {
         return orderMapper.queryTrendOrder();
     }
+
+    @Override
+    public Page<ResponseOrder> getPageVoByParam(RequestOrder param) {
+        Page<ResponseOrder> pageVo = new Page<>(param.getPageNum(), param.getPageSize());
+        Integer start = (param.getPageNum() -1 )* param.getPageSize();
+        Integer count = orderMapper.getCountByParam(param);
+        if(count <= 0){
+            return pageVo;
+        }
+        List<ResponseOrder> result = orderMapper.getListByParam(param,
+                start,param.getPageSize(),"order_time desc");
+        pageVo.setTotal(count);
+        pageVo.setRecords(result);
+        return pageVo;
+    }
+
+    @Override
+    public String confirmOrderDelivery(RequestOrder param) throws Exception {
+        Order dbOrder = getById(param.getOrderId());
+        String orderItemIds = param.getOrderItemIds();
+        if(dbOrder == null || StringUtils.isEmpty(param.getOrderItemIds())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        TradeLog tradeLogEntity = tradeLogService.getByOrderSn(dbOrder.getOrderSn());
+        if (tradeLogEntity == null){
+            throw new BusinessException(-1,"订单错误,请联系管理员");
+        }
+        tradeLogEntity.setTradeTime(new Date());
+        tradeLogService.updateById(tradeLogEntity);
+        String[] ids = orderItemIds.split(",");
+        for (String itemId : ids){
+            OrderItem orderItem = orderItemService.getById(Long.valueOf(itemId));
+            if (orderItem != null){
+                orderItem.setExpressName(param.getExpressName());
+                orderItem.setExpressNum(param.getExpressNum());
+                orderItem.setShippingStatus(OrderEnum.ShippingStatus.shipped.name());
+                orderItemService.updateById(orderItem);
+            }
+        }
+        Integer orderCount1 = orderItemService.getCountByOrderIdAndShipped(param.getOrderId(),OrderEnum.ShippingStatus.shipped.name());
+        Integer orderCount = orderItemService.getCountByOrderId(param.getOrderId());
+        if(orderCount1.equals(orderCount)){
+            dbOrder.setShippingStatus(OrderEnum.ShippingStatus.shipped.name());
+        }else {
+            dbOrder.setShippingStatus(OrderEnum.ShippingStatus.partReshiped.name());
+        }
+        dbOrder.setOrderStatus(OrderEnum.OrderStatus.processed.name());
+        updateById(dbOrder);
+        return ServerCode.SUCCESS.message();
+    }
 }

+ 166 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/SpaceSdkServiceImpl.java

@@ -1,15 +1,30 @@
 package com.fdkankan.platform.order.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.platform.goods.common.UploadPath;
 import com.fdkankan.platform.order.entity.SpaceSdk;
 import com.fdkankan.platform.order.mapper.ISpaceSdkMapper;
 import com.fdkankan.platform.order.service.ISpaceSdkService;
 import com.fdkankan.platform.user.request.RequestSdkVersion;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Base64;
+import java.util.Date;
 
 /**
  * <p>
@@ -22,6 +37,17 @@ import org.springframework.stereotype.Service;
 @Service
 public class SpaceSdkServiceImpl extends ServiceImpl<ISpaceSdkMapper, SpaceSdk> implements ISpaceSdkService {
 
+    public static final Logger log = LoggerFactory.getLogger("programLog");
+    private static String DIR_NAME = "new4dkk/v2/images/_/common/data/";
+
+    @Autowired
+    private UploadToOssUtil uploadToOssUtil;
+    @Value("${oss.type}")
+    private String ossType;
+
+    @Value("${prefix.ali.sdk}")
+    private String prefixAli;
+
     @Override
     public Page<SpaceSdk> getPageByParam(RequestSdkVersion param) {
         LambdaQueryWrapper<SpaceSdk> queryWrapper = Wrappers.lambdaQuery();
@@ -39,4 +65,144 @@ public class SpaceSdkServiceImpl extends ServiceImpl<ISpaceSdkMapper, SpaceSdk>
         Page<SpaceSdk> page = new Page<>(param.getPageNum(),param.getPageSize());
         return this.page(page, queryWrapper);
     }
+
+    @Override
+    public String upload(MultipartFile file, String version, String imprintCh, String imprintEn, Integer isTop, String platformType) throws Exception {
+        log.info("run upload");
+
+        if (!file.isEmpty()&& file.getSize() <= 0) {
+            throw new BusinessException(ErrorCode.FILE_NOT_EXIST);
+        }
+        String fullFileName = "";
+        if(platformType.equals("1")){
+            fullFileName = "SpaceTarget_Unity3D";
+        }else if(platformType.equals("2")){
+            fullFileName = "SpaceTarget_UE4";
+        }
+
+        String fileNameAll = "";
+        // 文件名全名
+        fileNameAll = file.getOriginalFilename();
+
+        // 将文件转字节-> 字符串
+        String fileContent = Base64.getEncoder().encodeToString(file.getBytes());
+
+        // 获取类路径
+        String resourcePath = FileUtils.getResource();
+        log.info("resourcePath: {}", resourcePath);
+
+        // 创建目录
+        String dirPath = resourcePath + DIR_NAME;
+        FileUtils.createDir(dirPath);
+
+        // 拼接唯一文件名
+        String fileName = fullFileName + "_" + version + "_" + UploadPath.dateStr() + fileNameAll;
+
+        // 文件保存路径
+        String filePath = dirPath + UploadPath.dateStr() + fileNameAll;
+
+        // 写文件到本地
+        FileUtils.base64ToFileWriter(fileContent, filePath);
+        log.info("filePath: {}", filePath);
+
+        // 上传到阿里云sso
+        uploadToOssUtil.uploadSdk(filePath, DIR_NAME + fileName);
+        log.info("upload success");
+
+        String url = prefixAli + DIR_NAME + fileName;
+
+        log.info("upload url: {}" + url);
+
+        this.updatTopFBysdkId(platformType);//取消所有置顶
+
+        SpaceSdk managerSdkEntity = new SpaceSdk();
+        managerSdkEntity.setVersion(version);
+        managerSdkEntity.setImprintCh(imprintCh);
+        managerSdkEntity.setImprintEn(imprintEn);
+        managerSdkEntity.setIsTop(1);
+        managerSdkEntity.setStatus(0);
+        managerSdkEntity.setPlatformType(platformType);
+        managerSdkEntity.setFileUrl(url);
+        managerSdkEntity.setFileName(fullFileName);
+
+        this.save(managerSdkEntity);
+
+        // 删除本地文件
+        FileUtils.deleteFile(filePath);
+
+        return url;
+    }
+
+    @Override
+    public String updateByEntity(SpaceSdk param) {
+        if(param.getId() == null || StringUtils.isEmpty(param.getPlatformType()) || param.getIsTop()==null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        if(param.getIsTop().equals(1)){
+            this.updatTopFBysdkId(param.getPlatformType());//取消所有置顶
+        }
+        if(!this.updateById(param)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public String delById(Long id) {
+        if(id == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        LambdaUpdateWrapper<SpaceSdk> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(SpaceSdk::getRecStatus,"I")
+                .eq(SpaceSdk::getId,id);
+        this.update(updateWrapper);
+        return ServerCode.SUCCESS.message();
+    }
+
+
+    @Override
+    public String online(RequestSdkVersion param) {
+        if(param.getId() == null || param.getStatus() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        SpaceSdk managerSdkEntity = this.getById(param.getId());
+        if(managerSdkEntity == null || "I".equals(managerSdkEntity.getRecStatus())){
+            throw new BusinessException(-1,"获取记录为空");
+        }
+        if(managerSdkEntity.getPublishTime()!=null){
+            return this.updateBySdkId(param.getId(),param.getStatus());
+        }else{
+            return this.updateBySdkIdPublish(param.getId(),param.getStatus());
+        }
+    }
+
+    private String updateBySdkIdPublish(Long id, Integer status) {
+        LambdaUpdateWrapper<SpaceSdk> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(SpaceSdk::getStatus,status)
+                .set(SpaceSdk::getPublishTime,new Date())
+                .eq(SpaceSdk::getId,id).eq(SpaceSdk::getRecStatus,"A");
+        this.update(updateWrapper);
+        return ServerCode.SUCCESS.message();
+    }
+
+    private String updateBySdkId(Long id, Integer status) {
+        LambdaUpdateWrapper<SpaceSdk> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(SpaceSdk::getStatus,status)
+                .eq(SpaceSdk::getId,id).eq(SpaceSdk::getRecStatus,"A");
+        this.update(updateWrapper);
+        return ServerCode.SUCCESS.message();
+    }
+
+    private void updatTopFBysdkId(String platformType) {
+        LambdaUpdateWrapper<SpaceSdk> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(SpaceSdk::getIsTop,0)
+                .eq(SpaceSdk::getPlatformType,platformType);
+        this.update(updateWrapper);
+    }
+    private void updatTopFBysdkId(Long Id,Integer isTop) {
+        LambdaUpdateWrapper<SpaceSdk> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(SpaceSdk::getIsTop,isTop)
+                .eq(SpaceSdk::getId,Id).eq(SpaceSdk::getRecStatus,"A");
+        this.update(updateWrapper);
+    }
 }

+ 16 - 4
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/VirtualOrderServiceImpl.java

@@ -22,10 +22,7 @@ import com.fdkankan.platform.order.service.IExpansionOrderService;
 import com.fdkankan.platform.order.service.IIncrementOrderService;
 import com.fdkankan.platform.order.service.IVirtualOrderService;
 import com.fdkankan.platform.order.vo.ResponseExpansionOrder;
-import com.fdkankan.platform.user.request.RequestCamera;
-import com.fdkankan.platform.user.request.RequestDownloadOrder;
-import com.fdkankan.platform.user.request.RequestIncrementOrder;
-import com.fdkankan.platform.user.request.RequestVirtualOrder;
+import com.fdkankan.platform.user.request.*;
 import com.fdkankan.platform.user.service.IUserService;
 import com.fdkankan.platform.user.vo.ResponseDownloadOrder;
 import com.fdkankan.platform.user.vo.ResponseIncrementOrder;
@@ -445,4 +442,19 @@ public class VirtualOrderServiceImpl extends ServiceImpl<IVirtualOrderMapper, Vi
         }
         return responseVirtualOrder;
     }
+
+    @Override
+    public Page<ResponseVirtualOrder> getPageVoByParam(RequestTrade param) {
+        Page<ResponseVirtualOrder> pageVo = new Page<>(param.getPageNum(), param.getPageSize());
+        Integer start = (param.getPageNum() -1 )* param.getPageSize();
+        Integer count = virtualOrderMapper.getCountByParam(param);
+        if(count <= 0){
+            return pageVo;
+        }
+        List<ResponseVirtualOrder> result = virtualOrderMapper.getListByParam(param,
+                start,param.getPageSize(),"trade_time desc");
+        pageVo.setTotal(count);
+        pageVo.setRecords(result);
+        return pageVo;
+    }
 }

+ 57 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/task/Schedule.java

@@ -0,0 +1,57 @@
+package com.fdkankan.platform.task;
+
+import com.fdkankan.common.constant.ConstantFilePath;
+import org.apache.tools.ant.util.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+
+@Component
+public class Schedule {
+    public static final Logger log = LoggerFactory.getLogger("programLog");
+
+    @Value("${environment}")
+    private String environment;
+
+
+    @Scheduled(cron = "0 0 4 * * ?")
+    public void job1() {
+        if("hq".equals(environment)){
+            return;
+        }
+        log.warn("每天04:00开始执行定时任务:删除二维码");
+        // 删除登录二维码
+        String path = ConstantFilePath.LOGIN_QR_CODE_PATH;
+        File file = new File(path);
+        File[] files = file.listFiles();
+        if (files != null && files.length > 0){
+            for (File delFile : files){
+                if (delFile.isFile()) FileUtils.delete(delFile);
+            }
+        }
+
+        // 删除支付宝支付二维码
+        path = ConstantFilePath.ALI_QRCODE_FOLDER;
+        file = new File(path);
+        files = file.listFiles();
+        if (files != null && files.length > 0){
+            for (File delFile : files){
+                if (delFile.isFile()) FileUtils.delete(delFile);
+            }
+        }
+
+        // 删除微信支付二维码
+        path = ConstantFilePath.WEIXIN_QRCODE_FOLDER;
+        file = new File(path);
+        files = file.listFiles();
+        if (files != null && files.length > 0){
+            for (File delFile : files){
+                if (delFile.isFile()) FileUtils.delete(delFile);
+            }
+        }
+    }
+}

+ 218 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/manager/ManagerUserController.java

@@ -0,0 +1,218 @@
+package com.fdkankan.platform.user.controller.manager;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.platform.user.entity.IncrementLog;
+import com.fdkankan.platform.user.entity.Manager;
+import com.fdkankan.platform.user.entity.ReceiverInfo;
+import com.fdkankan.platform.user.request.RequestIncrement;
+import com.fdkankan.platform.user.request.RequestManager;
+import com.fdkankan.platform.user.request.RequestUser;
+import com.fdkankan.platform.user.request.RequestUserIncrement;
+import com.fdkankan.platform.user.service.*;
+import com.fdkankan.platform.user.vo.ResponseUser;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 后台管理-用户接口
+ */
+@Log4j2
+@RestController
+@RequestMapping("/api/manager/user")
+public class ManagerUserController extends BaseController {
+
+    @Autowired
+    private IManagerService managerService;
+
+    @Autowired
+    private IUserService userService;
+    @Autowired
+    private UserSceneService userSceneService;
+
+    @Autowired
+    private IUserIncrementService userIncrementService;
+    @Autowired
+    private IIncrementLogService incrementLogService;
+
+    @Autowired
+    private IReceiverInfoService receiverInfoService;
+
+    /**
+     * 查询用户列表
+     * startDate        开始时间
+     * endDate          结束时间
+     * searchKey        关键词
+     * pageNum          分页
+     * pageSize         每页大小
+     */
+    @RequestMapping(value = {"/list"}, method = RequestMethod.POST)
+    public Page<ResponseUser> list(@RequestBody RequestUser param) throws Exception {
+        return userService.getPageByParam(param);
+    }
+
+
+    /**
+     * 更新发言权限
+     * userId         用户id
+     * status         0-禁言, 1-正常
+     */
+    @RequestMapping(value = {"/updateStatus"}, method = RequestMethod.POST)
+    public String updateStatus(@RequestBody RequestUser param) throws Exception {
+        return userService.updateStatus(param.getUserId(), param.getStatus());
+    }
+
+    /**
+     * 客户后台管理账号列表
+     * @return
+     */
+    @RequestMapping(value = {"/managerList"}, method = RequestMethod.POST)
+    public List<Manager> managerList() throws Exception {
+        return managerService.managerList();
+    }
+
+    /**
+     * 追溯后台管理修改密码
+     * userName     手机号
+     * password     密码
+     */
+    @RequestMapping(value = "/companyUpdatePassword", method = RequestMethod.POST)
+    public String companyUpdatePassword(@RequestBody RequestManager param) throws Exception {
+        return managerService.companyUpdatePassword(param,getToken());
+    }
+
+    /**
+     * 新增管理后台用户
+     * agentFrameworkId     所属架构id
+     * managerRoleId        角色id
+     * userName             用户账号(手机号)
+     * nickname             用户姓名
+     */
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    public String save(@RequestBody RequestManager param) throws Exception{
+        return  managerService.saveManager(param);
+    }
+
+    /**
+     * 修改管理后台用户
+     * id                   管理后台用户id
+     * agentFrameworkId     所属架构id
+     * managerRoleId        角色id
+     * userName             用户账号(手机号)
+     * nickname             用户姓名
+     */
+    @RequestMapping(value = "/update", method = RequestMethod.POST)
+    public String update(@RequestBody RequestManager param) throws Exception{
+        return  managerService.updateManager(param);
+    }
+
+    /**
+     * 修改管理后台用户的密码
+     * id               管理后台用户id
+     * password         原来密码
+     * newPassword      新密码
+     * confirmPwd       二次确认密码
+     */
+    @RequestMapping(value = "/updatePassword", method = RequestMethod.POST)
+    public String updatePassword(@RequestBody RequestManager param) throws Exception{
+        return  managerService.updatePassword(param);
+    }
+
+    /**
+     * 删除管理后台用户
+     * id       管理后台用户id
+     */
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    public String delete(@RequestBody RequestManager param) throws Exception{
+        return  managerService.deleteManager(param);
+    }
+
+    /**
+     * 重置管理后台用户密码
+     * id       管理后台用户id
+     */
+    @RequestMapping(value = "/restPassword", method = RequestMethod.POST)
+    public String restPassword(@RequestBody RequestManager param) throws Exception{
+        return  managerService.restPassword(param);
+    }
+
+    /**
+     * 查询用户列表--新接口
+     * userName
+     * nickname
+     * agentFrameworkId
+     * managerRoleId
+     * @return
+     */
+    @RequestMapping(value = {"/listNew"}, method = RequestMethod.POST)
+    public Page<Manager> listNew(@RequestBody RequestManager param) throws Exception {
+        return  managerService.listNew(param);
+    }
+
+    /**
+     * 可以为客户账号单独新增会员权益的,每次调用就增加1个权益数量,和增加10个下载次数
+     * 会员权益 增加1个权益、10个下载
+     */
+    @RequestMapping(value = "/insertIncrementls", method = RequestMethod.POST)
+    public String insertIncrementls(@RequestBody RequestUserIncrement param) throws Exception{
+        return  userIncrementService.insertIncrementls(param,getToken());
+    }
+
+    /**
+     * 查询用户列表   查询权益操作历史
+     * @return
+     */
+    @RequestMapping(value = {"/incrementlist"}, method = RequestMethod.POST)
+    public Page<IncrementLog> list(@RequestBody RequestIncrement param) throws Exception {
+        return incrementLogService.getPageByStatusAndNum(param);
+    }
+
+
+    /**
+     * 校验该场景有无下载资格
+     * isTiles   是否下载tiles图
+     * sceneNum  大场景序号
+     * @return
+     */
+    @RequestMapping(value = "/checkDownload", method = RequestMethod.POST)
+    public Map<String, Object> checkDownload(@RequestBody RequestUser param) throws Exception{
+        return userSceneService.checkDownload(param);
+    }
+
+    /**
+     * 校验该场景有无下载资格
+     * isTiles   是否下载tiles图
+     * sceneNum  大场景序号
+     * @return
+     */
+    @RequestMapping(value = "/downloadScene", method = RequestMethod.POST)
+    public Map<String, Object> downloadScene(@RequestBody RequestUser param) throws Exception{
+        return userSceneService.downloadSceneAdmin(param, getToken());
+    }
+
+    /**
+     * 获取下载进度
+     * sceneNum     大场景序号
+     * @return
+     */
+    @RequestMapping(value = "/downloadProcess", method = RequestMethod.POST)
+    public JSONObject downloadProcess(@RequestBody RequestUser param) throws Exception{
+        return userSceneService.getSceneDownloadProcessAdmin(param.getSceneNum());
+    }
+
+    /**
+     * 获取用户默认地址
+     */
+    @RequestMapping(value = "/receiverinfo", method = RequestMethod.POST)
+    public ReceiverInfo receiverinfo(@RequestBody RequestUser param) throws Exception{
+        return receiverInfoService.findDefaultByUserId(param.getUserId());
+    }
+}

+ 99 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/entity/IncrementLog.java

@@ -0,0 +1,99 @@
+package com.fdkankan.platform.user.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-18
+ */
+@Getter
+@Setter
+@TableName("tm_increment_log")
+public class IncrementLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 用户名
+     */
+    @TableField("user_name")
+    private Long userName;
+
+    /**
+     * 状态,1-下载,2-添加权益
+     */
+    @TableField("type")
+    private String type;
+
+    /**
+     * 增加权益次数
+     */
+    @TableField("increment_num")
+    private Integer incrementNum;
+
+    /**
+     * 增加下载次数
+     */
+    @TableField("download_num")
+    private Integer downloadNum;
+
+    /**
+     * 新增会员权益结束时间
+     */
+    @TableField("increment_endtime")
+    private Date incrementEndtime;
+
+    /**
+     * 场景码
+     */
+    @TableField("scene_num")
+    private String sceneNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 操作人
+     */
+    @TableField("operate_uesr")
+    private String operateUesr;
+
+    @TableField("tb_status")
+    @TableLogic(value="0",delval = "1")
+    private Integer tbStatus;
+
+
+}

+ 1 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/entity/Manager.java

@@ -16,6 +16,7 @@ import java.util.Date;
  */
 @Getter
 @Setter
+@NoArgsConstructor
 @RequiredArgsConstructor
 @TableName("t_manager")
 public class Manager implements Serializable {

+ 18 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/mapper/IIncrementLogMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.platform.user.mapper;
+
+import com.fdkankan.platform.user.entity.IncrementLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-18
+ */
+@Mapper
+public interface IIncrementLogMapper extends BaseMapper<IncrementLog> {
+
+}

+ 8 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/mapper/IUserMapper.java

@@ -2,7 +2,12 @@ package com.fdkankan.platform.user.mapper;
 
 import com.fdkankan.platform.user.entity.User;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.platform.user.request.RequestUser;
+import com.fdkankan.platform.user.vo.ResponseUser;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -15,4 +20,7 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface IUserMapper extends BaseMapper<User> {
 
+    Integer getCountByParam(@Param("param") RequestUser param);
+
+    List<ResponseUser> getListByParam(@Param("param")RequestUser param, @Param("start")Integer start, @Param("pageSize")Integer pageSize, @Param("orderBy")String orderBy);
 }

+ 16 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestIncrement.java

@@ -0,0 +1,16 @@
+package com.fdkankan.platform.user.request;
+
+import com.fdkankan.common.request.RequestBase;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class RequestIncrement extends RequestBase implements Serializable {
+
+    private String startDate;
+
+    private String endDate;
+
+    private String searchKey;
+}

+ 2 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestOrder.java

@@ -28,4 +28,6 @@ public class RequestOrder extends RequestBase implements Serializable {
 
     private String expressNum;
 
+    private String tradeNum;
+
 }

+ 19 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IIncrementLogService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.platform.user.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.platform.user.entity.IncrementLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.platform.user.request.RequestIncrement;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-18
+ */
+public interface IIncrementLogService extends IService<IncrementLog> {
+
+    Page<IncrementLog> getPageByStatusAndNum(RequestIncrement param);
+}

+ 19 - 3
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IManagerService.java

@@ -4,9 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.platform.user.entity.Manager;
-import com.fdkankan.platform.user.request.RequestCamera;
-import com.fdkankan.platform.user.request.RequestInvoice;
-import com.fdkankan.platform.user.request.RequestTrade;
+import com.fdkankan.platform.user.request.*;
 import com.fdkankan.platform.user.vo.ResponseInvoice;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -46,4 +44,22 @@ public interface IManagerService extends IService<Manager> {
     String sendEInvoice(Long invoiceId, String remarks, String filePath) throws Exception;
 
     void exportInvoiceList(RequestTrade param, HttpServletRequest request, HttpServletResponse response) throws Exception;
+
+    void export(RequestOrder param, HttpServletRequest request, HttpServletResponse response) throws Exception;
+
+    List<Manager> managerList();
+
+    String companyUpdatePassword(RequestManager param, String token);
+
+    String saveManager(RequestManager param);
+
+    String updateManager(RequestManager param);
+
+    String updatePassword(RequestManager param);
+
+    String deleteManager(RequestManager param);
+
+    String restPassword(RequestManager param);
+
+    Page<Manager> listNew(RequestManager param);
 }

+ 2 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IReceiverInfoService.java

@@ -23,4 +23,6 @@ public interface IReceiverInfoService extends IService<ReceiverInfo> {
     String updateDefaultAddress(RequestUser param, Long userId);
 
     List<ReceiverInfo> getListByUserId(Long id);
+
+    ReceiverInfo findDefaultByUserId(Long userId);
 }

+ 2 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IUserIncrementService.java

@@ -36,4 +36,6 @@ public interface IUserIncrementService extends IService<UserIncrement> {
     Page<ResponseUserIncrement> findIncrementList(RequestUserIncrement param, String token);
 
     ResponseUserIncrement findById(RequestUserIncrement param, String token);
+
+    String insertIncrementls(RequestUserIncrement param,String token) ;
 }

+ 5 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IUserService.java

@@ -39,6 +39,7 @@ public interface IUserService extends IService<User> {
     SSOUserVo getUserInfoByUser(Integer cameraType, User dbUser, String token);
 
     ResponseUser getUserInfoByParam(RequestUser user, String token);
+    
     ResponseUser getUserInfoBySsoUserVo(SSOUserVo ssoUserVo) ;
 
     String uploadHead(RequestUser user,String token)throws Exception;
@@ -84,4 +85,8 @@ public interface IUserService extends IService<User> {
     SSOUser getByNickName(String nickName);
 
     String getNickNameByUserId(Long userId);
+
+    Page<ResponseUser> getPageByParam(RequestUser param);
+
+    String updateStatus(Long userId, int status);
 }

+ 89 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/UserSceneService.java

@@ -0,0 +1,89 @@
+package com.fdkankan.platform.user.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.platform.common.DownloadStatusEnum;
+import com.fdkankan.platform.user.request.RequestUser;
+import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.util.RedisUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+public class UserSceneService {
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    public Map<String, Object> checkDownload(RequestUser param) {
+        if(StringUtils.isEmpty(param.getSceneNum())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Map<String, Object> result = new HashMap<>();
+        //todo
+        return result;
+    }
+
+    public Map<String, Object> downloadSceneAdmin(RequestUser param, String token) {
+        if(StringUtils.isEmpty(param.getSceneNum())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+
+//        ScenePro sceneProEntity = sceneService.findProBySceneNum(param.getSceneNum());
+//        if(sceneProEntity == null){
+//            throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
+//        }
+//
+//        SceneProEditEntity sceneProEditEntity = sceneProEditService.findByProId(sceneProEntity.getId());
+//        if(sceneProEditEntity == null){
+//            throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
+//        }
+        //todo findProBySceneNum  findByProId
+        Map<String, Object> result = new HashMap<>();
+
+        result.put("downloadStatus", 1);
+
+        // 存储redis 开始下载任务
+        Map<String,String> params = new HashMap<>(2);
+        params.put("sceneNum",param.getSceneNum());
+        params.put("type","local");
+        redisUtil.set(RedisKey.DOWNLOAD_TASK,JSONObject.toJSONString(params));
+        return result;
+    }
+
+    public JSONObject getSceneDownloadProcessAdmin(String sceneNum) throws Exception {
+        if (StringUtils.isEmpty(sceneNum)) {
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        // 获取下载进度
+        String processStr = redisUtil.get(RedisKey.PREFIX_DOWNLOAD_PROGRESS.concat(sceneNum));
+        if (StringUtils.isEmpty(processStr)) {
+            Map<String, Object> result = new HashMap<>(1);
+            JSONObject object = new JSONObject();
+            object.put("status", 1000);
+            object.put("url", "");
+            object.put("percent", 0);
+            return object;
+        }
+        JSONObject process = JSONObject.parseObject(processStr);
+        switch (process.getInteger("status")) {
+            case DownloadStatusEnum.DOWNLOAD_SUCCESS_CODE:
+                String url = process.getString("url");
+                if (!StringUtils.isEmpty(url)) {
+                    break;
+                }
+                process.put("status", DownloadStatusEnum.DOWNLOAD_FAILED_CODE);
+            case DownloadStatusEnum.DOWNLOAD_FAILED_CODE:
+                break;
+        }
+        return process;
+    }
+
+
+
+}

+ 37 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/IncrementLogServiceImpl.java

@@ -0,0 +1,37 @@
+package com.fdkankan.platform.user.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.platform.user.entity.IncrementLog;
+import com.fdkankan.platform.user.mapper.IIncrementLogMapper;
+import com.fdkankan.platform.user.request.RequestIncrement;
+import com.fdkankan.platform.user.service.IIncrementLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-18
+ */
+@Service
+public class IncrementLogServiceImpl extends ServiceImpl<IIncrementLogMapper, IncrementLog> implements IIncrementLogService {
+
+    @Override
+    public Page<IncrementLog> getPageByStatusAndNum(RequestIncrement param) {
+        LambdaQueryWrapper<IncrementLog> queryWrapper = new LambdaQueryWrapper<>();
+
+        if(StringUtils.isNotEmpty(param.getStartDate()) && StringUtils.isNotEmpty(param.getEndDate())){
+            queryWrapper.between(IncrementLog::getCreateTime,param.getStartDate(),param.getEndDate());
+        }
+        if(StringUtils.isNotEmpty(param.getSearchKey())){
+            queryWrapper.like(IncrementLog::getOperateUesr,param.getSearchKey());
+        }
+        queryWrapper.orderByDesc(IncrementLog::getId);
+        return this.page(new Page<>(param.getPageNum(),param.getPageSize()),queryWrapper);
+    }
+}

+ 247 - 9
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/ManagerServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fdkankan.platform.user.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -8,29 +9,30 @@ import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.exception.BusinessException;
-import com.fdkankan.common.util.DateUtil;
-import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.common.util.*;
 import com.fdkankan.platform.common.ConstantExcel;
 import com.fdkankan.platform.common.ExcelUtil;
 import com.fdkankan.platform.common.LogFactory;
 import com.fdkankan.platform.goods.service.ICameraDetailService;
+import com.fdkankan.platform.goods.service.ICompanyService;
+import com.fdkankan.platform.order.constant.OrderEnum;
 import com.fdkankan.platform.order.entity.*;
 import com.fdkankan.platform.order.service.*;
 import com.fdkankan.platform.user.entity.Manager;
 import com.fdkankan.platform.user.entity.ReceiverInfo;
 import com.fdkankan.platform.user.entity.User;
 import com.fdkankan.platform.user.mapper.IManagerMapper;
-import com.fdkankan.platform.user.request.RequestCamera;
-import com.fdkankan.platform.user.request.RequestInvoice;
-import com.fdkankan.platform.user.request.RequestTrade;
+import com.fdkankan.platform.user.request.*;
 import com.fdkankan.platform.user.service.IManagerService;
 import com.fdkankan.platform.user.service.IReceiverInfoService;
 import com.fdkankan.platform.user.service.IUserService;
 import com.fdkankan.platform.user.vo.*;
 import com.fdkankan.sms.SendMailAcceUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
@@ -38,10 +40,9 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 import static com.fdkankan.platform.common.ExcelUtil.output;
 
@@ -74,6 +75,10 @@ public class ManagerServiceImpl extends ServiceImpl<IManagerMapper, Manager> imp
     private IReceiverInfoService iReceiverInfoService;
     @Autowired
     private IUserService userService;
+    @Autowired
+    private ITradeLogService tradeLogService;
+    @Autowired
+    private ICompanyService companyService;
 
     QueryWrapper<Manager> queryWrapper;
 
@@ -722,6 +727,81 @@ public class ManagerServiceImpl extends ServiceImpl<IManagerMapper, Manager> imp
 
         ExcelUtil.writeExcel(dataList, ConstantExcel.INVOICEEXCELCOLENNAME2.length, FileUtils.getResource() + fileName + ".xls", 6);
 
+        outXls(request,response,fileName,file);
+    }
+    @Override
+    public void export(RequestOrder param, HttpServletRequest request, HttpServletResponse response) throws Exception {
+        List<ResponseOrder> orders = orderService.getPageVoByParam(param).getRecords();
+        List<Map> dataList = new ArrayList<Map>();
+        int serNum = 1;
+        for (int i = 0; i < orders.size(); ++i) {
+            ResponseOrder order = orders.get(i);
+            Map<String, String> item = new HashMap();
+            String num = order.getOrderSn();
+            if (order.getPaymentStatus().equals(OrderEnum.PaymentStatus.unpaid.name())) { //未支付
+                item.put(ConstantExcel.ORDEREXCELCOLENNAME[0], String.valueOf(serNum));
+                item.put(ConstantExcel.ORDEREXCELCOLENNAME[1], "");
+            } else {
+                TradeLog trade = tradeLogService.getByOrderSn(order.getOrderSn());
+                if (trade != null) {
+                    if (trade.getPayStatus() != 1) {
+                        //未支付
+                        item.put(ConstantExcel.ORDEREXCELCOLENNAME[0], String.valueOf(serNum));
+                        item.put(ConstantExcel.ORDEREXCELCOLENNAME[1], "");
+                    } else {
+                        //支付成功
+                        item.put(ConstantExcel.ORDEREXCELCOLENNAME[0], String.valueOf(serNum));
+                        if(!ObjectUtils.isEmpty(trade.getTradeTime())){
+                            item.put(ConstantExcel.ORDEREXCELCOLENNAME[1], new SimpleDateFormat("yyyyMMddhhmmss").format(trade.getTradeTime()));
+                        }
+                    }
+                } else {
+                    continue;
+                }
+            }
+
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[2], order.getOrderSn());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[3], order.getUserName());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[4], String.valueOf(order.getTotalAmount()));
+            if (order.getPaymentTypeName() == -1) {
+                item.put(ConstantExcel.ORDEREXCELCOLENNAME[5], "未支付");
+            } else {
+                item.put(ConstantExcel.ORDEREXCELCOLENNAME[5], ConstantExcel.PAYFORM[order.getPaymentTypeName()]);
+            }
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[6], order.getShipAddress());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[7], order.getShipMobile());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[8], order.getShipName());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[9], ConstantExcel.getOrderStatus(order.getOrderStatus()));
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[10], ConstantExcel.getPaymentStatus(order.getPaymentStatus()));
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[11], ConstantExcel.getShippingStatus(order.getShippingStatus()));
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[12], order.getTradeNum());
+
+            Invoice invoice = invoiceService.getByOrderId(order.getId());
+            if (invoice == null) {
+                continue;
+            }
+            int type = invoice.getType();
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[13], ConstantExcel.INVOICE[type - 1]);
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[14], invoice.getTitle());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[15], invoice.getCode());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[16], invoice.getOrganizedAddress());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[17], invoice.getRegisterPhone());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[18], invoice.getBankName());
+            item.put(ConstantExcel.ORDEREXCELCOLENNAME[19], invoice.getBankAccount());
+            ++serNum;
+            dataList.add(item);
+        }
+        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String dateStr = dateFormat.format(new Date());
+        String fileName = dateStr + ".xls";
+        File file = new File(FileUtils.getResource() + dateStr + ".xls");
+
+        ExcelUtil.writeExcel(dataList, 20, FileUtils.getResource() + dateStr + ".xls", 1);
+
+        outXls(request,response,fileName,file);
+    }
+
+    private void outXls(HttpServletRequest request,HttpServletResponse response,String fileName,File file) throws Exception{
         String agent = request.getHeader("User-Agent");
         if (agent != null && (agent.contains("MSIE")||agent.contains("Trident"))) {
             fileName = URLEncoder.encode(fileName, "UTF-8");
@@ -734,4 +814,162 @@ public class ManagerServiceImpl extends ServiceImpl<IManagerMapper, Manager> imp
         response.setContentLength((int) file.length());
         output(response, file);
     }
+
+    @Override
+    public List<Manager> managerList() {
+        List<Long> ids = companyService.getManagerId();
+        LambdaQueryWrapper<Manager> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Manager::getIsCompany,1).eq(Manager::getRecStatus,"A");
+        if(ids!=null || ids.size()>0){
+            queryWrapper.notIn(Manager::getId,ids);
+        }
+        return  this.list(queryWrapper);
+    }
+
+    @Override
+    public String companyUpdatePassword(RequestManager param, String token) {
+        String userName = JwtUtil.getUsername(token);
+
+        Manager managerEntity = this.getByUserName(userName.replace(SsoUtil.PREFIX_CACHE_MANAGER, ""));
+        if (managerEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_LOGIN);
+        }
+
+        if(managerEntity.getIsCompany() != 1){
+            throw new BusinessException(ErrorCode.NOT_PERMISSION);
+        }
+
+        //对前端传的密码解密
+        String password = Base64Converter.decode(Base64Converter.subText(param.getPassword()));
+        param.setPassword(password);
+
+        String encryptPwd = PasswordUtils.encrypt(param.getUserName(), param.getPassword(), PasswordUtils.getStaticSalt());
+        if (!encryptPwd.equals(managerEntity.getPassword())){
+            throw new BusinessException(ErrorCode.PASSWORD_ERROR);
+        }
+
+        if(!param.getNewPassword().equals(param.getConfirmPwd())){
+            throw new BusinessException(ErrorCode.PASSWORD_TWO_VIOLATION);
+        }
+
+        String newPassword = Base64Converter.decode(Base64Converter.subText(param.getNewPassword()));
+        param.setNewPassword(newPassword);
+        managerEntity.setPassword(PasswordUtils.encrypt(param.getUserName(), param.getNewPassword(), PasswordUtils.getStaticSalt()));
+        this.updateById(managerEntity);
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public String saveManager(RequestManager param) {
+        if(StringUtils.isEmpty(param.getUserName()) || StringUtils.isEmpty(param.getNickname()) ||
+                param.getAgentFrameworkId() == null || param.getManagerRoleId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+
+        Manager managerEntity = this.getByUserName(param.getUserName());
+        if(managerEntity != null){
+            throw new BusinessException(ErrorCode.PHONE_EXIST);
+        }
+
+        managerEntity = new Manager();
+        BeanUtils.copyProperties(param, managerEntity);
+        managerEntity.setPassword(PasswordUtils.encrypt(param.getUserName(), "4dkankan", PasswordUtils.getStaticSalt()));
+        this.save(managerEntity);
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public String updateManager(RequestManager param) {
+        if(StringUtils.isEmpty(param.getUserName()) || StringUtils.isEmpty(param.getNickname()) ||
+                param.getAgentFrameworkId() == null || param.getManagerRoleId() == null || param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+
+        Manager managerEntity = this.getByUserName(param.getUserName());
+        if(managerEntity != null && managerEntity.getId() != param.getId()){
+            throw new BusinessException(ErrorCode.PHONE_EXIST);
+        }
+
+        managerEntity = new Manager();
+        BeanUtils.copyProperties(param, managerEntity);
+        this.updateById(managerEntity);
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public String updatePassword(RequestManager param) {
+        if(StringUtils.isEmpty(param.getPassword()) || StringUtils.isEmpty(param.getNewPassword()) ||
+                StringUtils.isEmpty(param.getConfirmPwd()) || param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+
+        Manager managerEntity = this.getById(param.getId());
+        if(managerEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+
+        String encryptPwd = PasswordUtils.encrypt(param.getUserName(), param.getPassword(), PasswordUtils.getStaticSalt());
+        if (!encryptPwd.equals(managerEntity.getPassword())){
+            throw new BusinessException(ErrorCode.PASSWORD_ERROR);
+        }
+
+        if(!param.getNewPassword().equals(param.getConfirmPwd())){
+            throw new BusinessException(ErrorCode.PASSWORD_TWO_VIOLATION);
+        }
+
+        managerEntity.setPassword(PasswordUtils.encrypt(param.getUserName(), param.getNewPassword(), PasswordUtils.getStaticSalt()));
+        this.updateById(managerEntity);
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public String deleteManager(RequestManager param) {
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Manager managerEntity = this.getById(param.getId());
+        if(managerEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        managerEntity.setRecStatus("I");
+        this.updateById(managerEntity);
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public String restPassword(RequestManager param) {
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Manager managerEntity = this.getById(param.getId());
+        if(managerEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        managerEntity.setPassword(PasswordUtils.encrypt(param.getUserName(), "4dkankan", PasswordUtils.getStaticSalt()));
+        this.updateById(managerEntity);
+        return ServerCode.SUCCESS.message();
+    }
+
+    @Override
+    public Page<Manager> listNew(RequestManager param) {
+        LambdaQueryWrapper<Manager> queryWrapper = new LambdaQueryWrapper<>();
+        if(StringUtils.isNotEmpty(param.getUserName())){
+            queryWrapper.like(Manager::getUsername,param.getUserName());
+        }
+        if(StringUtils.isNotEmpty(param.getNickname())){
+            queryWrapper.like(Manager::getNickname,param.getNickname());
+        }
+        if(param.getAgentFrameworkId() != null){
+            queryWrapper.eq(Manager::getAgentFrameworkId,param.getAgentFrameworkId());
+        }
+        if(param.getManagerRoleId() != null){
+            queryWrapper.eq(Manager::getManagerRoleId,param.getManagerRoleId());
+        }
+        Page<Manager> page = new Page<>(param.getPageNum(),param.getPageSize());
+        Page<Manager> pageResult = this.page(page, queryWrapper);
+        for (Manager record : pageResult.getRecords()) {
+            record.setPassword(null);
+        }
+        return pageResult;
+    }
 }

+ 12 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/ReceiverInfoServiceImpl.java

@@ -88,4 +88,16 @@ public class ReceiverInfoServiceImpl extends ServiceImpl<IReceiverInfoMapper, Re
         queryWrapper.lambda().eq(ReceiverInfo::getUserId,userId);
         return this.list(queryWrapper);
     }
+
+    @Override
+    public ReceiverInfo findDefaultByUserId(Long userId) {
+        QueryWrapper<ReceiverInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ReceiverInfo::getRecStatus,"A");
+        queryWrapper.lambda().eq(ReceiverInfo::getSetDefault,1);
+        List<ReceiverInfo> list = this.list(queryWrapper);
+        if(list == null || list.size()<=0){
+            return null;
+        }
+        return list.get(0);
+    }
 }

+ 60 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserIncrementServiceImpl.java

@@ -7,15 +7,19 @@ import com.fdkankan.common.constant.CameraConstant;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.common.util.DateUtil;
+import com.fdkankan.common.util.JwtUtil;
 import com.fdkankan.platform.goods.entity.Camera;
 import com.fdkankan.platform.goods.entity.CameraDetail;
 import com.fdkankan.platform.goods.service.ICameraDetailService;
 import com.fdkankan.platform.goods.service.ICameraService;
-import com.fdkankan.common.user.SSOUser;
+import com.fdkankan.platform.user.entity.IncrementLog;
+import com.fdkankan.platform.user.entity.User;
 import com.fdkankan.platform.user.entity.UserIncrement;
 import com.fdkankan.platform.user.mapper.IUserIncrementMapper;
 import com.fdkankan.platform.user.request.RequestUserIncrement;
+import com.fdkankan.platform.user.service.IIncrementLogService;
 import com.fdkankan.platform.user.service.IUserIncrementService;
 import com.fdkankan.platform.user.service.IUserService;
 import com.fdkankan.platform.user.vo.ResponseUserIncrement;
@@ -27,7 +31,9 @@ import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 /**
@@ -49,6 +55,8 @@ public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper,
     private IUserService userService;
     @Autowired
     private ICameraService cameraService;
+    @Autowired
+    private IIncrementLogService incrementLogService;
 
     @Override
     public Integer getCountByUserId(Long userId, int status) {
@@ -225,4 +233,55 @@ public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper,
         responseUserIncrement.setCreateStr(DateUtil.date2String(responseUserIncrement.getCreateTime(), DateUtil.YYYY_MM_DD_DATE_FORMAT));
         return responseUserIncrement;
     }
+
+    @Override
+    public String insertIncrementls(RequestUserIncrement param,String token) {
+        String managerName = JwtUtil.getUsername(token);
+        if(StringUtils.isEmpty(param.getUserName())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        IncrementLog tmIncrementLogEntity = new IncrementLog();
+        //获取用户id
+        User userEntity = userService.getUserByUserName(param.getUserName());
+        if(userEntity==null || userEntity.getId()==null || "I".equals(userEntity.getRecStatus())){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        if(param.getIncrementNum()!=null && param.getIncrementNum()>0 && param.getIncrementEndTime() != null){
+            tmIncrementLogEntity.setType("2");
+            for(int i=1;i<=param.getIncrementNum();i++){
+                //增加一条会员权益
+                UserIncrement userIncrementEntity = new UserIncrement();
+                userIncrementEntity.setKeyWord(UUID.randomUUID().toString().replace("-", ""));
+                userIncrementEntity.setUserId(userEntity.getId());
+                userIncrementEntity.setIncrementStartTime(new Date());
+                userIncrementEntity.setIncrementEndTime(param.getIncrementEndTime());
+                userIncrementEntity.setIsExpired(0);
+                this.save(userIncrementEntity);
+                userEntity.setDownloadNumTotal(userEntity.getDownloadNumTotal() + 10);
+                userService.updateById(userEntity);
+
+            }
+            tmIncrementLogEntity.setDownloadNum(10 * param.getIncrementNum());
+        }
+        if(param.getDownloadNum()!=null && param.getDownloadNum() > 0){
+            //增加下载次数
+            userEntity.setDownloadNumTotal(userEntity.getDownloadNumTotal() + param.getDownloadNum());
+            userService.updateById(userEntity);
+            tmIncrementLogEntity.setType("3");
+            tmIncrementLogEntity.setDownloadNum(param.getDownloadNum());
+        }
+
+        //操作记录log
+        managerName = managerName.substring(managerName.indexOf(":")+1,managerName.length());
+        tmIncrementLogEntity.setUserId(userEntity.getId());
+        tmIncrementLogEntity.setUserName(Long.valueOf(userEntity.getUserName()));
+        tmIncrementLogEntity.setOperateUesr(managerName);
+        tmIncrementLogEntity.setIncrementNum(param.getIncrementNum() == null ? 0:param.getIncrementNum());
+
+        if(param.getIncrementEndTime()!=null){
+            tmIncrementLogEntity.setIncrementEndtime(param.getIncrementEndTime());
+        }
+        incrementLogService.save(tmIncrementLogEntity);
+        return ServerCode.SUCCESS.message();
+    }
 }

+ 30 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserServiceImpl.java

@@ -3,6 +3,7 @@ package com.fdkankan.platform.user.service.impl;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.*;
@@ -39,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.io.File;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -70,6 +72,8 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
     private ICameraDetailService cameraDetailService;
     @Autowired
     RedisUtil redisUtil;
+    @Resource
+    private IUserMapper userMapper;
 
     @Override
     public String register(RequestUser user) {
@@ -504,4 +508,30 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
         redisUtil.set(key, nickName);
         return nickName;
     }
+
+    @Override
+    public Page<ResponseUser> getPageByParam(RequestUser param) {
+        Page<ResponseUser> pageVo = new Page<>(param.getPageNum(), param.getPageSize());
+        Integer start = (param.getPageNum() -1 )* param.getPageSize();
+        Integer count = userMapper.getCountByParam(param);
+        if(count <= 0){
+            return pageVo;
+        }
+        List<ResponseUser> result = userMapper.getListByParam(param,
+                start,param.getPageSize(),"u.register_time desc");
+        pageVo.setTotal(count);
+        pageVo.setRecords(result);
+        return pageVo;
+    }
+
+    @Override
+    public String updateStatus(Long userId, int status) {
+        LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(User::getStatus,status)
+                .eq(User::getId,userId);
+        if(!this.update(updateWrapper)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
 }

+ 86 - 0
4dkankan-center-platform/src/main/resources/mapper/order/OrderMapper.xml

@@ -2,4 +2,90 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.platform.order.mapper.IOrderMapper">
 
+
+    <select id="getListByParam" resultType="com.fdkankan.platform.user.vo.ResponseOrder">
+        SELECT o.*, u.user_name FROM  t_order o
+        LEFT JOIN t_user u on o.user_id = u.id
+        <if test=" param.expressNum != null and param.expressNum !='' " >
+            LEFT JOIN t_order_item oi on oi.order_id = o.id
+        </if>
+        where o.rec_status = 'A'
+        <if test=" param.phoneNum != null and param.phoneNum !='' " >
+            and u.user_name like concat('%',#{param.phoneNum},'%')
+        </if>
+        <if test=" param.expressNum != null and param.expressNum !='' " >
+            and oi.express_num like concat('%',#{param.expressNum},'%')
+        </if>
+        <if test=" param.orderSn != null and param.orderSn !='' " >
+            and o.orderSn like concat('%',#{param.orderSn},'%')
+        </if>
+        <if test=" param.tradeNum != null and param.tradeNum !='' " >
+            and o.tradeNum like concat('%',#{param.tradeNum},'%')
+        </if>
+        <if test="param.startDate != null and param.startDate !='' " >
+            and o.order_time &gt;= ${param.startDate} '00:00:00'
+        </if>
+        <if test=" param.endDate != null and param.endDate !='' " >
+            and o.order_time &lt;= ${param.endDate} '23:59:59'
+        </if>
+        <if test=" param.type != null and param.type !='' and param.type == 0" >
+            and o.payment_status = 'unpaid'
+        </if>
+        <if test=" param.type != null and param.type !='' and param.type == 1" >
+            and o.shipping_status = 'unshipped' and o.payment_status = 'paid'
+        </if>
+        <if test=" param.type != null and param.type !='' and param.type == 2" >
+            and o.shipping_status = 'shipped'
+        </if>
+        <if test=" param.type != null and param.type !='' and param.type == 3" >
+            and o.order_status = 'completed'
+        </if>
+
+        <if test="orderBy != null">
+            order by ${orderBy}
+        </if>
+        <if test="start != null and pageSize!=null">
+            limit ${start}, ${pageSize}
+        </if>
+    </select>
+
+
+    <select id="getCountByParam" resultType="integer">
+        SELECT count(*) FROM  t_order o
+        LEFT JOIN t_user u on o.user_id = u.id
+        <if test=" param.expressNum != null and param.expressNum !='' " >
+            LEFT JOIN t_order_item oi on oi.order_id = o.id
+        </if>
+        where o.rec_status = 'A'
+        <if test=" param.phoneNum != null and param.phoneNum !='' " >
+            and u.user_name like concat('%',#{param.phoneNum},'%')
+        </if>
+        <if test=" param.expressNum != null and param.expressNum !='' " >
+            and oi.express_num like concat('%',#{param.expressNum},'%')
+        </if>
+        <if test=" param.orderSn != null and param.orderSn !='' " >
+            and o.orderSn like concat('%',#{param.orderSn},'%')
+        </if>
+        <if test=" param.tradeNum != null and param.tradeNum !='' " >
+            and o.tradeNum like concat('%',#{param.tradeNum},'%')
+        </if>
+        <if test="param.startDate != null and param.startDate !='' " >
+            and o.order_time &gt;= ${param.startDate} '00:00:00'
+        </if>
+        <if test=" param.endDate != null and param.endDate !='' " >
+            and o.order_time &lt;= ${param.endDate} '23:59:59'
+        </if>
+        <if test=" param.type != null and param.type !='' and param.type == 0" >
+            and o.payment_status = 'unpaid'
+        </if>
+        <if test=" param.type != null and param.type !='' and param.type == 1" >
+            and o.shipping_status = 'unshipped' and o.payment_status = 'paid'
+        </if>
+        <if test=" param.type != null and param.type !='' and param.type == 2" >
+            and o.shipping_status = 'shipped'
+        </if>
+        <if test=" param.type != null and param.type !='' and param.type == 3" >
+            and o.order_status = 'completed'
+        </if>
+    </select>
 </mapper>

+ 58 - 0
4dkankan-center-platform/src/main/resources/mapper/order/VirtualOrderMapper.xml

@@ -64,4 +64,62 @@
             and o.camera_id = ${cameraId}
         </if>
     </select>
+
+    <select id="getListByParam" resultType="com.fdkankan.platform.user.vo.ResponseVirtualOrder">
+        SELECT o.* FROM t_virtual_order o
+        <if test=" param.searchKey != null and param.searchKey !='' " >
+            LEFT JOIN t_user u on o.user_id = u.id
+            LEFT JOIN t_camera c on o.camera_id = c.id
+        </if>
+        where o.rec_status = 'A' and o.pay_status = 1
+        <if test=" param.type != null and param.type =1 " >
+            and ((o.status = 0) or (o.status = 1) or (o.status = -2))
+        </if>
+        <if test=" param.type != null and param.type = 2 " >
+            and o.status = -1
+        </if>
+        <if test=" param.searchKey != null and param.searchKey !='' " >
+            and ((u.user_name like CONCAT('%',#{param.searchKey},'%')) or (c.child_name like CONCAT('%',#{param.searchKey},'%')) or (o.order_sn like CONCAT('%',#{param.searchKey},'%')))
+        </if>
+
+        <if test="param.startDate != null and param.startDate !='' " >
+            and o.trade_time &gt;= ${param.startDate} '00:00:00'
+        </if>
+        <if test=" param.endDate != null and param.endDate !='' " >
+            and o.trade_time &lt;= ${param.endDate} '23:59:59'
+        </if>
+
+        <if test="orderBy != null">
+            order by ${orderBy}
+        </if>
+        <if test="start != null and pageSize!=null">
+            limit ${start}, ${pageSize}
+        </if>
+    </select>
+
+
+    <select id="getCountByParam" resultType="integer">
+        SELECT count(*) FROM t_virtual_order o
+        <if test=" param.searchKey != null and param.searchKey !='' " >
+            LEFT JOIN t_user u on o.user_id = u.id
+            LEFT JOIN t_camera c on o.camera_id = c.id
+        </if>
+        where o.rec_status = 'A' and o.pay_status = 1
+        <if test=" param.type != null and param.type =1 " >
+            and ((o.status = 0) or (o.status = 1) or (o.status = -2))
+        </if>
+        <if test=" param.type != null and param.type = 2 " >
+            and o.status = -1
+        </if>
+        <if test=" param.searchKey != null and param.searchKey !='' " >
+            and ((u.user_name like CONCAT('%',#{param.searchKey},'%')) or (c.child_name like CONCAT('%',#{param.searchKey},'%')) or (o.order_sn like CONCAT('%',#{param.searchKey},'%')))
+        </if>
+
+        <if test="param.startDate != null and param.startDate !='' " >
+            and o.trade_time &gt;= ${param.startDate} '00:00:00'
+        </if>
+        <if test=" param.endDate != null and param.endDate !='' " >
+            and o.trade_time &lt;= ${param.endDate} '23:59:59'
+        </if>
+    </select>
 </mapper>

+ 5 - 0
4dkankan-center-platform/src/main/resources/mapper/user/IncrementLogMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.platform.user.mapper.IIncrementLogMapper">
+
+</mapper>

+ 34 - 0
4dkankan-center-platform/src/main/resources/mapper/user/UserMapper.xml

@@ -1,5 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.platform.user.mapper.IUserMapper">
+    <select id="getListByParam" resultType="com.fdkankan.platform.user.vo.ResponseUser">
+        SELECT u.id, u.nick_name, u.user_name, u.head, u.email, u.register_time, u.status, u.download_num_total, u.download_num,
+        (SELECT count(*) FROM t_user_increment where u.id = user_id and is_expired = 0) as increment_num
+        FROM t_user u
+        WHERE u.rec_status = 'A'
+        <if test=" param.searchKey != null and param.searchKey !='' " >
+            and u.user_name like concat('%',#{param.searchKey},'%')
+        </if>
+        <if test="param.startDate != null and param.startDate !='' " >
+            and  u.register_time &gt;= ${param.startDate} '00:00:00'
+        </if>
+        <if test=" param.endDate != null and param.endDate !='' " >
+            and  u.register_time &lt;= ${param.endDate} '23:59:59'
+        </if>
+        <if test="orderBy != null">
+            order by ${orderBy}
+        </if>
+        <if test="start != null and pageSize!=null">
+            limit ${start}, ${pageSize}
+        </if>
+    </select>
 
+
+    <select id="getCountByParam" resultType="integer">
+        SELECT count(*) FROM t_user u WHERE u.rec_status = 'A'
+        <if test=" param.searchKey != null and param.searchKey !='' " >
+            and u.user_name like concat('%',#{param.searchKey},'%')
+        </if>
+        <if test="param.startDate != null and param.startDate !='' " >
+            and  u.register_time &gt;= ${param.startDate} '00:00:00'
+        </if>
+        <if test=" param.endDate != null and param.endDate !='' " >
+            and  u.register_time &lt;= ${param.endDate} '23:59:59'
+        </if>
+    </select>
 </mapper>