Sfoglia il codice sorgente

添加已开通校区报表接口

zhouxianguang 6 anni fa
parent
commit
6f79d3bf50

+ 204 - 0
rankin-user-service/src/main/java/cn/rankin/userservice/controller/StmtController.java

@@ -0,0 +1,204 @@
+package cn.rankin.userservice.controller;
+
+import cn.rankin.common.utils.api.model.APIResult;
+import cn.rankin.common.utils.api.page.Page;
+import cn.rankin.common.utils.enums.BaseOrderEnum;
+import cn.rankin.common.utils.util.ProvinceUtil;
+import cn.rankin.data.api.user.dto.CampusDTO;
+import cn.rankin.data.api.user.dto.CampusSearchDTO;
+import cn.rankin.data.api.user.dto.UserDeviceDTO;
+import cn.rankin.data.api.user.entity.Campus;
+import cn.rankin.data.api.user.entity.Merchant;
+import cn.rankin.data.api.user.entity.UserDevice;
+import cn.rankin.userservice.code.UserServiceAPICode;
+import cn.rankin.userservice.helper.RaStringHelper;
+import cn.rankin.userservice.service.CampusService;
+import cn.rankin.userservice.service.MerchantService;
+import cn.rankin.userservice.service.UserDeviceService;
+import cn.rankin.userservice.utils.StudentNo;
+import cn.rankin.userservice.utils.StudentNumberUtil;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.*;
+
+
+@RestController
+@RequestMapping(value = "/stmt")
+public class StmtController
+{
+    @Autowired
+    private MerchantService merchantService;
+
+    @Autowired
+    private CampusService campusService;
+
+    @RequestMapping(value = "/campus/list", method = RequestMethod.GET)
+    public APIResult<Page<Campus>> search(CampusSearchDTO searchDTO) {
+        Campus campus = new Campus();
+
+        String name = searchDTO.getName();
+        if (!StringUtils.isEmpty(name)) {
+            campus.setName("%" + name + "%");
+        }
+
+        String code = searchDTO.getCode();
+        if (!StringUtils.isEmpty(code)) {
+            campus.setCode("%" + code + "%");
+        }
+
+        String merchantId = searchDTO.getMerchantId();
+        if (!StringUtils.isEmpty(merchantId)) {
+            campus.setMerchantId(merchantId);
+        }
+
+        // sort
+        LinkedHashMap<String, BaseOrderEnum> sort = new LinkedHashMap<>();
+        sort.put("gmtModified", BaseOrderEnum.DESC);
+
+        APIResult<Page<Campus>> apiResult = campusService.search(campus, searchDTO.getPageNo(), searchDTO.getPageSize(), sort);
+        if (apiResult.getSuccess() && apiResult.getData() != null) {
+            List<Campus> campusList = apiResult.getData().getList();
+            setMerchantName(campusList);
+
+        }
+
+        return apiResult;
+    }
+
+    @RequestMapping(method = RequestMethod.GET)
+    public APIResult<List<Campus>> findByCondition(CampusSearchDTO searchDTO) {
+        Campus campus = new Campus();
+
+        String name = searchDTO.getName();
+        if (!StringUtils.isEmpty(name)) {
+            campus.setName("%" + name + "%");
+        }
+
+        String code = searchDTO.getCode();
+        if (!StringUtils.isEmpty(code)) {
+            campus.setCode("%" + code + "%");
+        }
+
+        // sort
+        LinkedHashMap<String, BaseOrderEnum> sort = new LinkedHashMap<>();
+        sort.put("gmtModified", BaseOrderEnum.DESC);
+
+        return campusService.find(campus, sort);
+    }
+
+
+    @Transactional
+    @RequestMapping(method = RequestMethod.POST)
+    public APIResult<Campus> create(@RequestBody @Valid CampusDTO campusDTO) {
+        String merchantId = campusDTO.getMerchantId();
+        if (StringUtils.isEmpty(merchantId)) {
+            return APIResult.error(UserServiceAPICode.error("缺少渠道id"));
+        }
+
+        Merchant merchant = merchantService.findOne(merchantId);
+        if (merchant == null) {
+            return APIResult.error(UserServiceAPICode.error("渠道不存在"));
+        }
+
+        String provinceCode = campusDTO.getProvinceCode();
+        if (StringUtils.isEmpty(provinceCode)) {
+            return APIResult.error(UserServiceAPICode.PARAMETER_ERROR);
+        }
+
+        provinceCode = converProvinceCode(merchant, provinceCode);
+
+        Integer serialNo = campusService.getSerialNo(merchantId, provinceCode);
+        StudentNo studentNo = StudentNumberUtil.getStudentNo(merchant.getCode(), provinceCode, serialNo);
+        if (studentNo == null) {
+            return APIResult.error(UserServiceAPICode.CAMPUS_NO_ERROR);
+        }
+
+        campusDTO.setProvinceCode(provinceCode);
+        campusDTO.setSerialNo(serialNo);
+        campusDTO.setCode(studentNo.getCampusNo());
+
+        APIResult<Campus> result = campusService.create(campusDTO);
+        if (result.getSuccess()) {
+            Campus campus = result.getData();
+            setMerchantName(campus);
+        }
+
+        return result;
+    }
+
+    /**
+     * 判断是否贝尔安亲,湖南校区。
+     * 因湖南校区已达到最大限额,使用湖南新编号
+     * @param merchant
+     * @param provinceCode
+     * @return
+     */
+    private String converProvinceCode(Merchant merchant, String provinceCode) {
+        if("6666".equals(merchant.getCode()) && provinceCode.equals(ProvinceUtil.HN_ORIGINAL)){
+            provinceCode = ProvinceUtil.HN;
+        }
+
+        return provinceCode;
+    }
+
+    @RequestMapping(value = "/ids", method = RequestMethod.GET)
+    public APIResult<Map<String, Campus>> findByIds(@RequestParam("id") List<String> campusIds) {
+        Map<String, Campus> campusMap = campusService.getCampusMap(campusIds);
+        return APIResult.ok(campusMap);
+    }
+
+    @RequestMapping(method = RequestMethod.PUT)
+    public APIResult<Campus> update(@RequestBody @Valid CampusDTO campusDTO) {
+        String id = campusDTO.getId();
+        if (StringUtils.isEmpty(id)) {
+            return APIResult.error(UserServiceAPICode.PARAMETER_ERROR);
+        }
+
+        APIResult<Campus> result = campusService.update(campusDTO);
+        if (result.getSuccess()) {
+            Campus campus = result.getData();
+            setMerchantName(campus);
+        }
+
+        return result;
+    }
+
+    public void setMerchantName(List<Campus> campusList) {
+        if (CollectionUtils.isEmpty(campusList)) {
+            return;
+        }
+
+        Set<String> merchantIdSet = new HashSet<>();
+        campusList.forEach(campus -> merchantIdSet.add(campus.getMerchantId()));
+
+        if (merchantIdSet.size() == 0) {
+            return;
+        }
+        List<String> merchantIdList = new ArrayList<>();
+        merchantIdList.addAll(merchantIdSet);
+        Map<String, Merchant> merchantMap = merchantService.getMerchantMap(merchantIdList);
+
+        for (Campus campus : campusList) {
+            String merchantId = campus.getMerchantId();
+            Merchant merchant = merchantMap.get(merchantId);
+            campus.setMerchantName(merchant.getName());
+        }
+    }
+
+    public void setMerchantName(Campus campus) {
+        if (campus == null) {
+            return;
+        }
+
+        Merchant merchant = merchantService.findOne(campus.getMerchantId());
+        if (merchant != null) {
+            campus.setMerchantName(merchant.getName());
+        }
+    }
+
+}