|
|
|
@ -34,64 +34,122 @@ import com.wsk.tool.Pornographic;*/
|
|
|
|
|
*/
|
|
|
|
|
@Controller
|
|
|
|
|
@Slf4j
|
|
|
|
|
package //这里应该是对应的包名,原代码未显示完整,假设为对应的业务包名;
|
|
|
|
|
|
|
|
|
|
import //导入相关的类库,原代码未显示完整,以下是按使用情况推测的常见导入示例
|
|
|
|
|
javax.servlet.http.HttpServletRequest;
|
|
|
|
|
org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
org.springframework.web.bind.annotation.RequestMethod;
|
|
|
|
|
org.springframework.web.servlet.Model;
|
|
|
|
|
//假设存在对应的自定义工具类、实体类、服务层接口等的导入,例如
|
|
|
|
|
import com.example.utils.TokenProccessor;
|
|
|
|
|
import com.example.service.UserInformationService;
|
|
|
|
|
import com.example.service.UserPasswordService;
|
|
|
|
|
import com.example.service.UserCollectionService;
|
|
|
|
|
import com.example.service.UserReleaseService;
|
|
|
|
|
import com.example.service.BoughtShopService;
|
|
|
|
|
import com.example.service.UserWantService;
|
|
|
|
|
import com.example.service.ShopCarService;
|
|
|
|
|
import com.example.service.OrderFormService;
|
|
|
|
|
import com.example.service.GoodsOfOrderFormService;
|
|
|
|
|
import com.example.service.UserStateService;
|
|
|
|
|
import com.example.service.ShopInformationService;
|
|
|
|
|
import com.example.service.GoodsCarService;
|
|
|
|
|
import com.example.service.SpecificeService;
|
|
|
|
|
import com.example.service.ClassificationService;
|
|
|
|
|
import com.example.service.AllKindsService;
|
|
|
|
|
import com.example.service.ShopContextService;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
|
|
|
|
// UserController类,通常作为Spring MVC框架中的一个控制器,用于处理和用户相关的各种请求操作,例如登录、退出等功能。
|
|
|
|
|
public class UserController {
|
|
|
|
|
|
|
|
|
|
// 使用@Resource注解注入UserInformationService,用于处理用户信息相关的业务逻辑,比如查询、更新用户的基本信息等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private UserInformationService userInformationService;
|
|
|
|
|
// 使用@Resource注解注入UserPasswordService,用于处理用户密码相关的业务逻辑,例如密码的修改、验证等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private UserPasswordService userPasswordService;
|
|
|
|
|
// 使用@Resource注解注入UserCollectionService,用于处理用户收藏相关的业务逻辑,像添加、删除用户的收藏记录等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private UserCollectionService userCollectionService;
|
|
|
|
|
// 使用@Resource注解注入UserReleaseService,从变量名推测可能用于处理用户发布相关的业务逻辑(具体需看业务实现),例如用户发布商品、发布动态等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private UserReleaseService userReleaseService;
|
|
|
|
|
// 使用@Resource注解注入BoughtShopService,从变量名推测可能用于处理用户购买店铺相关的业务逻辑(具体需看业务实现),比如记录用户购买店铺的信息、查询已购买店铺列表等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private BoughtShopService boughtShopService;
|
|
|
|
|
// 使用@Resource注解注入UserWantService,用于处理用户求购相关的业务逻辑,例如用户发布求购信息、查询自己的求购记录等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private UserWantService userWantService;
|
|
|
|
|
// 使用@Resource注解注入ShopCarService,从变量名推测可能用于处理购物车相关的业务逻辑(具体需看业务实现),像添加商品到购物车、修改购物车中商品数量等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private ShopCarService shopCarService;
|
|
|
|
|
// 使用@Resource注解注入OrderFormService,用于处理订单表单相关的业务逻辑,比如创建订单、查询订单状态等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private OrderFormService orderFormService;
|
|
|
|
|
// 使用@Resource注解注入GoodsOfOrderFormService,从变量名推测可能用于处理订单表单中商品相关的业务逻辑(具体需看业务实现),例如查看订单中包含的商品详情、修改订单商品数量等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private GoodsOfOrderFormService goodsOfOrderFormService;
|
|
|
|
|
// 使用@Resource注解注入UserStateService,从变量名推测可能用于处理用户状态相关的业务逻辑(具体需看业务实现),比如设置用户的在线、离线状态,或者判断用户是否被封禁等状态相关操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private UserStateService userStateService;
|
|
|
|
|
// 使用@Resource注解注入ShopInformationService,用于处理店铺信息相关的业务逻辑,例如查询店铺详情、更新店铺信息等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private ShopInformationService shopInformationService;
|
|
|
|
|
// 使用@Resource注解注入GoodsCarService,从变量名推测可能用于处理商品车(可能类似购物车,具体看业务)相关的业务逻辑,像管理商品车中的商品等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private GoodsCarService goodsCarService;
|
|
|
|
|
// 使用@Resource注解注入SpecificeService,具体业务逻辑需看其具体实现(从变量名较难准确判断,可能是特定业务相关),由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private SpecificeService specificeService;
|
|
|
|
|
// 使用@Resource注解注入ClassificationService,可能用于分类相关的业务逻辑(从变量名推测),比如对商品、店铺等进行分类管理操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private ClassificationService classificationService;
|
|
|
|
|
// 使用@Resource注解注入AllKindsService,具体业务不太明确(从变量名较难准确判断),由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private AllKindsService allKindsService;
|
|
|
|
|
// 使用@Resource注解注入ShopContextService,可能用于店铺上下文相关的业务逻辑(从变量名推测),例如获取店铺的周边信息、关联店铺的相关推荐等操作,由Spring框架自动装配对应的实现类。
|
|
|
|
|
@Resource
|
|
|
|
|
private ShopContextService shopContextService;
|
|
|
|
|
|
|
|
|
|
//进入登录界面
|
|
|
|
|
// 处理进入登录界面的请求,使用GET方法访问"/login.do"路径时触发该方法。
|
|
|
|
|
// 该方法主要负责生成一个用于登录验证等用途的token,并将其设置到HttpServletRequest的session中以及添加到Model中,最后返回登录页面的视图名称。
|
|
|
|
|
@RequestMapping(value = "/login.do", method = RequestMethod.GET)
|
|
|
|
|
public String login(HttpServletRequest request, Model model) {
|
|
|
|
|
// 通过TokenProccessor的单例模式获取实例,并调用其makeToken方法生成一个token,这个token可能用于防止重复提交、验证登录状态等操作(具体看业务逻辑)。
|
|
|
|
|
String token = TokenProccessor.getInstance().makeToken();
|
|
|
|
|
// 使用日志记录工具(这里假设使用的是SLF4J,LoggerFactory获取对应的Logger实例进行日志记录)记录进入登录界面的信息以及生成的token值,方便后续查看日志排查问题,比如查看是否有异常的登录请求等情况。
|
|
|
|
|
log.info("进入登录界面,token为:" + token);
|
|
|
|
|
// 将生成的token设置到HttpServletRequest的session中,以便在后续的请求中可以获取到这个token进行相关验证等操作,实现跨请求的数据共享(在同一个会话内)。
|
|
|
|
|
request.getSession().setAttribute("token", token);
|
|
|
|
|
// 将token添加到Model中,Model是Spring MVC用于在控制器和视图之间传递数据的对象,在前端页面(例如JSP等视图模板)中可以获取到这个token并进行相应的展示或者验证操作(具体看前端实现)。
|
|
|
|
|
model.addAttribute("token", token);
|
|
|
|
|
// 返回登录页面的视图名称,视图解析器会根据这个名称找到对应的页面进行渲染显示,让用户看到登录界面。
|
|
|
|
|
return "page/login_page";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//退出
|
|
|
|
|
// 处理用户退出的请求,当访问"/logout.do"路径时触发该方法。
|
|
|
|
|
// 该方法主要负责从HttpServletRequest的session中移除用户相关的信息(如用户信息、用户ID等),然后进行重定向操作,重定向到相应的页面(如首页或者其他指定页面)。
|
|
|
|
|
@RequestMapping(value = "/logout.do")
|
|
|
|
|
public String logout(HttpServletRequest request) {
|
|
|
|
|
try {
|
|
|
|
|
// 从HttpServletRequest的session中移除名为"userInformation"的属性,这个属性可能存储着用户的详细信息(比如用户名、手机号等),实现清除用户登录状态的一部分操作。
|
|
|
|
|
request.getSession().removeAttribute("userInformation");
|
|
|
|
|
// 从HttpServletRequest的session中移除名为"uid"的属性,这个属性可能存储着用户的唯一标识ID,进一步清除用户登录相关的关键信息,确保用户完全退出登录状态。
|
|
|
|
|
request.getSession().removeAttribute("uid");
|
|
|
|
|
// 输出"logout"信息到控制台,这可能用于简单的调试或者日志记录(在实际应用中可以根据需求完善更详细的日志输出等操作)。
|
|
|
|
|
System.out.println("logout");
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
// 如果在移除session属性的过程中出现异常,打印异常栈信息方便排查问题,然后重定向到"/home.do"路径对应的页面(这里假设"/home.do"是首页或者其他合适的默认页面,具体看项目配置)。
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
return "redirect:/home.do";
|
|
|
|
|
}
|
|
|
|
|
// 如果没有出现异常,正常情况下重定向到根路径(通常是网站的首页,具体看项目的配置情况),完成用户退出登录后的页面跳转操作。
|
|
|
|
|
return "redirect:/";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//用户注册,拥有插入数据而已,没什么用的
|
|
|
|
|
@RequestMapping(value = "/registered.do", method = RequestMethod.POST)
|
|
|
|
|