Bladeren bron

添加 手机验证码demo

huangzhiyong 6 jaren geleden
bovenliggende
commit
0fde0ec099

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

@ -55,7 +55,7 @@ public class LoginController extends EnvelopRestEndpoint {
            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;
    }

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

@ -1,8 +1,10 @@
package com.yihu.jw.healthyhouse.controller.user;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.healthyhouse.model.user.FacilityUsedRecord;
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.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -31,6 +33,8 @@ public class FacilityUsedRecordController extends EnvelopRestEndpoint {
    @Autowired
    private FacilityUsedRecordService facilityUsedRecordService;
    @Autowired
    private UserService userService;
    @ApiOperation(value = "获取用户使用导航记录列表--分页(web)", responseContainer = "List")
    @GetMapping(value = HealthyHouseMapping.HealthyHouse.FacilityUsedRecord.PAGE)
@ -53,8 +57,9 @@ public class FacilityUsedRecordController extends EnvelopRestEndpoint {
    @PostMapping(value = HealthyHouseMapping.HealthyHouse.FacilityUsedRecord.CREATE)
    public ObjEnvelop<FacilityUsedRecord> createFacilityUsedRecord(
            @ApiParam(name = "facilityUsedRecord", value = "用户使用导航记录JSON结构")
            @RequestBody FacilityUsedRecord facilityUsedRecord) throws IOException {
            @RequestBody FacilityUsedRecord facilityUsedRecord) throws IOException, ManageException {
        facilityUsedRecord = facilityUsedRecordService.save(facilityUsedRecord);
        userService.updateFacilityUse(facilityUsedRecord.getUserId());
        return success(facilityUsedRecord);
    }

+ 15 - 13
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.healthyhouse.cache.WlyyRedisVerifyCodeService;
import com.yihu.jw.healthyhouse.model.facility.Facility;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.healthyhouse.service.user.UserService;
import com.yihu.jw.restmodel.web.Envelop;
@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -50,19 +52,19 @@ public class UserController  extends EnvelopRestEndpoint {
    @GetMapping("/userList")
    @ApiOperation(value = "获取用户列表")
    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);
    }

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

@ -1,5 +1,7 @@
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.healthyhouse.cache.WlyyRedisVerifyCodeService;
import com.yihu.jw.healthyhouse.constant.LoginInfo;
@ -7,6 +9,7 @@ import com.yihu.jw.healthyhouse.constant.UserConstant;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.restmodel.wlyy.HouseUserContant;
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.Value;
import org.springframework.http.*;
@ -17,6 +20,7 @@ import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@ -29,7 +33,7 @@ import java.util.Map;
 * @created 2018/9/18 20:02
 */
@Service
public class LoginService {
public class LoginService  extends BaseJpaService {
    @Autowired
    private UserService userService;
@ -211,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);
    }
    /**
     * 管理员手机登录

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

@ -3,7 +3,9 @@ package com.yihu.jw.healthyhouse.service.user;
import com.yihu.jw.exception.business.ManageException;
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.model.facility.Facility;
import com.yihu.jw.healthyhouse.model.user.User;
import com.yihu.jw.healthyhouse.util.poi.ExcelUtils;
import com.yihu.jw.restmodel.web.Envelop;
@ -11,6 +13,7 @@ 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.security.MD5;
import com.yihu.mysql.query.BaseJpaService;
import jxl.write.Colour;
import jxl.write.WritableCellFormat;
import org.apache.poi.ss.usermodel.*;
@ -37,7 +40,7 @@ import java.util.regex.Pattern;
 * @created 2018/9/18 19:48
 */
@Service
public class UserService {
public class UserService extends BaseJpaService<User, UserDao> {
    @Autowired
    private UserDao userDao;
@ -349,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);
    }
}