Browse Source

Merge branch

zdm 6 years ago
parent
commit
21281f3961
20 changed files with 312 additions and 82 deletions
  1. 49 7
      common/common-exception/src/main/java/com/yihu/jw/exception/code/BaseErrorCode.java
  2. 2 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/health/house/HealthyHouseMapping.java
  3. 4 4
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/wlyy/HouseUserContant.java
  4. 1 1
      common/common-util/src/main/java/com/yihu/jw/util/common/IdCardUtil.java
  5. 3 3
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/errorCode/ErrorCodeEndpoint.java
  6. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/MenuEndpoint.java
  7. 3 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/errorCode/ErrorCodeService.java
  8. 12 0
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/constant/UserConstant.java
  9. 4 4
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/LoginController.java
  10. 16 0
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/facilities/FacilitiesController.java
  11. 6 1
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/user/FacilityUsedRecordController.java
  12. 28 30
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/user/UserController.java
  13. 2 0
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/dao/user/FacilityUsedRecordDao.java
  14. 31 0
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/model/user/User.java
  15. 12 0
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/FacilityUsedRecordService.java
  16. 47 4
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/LoginService.java
  17. 40 24
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/UserService.java
  18. 34 0
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/util/MapUtil.java
  19. 17 1
      svr/svr-healthy-house/src/main/resources/application.yml
  20. BIN
      svr/svr-healthy-house/src/site/resources/健康小屋-设施列表导入模板.xlsx

+ 49 - 7
common/common-exception/src/main/java/com/yihu/jw/exception/code/BaseErrorCode.java

@ -14,11 +14,11 @@ public class BaseErrorCode {
     */
     */
    public static class Common{
    public static class Common{
        public static final String fail_upload = "-1";//上传失败
        public static final String fail_update = "-2";//修改失败
        public static final String fail_create = "-3";//新增失败
        public static final String fail_delete = "-4";//删除失败
        public static final String id_is_null = "-5";//ID不能为空
        public static final String FAIL_UPLOAD = "-1";//上传失败
        public static final String FAIL_UPDATE = "-2";//修改失败
        public static final String FAIL_CREATE = "-3";//新增失败
        public static final String FAIL_DELETE = "-4";//删除失败
        public static final String ID_IS_NULL = "-5";//ID不能为空
    }
    }
@ -26,13 +26,55 @@ public class BaseErrorCode {
     * 错误码模块
     * 错误码模块
     */
     */
    public static class ErrorCode{
    public static class ErrorCode{
        public static final String is_exist = "-10000";
        public static final String IS_EXIST = "-10000";
    }
    /**
     * 租户模块
     */
    public static class Saas{
        public static final String SAAS = "-101000";
    }
    }
    /**
    /**
     * 菜单模块
     * 菜单模块
     */
     */
    public static class Menu{
    public static class Menu{
        public static final String findDictByCode = "findDictByCode";
        public static final String FINDDICTBYCODE = "-102000";
    }
    /**
     * 业务模块
     */
    public static class Module{
        public static final String FINDDICTBYCODE = "-103000";
    }
    /**
     * 字典模块
     */
    public static class Dict{
        public static final String FINDDICTBYCODE = "-104000";
    }
    /**
     * 通知公告模块
     */
    public static class Notice{
        public static final String FINDDICTBYCODE = "-105000";
    }
    /**
     * 接口模块
     */
    public static class Interface{
        public static final String FINDDICTBYCODE = "-106000";
    }
    /**
     * 微信模块
     */
    public static class Wechat{
        public static final String WECHAT = "-1000000";
    }
    }
}
}

+ 2 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/health/house/HealthyHouseMapping.java

@ -50,6 +50,8 @@ public class HealthyHouseMapping {
            public static final String COUNT_FACILITIES = "/count/facilities";
            public static final String COUNT_FACILITIES = "/count/facilities";
            public static final String UPDATE_FACILITIE_STATE = "/update/facilitieState";
            public static final String UPDATE_FACILITIE_STATE = "/update/facilitieState";
            public static final String COUNT_FACILITIES_BY_TIME = "/count/facilitiesByTime";
            public static final String COUNT_FACILITIES_BY_TIME = "/count/facilitiesByTime";
            public static final String NEARBY_FACILITY = "/nearbyFacility";
            public static final String GET_FACILITIELIST = "/list/getAppFacilities";
            public static final String GET_FACILITIELIST = "/list/getAppFacilities";
            public static final String GET_ALL_FACILITIELISTS_COUNT = "/list/getAllFacilitiesCount";
            public static final String GET_ALL_FACILITIELISTS_COUNT = "/list/getAllFacilitiesCount";
        }
        }

+ 4 - 4
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/wlyy/HouseUserContant.java

@ -5,8 +5,8 @@ package com.yihu.jw.restmodel.wlyy;
 * @created 2018/9/18 20:19
 * @created 2018/9/18 20:19
 */
 */
public class HouseUserContant {
public class HouseUserContant {
    public static Integer activated_del=-1;
    public static Integer activated_lock=0;
    public static Integer activated_active =1;
    public static Integer activated_offline=2;
    public static Integer activated_del = -1;//删除
    public static Integer activated_lock = 0;//冻结
    public static Integer activated_active = 1;//在线
    public static Integer activated_offline = 2;//离线
}
}

+ 1 - 1
common/common-util/src/main/java/com/yihu/jw/util/common/IdCardUtil.java

@ -140,7 +140,7 @@ public class IdCardUtil {
//        error.put("cardId", "身份证号码长度必须等于15或18位");
//        error.put("cardId", "身份证号码长度必须等于15或18位");
//    }
//    }
    private boolean cardCodeVerifySimple(String cardcode) {
    public static boolean cardCodeVerifySimple(String cardcode) {
        //第一代身份证正则表达式(15位)
        //第一代身份证正则表达式(15位)
        String isIDCard1 = "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$";
        String isIDCard1 = "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$";
        //第二代身份证正则表达式(18位)
        //第二代身份证正则表达式(18位)

+ 3 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/errorCode/ErrorCodeEndpoint.java

@ -38,9 +38,9 @@ public class ErrorCodeEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
            @RequestBody String jsonData) throws Exception {
        ErrorCodeDO errorCodeDO = toEntity(jsonData, ErrorCodeDO.class);
        ErrorCodeDO errorCodeDO = toEntity(jsonData, ErrorCodeDO.class);
        if(errorCodeService.isExistsErrorCode(errorCodeDO.getErrorCode())>0){
        if(errorCodeService.isExistsErrorCode(errorCodeDO.getErrorCode())>0){
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.ErrorCode.is_exist), ObjEnvelop.class);
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.ErrorCode.IS_EXIST), ObjEnvelop.class);
        }
        }
        errorCodeDO = errorCodeService.save(errorCodeDO);
        errorCodeDO = errorCodeService.addErrorCode(errorCodeDO);
        return success(errorCodeDO, ErrorCodeVO.class);
        return success(errorCodeDO, ErrorCodeVO.class);
    }
    }
@ -53,7 +53,7 @@ public class ErrorCodeEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "errorMsg", required = true) String errorMsg) throws Exception {
            @RequestParam(value = "errorMsg", required = true) String errorMsg) throws Exception {
        if (null == id) {
        if (null == id) {
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Common.id_is_null), ObjEnvelop.class);
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Common.ID_IS_NULL), ObjEnvelop.class);
        }
        }
        ErrorCodeDO errorCodeDO = errorCodeService.updateMsg(id, errorMsg);
        ErrorCodeDO errorCodeDO = errorCodeService.updateMsg(id, errorMsg);
        return success(errorCodeDO, ErrorCodeVO.class);
        return success(errorCodeDO, ErrorCodeVO.class);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/MenuEndpoint.java

@ -62,7 +62,7 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
            @RequestBody String jsonData) throws Exception {
            @RequestBody String jsonData) throws Exception {
        MenuDO menuDO = toEntity(jsonData, MenuDO.class);
        MenuDO menuDO = toEntity(jsonData, MenuDO.class);
        if (null == menuDO.getId()) {
        if (null == menuDO.getId()) {
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Common.id_is_null), Envelop.class);
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Common.ID_IS_NULL), Envelop.class);
        }
        }
        menuDO = menuService.save(menuDO);
        menuDO = menuService.save(menuDO);
        return success(menuDO);
        return success(menuDO);

+ 3 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/errorCode/ErrorCodeService.java

@ -25,7 +25,7 @@ public class ErrorCodeService extends BaseJpaService<ErrorCodeDO, ErrorCodeDao>
     * 初始化错误码,如果redis没有则查询数据库导入到redis中
     * 初始化错误码,如果redis没有则查询数据库导入到redis中
     */
     */
    public void initErrorCode(){
    public void initErrorCode(){
        String msg = redisTemplate.opsForValue().get(BaseErrorCode.PREFIX + BaseErrorCode.Common.fail_create);
        String msg = redisTemplate.opsForValue().get(BaseErrorCode.PREFIX + BaseErrorCode.Common.FAIL_CREATE);
        if(StringUtils.isBlank(msg)){
        if(StringUtils.isBlank(msg)){
            Iterable<ErrorCodeDO> list = errorCodeDao.findAll();
            Iterable<ErrorCodeDO> list = errorCodeDao.findAll();
            list.forEach(code->{
            list.forEach(code->{
@ -38,9 +38,10 @@ public class ErrorCodeService extends BaseJpaService<ErrorCodeDO, ErrorCodeDao>
     * 新增
     * 新增
     * @param errorCodeDO
     * @param errorCodeDO
     */
     */
    public void addErrorCode(ErrorCodeDO errorCodeDO){
    public ErrorCodeDO addErrorCode(ErrorCodeDO errorCodeDO){
        errorCodeDao.save(errorCodeDO);
        errorCodeDao.save(errorCodeDO);
        redisTemplate.opsForValue().set(BaseErrorCode.PREFIX + errorCodeDO.getErrorCode(),errorCodeDO.getErrorMsg());
        redisTemplate.opsForValue().set(BaseErrorCode.PREFIX + errorCodeDO.getErrorCode(),errorCodeDO.getErrorMsg());
        return errorCodeDO;
    }
    }
    /**
    /**

+ 12 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/constant/UserConstant.java

@ -0,0 +1,12 @@
package com.yihu.jw.healthyhouse.constant;
/**
 * @author HZY
 * @created 2018/9/19 9:10
 */
public class UserConstant {
    public static final String UNAUTHORIZED = "0";
    public static final String AUTHORIZED = "1";
}

+ 4 - 4
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/LoginController.java

@ -41,7 +41,7 @@ public class LoginController extends EnvelopRestEndpoint {
    @ApiOperation(value = "发送短信验证码")
    @ApiOperation(value = "发送短信验证码")
    @GetMapping(value = "/captcha/send")
    @GetMapping(value = "/captcha/send")
    public ResponseEntity<HashMap> captcha(
    public ResponseEntity<HashMap> captcha(
            @ApiParam(name = "clientId", value = "应用id", required = true)@RequestParam(required = true, name = "clientId") String clientId,
            @ApiParam(name = "clientId", value = "应用id",defaultValue = "EwC0iRSrcS", required = true)@RequestParam(required = true, name = "clientId") String clientId,
            @ApiParam(name = "msgType", value = "消息类型(login:登录验证,checkPhone:验证安全手机,resetPhone:重设安全手机", required = true)@RequestParam(required = true, name = "msgType") String msgType,
            @ApiParam(name = "msgType", value = "消息类型(login:登录验证,checkPhone:验证安全手机,resetPhone:重设安全手机", required = true)@RequestParam(required = true, name = "msgType") String msgType,
            @ApiParam(name = "username", value = "手机账号", required = true)@RequestParam(required = true, name = "username") String username ) throws  Exception{
            @ApiParam(name = "username", value = "手机账号", required = true)@RequestParam(required = true, name = "username") String username ) throws  Exception{
        if (StringUtils.isEmpty(clientId)) {
        if (StringUtils.isEmpty(clientId)) {
@ -55,12 +55,12 @@ public class LoginController extends EnvelopRestEndpoint {
            throw new IllegalAccessException("SMS request frequency is too fast");
            throw new IllegalAccessException("SMS request frequency is too fast");
        }
        }
        //发送短信获取验证码
        //发送短信获取验证码
        ResponseEntity<HashMap> result = loginService.sendSms(clientId,msgType,username);
        ResponseEntity<HashMap> result = loginService.sendDemoSms(clientId,msgType,username);
        return result;
        return result;
    }
    }
    @GetMapping("/mobile/login")
    @PostMapping("/mobile/login")
    @ApiOperation(value = "【普通用户】-手机登录注册")
    @ApiOperation(value = "【普通用户】-手机登录注册")
    public ObjEnvelop mobileLogin(
    public ObjEnvelop mobileLogin(
            HttpServletRequest request,
            HttpServletRequest request,
@ -116,7 +116,7 @@ public class LoginController extends EnvelopRestEndpoint {
    /***************************  管理员相关 **************************************/
    /***************************  管理员相关 **************************************/
    @GetMapping("/mobile/manage/login")
    @PostMapping("/mobile/manage/login")
    @ApiOperation(value = "【管理员】-手机验证登录")
    @ApiOperation(value = "【管理员】-手机验证登录")
    public ObjEnvelop administratorMobileLogin(
    public ObjEnvelop administratorMobileLogin(
            HttpServletRequest request,
            HttpServletRequest request,

+ 16 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/facilities/FacilitiesController.java

@ -313,4 +313,20 @@ public class FacilitiesController extends EnvelopRestEndpoint {
    }
    }
//    @ApiOperation(value = "搜索附近的小屋", responseContainer = "List")
//    @GetMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.NEARBY_FACILITY)
//    public PageEnvelop<Facility> nearbyFacility(
//            @ApiParam(name = "lng", value = "当前经度", defaultValue = "")
//            @RequestParam(value = "lng", required = false) String lng,
//            @ApiParam(name = "lat", value = "当前纬度", defaultValue = "")
//            @RequestParam(value = "lat", required = false) String lat,
//            @ApiParam(name = "page", value = "页码", defaultValue = "1")
//            @RequestParam(value = "page", required = false) Integer page,
//            @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
//            @RequestParam(value = "size", required = false) Integer size) throws Exception {
//        List<Facility> facilityList = facilityService.search(fields, filters, sorts, page, size);
//        return success(facilityList, (null == facilityList) ? 0 : facilityList.size(), page, size);
//    }
}
}

+ 6 - 1
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/user/FacilityUsedRecordController.java

@ -2,9 +2,11 @@ package com.yihu.jw.healthyhouse.controller.user;
import com.yihu.jw.healthyhouse.model.facility.Facility;
import com.yihu.jw.healthyhouse.model.facility.Facility;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.healthyhouse.model.user.FacilityUsedRecord;
import com.yihu.jw.healthyhouse.model.user.FacilityUsedRecord;
import com.yihu.jw.healthyhouse.service.facility.FacilityService;
import com.yihu.jw.healthyhouse.service.facility.FacilityService;
import com.yihu.jw.healthyhouse.service.user.FacilityUsedRecordService;
import com.yihu.jw.healthyhouse.service.user.FacilityUsedRecordService;
import com.yihu.jw.healthyhouse.service.user.UserService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -35,6 +37,8 @@ public class FacilityUsedRecordController extends EnvelopRestEndpoint {
    @Autowired
    @Autowired
    private FacilityUsedRecordService facilityUsedRecordService;
    private FacilityUsedRecordService facilityUsedRecordService;
    @Autowired
    @Autowired
    private UserService userService;
    @Autowired
    private FacilityService facilityService;
    private FacilityService facilityService;
    @ApiOperation(value = "获取用户使用导航记录列表--分页(web)", responseContainer = "List")
    @ApiOperation(value = "获取用户使用导航记录列表--分页(web)", responseContainer = "List")
@ -58,8 +62,9 @@ public class FacilityUsedRecordController extends EnvelopRestEndpoint {
    @PostMapping(value = HealthyHouseMapping.HealthyHouse.FacilityUsedRecord.CREATE)
    @PostMapping(value = HealthyHouseMapping.HealthyHouse.FacilityUsedRecord.CREATE)
    public ObjEnvelop<FacilityUsedRecord> createFacilityUsedRecord(
    public ObjEnvelop<FacilityUsedRecord> createFacilityUsedRecord(
            @ApiParam(name = "facilityUsedRecord", value = "用户使用导航记录JSON结构")
            @ApiParam(name = "facilityUsedRecord", value = "用户使用导航记录JSON结构")
            @RequestBody FacilityUsedRecord facilityUsedRecord) throws IOException {
            @RequestBody FacilityUsedRecord facilityUsedRecord) throws IOException, ManageException {
        facilityUsedRecord = facilityUsedRecordService.save(facilityUsedRecord);
        facilityUsedRecord = facilityUsedRecordService.save(facilityUsedRecord);
        userService.updateFacilityUse(facilityUsedRecord.getUserId());
        return success(facilityUsedRecord);
        return success(facilityUsedRecord);
    }
    }

+ 28 - 30
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/user/UserController.java

@ -2,6 +2,7 @@ package com.yihu.jw.healthyhouse.controller.user;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.healthyhouse.cache.WlyyRedisVerifyCodeService;
import com.yihu.jw.healthyhouse.cache.WlyyRedisVerifyCodeService;
import com.yihu.jw.healthyhouse.model.facility.Facility;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.healthyhouse.service.user.UserService;
import com.yihu.jw.healthyhouse.service.user.UserService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.Envelop;
@ -26,9 +27,11 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.io.OutputStream;
import java.text.ParseException;
import java.util.HashMap;
import java.util.HashMap;
import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.regex.Pattern;
/**
/**
 *  用户相关 接口
 *  用户相关 接口
@ -45,22 +48,23 @@ public class UserController  extends EnvelopRestEndpoint {
    @Autowired
    @Autowired
    private WlyyRedisVerifyCodeService wlyyRedisVerifyCodeService;
    private WlyyRedisVerifyCodeService wlyyRedisVerifyCodeService;
    @GetMapping("/userList")
    @GetMapping("/userList")
    @ApiOperation(value = "获取用户列表")
    @ApiOperation(value = "获取用户列表")
    public PageEnvelop userList(
    public PageEnvelop userList(
            @ApiParam(name = "page", value = "页数", required = true)@RequestParam(required = true, name = "page") Integer page,
            @ApiParam(name = "pageSize", value = "每页数量", required = true)@RequestParam(required = true, name = "pageSize") Integer pageSize,
            @ApiParam(name = "city", value = "所在市区", required = false)@RequestParam(required = false, name = "city") String city,
            @ApiParam(name = "activated", value = "用户状态", required = false)@RequestParam(required = false, name = "activated") String activated ,
            @ApiParam(name = "name", value = "姓名/手机号", required = false)@RequestParam(required = false, name = "name") String name ,
            @ApiParam(name = "order", value = "使用次数排序", required = false)@RequestParam(required = false, name = "order") String order  ) throws ManageException {
        Map<String, String> map = new HashMap<>();
        map.put("cityCode",city);
        map.put("activated",activated);
        map.put("name",name);
        map.put("telephone",name);
        Page<User> users = userService.userList(page, pageSize, map, order);
        return PageEnvelop.getSuccessListWithPage("列表获取成功",users.getContent(),page,pageSize,users.getTotalElements());
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器", defaultValue = "")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序", defaultValue = "")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
            @RequestParam(value = "size", required = false) Integer size,
            @ApiParam(name = "page", value = "页码", defaultValue = "1")
            @RequestParam(value = "page", required = false) Integer page ) throws ManageException, ParseException {
        List<User> userList = userService.search(fields, filters, sorts, page, size);
        return success(userList, userList == null ? 0 : userList.size(), page, size);
    }
    }
@ -75,8 +79,7 @@ public class UserController  extends EnvelopRestEndpoint {
    @GetMapping("/usedFacilityCount")
    @GetMapping("/usedFacilityCount")
    @ApiOperation(value = "获取用户统计信息")
    @ApiOperation(value = "获取用户统计信息")
    public ObjEnvelop usedFacilityCount(
            @ApiParam(name = "userId", value = "用户id", required = true)@RequestParam(required = true, name = "userId") String userId ) {
    public ObjEnvelop usedFacilityCount() {
        Map<String, Long> userStatistics = userService.findUserStatistics();
        Map<String, Long> userStatistics = userService.findUserStatistics();
        return ObjEnvelop.getSuccess("获取成功",userStatistics);
        return ObjEnvelop.getSuccess("获取成功",userStatistics);
    }
    }
@ -103,16 +106,6 @@ public class UserController  extends EnvelopRestEndpoint {
    }
    }
    @PostMapping("/facilityUseUpdate")
    @ApiOperation(value = "更新设施使用次数")
    public Envelop facilityUseUpdate(
            @ApiParam(name = "userId", value = "用户Id", required = true)@RequestParam(required = true, name = "userId") String userId ,
            @ApiParam(name = "facilityId", value = "设施Id", required = true)@RequestParam(required = true, name = "facilityId") String facilityId ) throws ManageException {
        userService.updateFacilityUse(userId,facilityId);
        return ObjEnvelop.getSuccess("更新用户使用设施次数成功");
    }
    @PostMapping("/updatePwd")
    @PostMapping("/updatePwd")
    @ApiOperation(value = "更新密码")
    @ApiOperation(value = "更新密码")
    public Envelop updatePwd(
    public Envelop updatePwd(
@ -141,6 +134,16 @@ public class UserController  extends EnvelopRestEndpoint {
        }
        }
    }
    }
    @PostMapping("/checkIdCardNo")
    @ApiOperation(value = "用户身份证号码认证")
    public Envelop checkIdCardNo(
            @ApiParam(name = "userId", value = "用户Id", required = true)@RequestParam(required = true, name = "userId") String userId ,
            @ApiParam(name = "idCardNo", value = "身份证号码", required = true)@RequestParam(required = true, name = "idCardNo") String idCardNo ) throws ManageException {
        userService.checkIdCardNo(userId, idCardNo);
        return ObjEnvelop.getSuccess("身份证认证完成!");
    }
    @GetMapping("/exportToExcel")
    @GetMapping("/exportToExcel")
    @ApiOperation(value = "用户列表导出excel")
    @ApiOperation(value = "用户列表导出excel")
@ -163,9 +166,4 @@ public class UserController  extends EnvelopRestEndpoint {
}
}

+ 2 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/dao/user/FacilityUsedRecordDao.java

@ -12,6 +12,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
public interface FacilityUsedRecordDao extends JpaRepository<FacilityUsedRecord, Long> {
public interface FacilityUsedRecordDao extends JpaRepository<FacilityUsedRecord, Long> {
    FacilityUsedRecord findById(String id);
    FacilityUsedRecord findById(String id);
    Long countByUserId(String userId);
    Long countAllByUserIdIsNotNull();
    long countByFacilitieCodeAndCreateUser(String facilitieCode,String createUser);
    long countByFacilitieCodeAndCreateUser(String facilitieCode,String createUser);
}
}

+ 31 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/model/user/User.java

@ -59,6 +59,13 @@ public class User extends UuidIdentityEntityWithOperator {
    @Column(name = "facility_used_count")
    @Column(name = "facility_used_count")
    private Integer facilityUsedCount;//设施使用次数
    private Integer facilityUsedCount;//设施使用次数
    @Column(name = "realname_authentication")
    private String realnameAuthentication;//实名认证
    @Column(name = "phone_authentication")
    private String phoneAuthentication;//手机认证
    @Column(name = "ijk_authentication")
    private String ijkAuthentication;//i健康认证
    public String getLoginCode() {
    public String getLoginCode() {
        return loginCode;
        return loginCode;
@ -220,6 +227,30 @@ public class User extends UuidIdentityEntityWithOperator {
        this.street = street;
        this.street = street;
    }
    }
    public String getRealnameAuthentication() {
        return realnameAuthentication;
    }
    public void setRealnameAuthentication(String realnameAuthentication) {
        this.realnameAuthentication = realnameAuthentication;
    }
    public String getPhoneAuthentication() {
        return phoneAuthentication;
    }
    public void setPhoneAuthentication(String phoneAuthentication) {
        this.phoneAuthentication = phoneAuthentication;
    }
    public String getIjkAuthentication() {
        return ijkAuthentication;
    }
    public void setIjkAuthentication(String ijkAuthentication) {
        this.ijkAuthentication = ijkAuthentication;
    }
    @Transient
    @Transient
    public String getAddress(){
    public String getAddress(){
        String address ="";
        String address ="";

+ 12 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/FacilityUsedRecordService.java

@ -30,6 +30,18 @@ public class FacilityUsedRecordService extends BaseJpaService<FacilityUsedRecord
    public List<FacilityUsedRecord> countDistinctByFacilitieCodeAndUserId(String userId) throws Exception {
    public List<FacilityUsedRecord> countDistinctByFacilitieCodeAndUserId(String userId) throws Exception {
        String sql = "select fur.*  from facility_used_records  fur WHERE  fur.create_user=? GROUP BY fur.facilitie_code ";
        String sql = "select fur.*  from facility_used_records  fur WHERE  fur.create_user=? GROUP BY fur.facilitie_code ";
    public Long countByUserId(String userId){
        return facilityUsedRecordDao.countByUserId(userId);
    }
    public Long countAll(){
        return facilityUsedRecordDao.countAllByUserIdIsNotNull();
    }
    public List<FacilityUsedRecord> countDistinctByFacilitieCodeAndUserId(String userId,Integer page,Integer size) throws Exception {
        Integer pageStart = (page - 1) * size;
        Integer pageEnd = page * size;
        String sql = "select fur.*  from facility_used_records  fur WHERE  fur.user_id=? GROUP BY fur.facilitie_code LIMIT "+pageStart+","+pageEnd;
        List<FacilityUsedRecord> facilityUsedRecords = jdbcTemplate.query(sql, new BeanPropertyRowMapper(FacilityUsedRecord.class), userId);
        List<FacilityUsedRecord> facilityUsedRecords = jdbcTemplate.query(sql, new BeanPropertyRowMapper(FacilityUsedRecord.class), userId);
        return facilityUsedRecords;
        return facilityUsedRecords;
    }
    }

+ 47 - 4
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/LoginService.java

@ -1,11 +1,15 @@
package com.yihu.jw.healthyhouse.service.user;
package com.yihu.jw.healthyhouse.service.user;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.entity.base.sms.SmsGatewayDO;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.healthyhouse.cache.WlyyRedisVerifyCodeService;
import com.yihu.jw.healthyhouse.cache.WlyyRedisVerifyCodeService;
import com.yihu.jw.healthyhouse.constant.LoginInfo;
import com.yihu.jw.healthyhouse.constant.LoginInfo;
import com.yihu.jw.healthyhouse.constant.UserConstant;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.restmodel.wlyy.HouseUserContant;
import com.yihu.jw.restmodel.wlyy.HouseUserContant;
import com.yihu.jw.util.security.MD5;
import com.yihu.jw.util.security.MD5;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.*;
import org.springframework.http.*;
@ -16,6 +20,7 @@ import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.ParseException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Date;
@ -28,7 +33,7 @@ import java.util.Map;
 * @created 2018/9/18 20:02
 * @created 2018/9/18 20:02
 */
 */
@Service
@Service
public class LoginService {
public class LoginService  extends BaseJpaService {
    @Autowired
    @Autowired
    private UserService userService;
    private UserService userService;
@ -56,11 +61,12 @@ public class LoginService {
            user.setLoginCode(loginCode);
            user.setLoginCode(loginCode);
            user.setName(loginCode);
            user.setName(loginCode);
            user.setTelephone(loginCode);
            user.setTelephone(loginCode);
            // 更新身份证验证字段
            user.setPhoneAuthentication(UserConstant.AUTHORIZED);
            user.setPassword(LoginInfo.DEFAULT_PASSWORD);
            user.setPassword(LoginInfo.DEFAULT_PASSWORD);
        } else {
            //已注册用户更改用户状态
            user.setActivated(HouseUserContant.activated_active);
        }
        }
        //已注册用户更改用户状态
        user.setActivated(HouseUserContant.activated_active);
        request.getSession().setAttribute(LoginInfo.IS_LOGIN, true);
        request.getSession().setAttribute(LoginInfo.IS_LOGIN, true);
        request.getSession().setAttribute(LoginInfo.TOKEN, ""); //TODO token是否添加
        request.getSession().setAttribute(LoginInfo.TOKEN, ""); //TODO token是否添加
        request.getSession().setAttribute(LoginInfo.LOGIN_NAME, user.getName());
        request.getSession().setAttribute(LoginInfo.LOGIN_NAME, user.getName());
@ -209,6 +215,43 @@ public class LoginService {
        }
        }
    }
    }
    public ResponseEntity<HashMap> sendDemoSms(String clientId, String type, String phone) throws ParseException, ManageException, IOException {
        //发送短信获取验证码
        String resultStr = "{\n" +
                "    \"obj\": {\n" +
                "        \"id\": \"4028cb816615a019016615b662b10003\",\n" +
                "        \"createTime\": \"2018-09-26 19:49:26\",\n" +
                "        \"createUser\": null,\n" +
                "        \"createUserName\": null,\n" +
                "        \"updateTime\": \"2018-09-26 19:49:26\",\n" +
                "        \"updateUser\": null,\n" +
                "        \"updateUserName\": null,\n" +
                "        \"clientId\": \"EwC0iRSrcS\",\n" +
                "        \"smsGatewayId\": \"402803f9657fa37b01657fb58b9b0000\",\n" +
                "        \"requestIp\": \"127.0.0.1\",\n" +
                "        \"mobile\": \"18250165552\",\n" +
                "        \"content\": \"【i健康综合管理平台】您使用的是i健康综合管理平台短信模板,您的验证码是329931,请于10分钟内正确输入!\",\n" +
                "        \"deadline\": \"2018-09-26 19:59:26\",\n" +
                "        \"captcha\": \"329931\",\n" +
                "        \"type\": \"login\"\n" +
                "    },\n" +
                "    \"message\": \"success\",\n" +
                "    \"status\": 200\n" +
                "}";
        String captcha = randomInt(6);
        resultStr = resultStr.replaceAll("329931",captcha);
        ObjectMapper objectMapper = new ObjectMapper();
        HashMap<String, Object> result = objectMapper.readValue(resultStr,HashMap.class);
            Long expire = 600L;
            wlyyRedisVerifyCodeService.store(clientId, phone, captcha, expire.intValue());
            HttpHeaders headers = new HttpHeaders();
            headers.set("Cache-Control", "no-store");
            headers.set("Pragma", "no-cache");
            return new ResponseEntity<>(result, headers, HttpStatus.OK);
    }
    /**
    /**
     * 管理员手机登录
     * 管理员手机登录

+ 40 - 24
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/UserService.java

@ -2,13 +2,18 @@ package com.yihu.jw.healthyhouse.service.user;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.healthyhouse.constant.LoginInfo;
import com.yihu.jw.healthyhouse.constant.LoginInfo;
import com.yihu.jw.healthyhouse.constant.UserConstant;
import com.yihu.jw.healthyhouse.dao.facility.FacilityDao;
import com.yihu.jw.healthyhouse.dao.user.UserDao;
import com.yihu.jw.healthyhouse.dao.user.UserDao;
import com.yihu.jw.healthyhouse.model.facility.Facility;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.healthyhouse.util.poi.ExcelUtils;
import com.yihu.jw.healthyhouse.util.poi.ExcelUtils;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.wlyy.HouseUserContant;
import com.yihu.jw.restmodel.wlyy.HouseUserContant;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.security.MD5;
import com.yihu.jw.util.security.MD5;
import com.yihu.mysql.query.BaseJpaService;
import jxl.write.Colour;
import jxl.write.Colour;
import jxl.write.WritableCellFormat;
import jxl.write.WritableCellFormat;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.usermodel.*;
@ -28,16 +33,19 @@ import javax.servlet.http.HttpServletResponse;
import javax.transaction.Transactional;
import javax.transaction.Transactional;
import java.io.OutputStream;
import java.io.OutputStream;
import java.util.*;
import java.util.*;
import java.util.regex.Pattern;
/**
/**
 * @author HZY
 * @author HZY
 * @created 2018/9/18 19:48
 * @created 2018/9/18 19:48
 */
 */
@Service
@Service
public class UserService {
public class UserService extends BaseJpaService<User, UserDao> {
    @Autowired
    @Autowired
    private UserDao userDao;
    private UserDao userDao;
    @Autowired
    private FacilityUsedRecordService facilityUsedRecordService;
    public User findById(String id) {
    public User findById(String id) {
        return userDao.findById(id);
        return userDao.findById(id);
@ -192,22 +200,6 @@ public class UserService {
        }
        }
    }
    }
    /**
     * 更新设施使用次数
     * @param userId            用户id
     * @param facilityId    设施id
     * @throws ManageException
     */
    @Transactional
    public void updateFacilityUse(String userId, String facilityId) throws ManageException {
        User user1 = findById(userId);
        if (user1==null) {
            throw new ManageException("该账号不存在");
        }
        user1.setFacilityUsedCount(user1.getFacilityUsedCount()+1);
        userDao.save(user1);
        //TODO 设施的使用次数更新
    }
    @Transactional
    @Transactional
    public void updatePwd(String userId, String oldPwd,String newPwd) throws ManageException {
    public void updatePwd(String userId, String oldPwd,String newPwd) throws ManageException {
@ -254,7 +246,7 @@ public class UserService {
        //在线用户数
        //在线用户数
        Long activeCount = userDao.countAllByActivated(HouseUserContant.activated_active);
        Long activeCount = userDao.countAllByActivated(HouseUserContant.activated_active);
        //用户设施使用总次数
        //用户设施使用总次数
        Long usePricilityCount = sumFacilityCount();
        Long usePricilityCount = facilityUsedRecordService.countAll();
        result.put("totalCount",totalCount);
        result.put("totalCount",totalCount);
        result.put("newCount",newCount);
        result.put("newCount",newCount);
        result.put("activeCount",activeCount);
        result.put("activeCount",activeCount);
@ -263,15 +255,24 @@ public class UserService {
    }
    }
    /**
    /**
     * 用户使用设施次数总和
     * @return
     *  用户身份证认证
     * @param userId    用户ID
     * @param idCardNo  身份证
     * @throws ManageException
     */
     */
    public Long sumFacilityCount(){
        Long aLong = userDao.sumFacilityUseCout();
        return aLong;
    public void checkIdCardNo(String userId, String idCardNo) throws ManageException {
        User user1 = findById(userId);
        if (user1==null) {
            throw new ManageException("该账号不存在");
        }
        if(!IdCardUtil.cardCodeVerifySimple(idCardNo)){
            throw new ManageException("身份证号格式有误");
        }
        // 更新身份证验证字段
        user1.setRealnameAuthentication(UserConstant.AUTHORIZED);
        userDao.save(user1);
    }
    }
   
   
    //excel中添加固定内容
    //excel中添加固定内容
    private void addStaticCell(Sheet sheet){
    private void addStaticCell(Sheet sheet){
@ -351,6 +352,21 @@ public class UserService {
        }
        }
    }
    }
    /**
     * 更新设施使用次数
     * @param userId            用户id
     * @throws ManageException
     */
    @Transactional
    public void updateFacilityUse(String userId) throws ManageException {
        User user1 = findById(userId);
        if (user1==null) {
            throw new ManageException("该账号不存在");
        }
        user1.setFacilityUsedCount(user1.getFacilityUsedCount()+1);
        userDao.save(user1);
    }
}
}

+ 34 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/util/MapUtil.java

@ -0,0 +1,34 @@
package com.yihu.jw.healthyhouse.util;
/**
 *
 *  经纬度距离计算 - 摘抄网络
 * @author HZY
 * @created 2018/9/26 21:02
 */
public class MapUtil {
    private static double EARTH_RADIUS = 6371.393;
    public static double getDistance(double lng1,double lat1,double lng2,double lat2){
        double radLat1 = rad(lat1);
        double radLat2 = rad(lat2);
        double a = radLat1 - radLat2;
        double b = rad(lng1) - rad(lng2);
        double s = 2 * Math.asin(Math.sqrt(Math.abs(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2))));
        s = s * EARTH_RADIUS;
        s = Math.round(s * 1000);
        return s;
    }
    private static double rad(double d)
    {
        return d * Math.PI / 180.0;
    }
    public static void main(String[] args) {
        double distance = getDistance(118.191839, 24.49555, 118.15639977090478000000, 24.48613312327105300000);
        System.out.println(distance);
    }
}

+ 17 - 1
svr/svr-healthy-house/src/main/resources/application.yml

@ -72,11 +72,15 @@ spring:
    url: jdbc:mysql://172.19.103.77:3306/healthy_house?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    url: jdbc:mysql://172.19.103.77:3306/healthy_house?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: root
    username: root
    password: 123456
    password: 123456
  redis:
    host: 172.19.103.47
    port: 6379
    password: redis!@456
fastDFS:
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
  fastdfs_file_url: http://172.19.103.54:80/
# 短信发送地址
# 短信发送地址
jw:
jw:
  smsUrl: http://svr-base:10020/sms_gateway/send
  smsUrl: http://svr-base-hzy:10020/sms_gateway/send
---
---
spring:
spring:
@ -85,6 +89,10 @@ spring:
    url: jdbc:mysql://172.19.103.77:3306/healthy_house?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    url: jdbc:mysql://172.19.103.77:3306/healthy_house?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: root
    username: root
    password: 123456
    password: 123456
  redis:
    host: 172.19.103.47
    port: 6379
    password: redis!@456
fastDFS:
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
  fastdfs_file_url: http://172.19.103.54:80/
jw:
jw:
@ -93,6 +101,14 @@ jw:
---
---
spring:
spring:
  profiles: jwprod
  profiles: jwprod
  datasource:
    url: jdbc:mysql://172.19.103.77:3306/healthy_house?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: root
    password: 123456
  redis:
    host: 172.19.103.47
    port: 6379
    password: redis!@456
fastDFS:
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
  fastdfs_file_url: http://172.19.103.54:80/
jw:
jw:

BIN
svr/svr-healthy-house/src/site/resources/健康小屋-设施列表导入模板.xlsx