HINOTOR 2 years ago
parent a31e7c2cf5
commit bc7f640363

@ -60,6 +60,11 @@
<artifactId>mybatis-generator-core</artifactId> <artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version> <version>1.3.5</version>
</dependency> </dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>

@ -0,0 +1,13 @@
package com.example.recommend.common;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AdminPermission {
String produceType() default "text/html";
}

@ -0,0 +1,50 @@
package com.example.recommend.common;
import com.example.recommend.controller.admin.AdminController;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
@Aspect
@Configuration
public class ControllerAspect {
@Autowired
private HttpServletRequest httpServletRequest;
@Autowired
private HttpServletResponse httpServletResponse;
@Around("execution(* com.example.recommend.controller.admin.*.*(..)) && @annotation(org.springframework.web.bind.annotation.RequestMapping)")
public Object adminControllerBeforeValidation(ProceedingJoinPoint joinPoint) throws Throwable {
Method method = ((MethodSignature) joinPoint.getSignature()).getMethod();
AdminPermission adminPermission = method.getAnnotation(AdminPermission.class);
if (adminPermission == null) {
//公共方法
Object resultObject = joinPoint.proceed();
return resultObject;
}
//判断当前管理员是否登录
String email = (String) httpServletRequest.getSession().getAttribute(AdminController.CURRENT_ADMIN_SESSION);
if (email == null) {
if (adminPermission.produceType().equals("text/html")) {
httpServletResponse.sendRedirect("/admin/admin/loginpage");
return null;
} else {
CommonError commonError = new CommonError(EmBusinessError.ADMIN_SHOULD_LOGIN);
return CommonRes.create(commonError, "fail");
}
} else {
Object resultObject = joinPoint.proceed();
return resultObject;
}
}
}

@ -11,7 +11,11 @@ public enum EmBusinessError {
//用户服务相关的错误类型20000开头 //用户服务相关的错误类型20000开头
REGISTER_DUP_FAIL(20001, "用户已存在"), REGISTER_DUP_FAIL(20001, "用户已存在"),
LOGIN_FAIL(20002, "手机号或密码错误"); LOGIN_FAIL(20002, "手机号或密码错误"),
//admin相关错误
ADMIN_SHOULD_LOGIN(30001, "管理员需要先登录"),
;
private Integer errCode; private Integer errCode;

@ -4,9 +4,10 @@ import com.example.recommend.common.BusinessException;
import com.example.recommend.common.CommonRes; import com.example.recommend.common.CommonRes;
import com.example.recommend.common.CommonUtil; import com.example.recommend.common.CommonUtil;
import com.example.recommend.common.EmBusinessError; import com.example.recommend.common.EmBusinessError;
import com.example.recommend.model.UserModel;
import com.example.recommend.request.LoginReq;
import com.example.recommend.request.RegisterReq; import com.example.recommend.request.RegisterReq;
import com.example.recommend.service.UserService; import com.example.recommend.service.UserService;
import com.example.recommend.model.UserModel;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -17,12 +18,18 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
@Controller("/user") @Controller("/user")
@RequestMapping("/user") @RequestMapping("/user")
public class UserController { public class UserController {
public static final String CURRENT_USER_SESSION = "currentUserSession";
@Autowired
private HttpServletRequest httpServletRequest;
@Autowired @Autowired
private UserService userService; private UserService userService;
@ -69,4 +76,31 @@ public class UserController {
return CommonRes.create(resUserModel); return CommonRes.create(resUserModel);
} }
@RequestMapping("/login")
@ResponseBody
public CommonRes login(@RequestBody @Valid LoginReq loginReq, BindingResult bindingResult) throws BusinessException, UnsupportedEncodingException, NoSuchAlgorithmException {
if (bindingResult.hasErrors()) {
throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR, CommonUtil.processErrorString(bindingResult));
}
UserModel userModel = userService.login(loginReq.getTelephone(), loginReq.getPassword());
httpServletRequest.getSession().setAttribute(CURRENT_USER_SESSION, userModel);
return CommonRes.create(userModel);
}
@RequestMapping("/logout")
@ResponseBody
public CommonRes logout() throws BusinessException, UnsupportedEncodingException, NoSuchAlgorithmException {
httpServletRequest.getSession().invalidate();
return CommonRes.create(null);
}
//获取当前用户信息
@RequestMapping("/getcurrentuser")
@ResponseBody
public CommonRes getCurrentUser() {
UserModel userModel = (UserModel) httpServletRequest.getSession().getAttribute(CURRENT_USER_SESSION);
return CommonRes.create(userModel);
}
} }

@ -0,0 +1,81 @@
package com.example.recommend.controller.admin;
import com.example.recommend.common.AdminPermission;
import com.example.recommend.common.BusinessException;
import com.example.recommend.common.EmBusinessError;
import com.example.recommend.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
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.servlet.ModelAndView;
import sun.misc.BASE64Encoder;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@Controller("/admin/admin")
@RequestMapping("/admin/admin")
public class AdminController {
@Value("${admin.email}")
private String email;
@Value("${admin.encryptPassword}")
private String encrptyPassord;
@Autowired
private HttpServletRequest httpServletRequest;
@Autowired
private UserService userService;
public static final String CURRENT_ADMIN_SESSION = "currentAdminSession";
@RequestMapping("/index")
@AdminPermission
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView("/admin/admin/index");
modelAndView.addObject("userCount", userService.countAllUser());
modelAndView.addObject("CONTROLLER_NAME", "admin");
modelAndView.addObject("ACTION_NAME", "index");
return modelAndView;
}
@RequestMapping("/loginpage")
public ModelAndView loginpage() {
ModelAndView modelAndView = new ModelAndView("/admin/admin/login");
return modelAndView;
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@RequestParam(name = "email") String email,
@RequestParam(name = "password") String password) throws BusinessException, UnsupportedEncodingException, NoSuchAlgorithmException {
if (StringUtils.isEmpty(email) || StringUtils.isEmpty(password)) {
throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR, "用户名密码不能为空");
}
if (email.equals(this.email) && encodeByMd5(password).equals(this.encrptyPassord)) {
//登录成功
httpServletRequest.getSession().setAttribute(CURRENT_ADMIN_SESSION, email);
return "redirect:/admin/admin/index";
} else {
throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR, "用户名密码错误");
}
}
private String encodeByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
//确认计算方法MD5
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
BASE64Encoder base64Encoder = new BASE64Encoder();
return base64Encoder.encode(messageDigest.digest(str.getBytes("utf-8")));
}
}

@ -0,0 +1,78 @@
package com.example.recommend.controller.admin;
import com.example.recommend.common.*;
import com.example.recommend.model.SellerModel;
import com.example.recommend.request.PageQuery;
import com.example.recommend.request.SellerCreateReq;
import com.example.recommend.service.SellerService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller("/admin/seller")
@RequestMapping("/admin/seller")
public class SellerController {
@Autowired
private SellerService sellerService;
//商户列表
@RequestMapping("/index")
@AdminPermission
public ModelAndView index(PageQuery pageQuery) {
PageHelper.startPage(pageQuery.getPage(), pageQuery.getSize());
List<SellerModel> sellerModelList = sellerService.selectAll();
PageInfo<SellerModel> sellerModelPageInfo = new PageInfo<>(sellerModelList);
ModelAndView modelAndView = new ModelAndView("/admin/seller/index.html");
modelAndView.addObject("data", sellerModelPageInfo);
modelAndView.addObject("CONTROLLER_NAME", "seller");
modelAndView.addObject("ACTION_NAME", "index");
return modelAndView;
}
@RequestMapping("/createpage")
@AdminPermission
public ModelAndView createPage() {
ModelAndView modelAndView = new ModelAndView("/admin/seller/create.html");
modelAndView.addObject("CONTROLLER_NAME", "seller");
modelAndView.addObject("ACTION_NAME", "create");
return modelAndView;
}
@RequestMapping(value = "/create", method = RequestMethod.POST)
@AdminPermission
public String create(@Valid SellerCreateReq sellerCreateReq, BindingResult bindingResult) throws BusinessException {
if (bindingResult.hasErrors()) {
throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR, CommonUtil.processErrorString(bindingResult));
}
SellerModel sellerModel = new SellerModel();
sellerModel.setName(sellerCreateReq.getName());
sellerService.create(sellerModel);
return "redirect:/admin/seller/index";
}
@RequestMapping(value = "down", method = RequestMethod.POST)
@AdminPermission
@ResponseBody
public CommonRes down(@RequestParam(value = "id") Integer id) throws BusinessException {
SellerModel sellerModel = sellerService.changeStatus(id, 1);
return CommonRes.create(sellerModel);
}
@RequestMapping(value = "up", method = RequestMethod.POST)
@AdminPermission
@ResponseBody
public CommonRes up(@RequestParam(value = "id") Integer id) throws BusinessException {
SellerModel sellerModel = sellerService.changeStatus(id, 0);
return CommonRes.create(sellerModel);
}
}

@ -0,0 +1,57 @@
package com.example.recommend.dal;
import com.example.recommend.model.SellerModel;
import java.util.List;
public interface SellerModelMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table seller
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
int deleteByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table seller
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
int insert(SellerModel record);
List<SellerModel> selectAll();
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table seller
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
int insertSelective(SellerModel record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table seller
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
SellerModel selectByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table seller
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
int updateByPrimaryKeySelective(SellerModel record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table seller
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
int updateByPrimaryKey(SellerModel record);
}

@ -1,6 +1,7 @@
package com.example.recommend.dal; package com.example.recommend.dal;
import com.example.recommend.model.UserModel; import com.example.recommend.model.UserModel;
import org.apache.ibatis.annotations.Param;
public interface UserModelMapper { public interface UserModelMapper {
/** /**
@ -35,6 +36,8 @@ public interface UserModelMapper {
*/ */
UserModel selectByPrimaryKey(Integer id); UserModel selectByPrimaryKey(Integer id);
UserModel selectByTelephoneAndPassword(@Param("telephone") String telephone, @Param("password") String password);
/** /**
* This method was generated by MyBatis Generator. * This method was generated by MyBatis Generator.
* This method corresponds to the database table user * This method corresponds to the database table user
@ -50,4 +53,6 @@ public interface UserModelMapper {
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
int updateByPrimaryKey(UserModel record); int updateByPrimaryKey(UserModel record);
Integer countAllUser();
} }

@ -0,0 +1,204 @@
package com.example.recommend.model;
import java.math.BigDecimal;
import java.util.Date;
public class SellerModel {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column seller.id
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
private Integer id;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column seller.name
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
private String name;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column seller.created_at
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
private Date createdAt;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column seller.updated_at
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
private Date updatedAt;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column seller.remark_score
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
private BigDecimal remarkScore;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column seller.disabled_flag
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
private Integer disabledFlag;
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column seller.id
*
* @return the value of seller.id
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public Integer getId() {
return id;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column seller.id
*
* @param id the value for seller.id
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public void setId(Integer id) {
this.id = id;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column seller.name
*
* @return the value of seller.name
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public String getName() {
return name;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column seller.name
*
* @param name the value for seller.name
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column seller.created_at
*
* @return the value of seller.created_at
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public Date getCreatedAt() {
return createdAt;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column seller.created_at
*
* @param createdAt the value for seller.created_at
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column seller.updated_at
*
* @return the value of seller.updated_at
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public Date getUpdatedAt() {
return updatedAt;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column seller.updated_at
*
* @param updatedAt the value for seller.updated_at
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column seller.remark_score
*
* @return the value of seller.remark_score
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public BigDecimal getRemarkScore() {
return remarkScore;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column seller.remark_score
*
* @param remarkScore the value for seller.remark_score
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public void setRemarkScore(BigDecimal remarkScore) {
this.remarkScore = remarkScore;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column seller.disabled_flag
*
* @return the value of seller.disabled_flag
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public Integer getDisabledFlag() {
return disabledFlag;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column seller.disabled_flag
*
* @param disabledFlag the value for seller.disabled_flag
*
* @mbg.generated Mon Oct 09 23:38:39 CST 2023
*/
public void setDisabledFlag(Integer disabledFlag) {
this.disabledFlag = disabledFlag;
}
}

@ -1,10 +1,10 @@
package com.example.recommend.model; package com.example.recommend.model;
import java.io.Serializable;
import java.util.Date; import java.util.Date;
public class UserModel { public class UserModel implements Serializable {
/** /**
*
* This field was generated by MyBatis Generator. * This field was generated by MyBatis Generator.
* This field corresponds to the database column user.id * This field corresponds to the database column user.id
* *
@ -13,7 +13,6 @@ public class UserModel {
private Integer id; private Integer id;
/** /**
*
* This field was generated by MyBatis Generator. * This field was generated by MyBatis Generator.
* This field corresponds to the database column user.created_at * This field corresponds to the database column user.created_at
* *
@ -22,7 +21,6 @@ public class UserModel {
private Date createdAt; private Date createdAt;
/** /**
*
* This field was generated by MyBatis Generator. * This field was generated by MyBatis Generator.
* This field corresponds to the database column user.updated_at * This field corresponds to the database column user.updated_at
* *
@ -31,7 +29,6 @@ public class UserModel {
private Date updatedAt; private Date updatedAt;
/** /**
*
* This field was generated by MyBatis Generator. * This field was generated by MyBatis Generator.
* This field corresponds to the database column user.telephone * This field corresponds to the database column user.telephone
* *
@ -40,7 +37,6 @@ public class UserModel {
private String telephone; private String telephone;
/** /**
*
* This field was generated by MyBatis Generator. * This field was generated by MyBatis Generator.
* This field corresponds to the database column user.password * This field corresponds to the database column user.password
* *
@ -49,7 +45,6 @@ public class UserModel {
private String password; private String password;
/** /**
*
* This field was generated by MyBatis Generator. * This field was generated by MyBatis Generator.
* This field corresponds to the database column user.nick_name * This field corresponds to the database column user.nick_name
* *
@ -58,7 +53,6 @@ public class UserModel {
private String nickName; private String nickName;
/** /**
*
* This field was generated by MyBatis Generator. * This field was generated by MyBatis Generator.
* This field corresponds to the database column user.gender * This field corresponds to the database column user.gender
* *
@ -71,7 +65,6 @@ public class UserModel {
* This method returns the value of the database column user.id * This method returns the value of the database column user.id
* *
* @return the value of user.id * @return the value of user.id
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public Integer getId() { public Integer getId() {
@ -83,7 +76,6 @@ public class UserModel {
* This method sets the value of the database column user.id * This method sets the value of the database column user.id
* *
* @param id the value for user.id * @param id the value for user.id
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public void setId(Integer id) { public void setId(Integer id) {
@ -95,7 +87,6 @@ public class UserModel {
* This method returns the value of the database column user.created_at * This method returns the value of the database column user.created_at
* *
* @return the value of user.created_at * @return the value of user.created_at
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public Date getCreatedAt() { public Date getCreatedAt() {
@ -107,7 +98,6 @@ public class UserModel {
* This method sets the value of the database column user.created_at * This method sets the value of the database column user.created_at
* *
* @param createdAt the value for user.created_at * @param createdAt the value for user.created_at
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public void setCreatedAt(Date createdAt) { public void setCreatedAt(Date createdAt) {
@ -119,7 +109,6 @@ public class UserModel {
* This method returns the value of the database column user.updated_at * This method returns the value of the database column user.updated_at
* *
* @return the value of user.updated_at * @return the value of user.updated_at
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public Date getUpdatedAt() { public Date getUpdatedAt() {
@ -131,7 +120,6 @@ public class UserModel {
* This method sets the value of the database column user.updated_at * This method sets the value of the database column user.updated_at
* *
* @param updatedAt the value for user.updated_at * @param updatedAt the value for user.updated_at
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public void setUpdatedAt(Date updatedAt) { public void setUpdatedAt(Date updatedAt) {
@ -143,7 +131,6 @@ public class UserModel {
* This method returns the value of the database column user.telephone * This method returns the value of the database column user.telephone
* *
* @return the value of user.telephone * @return the value of user.telephone
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public String getTelephone() { public String getTelephone() {
@ -155,7 +142,6 @@ public class UserModel {
* This method sets the value of the database column user.telephone * This method sets the value of the database column user.telephone
* *
* @param telephone the value for user.telephone * @param telephone the value for user.telephone
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public void setTelephone(String telephone) { public void setTelephone(String telephone) {
@ -167,7 +153,6 @@ public class UserModel {
* This method returns the value of the database column user.password * This method returns the value of the database column user.password
* *
* @return the value of user.password * @return the value of user.password
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public String getPassword() { public String getPassword() {
@ -179,7 +164,6 @@ public class UserModel {
* This method sets the value of the database column user.password * This method sets the value of the database column user.password
* *
* @param password the value for user.password * @param password the value for user.password
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public void setPassword(String password) { public void setPassword(String password) {
@ -191,7 +175,6 @@ public class UserModel {
* This method returns the value of the database column user.nick_name * This method returns the value of the database column user.nick_name
* *
* @return the value of user.nick_name * @return the value of user.nick_name
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public String getNickName() { public String getNickName() {
@ -203,7 +186,6 @@ public class UserModel {
* This method sets the value of the database column user.nick_name * This method sets the value of the database column user.nick_name
* *
* @param nickName the value for user.nick_name * @param nickName the value for user.nick_name
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public void setNickName(String nickName) { public void setNickName(String nickName) {
@ -215,7 +197,6 @@ public class UserModel {
* This method returns the value of the database column user.gender * This method returns the value of the database column user.gender
* *
* @return the value of user.gender * @return the value of user.gender
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public Integer getGender() { public Integer getGender() {
@ -227,7 +208,6 @@ public class UserModel {
* This method sets the value of the database column user.gender * This method sets the value of the database column user.gender
* *
* @param gender the value for user.gender * @param gender the value for user.gender
*
* @mbg.generated Mon Oct 09 13:50:54 CST 2023 * @mbg.generated Mon Oct 09 13:50:54 CST 2023
*/ */
public void setGender(Integer gender) { public void setGender(Integer gender) {

@ -0,0 +1,26 @@
package com.example.recommend.request;
import jakarta.validation.constraints.NotBlank;
public class LoginReq {
@NotBlank(message = "手机号不能为空")
private String telephone;
@NotBlank(message = "密码不能为空")
private String password;
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

@ -0,0 +1,24 @@
package com.example.recommend.request;
public class PageQuery {
private Integer page = 1;
private Integer size = 20;
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getSize() {
return size;
}
public void setSize(Integer size) {
this.size = size;
}
}

@ -0,0 +1,17 @@
package com.example.recommend.request;
import jakarta.validation.constraints.NotBlank;
public class SellerCreateReq {
@NotBlank(message = "商户名不能为空")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

@ -0,0 +1,16 @@
package com.example.recommend.service;
import com.example.recommend.common.BusinessException;
import com.example.recommend.model.SellerModel;
import java.util.List;
public interface SellerService {
SellerModel create(SellerModel sellerModel);
SellerModel get(Integer id);
List<SellerModel> selectAll();
SellerModel changeStatus(Integer id, Integer disabledFlag) throws BusinessException;
}

@ -0,0 +1,54 @@
package com.example.recommend.service.impl;
import com.example.recommend.common.BusinessException;
import com.example.recommend.common.EmBusinessError;
import com.example.recommend.dal.SellerModelMapper;
import com.example.recommend.model.SellerModel;
import com.example.recommend.service.SellerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Service
public class SellerServiceImpl implements SellerService {
@Autowired
private SellerModelMapper sellerModelMapper;
@Override
@Transactional
public SellerModel create(SellerModel sellerModel) {
sellerModel.setCreatedAt(new Date());
sellerModel.setUpdatedAt(new Date());
sellerModel.setRemarkScore(new BigDecimal(0));
sellerModel.setDisabledFlag(0);
sellerModelMapper.insertSelective(sellerModel);
return get(sellerModel.getId());
}
@Override
public SellerModel get(Integer id) {
return sellerModelMapper.selectByPrimaryKey(id);
}
@Override
public List<SellerModel> selectAll() {
return sellerModelMapper.selectAll();
}
@Override
public SellerModel changeStatus(Integer id, Integer disabledFlag) throws BusinessException {
SellerModel sellerModel = get(id);
if (sellerModel == null) {
throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR);
}
sellerModel.setDisabledFlag(disabledFlag);
sellerModelMapper.updateByPrimaryKeySelective(sellerModel);
return sellerModel;
}
}

@ -44,12 +44,16 @@ public class UserServiceImpl implements UserService {
@Override @Override
public UserModel login(String telephone, String password) throws UnsupportedEncodingException, NoSuchAlgorithmException, BusinessException { public UserModel login(String telephone, String password) throws UnsupportedEncodingException, NoSuchAlgorithmException, BusinessException {
return null; UserModel userModel = userModelMapper.selectByTelephoneAndPassword(telephone, encodeByMd5(password));
if (userModel == null) {
throw new BusinessException(EmBusinessError.LOGIN_FAIL);
}
return userModel;
} }
@Override @Override
public Integer countAllUser() { public Integer countAllUser() {
return null; return userModelMapper.countAllUser();
} }
private String encodeByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException { private String encodeByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {

@ -15,4 +15,7 @@ spring.mvc.throw-exception-if-no-handler-found=true
spring.mvc.static-path-pattern=/static/** spring.mvc.static-path-pattern=/static/**
#thymeleaf????? #thymeleaf?????
spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html spring.thymeleaf.suffix=.html
#admin???????????
admin.email=admin@qq.com
admin.encryptPassword=4QrcOUm6Wau+VuBX8g+IPg==

@ -9,4 +9,15 @@ CREATE TABLE `recommenddb`.`user`
`gender` int NOT NULL DEFAULT 0, `gender` int NOT NULL DEFAULT 0,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE INDEX `telephone_unique_index` (`telephone`) USING BTREE UNIQUE INDEX `telephone_unique_index` (`telephone`) USING BTREE
);
CREATE TABLE `recommenddb`.`seller`
(
`id` int(0) NOT NULL AUTO_INCREMENT,
`name` varchar(80) NOT NULL DEFAULT '',
`created_at` datetime(0) NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` datetime(0) NOT NULL DEFAULT '0000-00-00 00:00:00',
`remark_score` decimal(2, 1) NOT NULL DEFAULT 0,
`disabled_flag` int(0) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
); );

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.recommend.dal.SellerModelMapper">
<resultMap id="BaseResultMap" type="com.example.recommend.model.SellerModel">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 23:38:39 CST 2023.
-->
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt"/>
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt"/>
<result column="remark_score" jdbcType="DECIMAL" property="remarkScore"/>
<result column="disabled_flag" jdbcType="INTEGER" property="disabledFlag"/>
</resultMap>
<sql id="Base_Column_List">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 23:38:39 CST 2023.
-->
id, name, created_at, updated_at, remark_score, disabled_flag
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 23:38:39 CST 2023.
-->
select
<include refid="Base_Column_List"/>
from seller
where id = #{id,jdbcType=INTEGER}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from seller
order by id ASC
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 23:38:39 CST 2023.
-->
delete from seller
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.example.recommend.model.SellerModel">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 23:38:39 CST 2023.
-->
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into seller (name, created_at, updated_at,
remark_score, disabled_flag)
values (#{name,jdbcType=VARCHAR}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP},
#{remarkScore,jdbcType=DECIMAL}, #{disabledFlag,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.example.recommend.model.SellerModel">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 23:38:39 CST 2023.
-->
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into seller
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null">
name,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="remarkScore != null">
remark_score,
</if>
<if test="disabledFlag != null">
disabled_flag,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
#{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
#{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="remarkScore != null">
#{remarkScore,jdbcType=DECIMAL},
</if>
<if test="disabledFlag != null">
#{disabledFlag,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.example.recommend.model.SellerModel">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 23:38:39 CST 2023.
-->
update seller
<set>
<if test="name != null">
name = #{name,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
created_at = #{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="remarkScore != null">
remark_score = #{remarkScore,jdbcType=DECIMAL},
</if>
<if test="disabledFlag != null">
disabled_flag = #{disabledFlag,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.example.recommend.model.SellerModel">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 23:38:39 CST 2023.
-->
update seller
set name = #{name,jdbcType=VARCHAR},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
remark_score = #{remarkScore,jdbcType=DECIMAL},
disabled_flag = #{disabledFlag,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>

@ -1,157 +1,168 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.recommend.dal.UserModelMapper"> <mapper namespace="com.example.recommend.dal.UserModelMapper">
<resultMap id="BaseResultMap" type="com.example.recommend.model.UserModel"> <resultMap id="BaseResultMap" type="com.example.recommend.model.UserModel">
<!-- <!--
WARNING - @mbg.generated WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify. This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 13:50:54 CST 2023. This element was generated on Mon Oct 09 13:50:54 CST 2023.
--> -->
<id column="id" jdbcType="INTEGER" property="id" /> <id column="id" jdbcType="INTEGER" property="id"/>
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" /> <result column="created_at" jdbcType="TIMESTAMP" property="createdAt"/>
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" /> <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt"/>
<result column="telephone" jdbcType="VARCHAR" property="telephone" /> <result column="telephone" jdbcType="VARCHAR" property="telephone"/>
<result column="password" jdbcType="VARCHAR" property="password" /> <result column="password" jdbcType="VARCHAR" property="password"/>
<result column="nick_name" jdbcType="VARCHAR" property="nickName" /> <result column="nick_name" jdbcType="VARCHAR" property="nickName"/>
<result column="gender" jdbcType="INTEGER" property="gender" /> <result column="gender" jdbcType="INTEGER" property="gender"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!-- <!--
WARNING - @mbg.generated WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify. This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 13:50:54 CST 2023. This element was generated on Mon Oct 09 13:50:54 CST 2023.
--> -->
id, created_at, updated_at, telephone, password, nick_name, gender id, created_at, updated_at, telephone, password, nick_name, gender
</sql> </sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
<!-- <!--
WARNING - @mbg.generated WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify. This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 13:50:54 CST 2023. This element was generated on Mon Oct 09 13:50:54 CST 2023.
--> -->
select select
<include refid="Base_Column_List" /> <include refid="Base_Column_List"/>
from user from user
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</select> </select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
<!-- <!--
WARNING - @mbg.generated WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify. This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 13:50:54 CST 2023. This element was generated on Mon Oct 09 13:50:54 CST 2023.
--> -->
delete from user delete from user
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</delete> </delete>
<insert id="insert" parameterType="com.example.recommend.model.UserModel"> <insert id="insert" parameterType="com.example.recommend.model.UserModel">
<!-- <!--
WARNING - @mbg.generated WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify. This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 13:50:54 CST 2023. This element was generated on Mon Oct 09 13:50:54 CST 2023.
--> -->
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID() SELECT LAST_INSERT_ID()
</selectKey> </selectKey>
insert into user (created_at, updated_at, telephone, insert into user (created_at, updated_at, telephone,
password, nick_name, gender password, nick_name, gender
) )
values (#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{telephone,jdbcType=VARCHAR}, values (#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{telephone,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{gender,jdbcType=INTEGER} #{password,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{gender,jdbcType=INTEGER}
) )
</insert> </insert>
<insert id="insertSelective" parameterType="com.example.recommend.model.UserModel"> <insert id="insertSelective" parameterType="com.example.recommend.model.UserModel">
<!-- <!--
WARNING - @mbg.generated WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify. This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 13:50:54 CST 2023. This element was generated on Mon Oct 09 13:50:54 CST 2023.
--> -->
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID() SELECT LAST_INSERT_ID()
</selectKey> </selectKey>
insert into user insert into user
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="createdAt != null"> <if test="createdAt != null">
created_at, created_at,
</if> </if>
<if test="updatedAt != null"> <if test="updatedAt != null">
updated_at, updated_at,
</if> </if>
<if test="telephone != null"> <if test="telephone != null">
telephone, telephone,
</if> </if>
<if test="password != null"> <if test="password != null">
password, password,
</if> </if>
<if test="nickName != null"> <if test="nickName != null">
nick_name, nick_name,
</if> </if>
<if test="gender != null"> <if test="gender != null">
gender, gender,
</if> </if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="createdAt != null"> <if test="createdAt != null">
#{createdAt,jdbcType=TIMESTAMP}, #{createdAt,jdbcType=TIMESTAMP},
</if> </if>
<if test="updatedAt != null"> <if test="updatedAt != null">
#{updatedAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP},
</if> </if>
<if test="telephone != null"> <if test="telephone != null">
#{telephone,jdbcType=VARCHAR}, #{telephone,jdbcType=VARCHAR},
</if> </if>
<if test="password != null"> <if test="password != null">
#{password,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
</if> </if>
<if test="nickName != null"> <if test="nickName != null">
#{nickName,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR},
</if> </if>
<if test="gender != null"> <if test="gender != null">
#{gender,jdbcType=INTEGER}, #{gender,jdbcType=INTEGER},
</if> </if>
</trim> </trim>
</insert> </insert>
<update id="updateByPrimaryKeySelective" parameterType="com.example.recommend.model.UserModel"> <update id="updateByPrimaryKeySelective" parameterType="com.example.recommend.model.UserModel">
<!-- <!--
WARNING - @mbg.generated WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify. This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 13:50:54 CST 2023. This element was generated on Mon Oct 09 13:50:54 CST 2023.
--> -->
update user update user
<set> <set>
<if test="createdAt != null"> <if test="createdAt != null">
created_at = #{createdAt,jdbcType=TIMESTAMP}, created_at = #{createdAt,jdbcType=TIMESTAMP},
</if> </if>
<if test="updatedAt != null"> <if test="updatedAt != null">
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="telephone != null">
telephone = #{telephone,jdbcType=VARCHAR},
</if>
<if test="password != null">
password = #{password,jdbcType=VARCHAR},
</if>
<if test="nickName != null">
nick_name = #{nickName,jdbcType=VARCHAR},
</if>
<if test="gender != null">
gender = #{gender,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.example.recommend.model.UserModel">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Oct 09 13:50:54 CST 2023.
-->
update user
set created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="telephone != null">
telephone = #{telephone,jdbcType=VARCHAR}, telephone = #{telephone,jdbcType=VARCHAR},
</if>
<if test="password != null">
password = #{password,jdbcType=VARCHAR}, password = #{password,jdbcType=VARCHAR},
</if>
<if test="nickName != null">
nick_name = #{nickName,jdbcType=VARCHAR}, nick_name = #{nickName,jdbcType=VARCHAR},
</if> gender = #{gender,jdbcType=INTEGER}
<if test="gender != null"> where id = #{id,jdbcType=INTEGER}
gender = #{gender,jdbcType=INTEGER}, </update>
</if>
</set> <select id="selectByTelephoneAndPassword" resultMap="BaseResultMap">
where id = #{id,jdbcType=INTEGER} SELECT
</update> <include refid="Base_Column_List"/>
<update id="updateByPrimaryKey" parameterType="com.example.recommend.model.UserModel"> from user where telephone=#{telephone} and password = #{password}
<!-- </select>
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify. <select id="countAllUser" resultType="java.lang.Integer">
This element was generated on Mon Oct 09 13:50:54 CST 2023. SELECT count(1)
--> from user
update user </select>
set created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
telephone = #{telephone,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR},
nick_name = #{nickName,jdbcType=VARCHAR},
gender = #{gender,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper> </mapper>

@ -38,7 +38,7 @@
enableUpdateByExample="false" enableDeleteByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false"></table> enableSelectByExample="false" selectByExampleQueryId="false"></table>
--> -->
<table tableName="user" domainObjectName="UserModel" enableCountByExample="false" <table tableName="seller" domainObjectName="SellerModel" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false"> enableSelectByExample="false" selectByExampleQueryId="false">
<generatedKey column="id" sqlStatement="MySql" identity="true"/> <generatedKey column="id" sqlStatement="MySql" identity="true"/>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save