diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java index 4391a22..74efadd 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java @@ -6,9 +6,7 @@ import com.elink.esua.epdc.commons.tools.enums.BehaviorEnum; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.dto.epdc.form.*; -import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO; -import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; -import com.elink.esua.epdc.dto.epdc.result.UserInvitationRecordResultDTO; +import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.dto.form.*; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; @@ -335,4 +333,35 @@ public class ApiAppUserController { ValidatorUtils.validateEntity(formDto); return appUserService.getUserWxPhone(formDto); } + + /** + * 积分排名接口:0-网格,1-街道 + * 根据用户表积分做排行 + * + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 13:35 2020-06-01 + **/ + @GetMapping("userPointsRanking/list") + public Result listUserPointsRanking(@LoginUser TokenDto userDetail, EpdcAppUserRankingFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return appUserService.listUserPointsRanking(userDetail, formDto); + } + + /** + * 积分中心页面-积分等级排名 + * 返回当前用户的排名 和 当前街道的前N名用户排名 + * + * @param userDetail, formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:59 2020-06-24 + **/ + @GetMapping("user/gradeRanking/list") + public Result listUserGradesRanking(@LoginUser TokenDto userDetail, EpdcAppUserGradeRankingFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return appUserService.listUserGradesRanking(userDetail, formDTO); + } } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index 95bdf50..ea65192 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -413,4 +413,28 @@ public interface UserFeignClient { **/ @PostMapping(value = "app-user/usergridinvitationcode/updateInvitationCodeUrl", consumes = MediaType.APPLICATION_JSON_VALUE) Result updateInvitationCodeUrl(UserGridInvitationCodeDTO userGridInvitationCodeDTO); + + /** + * 积分排名接口:0-网格,1-街道 + * 根据用户表积分做排行 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 13:35 2020-06-01 + **/ + @GetMapping(value = "app-user/epdc-app/user/listUserPointsRanking/list", consumes = MediaType.APPLICATION_JSON_VALUE) + Result selectListUserPointsRanking(EpdcAppUserRankingFormDTO formDto); + + /** + * 积分中心页面-积分等级排名 + * 返回当前用户的排名 和 当前街道的前N名用户排名 + * + * @param formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:59 2020-06-24 + **/ + @GetMapping(value = "app-user/epdc-app/user/gradeRanking/list", consumes = MediaType.APPLICATION_JSON_VALUE) + Result selectListUserGradesRanking(EpdcAppUserGradeRankingFormDTO formDTO); } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java index 447b8d6..66b57c9 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java @@ -202,4 +202,14 @@ public class UserFeignClientFallback implements UserFeignClient { public Result updateInvitationCodeUrl(UserGridInvitationCodeDTO userGridInvitationCodeDTO) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "updateInvitationCodeUrl", userGridInvitationCodeDTO); } + + @Override + public Result selectListUserPointsRanking(EpdcAppUserRankingFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "selectListUserPointsRanking", formDto); + } + + @Override + public Result selectListUserGradesRanking(EpdcAppUserGradeRankingFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "selectListUserGradesRanking", formDto); + } } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/controller/ApiResidentConfigController.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/controller/ApiResidentConfigController.java new file mode 100644 index 0000000..ebb3edb --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/controller/ApiResidentConfigController.java @@ -0,0 +1,37 @@ +package com.elink.esua.epdc.modules.api.controller; + +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.result.ResidentConfigResultDTO; +import com.elink.esua.epdc.modules.api.service.ResidentConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * APP 获取居民端配置 + * + * @author zhangyong + * @date 2020/05/27 18:30 + */ +@RestController +@RequestMapping("residentConfig") +public class ApiResidentConfigController { + + @Autowired + private ResidentConfigService residentConfigService; + + /** + * @Description 获取居民端配置 + * @Author songyunpeng + * @Date 2020/6/9 + * @Param [residentType] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + **/ + @GetMapping("getResidentConfig") + public Result> getImgUrlList(String residentType){ + return residentConfigService.listResidentConfig(residentType); + } +} diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/controller/ResidentConfigController.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/controller/ResidentConfigController.java new file mode 100644 index 0000000..4c6c797 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/controller/ResidentConfigController.java @@ -0,0 +1,94 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.modules.api.controller; + +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.validator.AssertUtils; +import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; +import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; +import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; +import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; +import com.elink.esua.epdc.dto.ResidentConfigDTO; +import com.elink.esua.epdc.modules.api.excel.ResidentConfigExcel; +import com.elink.esua.epdc.modules.api.service.ResidentConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 居民端配置表 + * + * @author elink elink@elink-cn.com + * @since v1.0.0 2020-06-08 + */ +@RestController +@RequestMapping("residentconfig") +public class ResidentConfigController { + + @Autowired + private ResidentConfigService residentConfigService; + + @GetMapping("page") + public Result> page(@RequestParam Map params) { + PageData page = residentConfigService.page(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") String id) { + ResidentConfigDTO data = residentConfigService.get(id); + return new Result().ok(data); + } + + @PostMapping + public Result save(@RequestBody ResidentConfigDTO dto) { + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + residentConfigService.save(dto); + return new Result(); + } + + @PutMapping + public Result update(@RequestBody ResidentConfigDTO dto) { + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + residentConfigService.update(dto); + return new Result(); + } + + @DeleteMapping + public Result delete(@RequestBody String[] ids) { + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + residentConfigService.delete(ids); + return new Result(); + } + + @GetMapping("export") + public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { + List list = residentConfigService.list(params); + ExcelUtils.exportExcelToTarget(response, null, list, ResidentConfigExcel.class); + } + +} \ No newline at end of file diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/dao/ResidentConfigDao.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/dao/ResidentConfigDao.java new file mode 100644 index 0000000..7c05b00 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/dao/ResidentConfigDao.java @@ -0,0 +1,65 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.modules.api.dao; + +import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; +import com.elink.esua.epdc.dto.ResidentConfigDTO; +import com.elink.esua.epdc.dto.result.ResidentConfigResultDTO; +import com.elink.esua.epdc.modules.api.entity.ResidentConfigEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * 居民端配置表 + * + * @author elink elink@elink-cn.com + * @since v1.0.0 2020-06-08 + */ +@Mapper +public interface ResidentConfigDao extends BaseDao { + /** + * @return java.util.List + * @Description pc获取列表 + * @Author songyunpeng + * @Date 2020/6/8 + * @Param [params] + **/ + List selectListResidentConfig(Map params); + + + /** + * @return java.util.List + * @Description app根据类型获取居民配置列表 + * @Author songyunpeng + * @Date 2020/6/8 + * @Param [residentType] + **/ + List selectListResidentConfigByResidentType(@Param(value = "residentType") String residentType); + + /** + * @return com.elink.esua.epdc.dto.ResidentConfigDTO + * @Description 根据类型和编码获取配置 + * @Author songyunpeng + * @Date 2020/6/8 + * @Param [residentType, residentCode] + **/ + ResidentConfigDTO selectResidentConfigDTOByTypeAndCode(String residentType, String residentCode); +} \ No newline at end of file diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/entity/ResidentConfigEntity.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/entity/ResidentConfigEntity.java new file mode 100644 index 0000000..f152a5d --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/entity/ResidentConfigEntity.java @@ -0,0 +1,61 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.modules.api.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 居民端配置表 + * + * @author elink elink@elink-cn.com + * @since v1.0.0 2020-06-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("epdc_resident_config") +public class ResidentConfigEntity extends BaseEpdcEntity { + + private static final long serialVersionUID = 2487728661562100503L; + + /** + * 配置类型 + */ + private String residentType; + + /** + * 配置编码 + */ + private String residentCode; + + /** + * 配置内容 + */ + private String residentValue; + + /** + * 排序 + */ + private String sort; + /** + * 备注 + */ + private String remark; +} \ No newline at end of file diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/excel/ResidentConfigExcel.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/excel/ResidentConfigExcel.java new file mode 100644 index 0000000..def9397 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/excel/ResidentConfigExcel.java @@ -0,0 +1,68 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.modules.api.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.util.Date; + +/** + * 居民端配置表 + * + * @author elink elink@elink-cn.com + * @since v1.0.0 2020-06-08 + */ +@Data +public class ResidentConfigExcel { + + @Excel(name = "主键") + private String id; + + @Excel(name = "配置类型") + private String residentType; + + @Excel(name = "配置编码") + private String residentCode; + + @Excel(name = "配置内容") + private String residentValue; + + @Excel(name = "排序") + private String sort; + + @Excel(name = "删除标识 0:未删除,1:删除") + private String delFlag; + + @Excel(name = "乐观锁") + private Integer revision; + + @Excel(name = "创建人") + private String createdBy; + + @Excel(name = "创建时间") + private Date createdTime; + + @Excel(name = "更新人") + private String updatedBy; + + @Excel(name = "更新时间") + private Date updatedTime; + + +} \ No newline at end of file diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/service/ResidentConfigService.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/service/ResidentConfigService.java new file mode 100644 index 0000000..acca168 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/service/ResidentConfigService.java @@ -0,0 +1,117 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.modules.api.service; + +import com.elink.esua.epdc.commons.mybatis.service.BaseService; +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.ResidentConfigDTO; +import com.elink.esua.epdc.dto.result.ResidentConfigResultDTO; +import com.elink.esua.epdc.modules.api.entity.ResidentConfigEntity; + +import java.util.List; +import java.util.Map; + +/** + * 居民端配置表 + * + * @author elink elink@elink-cn.com + * @since v1.0.0 2020-06-08 + */ +public interface ResidentConfigService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2020-06-08 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2020-06-08 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return ResidentConfigDTO + * @author generator + * @date 2020-06-08 + */ + ResidentConfigDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2020-06-08 + */ + void save(ResidentConfigDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2020-06-08 + */ + void update(ResidentConfigDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2020-06-08 + */ + void delete(String[] ids); + + /** + * app根据类型获取居民配置 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author songyunpeng + * @Date 2020/6/8 + * @Param [residentType] + **/ + Result> listResidentConfig(String residentType); + + /** + * @return com.elink.esua.epdc.dto.ResidentConfigDTO + * @Description 根据类型和编码获取配置 + * @Author songyunpeng + * @Date 2020/6/8 + * @Param [residentType, residentCode] + **/ + ResidentConfigDTO getResidentConfigDTOByTypeAndCode(String residentType, String residentCode); + +} \ No newline at end of file diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/service/impl/ResidentConfigServiceImpl.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/service/impl/ResidentConfigServiceImpl.java new file mode 100644 index 0000000..da54dd2 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/modules/api/service/impl/ResidentConfigServiceImpl.java @@ -0,0 +1,121 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.modules.api.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; +import com.elink.esua.epdc.commons.tools.constant.FieldConstant; +import com.elink.esua.epdc.commons.tools.exception.RenException; +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.ResidentConfigDTO; +import com.elink.esua.epdc.dto.result.ResidentConfigResultDTO; +import com.elink.esua.epdc.modules.api.dao.ResidentConfigDao; +import com.elink.esua.epdc.modules.api.entity.ResidentConfigEntity; +import com.elink.esua.epdc.modules.api.service.ResidentConfigService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 居民端配置表 + * + * @author elink elink@elink-cn.com + * @since v1.0.0 2020-06-08 + */ +@Service +public class ResidentConfigServiceImpl extends BaseServiceImpl implements ResidentConfigService { + + @Override + public PageData page(Map params) { + IPage page = getPage(params); + List list = baseDao.selectListResidentConfig(params); + return new PageData<>(list, page.getTotal()); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, ResidentConfigDTO.class); + } + + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public ResidentConfigDTO get(String id) { + ResidentConfigEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, ResidentConfigDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(ResidentConfigDTO dto) { + //校验同意类型下 编码是否重复 + ResidentConfigDTO residentConfigDTOByTypeAndCode = getResidentConfigDTOByTypeAndCode(dto.getResidentType(), dto.getResidentCode()); + if (residentConfigDTOByTypeAndCode != null) { + throw new RenException("同一类型下编码不能重复!"); + } + ResidentConfigEntity entity = ConvertUtils.sourceToTarget(dto, ResidentConfigEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(ResidentConfigDTO dto) { + //校验同意类型下 编码是否重复 + ResidentConfigDTO residentConfigDTOByTypeAndCode = getResidentConfigDTOByTypeAndCode(dto.getResidentType(), dto.getResidentCode()); + //若是存在相同且ID不同的话代表编码重复! + if (residentConfigDTOByTypeAndCode != null && !residentConfigDTOByTypeAndCode.getId().equals(dto.getId())) { + throw new RenException("同一类型下编码不能重复!"); + } + ResidentConfigEntity entity = ConvertUtils.sourceToTarget(dto, ResidentConfigEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + @Override + public Result> listResidentConfig(String residentType) { + return new Result>().ok(baseDao.selectListResidentConfigByResidentType(residentType)); + } + + @Override + public ResidentConfigDTO getResidentConfigDTOByTypeAndCode(String residentType, String residentCode) { + return baseDao.selectResidentConfigDTOByTypeAndCode(residentType, residentCode); + } + +} \ No newline at end of file diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AppUserService.java index c696361..a222216 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AppUserService.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AppUserService.java @@ -3,9 +3,7 @@ package com.elink.esua.epdc.service; import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.epdc.form.*; -import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO; -import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; -import com.elink.esua.epdc.dto.epdc.result.UserInvitationRecordResultDTO; +import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.dto.form.*; import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; @@ -280,4 +278,27 @@ public interface AppUserService { * @date 2020/2/20 17:24 */ Result getUserWxPhone(EpdcAppUserMaInfoFormDTO formDto); + + /** + * 积分排名接口:0-网格,1-街道 + * 根据用户表积分做排行 + * + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 13:35 2020-06-01 + **/ + Result listUserPointsRanking(TokenDto userDetail, EpdcAppUserRankingFormDTO formDto); + + /** + * 积分中心页面-积分等级排名 + * 返回当前用户的排名 和 当前街道的前N名用户排名 + * + * @param userDetail, formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:59 2020-06-24 + **/ + Result listUserGradesRanking(TokenDto userDetail, EpdcAppUserGradeRankingFormDTO formDTO); } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index 7dd220a..78e0a31 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -23,10 +23,7 @@ import com.elink.esua.epdc.dto.epdc.EpdcCompleteAppUserDTO; import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.form.*; -import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO; -import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; -import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO; -import com.elink.esua.epdc.dto.epdc.result.UserInvitationRecordResultDTO; +import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.dto.form.*; import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; import com.elink.esua.epdc.dto.group.form.GroupUserFormDTO; @@ -1418,4 +1415,28 @@ public class AppUserServiceImpl implements AppUserService { } return new Result().error("解析用户手机号失败"); } + + @Override + public Result listUserPointsRanking(TokenDto userDetail, EpdcAppUserRankingFormDTO formDto) { + formDto.setUserId(userDetail.getUserId()); + formDto.setRealName(userDetail.getRealName()); + formDto.setPoints(userDetail.getPoints()); + formDto.setDeptId(userDetail.getGridId()); + + return userFeignClient.selectListUserPointsRanking(formDto); + } + + @Override + public Result listUserGradesRanking(TokenDto userDetail, EpdcAppUserGradeRankingFormDTO formDTO) { + formDTO.setUserId(userDetail.getUserId()); + formDTO.setNickName(userDetail.getNickname()); + formDTO.setPointsTotle(userDetail.getPointsTotle()); + Result deptInfo = adminFeignClient.getCompleteDept(userDetail.getGridId()); + if (deptInfo.success()) { + formDTO.setStreetId(deptInfo.getData().getStreetId()); + } else { + return new Result().error("当前用户,无所属街道"); + } + return userFeignClient.selectListUserGradesRanking(formDTO); + } } diff --git a/epdc-cloud-api/src/main/resources/mapper/ResidentConfigDao.xml b/epdc-cloud-api/src/main/resources/mapper/ResidentConfigDao.xml new file mode 100644 index 0000000..66bfd10 --- /dev/null +++ b/epdc-cloud-api/src/main/resources/mapper/ResidentConfigDao.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file