zhizhi wu 6 years ago
parent
commit
fb9c7ec782
  1. 13
      cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java
  2. 100
      mt/src/main/java/com/ccsens/mt/api/SigninController.java
  3. 20
      mt/src/main/java/com/ccsens/mt/bean/dto/SigninDto.java
  4. 4
      mt/src/main/java/com/ccsens/mt/bean/vo/SigninVo.java
  5. 4
      mt/src/main/java/com/ccsens/mt/service/ISigninService.java
  6. 56
      mt/src/main/java/com/ccsens/mt/service/SigninService.java
  7. 4
      mt/src/main/resources/application.yml
  8. 2
      tall/src/main/java/com/ccsens/tall/config/SpringConfig.java
  9. 2
      tall/src/main/java/com/ccsens/tall/persist/dao/SysPluginDao.java
  10. 2
      tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java
  11. 4
      tall/src/main/java/com/ccsens/tall/service/IUserService.java
  12. 51
      tall/src/main/java/com/ccsens/tall/service/SysPluginService.java
  13. 82
      tall/src/main/java/com/ccsens/tall/service/UserService.java
  14. 2
      tall/src/main/java/com/ccsens/tall/service/WbsSubSheetService.java
  15. 19
      tall/src/main/java/com/ccsens/tall/web/PluginController.java
  16. 31
      tall/src/main/java/com/ccsens/tall/web/UserController.java
  17. 13
      tall/src/main/resources/mapper_dao/SysPluginDao.xml
  18. 3
      util/src/main/java/com/ccsens/util/CodeEnum.java

13
cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java

@ -114,7 +114,13 @@ public interface TallFeignClient {
* 通过插件id获取签到字段和详细信息 * 通过插件id获取签到字段和详细信息
*/ */
@GetMapping("/plugins/sign") @GetMapping("/plugins/sign")
List<PluginVo.PluginSignField> getSignFieldByTaskPluginId(Long taskPluginId); List<PluginVo.PluginSignField> getSignFieldByTaskPluginId(@RequestParam( name = "taskPluginId")Long taskPluginId);
/**
* 模糊查询
*/
@GetMapping("/plugins/fuzzy")
List<String> getSignFuzzy(@RequestParam( name = "taskPluginId")Long taskPluginId,@RequestParam( name = "signinName")String signinName,@RequestParam( name = "key")String key);
} }
@ -183,6 +189,11 @@ class TallFeignClientFallBack implements FallbackFactory<TallFeignClient> {
public List<PluginVo.PluginSignField> getSignFieldByTaskPluginId(Long taskPluginId){ public List<PluginVo.PluginSignField> getSignFieldByTaskPluginId(Long taskPluginId){
return null; return null;
} }
@Override
public List<String> getSignFuzzy(Long taskPluginId, String signinName, String key) {
return null;
}
}; };
} }

100
mt/src/main/java/com/ccsens/mt/api/SigninController.java

@ -31,7 +31,7 @@ public class SigninController {
}) })
@RequestMapping(value = "info", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "info", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<SigninVo.SignInfoVo> getSignField(HttpServletRequest request, public JsonResponse<SigninVo.SignInfoVo> getSignField(HttpServletRequest request,
@ApiParam @Validated @RequestBody Long taskPluginId) throws Exception { @RequestParam Long taskPluginId) throws Exception {
log.info("{}:查看签到需要填的信息"); log.info("{}:查看签到需要填的信息");
//获取userId //获取userId
Long userId = userService.getUserIdByToken(request); Long userId = userService.getUserIdByToken(request);
@ -40,18 +40,34 @@ public class SigninController {
return JsonResponse.newInstance().ok(signInfoVo); return JsonResponse.newInstance().ok(signInfoVo);
} }
// @ApiOperation(value = "模糊查询签到信息", notes = "") @ApiOperation(value = "签到(保存签到的信息)", notes = "")
// @ApiImplicitParams({ @ApiImplicitParams({
// }) })
// @RequestMapping(value = "fuzzy", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<SigninVo.SignInfoVo> getSignByFuzzy(HttpServletRequest request, public JsonResponse<SigninVo.SigninVoInfo> signin(HttpServletRequest request,
// @ApiParam @Validated @RequestBody Long projectId,String signinName,String key) throws Exception { @ApiParam @Validated @RequestBody SigninDto.SaveSign saveSign) throws Exception {
// log.info("{}:查看签到需要填的信息"); log.info("{}:签到");
// //获取userId //获取userId
// Long userId = userService.getUserIdByToken(request); Long userId = userService.getUserIdByToken(request);
// SigninVo.SignInfoVo signInfoVo = signinService.saveSignInfo(saveSign, userId);
// return JsonResponse.newInstance().ok(signInfoVo);
// } return JsonResponse.newInstance().ok(saveSign);
}
@ApiOperation(value = "模糊查询签到信息", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "fuzzy", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<String>> getSignByFuzzy(HttpServletRequest request,
@RequestParam Long taskPluginId,String signinName,String key) throws Exception {
log.info("{}:查看签到需要填的信息");
//获取userId
Long userId = userService.getUserIdByToken(request);
List<String> keys = signinService.getFuzzyKey(userId,taskPluginId,signinName,key);
return JsonResponse.newInstance().ok(keys);
}
// @ApiOperation(value = "签到", notes = "") // @ApiOperation(value = "签到", notes = "")
// @ApiImplicitParams({ // @ApiImplicitParams({
@ -67,33 +83,33 @@ public class SigninController {
// return JsonResponse.newInstance().ok(signinVoInfo); // return JsonResponse.newInstance().ok(signinVoInfo);
// } // }
@ApiOperation(value = "查看自己的签到信息", notes = "") // @ApiOperation(value = "查看自己的签到信息", notes = "")
@ApiImplicitParams({ // @ApiImplicitParams({
@ApiImplicitParam(name = "taskId", value = "签到任务的id", required = true, paramType = ""), // @ApiImplicitParam(name = "taskId", value = "签到任务的id", required = true, paramType = ""),
}) // })
@RequestMapping(value = "", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) // @RequestMapping(value = "", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<SigninVo.SigninVoInfo> getSignByTaskId(HttpServletRequest request, // public JsonResponse<SigninVo.SigninVoInfo> getSignByTaskId(HttpServletRequest request,
@RequestParam(required = true) Long taskId) throws Exception { // @RequestParam(required = true) Long taskId) throws Exception {
log.info("查看自己的签到信息"); // log.info("查看自己的签到信息");
//获取userId // //获取userId
Long userId = userService.getUserIdByToken(request); // Long userId = userService.getUserIdByToken(request);
SigninVo.SigninVoInfo signinVoInfo = signinService.getSignByTaskId(taskId,userId); // SigninVo.SigninVoInfo signinVoInfo = signinService.getSignByTaskId(taskId,userId);
//
return JsonResponse.newInstance().ok(signinVoInfo); // return JsonResponse.newInstance().ok(signinVoInfo);
} // }
//
@ApiOperation(value = "查看所有人的签到信息", notes = "") // @ApiOperation(value = "查看所有人的签到信息", notes = "")
@ApiImplicitParams({ // @ApiImplicitParams({
@ApiImplicitParam(name = "taskId", value = "签到任务的id", required = true, paramType = ""), // @ApiImplicitParam(name = "taskId", value = "签到任务的id", required = true, paramType = ""),
}) // })
@RequestMapping(value = "all", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) // @RequestMapping(value = "all", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<SigninVo.SigninVoInfo>> getSignAllByTaskId(HttpServletRequest request, // public JsonResponse<List<SigninVo.SigninVoInfo>> getSignAllByTaskId(HttpServletRequest request,
@RequestParam(required = true) Long taskId) throws Exception { // @RequestParam(required = true) Long taskId) throws Exception {
log.info("查看所有人的签到信息"); // log.info("查看所有人的签到信息");
//获取userId // //获取userId
Long userId = userService.getUserIdByToken(request); // Long userId = userService.getUserIdByToken(request);
List<SigninVo.SigninVoInfo> signinVoInfo = signinService.getSignAllByTaskId(taskId,userId); // List<SigninVo.SigninVoInfo> signinVoInfo = signinService.getSignAllByTaskId(taskId,userId);
//
return JsonResponse.newInstance().ok(signinVoInfo); // return JsonResponse.newInstance().ok(signinVoInfo);
} // }
} }

20
mt/src/main/java/com/ccsens/mt/bean/dto/SigninDto.java

@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class SigninDto { public class SigninDto {
@Data @Data
@ -16,4 +18,22 @@ public class SigninDto {
@ApiModelProperty("手机号") @ApiModelProperty("手机号")
private String phone; private String phone;
} }
@Data
@ApiModel
public static class SaveSign{
@ApiModelProperty("任务插件id")
private Long taskPluginId;
@ApiModelProperty("签到信息")
private List<SaveSignInfo> signInfoList;
}
@Data
@ApiModel
public static class SaveSignInfo{
@ApiModelProperty("签到字段")
private String key;
@ApiModelProperty("内容")
private String value;
}
} }

4
mt/src/main/java/com/ccsens/mt/bean/vo/SigninVo.java

@ -36,8 +36,10 @@ public class SigninVo {
@Data @Data
@ApiModel @ApiModel
public static class SignField{ public static class SignField{
@ApiModelProperty("字段名") @ApiModelProperty("变量名")
private String name; private String name;
@ApiModelProperty("展示名")
private String description;
@ApiModelProperty("内容") @ApiModelProperty("内容")
private String value; private String value;
@ApiModelProperty("类型 0文本,1文本框,2单选,3多选") @ApiModelProperty("类型 0文本,1文本框,2单选,3多选")

4
mt/src/main/java/com/ccsens/mt/service/ISigninService.java

@ -13,4 +13,8 @@ public interface ISigninService {
List<SigninVo.SigninVoInfo> getSignAllByTaskId(Long taskId, Long userId); List<SigninVo.SigninVoInfo> getSignAllByTaskId(Long taskId, Long userId);
SigninVo.SignInfoVo getSignField(Long taskPluginId, Long userId); SigninVo.SignInfoVo getSignField(Long taskPluginId, Long userId);
List<String> getFuzzyKey(Long userId, Long taskPluginId, String signinName, String key);
SigninVo.SignInfoVo saveSignInfo(SigninDto.SaveSign saveSign, Long userId);
} }

56
mt/src/main/java/com/ccsens/mt/service/SigninService.java

@ -73,7 +73,8 @@ public class SigninService implements ISigninService{
if(CollectionUtil.isNotEmpty(pluginSignFieldList)){ if(CollectionUtil.isNotEmpty(pluginSignFieldList)){
for(PluginVo.PluginSignField pluginSignField : pluginSignFieldList) { for(PluginVo.PluginSignField pluginSignField : pluginSignFieldList) {
SigninVo.SignField signField = new SigninVo.SignField(); SigninVo.SignField signField = new SigninVo.SignField();
signField.setName(pluginSignField.getDescription()); signField.setName(pluginSignField.getName());
signField.setDescription(pluginSignField.getDescription());
signField.setField(pluginSignField.getFieldValue()); signField.setField(pluginSignField.getFieldValue());
signField.setIsFuzzy(pluginSignField.getIsFuzzy()); signField.setIsFuzzy(pluginSignField.getIsFuzzy());
signField.setIsRequired(pluginSignField.getIsRequired()); signField.setIsRequired(pluginSignField.getIsRequired());
@ -88,8 +89,61 @@ public class SigninService implements ISigninService{
return signInfoVo; return signInfoVo;
} }
/**
* 模糊查询签到字段的内容
* @param userId
* @param taskPluginId
* @param signinName
* @param key
* @return
*/
@Override
public List<String> getFuzzyKey(Long userId, Long taskPluginId, String signinName, String key) {
List<String> keys = tallFeignClient.getSignFuzzy(taskPluginId,signinName,key);
return keys;
}
@Override
public SigninVo.SignInfoVo saveSignInfo(SigninDto.SaveSign saveSign, Long userId) {
//判断用户是否有签到权限
//判断用户是否签到
MtSigninBasicExample signinBasicExample = new MtSigninBasicExample();
signinBasicExample.createCriteria().andUserIdEqualTo(userId).andTaskPluginIdEqualTo(saveSign.getTaskPluginId());
List<MtSigninBasic> signinBasicList = signinBasicDao.selectByExample(signinBasicExample);
if(CollectionUtil.isNotEmpty(signinBasicList)){
throw new BaseException(CodeEnum.ALREADY_SIGN);
}
//获取签到的序号(之前签到的人数加一)
MtSigninBasicExample BasicExample = new MtSigninBasicExample();
BasicExample.createCriteria().andTaskPluginIdEqualTo(saveSign.getTaskPluginId());
int count = (int) signinBasicDao.countByExample(BasicExample);
//保存签到信息
MtSigninBasic signinBasic = new MtSigninBasic();
signinBasic.setId(snowflake.nextId());
signinBasic.setUserId(userId);
signinBasic.setTaskPluginId(saveSign.getTaskPluginId());
signinBasic.setSigninTime(System.currentTimeMillis());
signinBasic.setIsSign((byte) 1);
signinBasic.setSequence(count + 1);
signinBasicDao.insertSelective(signinBasic);
if(CollectionUtil.isNotEmpty(saveSign.getSignInfoList())){
for(SigninDto.SaveSignInfo signinVoInfo:saveSign.getSignInfoList()){
MtSigninOther signinOther = new MtSigninOther();
signinOther.setId(snowflake.nextId());
signinOther.setSigninBasicId(signinBasic.getId());
signinOther.setKey(signinVoInfo.getKey());
signinOther.setValue(signinVoInfo.getValue());
signinOtherDao.insertSelective(signinOther);
}
}
//返回
SigninVo.SignInfoVo signInfoVo = new SigninVo.SignInfoVo();
signInfoVo.setIsSign(1);
signInfoVo.setSequence(signinBasic.getSequence());
signInfoVo.setSignTime(signinBasic.getSigninTime());
return signInfoVo;
}
/*=====================================================================================================*/ /*=====================================================================================================*/

4
mt/src/main/resources/application.yml

@ -1,4 +1,4 @@
spring: spring:
profiles: profiles:
active: test active: dev
include: common, util-test include: common, util-dev

2
tall/src/main/java/com/ccsens/tall/config/SpringConfig.java

@ -137,6 +137,8 @@ public class SpringConfig implements WebMvcConfigurer {
.excludePathPatterns("/users/member") .excludePathPatterns("/users/member")
.excludePathPatterns("/users/allMemberAll") .excludePathPatterns("/users/allMemberAll")
.addPathPatterns("/plugins/**") .addPathPatterns("/plugins/**")
.excludePathPatterns("/plugins/sign")
.excludePathPatterns("/plugins/fuzzy")
.addPathPatterns("/delivers/**") .addPathPatterns("/delivers/**")
.addPathPatterns("/tasks/**") .addPathPatterns("/tasks/**")
.excludePathPatterns("/tasks/projectId") .excludePathPatterns("/tasks/projectId")

2
tall/src/main/java/com/ccsens/tall/persist/dao/SysPluginDao.java

@ -13,4 +13,6 @@ public interface SysPluginDao extends SysPluginMapper{
List<PluginVo.PluginInfo> selectPluginAll(); List<PluginVo.PluginInfo> selectPluginAll();
List<TaskVo.PluginVo> getPluginByTask(@Param("taskId") Long taskId); List<TaskVo.PluginVo> getPluginByTask(@Param("taskId") Long taskId);
List<String> selectSignFuzzy(@Param("projectId") Long projectId, @Param("signFieldId") Long signFieldId, @Param("key") String key);
} }

2
tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java

@ -8,4 +8,6 @@ public interface ISysPluginService {
List<PluginVo.PluginInfo> getPluginAll(); List<PluginVo.PluginInfo> getPluginAll();
List<PluginVo.PluginSignField> getSignByPlugin(Long taskPluginId); List<PluginVo.PluginSignField> getSignByPlugin(Long taskPluginId);
List<String> getSignFuzzy(Long taskPluginId, String signinName, String key);
} }

4
tall/src/main/java/com/ccsens/tall/service/IUserService.java

@ -64,4 +64,8 @@ public interface IUserService {
UserVo.UserSign mergeByPhone(Long currentUserId, UserDto.WxMergePhone wxPhone); UserVo.UserSign mergeByPhone(Long currentUserId, UserDto.WxMergePhone wxPhone);
UserVo.WxInfo updateUserInfo(Long currentUserId, UserDto.WxInfo userInfo); UserVo.WxInfo updateUserInfo(Long currentUserId, UserDto.WxInfo userInfo);
void relievePhone(Long userId,String phone);
UserVo.UserSign changePhoneNotPassword(Long userId,UserDto.WxBindingPhone phoneInfo) throws Exception;
} }

51
tall/src/main/java/com/ccsens/tall/service/SysPluginService.java

@ -2,18 +2,15 @@ package com.ccsens.tall.service;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.ccsens.tall.bean.po.ProPluginSignin; import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.po.ProPluginSigninExample;
import com.ccsens.tall.bean.po.SigninField;
import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.bean.vo.PluginVo;
import com.ccsens.tall.persist.dao.ProPluginSigninDao; import com.ccsens.tall.persist.dao.*;
import com.ccsens.tall.persist.dao.SigninFieldDao;
import com.ccsens.tall.persist.dao.SysPluginDao;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.ContextLoaderListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -25,6 +22,10 @@ public class SysPluginService implements ISysPluginService{
@Autowired @Autowired
private SysPluginDao sysPluginDao; private SysPluginDao sysPluginDao;
@Autowired @Autowired
private TaskPluginDao taskPluginDao;
@Autowired
private TaskDetailDao taskDetailDao;
@Autowired
private ProPluginSigninDao pluginSigninDao; private ProPluginSigninDao pluginSigninDao;
@Autowired @Autowired
private SigninFieldDao signinFieldDao; private SigninFieldDao signinFieldDao;
@ -66,4 +67,42 @@ public class SysPluginService implements ISysPluginService{
return pluginSignFieldList; return pluginSignFieldList;
} }
/**
* 模糊查询签到的信息
*/
@Override
public List<String> getSignFuzzy(Long taskPluginId, String signinName, String key) {
List<String> keys = null;
//查找签到的字段id
Long signFieldId = null;
SigninFieldExample signinFieldExample = new SigninFieldExample();
signinFieldExample.createCriteria().andNameEqualTo(signinName);
List<SigninField> signinFieldList = signinFieldDao.selectByExample(signinFieldExample);
if(CollectionUtil.isNotEmpty(signinFieldList)){
SigninField signinField = signinFieldList.get(0);
ProPluginSigninExample pluginSigninExample = new ProPluginSigninExample();
pluginSigninExample.createCriteria().andSigninFieldIdEqualTo(signinField.getId());
List<ProPluginSignin> pluginSigninList = pluginSigninDao.selectByExample(pluginSigninExample);
if(CollectionUtil.isNotEmpty(pluginSigninList)){
ProPluginSignin pluginSignin = pluginSigninList.get(0);
if(pluginSignin.getIsFuzzy() == 0){
return null;
}
}
signFieldId = signinField.getId();
}
//查找项目id
Long projectId = null;
ProTaskPlugin proTaskPlugin = taskPluginDao.selectByPrimaryKey(taskPluginId);
if(ObjectUtil.isNotNull(proTaskPlugin)){
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(proTaskPlugin.getTaskDetailId());
if(ObjectUtil.isNotNull(taskDetail)){
projectId = taskDetail.getProjectId();
}
}
if(ObjectUtil.isNotNull(signFieldId) && ObjectUtil.isNotNull(projectId)){
keys = sysPluginDao.selectSignFuzzy(projectId,signFieldId,key);
}
return keys;
}
} }

82
tall/src/main/java/com/ccsens/tall/service/UserService.java

@ -519,8 +519,8 @@ public class UserService implements IUserService {
} }
//2.生成随机验证码 //2.生成随机验证码
String verifyCode = RandomUtil.randomNumbers(4); // String verifyCode = RandomUtil.randomNumbers(4);
// String verifyCode = "1111"; String verifyCode = "1111";
//3.保存到redis中 //3.保存到redis中
Integer codeValidInSeconds = WebConstant.Expired_Verify_Code_In_Seconds; Integer codeValidInSeconds = WebConstant.Expired_Verify_Code_In_Seconds;
@ -529,7 +529,7 @@ public class UserService implements IUserService {
redisUtil.set(RedisKeyManager.getSigninSmsExistKey(phone), verifyCode, codeExistINSeconds); redisUtil.set(RedisKeyManager.getSigninSmsExistKey(phone), verifyCode, codeExistINSeconds);
//5.发送验证码 //5.发送验证码
SmsUtil.sendSms(phone, verifyCode, client_type.phase, codeValidInSeconds); // SmsUtil.sendSms(phone, verifyCode, client_type.phase, codeValidInSeconds);
//6.返回 //6.返回
smsCodeVo = new UserVo.SmsCode(); smsCodeVo = new UserVo.SmsCode();
@ -729,10 +729,10 @@ public class UserService implements IUserService {
List<SysAuth> phoneList = null; List<SysAuth> phoneList = null;
SysAuth theAuth = null; SysAuth theAuth = null;
SysAuthExample phoneExample = new SysAuthExample(); SysAuthExample phoneExample = new SysAuthExample();
authExample.createCriteria().andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Phone.value) phoneExample.createCriteria().andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Phone.value)
.andIdentifierEqualTo(wxPhone.getPhone()); .andIdentifierEqualTo(wxPhone.getPhone());
phoneList = authDao.selectByExample(phoneExample); phoneList = authDao.selectByExample(phoneExample);
if (CollectionUtil.isNotEmpty(phoneList)) {//已被注册 提示 if (CollectionUtil.isNotEmpty(phoneList)) {
throw new BaseException(CodeEnum.MERGE_WX_PHONE); throw new BaseException(CodeEnum.MERGE_WX_PHONE);
} else { } else {
// throw new BaseException(CodeEnum.NOT_REGISTER); // throw new BaseException(CodeEnum.NOT_REGISTER);
@ -1009,6 +1009,7 @@ public class UserService implements IUserService {
/** /**
* 合并账号 * 合并账号
*
* @param currentUserId * @param currentUserId
* @param wxPhone * @param wxPhone
* @return * @return
@ -1077,6 +1078,7 @@ public class UserService implements IUserService {
return userSignVo; return userSignVo;
} }
private void updateBalance(SysUser oldUser, SysUser newUser) { private void updateBalance(SysUser oldUser, SysUser newUser) {
newUser.setBalance(newUser.getBalance() + oldUser.getBalance()); newUser.setBalance(newUser.getBalance() + oldUser.getBalance());
userDao.updateByPrimaryKeySelective(newUser); userDao.updateByPrimaryKeySelective(newUser);
@ -1092,6 +1094,7 @@ public class UserService implements IUserService {
/** /**
* 修改用户信息添加微信信息 * 修改用户信息添加微信信息
*
* @return * @return
*/ */
@Override @Override
@ -1128,4 +1131,73 @@ public class UserService implements IUserService {
wxInfo.setSex(user.getGender()); wxInfo.setSex(user.getGender());
return wxInfo; return wxInfo;
} }
/**
* 解除已绑定的手机号
*/
@Override
public void relievePhone(Long userId, String phone) {
SysAuthExample authExample = new SysAuthExample();
authExample.createCriteria().andUserIdEqualTo(userId)
.andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Phone.value)
.andIdentifierEqualTo(phone);
List<SysAuth> authList = authDao.selectByExample(authExample);
if (CollectionUtil.isNotEmpty(authList)) {
SysAuth auth = authList.get(0);
auth.setRecStatus((byte) 2);
authDao.updateByPrimaryKeySelective(auth);
}
}
/**
* 更改绑定手机号不要密码
* @param userId
* @param phoneInfo
* @throws Exception
*/
@Override
public UserVo.UserSign changePhoneNotPassword(Long userId, UserDto.WxBindingPhone phoneInfo) throws Exception {
UserVo.UserSign userSign = null;
if (isSmsCodeCorrect(phoneInfo.getPhone(), phoneInfo.getSmsCode())) {
//查找新手机号的的绑定信息
Long newPhoneUserId = selectUserIdByPhone(phoneInfo.getPhone());
if (ObjectUtil.isNull(newPhoneUserId)) {
//查找此用户的的手机号
SysAuthExample phoneExample = new SysAuthExample();
phoneExample.createCriteria().andUserIdEqualTo(userId)
.andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Phone.value);
List<SysAuth> phoneAuthList = authDao.selectByExample(phoneExample);
if (CollectionUtil.isNotEmpty(phoneAuthList)) {
//修改
SysAuth phoneAuth = phoneAuthList.get(0);
phoneAuth.setIdentifier(phoneInfo.getPhone());
authDao.updateByPrimaryKeySelective(phoneAuth);
userSign = new UserVo.UserSign();
userSign.setUserId(phoneAuth.getUserId());
userSign.setAuthId(phoneAuth.getId());
}else {
//添加一条手机号认证信息
SysAuth sysAuth = new SysAuth();
sysAuth.setId(snowflake.nextId());
sysAuth.setUserId(userId);
sysAuth.setIdentifyType((byte) WebConstant.IDENTIFY_TYPE.Phone.value);
sysAuth.setIdentifier(phoneInfo.getPhone());
authDao.insertSelective(sysAuth);
userSign = new UserVo.UserSign();
userSign.setUserId(sysAuth.getUserId());
userSign.setAuthId(sysAuth.getId());
}
} else {
throw new BaseException(CodeEnum.MERGE_WX_PHONE);
}
} else {
throw new BaseException(CodeEnum.SMS_CODE_CORRECT);
}
return userSign;
}
} }

2
tall/src/main/java/com/ccsens/tall/service/WbsSubSheetService.java

@ -226,6 +226,7 @@ public class WbsSubSheetService implements IWbsSubSheetService {
@Override @Override
public void getSigninSheet(Long projectId,XSSFWorkbook xssfWorkbook, List<ProTaskDetail> taskDetails) { public void getSigninSheet(Long projectId,XSSFWorkbook xssfWorkbook, List<ProTaskDetail> taskDetails) {
XSSFSheet signSheet = xssfWorkbook.getSheet("签到信息表"); XSSFSheet signSheet = xssfWorkbook.getSheet("签到信息表");
if (ObjectUtil.isNotNull(signSheet)) {
int fuzzyStart = 0; int fuzzyStart = 0;
for (int i = 0; i <= signSheet.getLastRowNum(); i++) { for (int i = 0; i <= signSheet.getLastRowNum(); i++) {
XSSFRow xssfRow = signSheet.getRow(i); XSSFRow xssfRow = signSheet.getRow(i);
@ -337,6 +338,7 @@ public class WbsSubSheetService implements IWbsSubSheetService {
} }
} }
} }
}

19
tall/src/main/java/com/ccsens/tall/web/PluginController.java

@ -37,13 +37,24 @@ public class PluginController {
/** /**
* 过插件id查询签到的信息 * 过插件id查询签到的信息
*/ */
@RequestMapping(value = "sign", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/sign", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<PluginVo.PluginSignField> getSignByPlugin( Long taskPluginId) throws Exception { public List<PluginVo.PluginSignField> getSignByPlugin(Long taskPluginId) throws Exception {
List<PluginVo.PluginSignField> pluginSignFieldList = sysPluginService.getSignByPlugin(taskPluginId); List<PluginVo.PluginSignField> pluginSignFieldList = sysPluginService.getSignByPlugin(taskPluginId);
return JsonResponse.newInstance().ok(pluginSignFieldList); return pluginSignFieldList;
}
/**
* 模糊搜索签到字段的信息
*/
@RequestMapping(value = "/fuzzy", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public List<String> getSignFuzzy(Long taskPluginId,String signinName,String key) throws Exception {
List<String> keys = sysPluginService.getSignFuzzy(taskPluginId,signinName,key);
return keys;
} }
} }

31
tall/src/main/java/com/ccsens/tall/web/UserController.java

@ -244,6 +244,36 @@ public class UserController {
return JsonResponse.newInstance().ok(); return JsonResponse.newInstance().ok();
} }
@ApiOperation(value = "解绑手机号", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "/relievePhone", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"})
public JsonResponse relievePhone(HttpServletRequest request,
@RequestParam String phone) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
userService.relievePhone(currentUserId,phone);
return JsonResponse.newInstance().ok();
}
@ApiOperation(value = "直接更改手机号(不用输入密码)", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "/changePhone", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse changePhone(HttpServletRequest request,
@ApiParam @Validated @RequestBody UserDto.WxBindingPhone phoneInfo) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
UserVo.UserSign userSignVo = userService.changePhoneNotPassword(currentUserId,phoneInfo);
UserVo.TokenBean tokenBean = null;
if (ObjectUtil.isNotNull(userSignVo)) {
WebConstant.CLIENT_TYPE clientType = WebConstant.CLIENT_TYPE.valueOf(1);
Map<String, Object> theMap = CollectionUtil.newHashMap();
theMap.put("authId", String.valueOf(userSignVo.getAuthId()));
tokenBean = userService.getUserInfoAndToken(clientType, userSignVo, theMap);
}
return JsonResponse.newInstance().ok(tokenBean);
}
/*===============================================================================================*/
@ApiOperation(value = "根据token获取userId",notes = "") @ApiOperation(value = "根据token获取userId",notes = "")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name="token",value = "token",required = true,paramType = "query") @ApiImplicitParam(name="token",value = "token",required = true,paramType = "query")
@ -273,6 +303,7 @@ public class UserController {
return userId; return userId;
} }
@ApiOperation(value = "根据token字符串获取userId",notes = "") @ApiOperation(value = "根据token字符串获取userId",notes = "")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name="token",value = "token",required = true,paramType = "query") @ApiImplicitParam(name="token",value = "token",required = true,paramType = "query")

13
tall/src/main/resources/mapper_dao/SysPluginDao.xml

@ -31,4 +31,17 @@
WHERE WHERE
t.id = #{taskId} t.id = #{taskId}
</select> </select>
<select id="selectSignFuzzy" parameterType="java.util.Map" resultType="java.lang.String">
SELECT
description
FROM
`t_pro_plugin_signin_fuzzy`
where
project_id = #{projectId}
and
signin_field_id = #{signFieldId}
and
description like concat('%',#{key},'%')
</select>
</mapper> </mapper>

3
util/src/main/java/com/ccsens/util/CodeEnum.java

@ -91,7 +91,8 @@ public enum CodeEnum {
ALREADY_BINDING_PHONE(74,"您已绑定过手机号,请勿重复绑定",true), ALREADY_BINDING_PHONE(74,"您已绑定过手机号,请勿重复绑定",true),
MERGE_WX_PHONE(75,"该手机号已经注册过账号,是否将账号合并",true), MERGE_WX_PHONE(75,"该手机号已经注册过账号,是否将账号合并",true),
ALREADY_EXIST_ACCOUNT(76,"该账号已存在",true), ALREADY_EXIST_ACCOUNT(76,"该账号已存在",true),
NOT_SIGN_FIELD(77,"签到的字段不可用",true) NOT_SIGN_FIELD(77,"签到的字段不可用",true),
ALREADY_SIGN(78,"您已经签到过了,请勿重复签到",true)
; ;
public CodeEnum addMsg(String msg){ public CodeEnum addMsg(String msg){

Loading…
Cancel
Save