@源码地址来源:http://minglisoft.cn/hhcloud/
会员控制类:
/** * Copyright © 2012-2017 <a href="http://minglisoft.cn">HongHu</a> All rights reserved. */ package com.honghu.cloud.controller; import java.io.IOException; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.http.HttpException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.google.common.collect.Maps; import com.honghu.cloud.bean.Album; import com.honghu.cloud.bean.CustomerService; import com.honghu.cloud.bean.MemberFans; import com.honghu.cloud.bean.Menu; import com.honghu.cloud.bean.PredepositLog; import com.honghu.cloud.bean.PullUserOrder; import com.honghu.cloud.bean.Role; import com.honghu.cloud.bean.User; import com.honghu.cloud.bean.UserCard; import com.honghu.cloud.bean.VerifyidCard; import com.honghu.cloud.code.MemberResponseCode; import com.honghu.cloud.code.ResponseCode; import com.honghu.cloud.code.ResponseVO; import com.honghu.cloud.constant.Globals; import com.honghu.cloud.dto.AccessoryDto; import com.honghu.cloud.dto.AreaDto; import com.honghu.cloud.dto.IntegralLogDto; import com.honghu.cloud.dto.ModularClassDto; import com.honghu.cloud.dto.StoreDto; import com.honghu.cloud.dto.SysConfigDto; import com.honghu.cloud.dto.TemplateDto; import com.honghu.cloud.dto.UserDto; import com.honghu.cloud.dto.VerifyCodeDto; import com.honghu.cloud.feign.AccessoryFeignClient; import com.honghu.cloud.feign.AreaFeignClient; import com.honghu.cloud.feign.CouponInfoFeignClient; import com.honghu.cloud.feign.IntegralLogFeignClient; import com.honghu.cloud.feign.IntegralToolsFeignClient; import com.honghu.cloud.feign.ModularClassFeignClient; import com.honghu.cloud.feign.MsgToolsFeignClient; import com.honghu.cloud.feign.OrderFormFeignClient; import com.honghu.cloud.feign.QrCodeFeignClient; import com.honghu.cloud.feign.StoreFeignClient; import com.honghu.cloud.feign.SysConfigFeignClient; import com.honghu.cloud.feign.TemplateFeignClient; import com.honghu.cloud.feign.TencentIMFeignClient; import com.honghu.cloud.feign.VerifyCodeFeignClient; import com.honghu.cloud.redis.RedisUtil; import com.honghu.cloud.service.IAlbumService; import com.honghu.cloud.service.ICustomerService; import com.honghu.cloud.service.IFavoriteService; import com.honghu.cloud.service.IFootPointService; import com.honghu.cloud.service.IMemberFansService; import com.honghu.cloud.service.IPredepositLogService; import com.honghu.cloud.service.IPullUserOrderService; import com.honghu.cloud.service.IRoleService; import com.honghu.cloud.service.IUserCardService; import com.honghu.cloud.service.IUserService; import com.honghu.cloud.service.IVerifyidCardService; import com.honghu.cloud.tools.SecurityUserHolder; import com.honghu.cloud.utils.CommUtil; import com.honghu.cloud.utils.JWT; import com.honghu.cloud.utils.beans.BeanUtils; import com.honghu.cloud.utils.tools.Md5Encrypt; import net.sf.json.JSONObject; /** * 用户Controller * @author Administrator * @param <V> * */ @SuppressWarnings({"rawtypes","unchecked"}) @RestController @RequestMapping(value = "/user") /*/*@CrossOrigin(origins = "*", maxAge = 3600, methods = { RequestMethod.GET, RequestMethod.POST, RequestMethod.DELETE, RequestMethod.PUT })*/ public class UserController { private static final Logger logger = LoggerFactory.getLogger(UserController.class); @Autowired private IUserService userService; @Autowired private IFootPointService footPointService; @Autowired private CouponInfoFeignClient couponInfoFeignClient; @Autowired private OrderFormFeignClient orderFormFeignClient; @Autowired private SysConfigFeignClient sysConfigFeignClient; @Autowired private AccessoryFeignClient accessoryFeignClient; @Autowired private VerifyCodeFeignClient verifyCodeFeignClient; @Autowired private MsgToolsFeignClient msgToolsFeignClient; @Autowired private IPullUserOrderService pullUserOrderService; @Autowired private QrCodeFeignClient qrCodeFeignClient; @Autowired private IRoleService roleService; @Autowired private AreaFeignClient areaFeignClient; @Autowired private IntegralLogFeignClient integralLogFeignClient; @Autowired private TemplateFeignClient templateFeignClient; @Autowired private ModularClassFeignClient modularClassFeignClient; @Autowired private ICustomerService customerService; @Autowired private IAlbumService albumService; @Autowired private IFavoriteService favoriteService; @Autowired private RedisUtil redisUtil; @Autowired private IVerifyidCardService verifyidCardService; @Autowired private StoreFeignClient storeFeignClient; @Autowired private TencentIMFeignClient tencentIMFeignClient; @Autowired private IUserCardService userCardService; @Autowired private IPredepositLogService predepositLogService; @Autowired private IMemberFansService memberFansService; @Autowired private IntegralToolsFeignClient integralToolsFeignClient; @RequestMapping(value = "/apiForFeign/selectByIds", method = RequestMethod.POST) public List<User> selectByIds(@RequestBody Map<String, Object> params) { return userService.selectByIds(params); } @RequestMapping(value = "/apiForFeign/getMsgSubUsers", method = RequestMethod.GET) public List<User> getMsgSubUsers(@RequestParam("parent_id") Long parent_id){ return userService.getMsgSubUsers(parent_id); } @RequestMapping(value = "/apiForFeign/auditNoteUser", method = RequestMethod.GET) public List<User> auditNoteUser(){ return userService.auditNoteUser(); } @RequestMapping(value = "/apiForFeign/selectCount", method = RequestMethod.GET) public int selectCount(@RequestParam("params")Map<String, Object> params){ return userService.selectCount(params); } @RequestMapping(value = "/apiForFeign/whetherFans", method = RequestMethod.GET) public boolean whetherFans(@RequestParam("mid") Long mid, @RequestParam("fansid") Long fansid) { MemberFans memberFans = memberFansService.whetherFans(mid, fansid); if (memberFans != null) return true; return false; } /** * 根据用户id查询用户 * @param congelationDto * @return */ @RequestMapping(value = "/apiForFeign/selectByPrimaryKey", method = RequestMethod.GET) public User selectByPrimaryKey(@RequestParam("id") Long id) { User user = userService.selectByPrimaryKey(id); if(user != null && user.getPhoto_id() != null){ user.setPhoto(accessoryFeignClient.selectByPrimaryKey(user.getPhoto_id())); } return user; } @RequestMapping(value = "/apiForFeign/selectUserCardByUserId", method = RequestMethod.GET) public UserCard selectUserCardByUserId(@RequestParam("id") Long id) { return userCardService.selectByUserId(id); } @RequestMapping(value = "/apiForFeign/queryPageList", method = RequestMethod.GET) public List<User> queryPageList(@RequestParam("params")Map<String, Object> params) { return userService.queryPageList(params, null, null); } @RequestMapping(value = "/apiForFeign/verityUserNamePassword", method = RequestMethod.POST) public List<User> verityUserNamePassword(@RequestBody Map<String, Object> params) { return userService.verityUserNamePassword(params); } @RequestMapping(value = "/apiForFeign/selectPullByOrderId", method = RequestMethod.GET) public PullUserOrder selectPullByOrderId(@RequestParam("id") Long id) { PullUserOrder obj = pullUserOrderService.selectPullByOrderId(id); return obj; } @RequestMapping(value = "/apiForFeign/savePullUserOrder", method = RequestMethod.POST) public void savePullUserOrder(@RequestBody PullUserOrder obj) { pullUserOrderService.saveEntity(obj); } /** * 根据订单id查询拉新用户表 ,进行删除 * @param id */ @RequestMapping(value = "/apiForFeign/delPullByOrderId", method = RequestMethod.GET) public void delPullByOrderId(@RequestParam("id") Long id) { pullUserOrderService.deleteByOrderId(id); } @RequestMapping(value = "/apiForFeign/queryByProperty", method = RequestMethod.POST) public User queryByProperty(@RequestParam("params")Map<String, Object> params) { return userService.queryByProperty(params); } @RequestMapping(value = "/apiForFeign/updateById", method = RequestMethod.POST) public void updateById(@RequestBody User obj) { userService.updateById(obj); } @RequestMapping(value = "/apiForFeign/update", method = RequestMethod.POST) public void update(@RequestBody User obj) { userService.update(obj); } @RequestMapping(value = "/apiForFeign/saveEntity", method = RequestMethod.POST) public User saveEntity(@RequestBody User obj) { return userService.saveEntity(obj); } @RequestMapping(value = "/apiForFeign/saveUserCard", method = RequestMethod.POST) public void saveUserCard(@RequestBody UserCard obj) { userCardService.saveEntity(obj); } /** * 根据unionid查询用户 * @param unionid * @return */ @RequestMapping(value = "/apiForFeign/selectByUnionid", method = RequestMethod.POST) public User selectByUnionid(@RequestParam("unionid") String unionid){ return userService.selectByUnionid(unionid); } @RequestMapping(value = "/apiForFeign/selectByWxOpenId", method = RequestMethod.POST) public User selectByWxOpenId(@RequestParam("openid") String openid){ return userService.selectByWxOpenId(openid); } @RequestMapping(value = "/apiForFeign/getUserByStoreId", method = RequestMethod.GET) public User getUserByStoreId(@RequestParam("id") Long id) { return userService.getUserByStoreId(id); } @RequestMapping(value = "/apiForFeign/deleteUserMenu", method = RequestMethod.GET) public void deleteUserMenu(@RequestParam("id") Long id) { userService.deleteUserMenu(id); } @RequestMapping(value = "/apiForFeign/updateLiveById", method = RequestMethod.GET) public void updateLiveById(@RequestParam("id") Long id) { userService.updateLiveById(id); } @RequestMapping(value = "/apiForFeign/saveUserMenu", method = RequestMethod.POST) public void saveUserMenu(@RequestParam("id") Long id,@RequestBody List<Menu> ms) { userService.saveUserMenu(id,ms); } /** * 客服列表 * @param request * @param response * @return * @throws Exception */ @RequestMapping(value="/buyer/customerServiceList", method = RequestMethod.POST) public Map<String, Object> customerServiceList(HttpServletRequest request,HttpServletResponse response) { Map<String,Object> params = Maps.newHashMap(); List<CustomerService> list = customerService.queryPages(params); HashMap<String, Object> result = new HashMap<>(); result.put("list", list); System.out.println(result); return ResponseCode.buildSuccessMap(result); } /** * 用户中心完善资料 * @param request * @param response * @return */ @RequestMapping(value="/buyer/account") public Map<String, Object> account(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> result = new HashMap<String, Object>(); long user_id = SecurityUserHolder.getCurrentUser(request).getId().longValue(); User user = selectByPrimaryKey(user_id); if(user == null){ return ResponseCode.buildEnumMap(ResponseCode.USER_NOT_EXISTS_ERROR, null); } result.put("obj", user); result.put("imageFilesize", Integer.valueOf(sysConfigFeignClient.getSysConfig().getImageFilesize())); return ResponseCode.buildSuccessMap(result); } /** * 用户中心完善资料 * @param request * @param response * @return */ @RequestMapping(value="/buyer/liveCode") public Map<String, Object> liveCode(HttpServletRequest request, HttpServletResponse response) { HashMap<String, Object> result = new HashMap<>(); User user = userService.selectByPrimaryKey(SecurityUserHolder.getCurrentUserId(request)); result.put("liveCode", user.getLive_code()); return ResponseCode.buildSuccessMap(result); } /** * 用户中资料保存 * @param request * @param response * @param USER_AGE * @param card * @param userName * @param sex * @return * @throws Exception */ @RequestMapping(value="/buyer/account_save", method = RequestMethod.POST) public Map<String, Object> account_saveEntity(HttpServletRequest request, HttpServletResponse response,@RequestBody JSONObject json) throws Exception { String userName = json.optString("userName"); String nickName = json.optString("nickName"); String sex = json.optString("sex"); String photo_id = json.optString("photo_id"); String USER_AGE = json.optString("USER_AGE"); User user = this.userService.selectByPrimaryKey(SecurityUserHolder .getCurrentUser(request).getId()); if ((userName != null) && (!userName.equals(""))) { user.setTrueName(userName); } if ((USER_AGE != null) && (!USER_AGE.equals(""))) { user.setBirthday(CommUtil.formatDate(USER_AGE)); } if ((nickName != null) && (!nickName.equals(""))) { user.setNickName(nickName); } if ((sex != null) && (!sex.equals(""))) { user.setSex(CommUtil.null2Int(sex)); } if(StringUtils.isNotBlank(photo_id)){ user.setPhoto_id(CommUtil.null2Long(photo_id)); } this.userService.updateById(user); try{ //腾讯IM账号资料更改 UserDto userDto = new UserDto(); BeanUtils.copyProperties(user, userDto); tencentIMFeignClient.portraitSet(userDto); }catch (Exception e) { logger.error("UserController >> account_saveEntity >> IM portraitSet "+ e.getMessage()); } return ResponseCode.buildSuccessMap(null); } /** * 手机客户端商城首页 * @param request * @param response * @param store_id * @return */ @RequestMapping(value="/center", method = RequestMethod.POST) public Map<String, Object> center(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> result = new HashMap<String, Object>(); UserDto u = SecurityUserHolder.getCurrentUser(request); if ((u != null) && (!u.equals(""))) { User user = this.userService.selectByPrimaryKey(SecurityUserHolder .getCurrentUser(request).getId()); if (user!=null&&user.getPhoto_id()!=null) { AccessoryDto photo = accessoryFeignClient.selectByPrimaryKey(user.getPhoto_id()); user.setPhoto(photo); } int selectCount = footPointService.selectSumCount(user.getId()); /*Map<String,Object> foot_params = Maps.newHashMap(); foot_params.put("fp_user_id", user.getId()); foot_params.put("deleteStatus", 0); //List<FootPoint> fps = footPointService.queryPageList(foot_params); //result.put("objs", fps);*/ result.put("footsize", selectCount); Map<String, Object> params = Maps.newHashMap(); params.put("user_id", user.getId()); params.put("status", Integer.valueOf(0)); result.put("couponInfos",Integer.valueOf(couponInfoFeignClient.selectCount(params))); /* params.clear(); params.put("status", Integer.valueOf(10)); params.put("user_id", user.getId().toString()); result.put("orders_10",Integer.valueOf(orderFormFeignClient.selectCount(params)));*/ // result.put("integralViewTools", this.integralViewTools); params.clear(); params.put("type", Integer.valueOf(0)); params.put("user_id", user.getId()); int favorite_goods = favoriteService.selectCount(params); result.put("favorite_goods", favorite_goods); params.clear(); params.put("type", Integer.valueOf(1)); params.put("user_id", user.getId()); result.put("favorite_store",favoriteService.selectCount(params)); params.clear(); params.put("order_status", Integer.valueOf(10)); params.put("user_id", user.getId().toString()); //params.put("order_main", Integer.valueOf(1)); //List<OrderFormDto> order_nopays = orderFormFeignClient.queryPageList(params); Integer order_nopays = orderFormFeignClient.selectCount(params); String order_nopay = ""; if (order_nopays > 99) { order_nopay = "99+"; } else { order_nopay = order_nopays + ""; } result.put("order_nopay", order_nopay); params.clear(); params.put("order_status1", Integer.valueOf(14)); params.put("order_status2", Integer.valueOf(20)); params.put("user_id", user.getId().toString()); //params.put("order_main", Integer.valueOf(1)); //List<OrderFormDto> order_noships = orderFormFeignClient.queryPageList(params); Integer order_noships = orderFormFeignClient.selectCount(params); String order_noship = ""; if (order_noships > 99) { order_noship = "99+"; } else { order_noship = order_noships + ""; } result.put("order_noship", order_noship); params.clear(); params.put("order_status1", Integer.valueOf(30)); params.put("order_status2", Integer.valueOf(35)); params.put("user_id", user.getId().toString()); //params.put("order_main", Integer.valueOf(1)); //List<OrderFormDto> order_notakes = orderFormFeignClient.queryPageList(params); Integer order_notakes = orderFormFeignClient.selectCount(params); String order_notake = ""; if (order_notakes > 99) { order_notake = "99+"; } else { order_notake = order_notakes + ""; } result.put("order_notake", order_notake); params.clear(); params.put("order_status", Integer.valueOf(40)); params.put("user_id", user.getId().toString()); Integer order_noevaluate = orderFormFeignClient.selectCount(params); String noevaluate = "0"; if (order_noevaluate > 99) { noevaluate = "99+"; } else { noevaluate = order_noevaluate + ""; } result.put("noevaluate", noevaluate); params.clear(); /* params.put("status", Integer.valueOf(0)); params.put("user_id", user.getId()); params.put("parent", -1); List<MessageDto> msgs = messageFeignClient.queryPageList(params); result.put("msg_size", msgs.get(0));*/ result.put("user", user); // result.put("integralViewTools", this.integralViewTools); result.put("level", integralToolsFeignClient.query_user_level(String.valueOf(user.getId()))); Integer store_status=0; if (user.getStore_id()!=null) { StoreDto store = storeFeignClient.selectByPrimaryKey(user.getStore_id()); if (store!=null) { store_status = store.getStore_status(); ModularClassDto ModularClassDto = modularClassFeignClient.selectByStoreId(store.getId()); if (ModularClassDto!=null) { result.put("timely", ModularClassDto.isTimely()); }else{ result.put("timely",false); } } } result.put("store_status", store_status); //是否是代理商(业务员:推荐开店能获取店铺收益的那种) Integer platAgent = userService.agentCount(user.getId()); result.put("platAgent", platAgent); } return ResponseCode.buildSuccessMap(result); } /** * 个人二维码 * @param request * @param response * @return * @throws Exception */ @RequestMapping(value="/buyer/myQrcode", method = RequestMethod.GET) public Map<String, Object> myQrcode(HttpServletRequest request,HttpServletResponse response) throws Exception { UserDto userDto = SecurityUserHolder.getCurrentUser(request); User user = userService.selectByPrimaryKey(userDto.getId()); if(StringUtils.isEmpty(user.getDirect_selling_qr_path())) { if(null != user.getPhoto_id()){ user.setPhoto(accessoryFeignClient.selectByPrimaryKey(user.getPhoto_id())); } BeanUtils.copyProperties(user, userDto); // 生成用户分销二维码 String myQrcode = qrCodeFeignClient.myQrcode(userDto); user.setDirect_selling_qr_path(myQrcode); userService.updateById(user); } return ResponseCode.buildSuccessMap(user.getDirect_selling_qr_path()); } /** * 用户中心支付密码修改 * @param request * @param response * @return @RequestMapping(value="/buyer/account_pay_password", method = RequestMethod.GET) public Map<String, Object> account_pay_password(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> result = new HashMap<String, Object>(); User user = this.userService.selectByPrimaryKey(SecurityUserHolder.getCurrentUser().getId()); result.put("user", user); if ((user.getMobile() != null) && (!user.getMobile().equals(""))) { String show_tel = user.getMobile(); result.put("show_tel", show_tel); result.put("first", Integer.valueOf(-1)); } else { result.put("first", "1"); } return ResponseCode.buildSuccessMap(result); }*/ /** * 修改支付密码提交 * @param request * @param response * @param pay_password * @param pay_password_confirm * @param phone_number * @param code * @param t * @return */ @RequestMapping(value="/buyer/account_pay_password_save", method = RequestMethod.POST) public Map<String, Object> account_pay_password_saveEntity(HttpServletRequest request, HttpServletResponse response, String pay_password, String pay_password_confirm, String phone_number, String code) { Map<String, Object> result = new HashMap<String, Object>(); if(null == code || StringUtils.isEmpty(code)){ result.put("op_title", "验证码不能为空,支付密码修改失败"); result.put("url", CommUtil.getURL(request) + "/buyer/account_pay_password"); return ResponseCode.buildCodeMap("20004", "不要做违规操作,超过一定次数将冻结预存款", result); } VerifyCodeDto vc = verifyCodeFeignClient.getObjByProperty("mobile", "=", phone_number); if (vc == null) { result.put("op_title", "不要做违规操作,超过一定次数将冻结预存款"); result.put("url", CommUtil.getURL(request) + "/buyer/account_pay_password"); return ResponseCode.buildCodeMap("20003", "不要做违规操作,超过一定次数将冻结预存款", result); } if (!code.equalsIgnoreCase(vc.getCode())) { result.put("op_title", "验证码错误,支付密码修改失败"); result.put("url", CommUtil.getURL(request) + "/buyer/account_pay_password"); return ResponseCode.buildCodeMap("20002", "验证码错误,支付密码修改失败", result); } if (StringUtils.isEmpty(pay_password) || StringUtils.isEmpty(pay_password_confirm) || !StringUtils.equals(pay_password, pay_password_confirm)){ result.put("op_title", "两次密码输入不相同"); result.put("url", CommUtil.getURL(request) + "/buyer/account_pay_password"); return ResponseCode.buildCodeMap("20001", "两次密码输入不相同", result); } User user = this.userService.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId()); user.setMobile(phone_number); user.setPay_password(Md5Encrypt.md5(pay_password)); this.userService.updateById(user); result.put("op_title", "支付密码修改成功"); result.put("url", CommUtil.getURL(request) + "/index"); return ResponseCode.buildSuccessMap(result); } /**手机短信密码修改 TODO:(小程序没有 * @param request * @param response * @param password 密码 * @param mobile 手机号 * @param mobile_code 验证码 * @return *//* @RequestMapping({ "/mobile_account_password_save" }) @ResponseBody public String mobile_account_password_save(HttpServletRequest request, HttpServletResponse response,String password,String mobile ,String mobile_code,String password_or) { if(mobile == null || "".equals(mobile)){ return "403"; } if(mobile_code == null || "".equals(mobile_code)){ return "404"; } Jedis jedis = RedisCache.getJedis(); if(jedis.exists(SerializeUtil.serialize(mobile))){ byte[] bs = jedis.get(SerializeUtil.serialize(mobile)); Object deserialize = SerializeUtil.deserialize(bs); if(deserialize != null){ if(!CommUtil.null2String(mobile_code).equals(deserialize.toString())){ return "402"; } } }else{ return "401"; } if(jedis != null){ jedis.close(); } if(password != null && password_or != null){ if(password.equals(password_or)){ if(!CommUtil.null2String(mobile).equals("")){ List<User> users=this.userService.selectByMobileOrUserName(mobile); if(users != null && users.size() > 0){ User user = users.get(0); user.setPassword(Md5Encrypt.md5(password)); this.userService.updateById(user); }else{ return "400"; } } }else{ return "406"; } }else{ return "405"; } return "200"; } */ /* *//** * 修改支付密码-手机短信发送 * @param request * @param response * @param mobile *//* @RequestMapping(value="/buyer/account_mobile_sms", method = RequestMethod.POST) public Map<String, Object> account_mobile_sms(HttpServletRequest request, HttpServletResponse response, String mobile) { SysConfigDto sysConfigDto = sysConfigFeignClient.getSysConfig(); if (!sysConfigDto.getSmsEnbale()) { return ResponseCode.buildCodeMap("20002", "短信服务未开启", null); } String code = CommUtil.randomInt(4); String content = "尊敬的" + SecurityUserHolder.getCurrentUser(request).getUserName() + "您好,您在试图修改" + sysConfigDto.getWebsiteName() + "的支付密码," + "手机验证码为:" + code + "。[" + sysConfigDto.getTitle() + "]"; boolean ret_op = msgToolsFeignClient.sendSMS(mobile, content); if (!ret_op) { return ResponseCode.buildCodeMap("20001", "发送短信失败", null); } VerifyCodeDto mvc = verifyCodeFeignClient.getObjByProperty("mobile","=", mobile); if (mvc == null) { mvc = new VerifyCodeDto(); } mvc.setAddTime(new Date()); mvc.setCode(code); mvc.setMobile(mobile); verifyCodeFeignClient.updateById(mvc); return ResponseCode.buildSuccessMap(null); } *//** * 修改绑定手机 * @param request * @param response * @return @RequestMapping(value="/buyer/account_mobile_bind", method = RequestMethod.POST) public Map<String, Object> account_mobile_password(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> result = new HashMap<String, Object>(); User user = this.userService.selectByPrimaryKey(SecurityUserHolder .getCurrentUser().getId()); if ((user.getMobile() != null) && (!user.getMobile().equals(""))) { String show_tel = user.getMobile().substring(0, 3) + "*****" + user.getMobile().substring(8, 11); result.put("show_tel", show_tel); result.put("first", "-1"); } else { result.put("first", "1"); } return ResponseCode.buildSuccessMap(result); }*//* *//** * 手机号码绑定提交 * @param request * @param response * @param code * @param new_mobile * @param t * @return * @throws Exception *//* @RequestMapping(value="/buyer/account_mobile_bind_save", method = RequestMethod.POST) public Map<String, Object> account_mobile_bind_saveEntity(HttpServletRequest request, HttpServletResponse response, String code, String new_mobile, String t) throws Exception { Map<String, Object> result = new HashMap<String, Object>(); if (StringUtils.isEmpty(code)) { result.put("op_title", "验证码不能为空,支付密码修改失败"); result.put("url", CommUtil.getURL(request) + "/buyer/account_mobile_bind"); return ResponseCode.buildCodeMap("20004", "验证码不能为空,支付密码修改失败", result); } VerifyCodeDto mvc = verifyCodeFeignClient.getObjByProperty("mobile","=", new_mobile); if (mvc == null) { result.put("op_title", "请填写正确的验证码和手机号码,手机绑定失败"); result.put("url", CommUtil.getURL(request) + "/buyer/account_mobile_bind"); return ResponseCode.buildCodeMap("20003", "请填写正确的验证码和手机号码,手机绑定失败", result); } if (!StringUtils.equals(mvc.getCode(), code)) { result.put("op_title", "验证码错误,手机绑定失败"); result.put("url", CommUtil.getURL(request) + "/buyer/account_mobile_bind"); return ResponseCode.buildCodeMap("20002", "验证码错误,手机绑定失败", result); } User user = this.userService.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId()); if (new_mobile.equals(user.getMobile())) { result.put("op_title", "新旧输入电话号码不能相同,手机绑定失败"); result.put("url", CommUtil.getURL(request) + "/buyer/account_mobile_bind"); return ResponseCode.buildCodeMap("20001", "新旧输入电话号码不能相同,手机绑定失败", result); } user.setMobile(new_mobile); this.userService.updateById(user); verifyCodeFeignClient.deleteById(mvc.getId()); result.put("op_title", "手机绑定成功"); String content = "尊敬的" + SecurityUserHolder.getCurrentUser(request).getUserName() + "您好,您于" + CommUtil.formatLongDate(new Date())+ "绑定手机号成功。[" + sysConfigFeignClient.getSysConfig().getTitle() + "]"; msgToolsFeignClient.sendSMS(user.getMobile(), content); result.put("op_title", "手机绑定成功"); result.put("url", CommUtil.getURL(request) + "/buyer/account_safe"); return ResponseCode.buildSuccessMap(result); } *//** * 手机绑定短信发送 * @param request * @param response * @param new_mobile * @param t *//* @RequestMapping(value="/buyer/account_mobile_bind_sms", method = RequestMethod.POST) public Map<String, Object> account_mobile_bind_sms(HttpServletRequest request, HttpServletResponse response, String new_mobile) { SysConfigDto configDto = sysConfigFeignClient.getSysConfig(); if (!configDto.getSmsEnbale()) { return ResponseCode.buildCodeMap("20002", "短信服务未开启", null); } String code = CommUtil.randomInt(4); String content = ""; content = "尊敬的" + SecurityUserHolder.getCurrentUser(request).getUserName() + "您好,您在试图修改" + configDto.getWebsiteName() + "的绑定手机号码," + "手机验证码为:" + code + "。[" + configDto.getTitle() + "]"; boolean ret_op = msgToolsFeignClient.sendSMS(new_mobile, content); if (!ret_op) { return ResponseCode.buildCodeMap("20001", "发送短信失败", null); } VerifyCodeDto mvc = verifyCodeFeignClient.getObjByProperty("mobile","=", new_mobile); if (mvc == null) { mvc = new VerifyCodeDto(); } mvc.setAddTime(new Date()); mvc.setCode(code); mvc.setMobile(new_mobile); verifyCodeFeignClient.updateById(mvc); return ResponseCode.buildSuccessMap(null); }*/ /** * 已有账号绑定保存 * @param request * @param response * @param userName * @param password * @param mobile_verify_code * @param mobile */ @RequestMapping(value="/buyer/datum2", method = RequestMethod.POST) public Map<String, Object> datum2(HttpServletRequest request, HttpServletResponse response, String userName, String password, String mobile_verify_code, String mobile){ Map<String, Object> result = new HashMap<String, Object>(); VerifyCodeDto mvc = verifyCodeFeignClient.getObjByProperty("mobile","=", mobile); if (mvc == null) { result.put("op_title", "请填写正确的验证码和手机号码,手机绑定失败"); result.put("url", CommUtil.getURL(request) + "/buyer/account_mobile_bind"); return ResponseCode.buildCodeMap("20003", "请填写正确的验证码和手机号码,手机绑定失败", result); } String passwd = Md5Encrypt.md5(password).toLowerCase(); Map<String, Object> map = Maps.newHashMap(); map.put("userName", userName); map.put("passwd", passwd); List<User> users = this.userService.queryPageList(map); if ((mvc != null) && (mvc.getCode().equalsIgnoreCase(mobile_verify_code)) && (users.size() > 0)) { User bind_user = (User) users.get(0); if (CommUtil.null2String(bind_user.getOpenId()).equals("")) { User current_user = this.userService.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId()); if (current_user != null) { bind_user.setOpenId(current_user.getOpenId()); bind_user.setUserMark(null); this.userService.updateById(bind_user); Map<String,Object> json = Maps.newHashMap(); json.put("login", Boolean.valueOf(true)); json.put("userName", userName); json.put("passwd", passwd); json.put("userId", current_user.getId()); return ResponseCode.buildSuccessMap(json); } } return ResponseCode.buildCodeMap("20001", "参数错误", null); } else { return ResponseCode.buildCodeMap("20002", "验证码错误", null); } } /** * 已有账号绑定保存错误提示 * @param request * @param response * @return @RequestMapping(value="/buyer/datum_error", method = RequestMethod.GET) public Map<String, Object> datum_error(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> result = new HashMap<String, Object>(); result.put("op_title", "用户名或验证码输入错误!"); result.put("url", CommUtil.getURL(request) + "/buyer/center"); return ResponseCode.buildSuccessMap(result); }*/ @RequestMapping(value = "/test", method = RequestMethod.POST) public ResponseVO login1( HttpServletRequest request){ return MemberResponseCode.buildEnumResponseVO(MemberResponseCode.RESPONSE_CODE_USER_PASSWORD_NOT_EMPTY, null); } /** * 用户登录(WAP) * @param request * @return */ @RequestMapping(value = "/login", method = RequestMethod.POST) public ResponseVO login(@RequestBody JSONObject json, HttpServletRequest request){ //获取数据 String username = json.optString("username"); String password = json.optString("password"); //验证用户是否为空; if(StringUtils.isEmpty(username)){ return MemberResponseCode.buildEnumResponseVO(MemberResponseCode.RESPONSE_CODE_USER_NAME_NOT_EMPTY, null); } //验证密码是否为空; if(StringUtils.isEmpty(password)){ return MemberResponseCode.buildEnumResponseVO(MemberResponseCode.RESPONSE_CODE_USER_PASSWORD_NOT_EMPTY, null); } HashMap<String, Object> params = new HashMap<String, Object>(); params.put("userName", username); List<User> User_list = userService.queryPageList(params); if(User_list == null||User_list.size()<1){ return MemberResponseCode.buildEnumResponseVO(MemberResponseCode.RESPONSE_CODE_USER_DOES_NOT_EXIST, null); } User info = User_list.get(0); //判断用户是否禁用 if( -1== info.getStatus()){ return MemberResponseCode.buildEnumResponseVO(MemberResponseCode.RESPONSE_CODE_USER_NAME_IS_DISABLE, null); } //用户密码是否匹配 if(!StringUtils.equals(Md5Encrypt.md5(password), info.getPassword())){ return MemberResponseCode.buildEnumResponseVO(MemberResponseCode.RESPONSE_CODE_USER_PASSWORD_NOT_VALIDATE, null); } String token = JWT.sign(info.getId() + ";" + System.currentTimeMillis()+";"+"app", 0); // 将token存到redis中,有效期24小时 redisUtil.set(Globals.ANDROID_LOGIN_MARK + info.getId(), token, Globals.USER_INFO_EXPIRE_TIME); // 覆盖redis用户信息 UserDto userDto = new UserDto(); BeanUtils.copyProperties(info, userDto); redisUtil.set(Globals.USER_INFO_MARK + info.getId(), userDto, Globals.USER_INFO_EXPIRE_TIME); //加密用户名、密码 /* String token = JWT.sign(info.getId(), 0); //将用户名密码生成的token信息放入redis缓存 redisUtil.set(Globals.WAP_LOGIN_MARK + info.getId(), token);*/ Map<String, Object> result = new HashMap<String, Object>(); //根据uid查询member信息 User user = userService.selectByPrimaryKey(info.getId()); /*if (user.getPhoto_id()!=null) { AccessoryDto accessoryDto = accessoryFeignClient.selectByPrimaryKey(user.getPhoto_id()); if (accessoryDto!=null) user.setPhoto(accessoryDto); }*/ result.put("userInfo", user); result.put("token", token); return ResponseCode.buildEnumResponseVO(ResponseCode.SUCCESS, result); } private static final String REGEX1 = "(.*管理员.*)"; private static final String REGEX2 = "(.*admin.*)"; /** * 注册完成 * @param request * @param response * @param userName * @param password * @param email * @param code * @param user_type * @return * @throws HttpException * @throws IOException * @throws InterruptedException */ @RequestMapping(value="/register_finish", method = RequestMethod.POST) public Map<String, Object> register_finish(@RequestBody JSONObject json,HttpServletRequest request, HttpServletResponse response ) throws HttpException, IOException, InterruptedException { // 获取数据 String userName = json.optString("username"); String password = json.optString("password"); String user_type = json.optString("user_type"); String directSellingParent_id = json.optString("directSellingParent_id"); String email = json.optString("email"); // 验证用户是否为空; if (StringUtils.isEmpty(userName)) { return ResponseCode.buildFailMap("10004", "参数错误"); } // 验证密码是否为空; if (StringUtils.isEmpty(password)) { return ResponseCode.buildFailMap("10004", "参数错误"); } SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig(); //查询是否有用户名 HashMap<String, Object> map = new HashMap<String, Object>(); map.put("userName", userName); List<User> User_list = userService.queryPageList(map); if (User_list.size() > 0) { return ResponseCode.buildFailMap("10003", "该用户名已注册"); } try { boolean reg = true; if ((userName.matches(REGEX1)) || (userName.toLowerCase().matches(REGEX2))) { reg = false; } if (reg) { User user = new User(); user.setUserName(userName); user.setUserRole("BUYER"); user.setAddTime(new Date()); user.setEmail(email); user.setAvailableBalance(BigDecimal.valueOf(0L)); user.setFreezeBlance(BigDecimal.valueOf(0L)); if (directSellingParent_id != null) { User directSellingParent = this.userService .selectByPrimaryKey(CommUtil.null2Long(directSellingParent_id)); user.setDirectSellingParent(directSellingParent); } if ((user_type != null) && (!user_type.equals(""))) { user.setUser_type(CommUtil.null2Int(user_type)); user.setContact_user(request.getParameter("contact_user")); user.setDepartment(request.getParameter("department")); user.setTelephone(request.getParameter("telephone")); user.setMobile(request.getParameter("mobile")); user.setCompany_name(request.getParameter("company_name")); AreaDto area = this.areaFeignClient.selectByPrimaryKey(CommUtil .null2Long(request.getParameter("area_id"))); user.setCompany_address(area.getParent().getParent() .getAreaName() + area.getParent().getAreaName() + area.getAreaName() + " " + request.getParameter("company_address")); if (request.getParameter("company_purpose") != null) { if (!request.getParameter("company_purpose").equals("")) { user.setCompany_purpose(request.getParameter( "company_purpose").substring( 0, request.getParameter("company_purpose") .length() - 1)); } } user.setCompany_url(request.getParameter("company_url")); user.setCompany_person_num(request .getParameter("company_person_num")); user.setCompany_trade(request.getParameter("company_trade")); user.setCompany_nature(request .getParameter("company_nature")); } user.setPassword(Md5Encrypt.md5(password).toLowerCase()); Map<String, Object> params = Maps.newHashMap(); params.put("type", "BUYER"); List<Role> roles = this.roleService.queryPageList(params); this.userService.saveUserRole(user.getId(), roles); if (sysConfig.getIntegral()) { user.setIntegral(sysConfig .getMemberRegister()); try { this.userService.saveEntity(user); } catch (Exception e) { e.printStackTrace(); } IntegralLogDto log = new IntegralLogDto(); log.setAddTime(new Date()); log.setContent("用户注册增加" + sysConfig .getMemberRegister() + "分"); log.setIntegral(sysConfig .getMemberRegister()); log.setIntegral_user_id(user.getId()); log.setType("reg"); integralLogFeignClient.saveEntity(log); } else { this.userService.saveEntity(user); } Album album = new Album(); album.setAddTime(new Date()); album.setAlbum_default(true); album.setAlbum_name("默认相册"); album.setAlbum_sequence(55536); album.setUser_id(user.getId()); this.albumService.saveEntity(album); return ResponseCode.buildSuccessMap(null); } return ResponseCode.buildFailMap("10001", "请求失败"); } catch (Exception e) { } return ResponseCode.buildSuccessMap(null); } /**发送短信 (用户登录界面) * @param mobile * @return */ @RequestMapping(value ="/mobile_send", method = RequestMethod.POST) public Map<String, Object> mobile_send(@RequestBody JSONObject json) { // 获取数据 String mobile = json.optString("mobile"); String type = json.optString("type"); if (mobile == null || "".equals(mobile)) { return ResponseCode.buildReturnMap(ResponseCode.RESPONSE_CODE_USER_MOBILE_OR_TELEPHONE_NOT_EMPTY, "联系方式不能为空"); } /* // 系统配置是否开启短信功能 (后面有做验证) SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig(); if (sysConfig.getSmsEnbale() == false) { return ResponseCode.buildReturnMap(ResponseCode.RESPONSE_CODE_SMS_CLOSE,"系统尚未开启短信服务"); }*/ // 短信模板(固定模板,一个是注册,一个登陆) 登录验证码 String mark = "sms_tobuyer_user_login_notify"; // 后台短信模板登录标识 if (CommUtil.null2String(type).equals("find")) { mark = "sms_tobuyer_find_password_notify"; // 重置密码 } else if (CommUtil.null2String(type).equals("bind")) { mark = "sms_tobuyer_user_login_notify"; // 通用验证码 } else { List<User> users = this.userService.selectByMobileOrUserName(mobile);// (手机号唯一),通过手机号(账号),查询用户 if (users != null && users.size() > 0) { mark = "sms_tobuyer_user_login_notify"; // 登录验证码 } else { mark = "sms_tobuyer_tips_notify"; } } // 根据短信模板标识(固定)查询模板信息 HashMap<String, Object> hashMap = new HashMap<String, Object>(); hashMap.put("mark", mark); // 模板标识 hashMap.put("open", 1); // 开启 List<TemplateDto> templatedto_list = templateFeignClient.queryPageList(hashMap); if (templatedto_list.size()==0) { return ResponseCode.buildReturnMap(ResponseCode.RESPONSE_CODE_SMS_CLOSE,"系统尚未开启短信服务"); } ThreadLocalRandom current = ThreadLocalRandom.current(); int muber = current.nextInt(100000, 1000000); if (!redisUtil.existsHashKey("mobile", mobile)) { //查询是否存在 redisUtil.setHashvValueTimeout("mobile", mobile, muber, 5, TimeUnit.MINUTES); //不存在,则创建,超时时间为5分钟 //TODO(待修改,动态) 目前是阿里的内容 String content = "{\"code\":\"" + muber + "\"}"; msgToolsFeignClient.sendSMS(mobile,templatedto_list.get(0).getSms_mark(),content); //发送短信请求 } else { Object hashValue = redisUtil.getHashValue("mobile", mobile); String content = "{\"code\":\"" + hashValue.toString() + "\"}"; msgToolsFeignClient.sendSMS(mobile, templatedto_list.get(0).getSms_mark(), content); } //RedisCache.removeObject(mobile); return ResponseCode.buildSuccessMap("短信已发送"); } /**短信验证 * @param mobile * @param code * @return */ /*@RequestMapping({"/code_validate"}) public String code_validate(@RequestBody JSONObject json){ String mobile = json.optString("mobile"); String code = json.optString("code"); if(mobile == null || "".equals(mobile)){ return "404"; } if(code == null || "".equals(code)){ return "404"; } Jedis jedis = RedisCache.getJedis(); if(jedis.exists(SerializeUtil.serialize(mobile))){ byte[] bs = jedis.get(SerializeUtil.serialize(mobile)); Object deserialize = SerializeUtil.deserialize(bs); if(deserialize != null){ if(CommUtil.null2String(code).equals(deserialize.toString())){ return "200"; }else{ return "400"; } } } if(jedis != null){ jedis.close(); } return "401"; }*/ /**短信验证 * @param mobile * @param code * @return *//* @RequestMapping({"/code_validate"}) public Boolean code_validate(String mobile,String code){ if(mobile == null || "".equals(mobile)){ return false; } if(code == null || "".equals(code)){ return false; } Jedis jedis = RedisCache.getJedis(); if(jedis.exists(SerializeUtil.serialize(mobile))){ byte[] bs = jedis.get(SerializeUtil.serialize(mobile)); Object deserialize = SerializeUtil.deserialize(bs); if(deserialize != null){ if(CommUtil.null2String(code).equals(deserialize.toString())){ RedisCache.removeObject(mobile); return true; } } } if(jedis != null){ jedis.close(); } return false; }*/ /** * 用户申请主播, * 已是主播则进行更换上级 * @param request * @param response * @return */ @RequestMapping({ "/buyer/add_livecode" }) public Map<String, Object> add_livecode(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject json) { HashMap<String, Object> result = new HashMap<>(); User user = userService.selectByPrimaryKey(SecurityUserHolder.getCurrentUserId(request)); // 如果是审核通过的主播,则进行更换 result.put("Is_live", user.getIs_live());// 是否是主播 result.put("Live_code_up", user.getLive_code_up()); result.put("goods_id", 502); // 增值服务商品id return ResponseCode.buildSuccessMap(result); } //进身份证验证页面 @RequestMapping({ "/inLiveCode" }) public Map<String, Object> inLiveCode(HttpServletRequest request, HttpServletResponse response) { UserDto userDto = SecurityUserHolder.getCurrentUser(request); if(userDto == null){ return ResponseCode.buildEnumMap(ResponseCode.TOKEN_EXPIRE, null); } User currentUser = userService.selectByPrimaryKey(userDto.getId()); HashMap<String, Object> result = new HashMap<>(); result.put("is_live", currentUser.getIs_live()); if(currentUser.getIs_live() == 1){ VerifyidCard vc = verifyidCardService.selectByUserId(currentUser.getId()); if(vc != null){ result.put("vc", vc); } } return ResponseCode.buildSuccessMap(result); } /** * 校验邀请码(添加了身份证验证功能) * @param request * @param response * @return */ @RequestMapping({ "/checkLiveCode" }) public Map<String, Object> checkLiveCode(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject json) { String liveCode = json.optString("liveCode"); String name = json.optString("name"); String code = json.optString("code"); String phone = json.optString("phone"); Long img_id1 = json.optLong("img_id1"); Long img_id2 = json.optLong("img_id2"); Long img_id3 = json.optLong("img_id3"); if(StringUtils.isBlank(name) || StringUtils.isBlank(code) || StringUtils.isBlank(phone) || img_id1 == null || img_id2 == null || img_id3 == null){ return ResponseCode.buildEnumMap(ResponseCode.REQ_CANNOT_EMPTY, null); } if(StringUtils.isBlank(liveCode)){ liveCode = "100000"; } UserDto userDto = SecurityUserHolder.getCurrentUser(request); if(userDto == null){ return ResponseCode.buildEnumMap(ResponseCode.TOKEN_EXPIRE, null); } HashMap<String, Object> result = new HashMap<>(); User currentUser = userService.selectByPrimaryKey(userDto.getId()); User user = userService.selectByLiveCode(CommUtil.null2Long(liveCode));//100086 boolean isflag=false; if (user!=null) { //不能是自己的邀请码并且这个邀请码存在 currentUser.setLive_code_up(CommUtil.null2Long(liveCode)); userService.updateById(currentUser); isflag=true; } result.put("check", isflag); result.put("goods_id", 502); // 增值服务商品id VerifyidCard vc = verifyidCardService.selectByUserId(currentUser.getId()); boolean bol = false; if(vc == null){ //保存用户身份证信息 vc = new VerifyidCard(); vc.setAddTime(new Date()); vc.setDeleteStatus(0); bol = true; } vc.setName(name); vc.setCode(code); vc.setPhone(phone); vc.setImg_id1(img_id1); vc.setImg_id2(img_id2); vc.setImg_id3(img_id3); vc.setUid(currentUser.getId()); if(bol){ verifyidCardService.saveEntity(vc); }else{ verifyidCardService.updateById(vc); } return ResponseCode.buildSuccessMap(result); } /** * 判断店铺是否开通主播(用户名+密码) * @param paraMap * @return 不为空表示已经开通 */ @RequestMapping(value = "/apiForFeign/checkingAccount", method = RequestMethod.POST) public Long checkingAccount(@RequestBody Map<String, String> paraMap){ String userName = paraMap.get("userName"); String password = paraMap.get("password"); User user = userService.selectByUserName(userName); if(user == null){ return null; } if(!StringUtils.equals(password, user.getPassword())){ return null; } if(user.getIs_live() != 2){ return null; } return user.getId(); } /** * 判断店铺是否开通主播(用户名) * @param paraMap * @return 不为空表示已经开通 */ @RequestMapping(value = "/apiForFeign/checkingUserName", method = RequestMethod.POST) public Long checkingUserName(@RequestBody Map<String, String> paraMap){ String userName = paraMap.get("userName"); User user = userService.selectByUserName(userName); if(user == null){ return null; } if(user.getIs_live() != 2){ return null; } return user.getId(); } /** * 根据用户名查询用户 * @param username * @return */ @RequestMapping(value = "/apiForFeign/selectByUserName", method = RequestMethod.POST) public User selectByUserName(@RequestParam("userName")String userName){ return userService.selectByUserName(userName); } //将邀请注册奖金提现到余额 @RequestMapping(value ="/invProChangeBalance", method = RequestMethod.POST) public Map<String, Object> invProChangeBalance(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject json) { String money = json.optString("money"); if(StringUtils.isBlank(money)){ return ResponseCode.buildEnumMap(ResponseCode.REQ_CANNOT_EMPTY, null); } UserDto user = SecurityUserHolder.getCurrentUser(request); if(user == null || user.getId() == null){ return ResponseCode.buildEnumMap(ResponseCode.TOKEN_EXPIRE, null); } User inviter = userService.selectByPrimaryKey(user.getId()); //判断是否超过额度 if(new BigDecimal(money).compareTo(inviter.getInvitation_profit()) == 1){ return ResponseCode.buildCodeMap("21001", "超过可转额度", null); } //判断金额是不是20的倍数 Integer changeMoney = Integer.parseInt(money); if(changeMoney >= 0 && changeMoney%20 == 0){ inviter.setInvitation_profit(inviter.getInvitation_profit().subtract(new BigDecimal(money))); BigDecimal before = inviter.getAvailableBalance(); inviter.setAvailableBalance(inviter.getAvailableBalance().add(new BigDecimal(money))); userService.updateById(inviter); try{ //添加记录 PredepositLog log = new PredepositLog(); log.setPd_log_user_id(inviter.getId()); log.setPd_log_amount(new BigDecimal(money)); log.setAmount_before(before); log.setAmount_after(inviter.getAvailableBalance()); log.setAddTime(new Date()); log.setDeleteStatus(0); log.setPd_log_info("邀请注册收益转余额"); log.setPd_op_type("分销结算收益"); log.setPd_type("可用预存款"); predepositLogService.saveEntity(log); }catch (Exception e) { logger.error("UserController >> invProChangeBalance >> Exception:"+ e.getMessage()); } } return ResponseCode.buildSuccessMap(true); } /** * 下单显示 (随机100个用户 ) * @param request * @param response * @return */ @RequestMapping({ "/userIndex" }) public Map<String, Object> userIndex(HttpServletRequest request, HttpServletResponse response) { //UserDto userDto = SecurityUserHolder.getCurrentUser(request); Map<String, Object> params = Maps.newHashMap(); /*if (userDto!=null) { params.put("id_no", userDto.getId()); }*/ params.put("deleteStatus", 0); params.put("weixin_unionID_is_no", "weixin_unionID_is_no"); // 总用户数量 int selectCount = userService.selectCount(params); int c = 0; int nextInt =0; if (selectCount<100) { c=1; }else{ c = (int) selectCount / 100; Random random = new Random(); nextInt = random.nextInt(c); } HashMap<String, Object> result = new HashMap<>(); // 用户列表 //List<User> list = new ArrayList<User>(); List<User> list = (List<User>) redisUtil.get("userIndexList"); /*result.put("userIndexList", list); return ResponseCode.buildSuccessMap(result);*/ if (null == list || list.size() < 1) { params.clear(); params.put("start", nextInt); params.put("weixin_unionID_is_no", "weixin_unionID_is_no"); list = userService.listIndex(params); //设置成一天过期 long oneday=24*60*60; redisUtil.set("userIndexList", list,oneday); result.put("userIndexList", list); } else { result.put("userIndexList", list); } return ResponseCode.buildSuccessMap(result); } /** * 查看用户是否有公众号openid (没有则去鱼易库里查,在没有就提示给前端) * @param request * @param response * @return *//* @RequestMapping({ "/buyer/selectWxOpenId" }) public Map<String, Object> selectWxOpenId(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject json) { HashMap<String, Object> result = new HashMap<>(); User user = userService.selectByPrimaryKey(SecurityUserHolder.getCurrentUserId(request)); if(user==null){ // 用户不存在 return ResponseCode.buildFailMap("用户不存在", null); } boolean isfalg=false; String openid=user.getWx_open_id(); //为空则去鱼易数据库查 if(StringUtils.isEmpty(openid)){ JSONObject paramJson = new JSONObject(); paramJson.put("username", user.getMobile()); String data = ""; try { // 加密data data = AESUtil.getInstance().Encrypt(paramJson.toString(), AESUtil.akk_secret); } catch (Exception e) { log.error("加密请求参数出错,错误信息"+Exceptions.getStackTraceAsString(e)); } Map<String,String> params = new HashMap<String, String>(); params.put("data", data); String url = "https://www.fishmq.cn/apply/synchroOpenid"; String result1 = HttpClientUtils.doPostReturn(url, params, "application/json; charset=UTF-8"); //UTF-8 //{"msg":"您的账号未绑定渔易水产科技公众号","code":500} Map map = (Map)JSON.parse(result1); Integer code = (Integer)map.get("code"); if(code == 200){ openid=(String) map.get("msg"); isfalg=true; //将openid 保存进用户表 user.setWx_open_id(openid); userService.updateById(user); } } //如果openid还为空则返回false,需要用户关注公众号 result.put("isfalg", isfalg); return ResponseCode.buildSuccessMap(result); }*/ @RequestMapping(value = "/logoff", method = RequestMethod.POST) public Map<String,Object> logoff(HttpServletRequest request,@RequestBody JSONObject json){ UserDto currentUser = SecurityUserHolder.getCurrentUser(request); User user = this.userService.selectByPrimaryKey(currentUser.getId()); // 注销用户 user.setUserName("logoff_" + user.getUserName()); user.setMobile("logoff_" + user.getMobile()); user.setStatus(-2); user.setWeixin_unionID("logoff_"+user.getWeixin_unionID()); user.setOpenId("logoff_"+user.getOpenId()); user.setWx_open_id("logoff_"+user.getWx_open_id()); user.setDeleteStatus(1); // 修改登录信息 user.setLastLoginDate(new Date()); user.setLastLoginIp(CommUtil.getIpAddr(request)); userService.updateById(user); // 将token删除 redisUtil.remove(Globals.ANDROID_LOGIN_MARK + user.getId()); // 返回结果集 return ResponseCode.buildSuccessMap(new HashMap<>()); } }
@源码地址来源:http://minglisoft.cn/hhcloud/