Browse Source

添加job

yq 3 years ago
parent
commit
3e2c5cc62f

+ 15 - 3
src/main/java/com/usky/dxtop/controller/web/DeptController.java

@@ -1,9 +1,14 @@
 package com.usky.dxtop.controller.web;
 
 
+import com.usky.dxtop.common.core.domain.AjaxResult;
+import com.usky.dxtop.service.DeptService;
+import com.usky.dxtop.service.vo.StaffRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * <p>
@@ -13,9 +18,16 @@ import org.springframework.stereotype.Controller;
  * @author yq
  * @since 2021-09-28
  */
-@Controller
+@RestController
 @RequestMapping("/dxtop/dept")
 public class DeptController {
 
+    @Autowired
+    private DeptService deptService;
+
+    @PostMapping("page")
+    public AjaxResult page(@RequestBody StaffRequest staffRequest){
+        return AjaxResult.success(deptService.page(staffRequest));
+    }
 }
 

+ 51 - 10
src/main/java/com/usky/dxtop/controller/web/StaffController.java

@@ -1,21 +1,62 @@
 package com.usky.dxtop.controller.web;
 
+import com.usky.dxtop.common.core.domain.AjaxResult;
+import com.usky.dxtop.model.StaffRadio;
+import com.usky.dxtop.service.StaffRadioService;
+import com.usky.dxtop.service.StaffService;
+import com.usky.dxtop.service.vo.StaffRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.stereotype.Controller;
+import java.util.List;
 
 /**
- * <p>
- *  前端控制器
- * </p>
- *
  * @author yq
- * @since 2021-09-28
+ * @date 2021/9/23 13:34
  */
-@Controller
+@RestController
 @RequestMapping("/dxtop/staff")
 public class StaffController {
 
-}
+    @Autowired
+    private StaffRadioService staffRadioService;
+
+    @Autowired
+    private StaffService staffService;
+
+    /**
+     *
+     * @return
+     */
+    @RequestMapping("count")
+    public AjaxResult count(){
+        return AjaxResult.success(staffService.count());
+    }
+
 
+    /**
+     * 批量新增
+     * @param list
+     * @return
+     */
+    @PostMapping()
+    public AjaxResult addList(@RequestBody List<StaffRadio> list){
+        staffRadioService.addList(list);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 人员比例
+     * @return
+     */
+    @GetMapping("staffRadio")
+    public AjaxResult staffRadio(){
+        return AjaxResult.success(staffRadioService.staffRadio());
+    }
+
+    @PostMapping("page")
+    public AjaxResult page(@RequestBody StaffRequest staffRequest){
+        return AjaxResult.success(staffService.page(staffRequest));
+    }
+
+}

+ 5 - 12
src/main/java/com/usky/dxtop/controller/web/TestController.java

@@ -1,12 +1,10 @@
 package com.usky.dxtop.controller.web;
 
-import com.alibaba.fastjson.JSONObject;
-import com.usky.dxtop.service.api.SmApi;
+import com.usky.dxtop.service.job.SmJob;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.TreeMap;
-
 /**
  * @author yq
  * @date 2021/9/28 15:39
@@ -14,16 +12,11 @@ import java.util.TreeMap;
 @RestController
 public class TestController {
 
+    @Autowired
+    private SmJob smJob;
 
     @RequestMapping("test")
     public void test(){
-        String personUrl = String.format("%s?page=%s&size=%s", SmApi.PERSON_URL, 1, 100);
-        TreeMap<String, Object> treeMap = SmApi.generatePersonParam(null, null, null, null);
-        System.out.println(personUrl);
-        System.out.println(JSONObject.toJSONString(treeMap));
-        System.out.println(SmApi.sign(treeMap));
-//        String s = HttpUtils.sendPost(personUrl, JSONObject.toJSONString(treeMap), SmApi.sign(treeMap));
-//        System.out.println(s);
-
+        smJob.personExecute();
     }
 }

+ 9 - 0
src/main/java/com/usky/dxtop/service/DeptService.java

@@ -2,7 +2,9 @@ package com.usky.dxtop.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.usky.dxtop.common.core.page.CommonPage;
 import com.usky.dxtop.model.Dept;
+import com.usky.dxtop.service.vo.StaffRequest;
 
 /**
  * <p>
@@ -14,4 +16,11 @@ import com.usky.dxtop.model.Dept;
  */
 public interface DeptService extends IService<Dept> {
 
+    /**
+     * 分页
+      * @param staffRequest
+     * @return
+     */
+    CommonPage<Dept> page(StaffRequest staffRequest);
+
 }

+ 5 - 0
src/main/java/com/usky/dxtop/service/StaffService.java

@@ -2,7 +2,9 @@ package com.usky.dxtop.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.usky.dxtop.common.core.page.CommonPage;
 import com.usky.dxtop.model.Staff;
+import com.usky.dxtop.service.vo.StaffRequest;
 
 /**
  * <p>
@@ -14,4 +16,7 @@ import com.usky.dxtop.model.Staff;
  */
 public interface StaffService extends IService<Staff> {
 
+
+    CommonPage<Staff> page(StaffRequest staffRequest);
+
 }

+ 5 - 8
src/main/java/com/usky/dxtop/service/api/SmApi.java

@@ -29,18 +29,15 @@ public class SmApi {
 
 
     public static Map<String,String> sign(TreeMap<String,Object> treeMap){
-        TreeMap<String,Object> signMap = new TreeMap<>();
-        signMap.put("timestamp",treeMap.get("timestamp"));
-        signMap.put("nonce", treeMap.get("nonce"));
-        signMap.put("key", KEY);
+        String[] objects = {treeMap.get("timestamp").toString(),treeMap.get("nonce").toString(),KEY};
+        Arrays.sort(objects);
         StringBuilder buf = new StringBuilder();
-        for (Map.Entry<String, Object> entry : signMap.entrySet()) {
-            buf.append(entry.getValue());
+        for (String s:objects) {
+            buf.append(s);
         }
-        System.out.println(signMap);
-        System.out.println(buf.toString());
         Map<String,String> head = new HashMap<>();
         head.put(SIGN_HEAD, Sha1.getSha1(buf.toString()));
+        head.put("Content-Type","application/json");
         return head;
     }
 

+ 17 - 0
src/main/java/com/usky/dxtop/service/impl/DeptServiceImpl.java

@@ -1,10 +1,17 @@
 package com.usky.dxtop.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+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.usky.dxtop.common.core.page.CommonPage;
 import com.usky.dxtop.mapper.DeptMapper;
 import com.usky.dxtop.model.Dept;
 import com.usky.dxtop.service.DeptService;
+import com.usky.dxtop.service.vo.StaffRequest;
 import org.springframework.stereotype.Service;
 
 /**
@@ -18,4 +25,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements DeptService {
 
+    @Override
+    public CommonPage<Dept> page(StaffRequest staffRequest) {
+        IPage<Dept> page = new Page<>(staffRequest.getCurrent(), staffRequest.getSize());
+        LambdaQueryWrapper<Dept> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(StringUtils.isNotBlank(staffRequest.getName()),Dept::getName,staffRequest.getName())
+                .between(null != staffRequest.getStartTime() && null != staffRequest.getEndTime(),Dept::getCreateTime,
+                        staffRequest.getStartTime(),staffRequest.getEndTime());
+        page = this.page(page,queryWrapper);
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
+    }
 }

+ 17 - 0
src/main/java/com/usky/dxtop/service/impl/StaffServiceImpl.java

@@ -1,10 +1,17 @@
 package com.usky.dxtop.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+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.usky.dxtop.common.core.page.CommonPage;
 import com.usky.dxtop.mapper.StaffMapper;
 import com.usky.dxtop.model.Staff;
 import com.usky.dxtop.service.StaffService;
+import com.usky.dxtop.service.vo.StaffRequest;
 import org.springframework.stereotype.Service;
 
 /**
@@ -18,4 +25,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements StaffService {
 
+    @Override
+    public CommonPage<Staff> page(StaffRequest staffRequest) {
+        IPage<Staff> page = new Page<>(staffRequest.getCurrent(), staffRequest.getSize());
+        LambdaQueryWrapper<Staff> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(StringUtils.isNotBlank(staffRequest.getName()),Staff::getName,staffRequest.getName())
+                .between(null != staffRequest.getStartTime() && null != staffRequest.getEndTime(),Staff::getCreateTime,
+                        staffRequest.getStartTime(),staffRequest.getEndTime());
+        page = this.page(page,queryWrapper);
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
+    }
 }

+ 27 - 5
src/main/java/com/usky/dxtop/service/job/SmJob.java

@@ -1,11 +1,15 @@
 package com.usky.dxtop.service.job;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.usky.dxtop.common.utils.http.HttpUtils;
+import com.usky.dxtop.model.Staff;
 import com.usky.dxtop.service.api.SmApi;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
 
+import java.util.List;
 import java.util.TreeMap;
 
 /**
@@ -23,11 +27,29 @@ public class SmJob {
         int page = 1;
         int size = 100;
         while (isNext){
-            String personUrl = String.format("%s?page=%s&size=%s", SmApi.PERSON_URL, page, size);
-            TreeMap<String, Object> treeMap = SmApi.generatePersonParam(null, null, null, null);
-            String s = HttpUtils.sendPost(personUrl, JSONObject.toJSONString(treeMap), SmApi.sign(treeMap));
-            System.out.println(s);
-            break;
+            try {
+                String personUrl = String.format("%s?page=%s&size=%s", SmApi.PERSON_URL, page, size);
+                TreeMap<String, Object> treeMap = SmApi.generatePersonParam(null, null, null, null);
+                String result = HttpUtils.sendPost(personUrl, JSONObject.toJSONString(treeMap), SmApi.sign(treeMap));
+                JSONObject jsonObject = JSONObject.parseObject(result);
+                if ("200".equals(jsonObject.get("status").toString())){
+                    JSONObject data = jsonObject.getJSONObject("data");
+                    JSONArray content = data.getJSONArray("content");
+                    if(content != null && content.size() > 0) {
+                        List<Staff> staffList = content.toJavaList(Staff.class);
+                        if (CollectionUtils.isEmpty(staffList)){
+                            isNext = false;
+                        }else {
+                            page++;
+                        }
+                    }
+                }
+            }catch (Exception e){
+                log.info("smJob异常"+e);
+                break;
+            }
         }
+        log.info("smjob 定时任务完成");
     }
+
 }

+ 33 - 0
src/main/java/com/usky/dxtop/service/vo/StaffRequest.java

@@ -0,0 +1,33 @@
+package com.usky.dxtop.service.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author yq
+ * @date 2021/9/28 16:20
+ */
+@Data
+public class StaffRequest {
+    /**
+     * 页数
+     */
+    private Integer current;
+    /**
+     * 条数
+     */
+    private Integer size;
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+    /**
+     * 名称
+     */
+    private String name;
+}

+ 1 - 0
src/main/resources/mapper/ChargeMapper.xml

@@ -21,6 +21,7 @@
         select ch.seq,ch.create_time,ch.card,ch.card_no,ch.type,ch.term,ch.shop,ch.term_name,ch.shop_name,ch.amt
         ch.balance,ch.account
         from charge as ch
+        left join staff as s
         <where>
             <if test="startTime != null and endTime != null">
                 and  create_time between #{startTime}