package com.yeshi.buwan.controller.api; import com.google.gson.Gson; import com.yeshi.buwan.controller.parser.UserParser; import com.yeshi.buwan.domain.user.LoginUser; import com.yeshi.buwan.domain.user.LoginUserExtra; import com.yeshi.buwan.domain.vip.UserVIPInfo; import com.yeshi.buwan.service.inter.LoginUserService; import com.yeshi.buwan.service.inter.vip.VIPService; import com.yeshi.buwan.util.JsonUtil; import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.util.ThreadUtil; import com.yeshi.buwan.util.factory.vo.UserInfoVOFactory; import com.yeshi.buwan.vo.AcceptData; import com.yeshi.buwan.vo.client.user.UserInfoVO; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpSession; @Controller @RequestMapping("api/v2/user") public class UserController { @Resource private LoginUserService loginUserService; @Resource private VIPService vipService; @RequestMapping("getUserInfo") @ResponseBody public String getUserInfo(AcceptData acceptData, String loginUid) { LoginUser loginUser = loginUserService.getLoginUser(loginUid); if (loginUser == null) { return JsonUtil.loadFalseJson("用户不存在"); } LoginUserExtra extra = loginUserService.getExtra(loginUid); //初始化用户信息 if (extra == null) extra = loginUserService.initExtra(loginUid); //是否有pptvuid if (extra != null && StringUtil.isNullOrEmpty(extra.getPptvUid())) { extra = loginUserService.initPPTVUid(extra.getId()); } //需要初始化VIP信息 vipService.initUserVipInfo(loginUid); UserVIPInfo vipInfo = vipService.getVIPInfo(loginUid); UserInfoVO vo = UserInfoVOFactory.create(loginUser, extra, vipInfo); //线程执行设备信息更新 ThreadUtil.run(new Runnable() { @Override public void run() { loginUserService.setUtdId(loginUid, acceptData.getUtdId()); } }); return JsonUtil.loadTrueJson(new Gson().toJson(vo)); } @RequestMapping("updateUserInfo") @ResponseBody public String updateUserInfo(AcceptData acceptData, String portrait, String loginUid, String nickName, String birthday, String sex, String personSign, HttpSession session) { LoginUser loginUser = new LoginUser(); LoginUserExtra extra = new LoginUserExtra(); loginUser.setId(loginUid); extra.setId(loginUid); if (!StringUtil.isNullOrEmpty(portrait)) { loginUser.setPortrait(UserParser.savePortrait(portrait, session)); } if (!StringUtil.isNullOrEmpty(nickName)) { loginUser.setName(nickName); } if (!StringUtil.isNullOrEmpty(birthday)) { loginUser.setBirthday(birthday); extra.setBirthday(birthday); } if (!StringUtil.isNullOrEmpty(sex)) { loginUser.setSex(sex); extra.setSex(sex); } if (!StringUtil.isNullOrEmpty(personSign)) { loginUser.setSign(personSign); extra.setSign(personSign); } loginUserService.updateSelectiveByPrimaryKey(loginUser); loginUserService.updateSelectiveByPrimaryKey(extra); return JsonUtil.loadTrueJson(""); } }