master
RIceWqy 2 years ago
parent 934efe6cb2
commit 3b1987591a

@ -28,6 +28,7 @@ public class WebApplication extends SpringBootServletInitializer{
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args); SpringApplication.run(WebApplication.class, args);
System.out.println("ヾ(◍°∇°◍)ノ゙金桐商户管理平台启动啦,ヾ(◍°∇°◍)ノ゙");
} }
@Override @Override

@ -99,23 +99,25 @@ public class AdminLoginController {
userInfoInToken.setUserId(String.valueOf(sysUser.getUserId())); userInfoInToken.setUserId(String.valueOf(sysUser.getUserId()));
userInfoInToken.setSysType(SysTypeEnum.ADMIN.value()); userInfoInToken.setSysType(SysTypeEnum.ADMIN.value());
userInfoInToken.setEnabled(sysUser.getStatus() == 1); userInfoInToken.setEnabled(sysUser.getStatus() == 1);
userInfoInToken.setPerms(getUserPermissions(sysUser.getUserId())); userInfoInToken.setPerms(getUserPermissions(sysUser.getUserId(),sysUser.getIsAdmin()));
userInfoInToken.setNickName(sysUser.getUsername()); userInfoInToken.setNickName(sysUser.getUsername());
userInfoInToken.setShopId(sysUser.getShopId()); userInfoInToken.setShopId(sysUser.getShopId());
userInfoInToken.setIsAdmin(sysUser.getIsAdmin());
// 存储token返回vo // 存储token返回vo
TokenInfoVO tokenInfoVO = tokenStore.storeAndGetVo(userInfoInToken); TokenInfoVO tokenInfoVO = tokenStore.storeAndGetVo(userInfoInToken);
return ServerResponseEntity.success(tokenInfoVO); return ServerResponseEntity.success(tokenInfoVO);
} }
private Set<String> getUserPermissions(Long userId) { private Set<String> getUserPermissions(Long userId,Integer isAdmin) {
List<String> permsList; List<String> permsList;
//系统管理员,拥有最高权限 //系统管理员,拥有最高权限
if(userId == Constant.SUPER_ADMIN_ID){ if (userId == Constant.SUPER_ADMIN_ID || isAdmin == 1) {
List<SysMenu> menuList = sysMenuService.list(Wrappers.emptyWrapper()); List<SysMenu> menuList = sysMenuService.list(Wrappers.emptyWrapper());
permsList = menuList.stream().map(SysMenu::getPerms).collect(Collectors.toList()); permsList = menuList.stream().map(SysMenu::getPerms).collect(Collectors.toList());
}else{ } else {
permsList = sysUserService.queryAllPerms(userId); permsList = sysUserService.queryAllPerms(userId);
} }
return permsList.stream().flatMap((perms)->{ return permsList.stream().flatMap((perms)->{
@ -126,4 +128,7 @@ public class AdminLoginController {
} }
).collect(Collectors.toSet()); ).collect(Collectors.toSet());
} }
} }

@ -15,6 +15,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yami.shop.bean.model.Product; import com.yami.shop.bean.model.Product;
import com.yami.shop.bean.model.ShopDetail;
import com.yami.shop.bean.model.Sku; import com.yami.shop.bean.model.Sku;
import com.yami.shop.bean.param.ProductParam; import com.yami.shop.bean.param.ProductParam;
import com.yami.shop.common.exception.YamiShopBindException; import com.yami.shop.common.exception.YamiShopBindException;
@ -22,19 +23,19 @@ import com.yami.shop.common.response.ServerResponseEntity;
import com.yami.shop.common.util.Json; import com.yami.shop.common.util.Json;
import com.yami.shop.common.util.PageParam; import com.yami.shop.common.util.PageParam;
import com.yami.shop.security.admin.util.SecurityUtils; import com.yami.shop.security.admin.util.SecurityUtils;
import com.yami.shop.service.BasketService; import com.yami.shop.service.*;
import com.yami.shop.service.ProdTagReferenceService;
import com.yami.shop.service.ProductService;
import com.yami.shop.service.SkuService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
/** /**
@ -58,6 +59,8 @@ public class ProductController {
@Autowired @Autowired
private BasketService basketService; private BasketService basketService;
@Autowired
private ShopDetailService shopDetailService;
/** /**
* *
@ -65,13 +68,34 @@ public class ProductController {
@GetMapping("/page") @GetMapping("/page")
@PreAuthorize("@pms.hasPermission('prod:prod:page')") @PreAuthorize("@pms.hasPermission('prod:prod:page')")
public ServerResponseEntity<IPage<Product>> page(ProductParam product, PageParam<Product> page) { public ServerResponseEntity<IPage<Product>> page(ProductParam product, PageParam<Product> page) {
List<ShopDetail> shopList = null;
List<Long> shopIdList = null;
if (!StringUtil.isEmpty(product.getShopName())) {
shopList = shopDetailService.list(new LambdaQueryWrapper<ShopDetail>().like(ShopDetail::getShopName, product.getShopName()));
// 将 shopList 转换为包含 shopId 的列表
if (shopList != null && !shopList.isEmpty()) {
shopIdList = shopList.stream()
.map(ShopDetail::getShopId)
.collect(Collectors.toList());
}
}
IPage<Product> products = productService.page(page, IPage<Product> products = productService.page(page,
new LambdaQueryWrapper<Product>() new LambdaQueryWrapper<Product>()
.like(StrUtil.isNotBlank(product.getProdName()), Product::getProdName, product.getProdName()) .like(StrUtil.isNotBlank(product.getProdName()), Product::getProdName, product.getProdName())
.eq(Product::getShopId, SecurityUtils.getSysUser().getShopId()) .eq(!SecurityUtils.getSysUser().checkAdmin(), Product::getShopId, SecurityUtils.getSysUser().getShopId())
.eq(product.getStatus() != null, Product::getStatus, product.getStatus()) .eq(product.getStatus() != null, Product::getStatus, product.getStatus())
.eq(product.getProductType() != null, Product::getProductType, product.getProductType()) .eq(product.getProductType() != null, Product::getProductType, product.getProductType())
.in(shopIdList != null && !shopIdList.isEmpty(),Product::getShopId,shopIdList)
.orderByDesc(Product::getPutawayTime)); .orderByDesc(Product::getPutawayTime));
List<Product> records = products.getRecords();
records.forEach(prod->{
ShopDetail shop = shopDetailService.getById(prod.getShopId());
if (shop != null) {
prod.setShopName(shop.getShopName());
}
});
products.setRecords(records);
return ServerResponseEntity.success(products); return ServerResponseEntity.success(products);
} }
@ -91,6 +115,10 @@ public class ProductController {
//获取分组标签 //获取分组标签
List<Long> listTagId = prodTagReferenceService.listTagIdByProdId(prodId); List<Long> listTagId = prodTagReferenceService.listTagIdByProdId(prodId);
prod.setTagList(listTagId); prod.setTagList(listTagId);
ShopDetail shopDetail = shopDetailService.getById(prod.getShopId());
prod.setShopName(shopDetail.getShopName());
return ServerResponseEntity.success(prod); return ServerResponseEntity.success(prod);
} }
@ -210,6 +238,22 @@ public class ProductController {
} }
return ServerResponseEntity.success(); return ServerResponseEntity.success();
} }
/**
*
*/
@PostMapping("/prodZone")
@PreAuthorize("@pms.hasPermission('prod:prod:updateZone')")
public ServerResponseEntity<Void> setZone(@RequestBody Product product) {
productService.updateById(product);
productService.removeProductCacheByProdId(product.getProdId());
List<String> userIds = basketService.listUserIdByProdId(product.getProdId());
for (String userId : userIds) {
basketService.removeShopCartItemsCacheByUserId(userId);
}
return ServerResponseEntity.success();
}
private void checkParam(ProductParam productParam) { private void checkParam(ProductParam productParam) {
if (CollectionUtil.isEmpty(productParam.getTagList())) { if (CollectionUtil.isEmpty(productParam.getTagList())) {

@ -26,6 +26,7 @@ public class ApiApplication extends SpringBootServletInitializer{
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args); SpringApplication.run(ApiApplication.class, args);
System.out.println("(*¯︶¯*)金桐手机api启动啦,(*¯︶¯*)");
} }
@Override @Override

@ -42,6 +42,8 @@ public class ProductParam {
@Size(max = 200, message = "商品名称长度应该小于{max}") @Size(max = 200, message = "商品名称长度应该小于{max}")
private String prodName; private String prodName;
private String shopName;
/** /**
* *
@ -110,5 +112,12 @@ public class ProductParam {
* *
*/ */
private Integer productType; private Integer productType;
/**
*
*/
private Integer payScore;
/**
*
*/
private Integer giveScore;
} }

@ -33,4 +33,15 @@ public class YamiSysUser {
private String username; private String username;
private Long shopId; private Long shopId;
private Integer isAdmin;
public boolean checkAdmin() {
if (this.isAdmin == null) {
this.isAdmin = 0;
}
if (this.isAdmin == 1) {
return true;
}
return false;
}
} }

@ -32,6 +32,7 @@ public class SecurityUtils {
details.setUsername(userInfoInTokenBO.getNickName()); details.setUsername(userInfoInTokenBO.getNickName());
details.setAuthorities(userInfoInTokenBO.getPerms()); details.setAuthorities(userInfoInTokenBO.getPerms());
details.setShopId(userInfoInTokenBO.getShopId()); details.setShopId(userInfoInTokenBO.getShopId());
details.setIsAdmin(userInfoInTokenBO.getIsAdmin());
return details; return details;
} }
} }

@ -15,79 +15,82 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* *
*
* @author lanhai * @author lanhai
*/ */
@Data @Data
@TableName("tz_sys_user") @TableName("tz_sys_user")
public class SysUser implements Serializable { public class SysUser implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* ID * ID
* */
*/ @TableId
@TableId private Long userId;
private Long userId;
/**
/** *
* */
*/ @NotBlank(message = "用户名不能为空")
@NotBlank(message="用户名不能为空") @Size(min = 2, max = 20, message = "用户名长度要在2-20之间")
@Size(min = 2,max = 20,message = "用户名长度要在2-20之间") private String username;
private String username;
/**
/** *
* */
*/ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String password;
private String password;
/**
/** *
* */
*/ @NotBlank(message = "邮箱不能为空")
@NotBlank(message="邮箱不能为空") @Email(message = "邮箱格式不正确")
@Email(message="邮箱格式不正确") private String email;
private String email;
/**
/** *
* */
*/ @Pattern(regexp = "0?1[0-9]{10}", message = "请输入正确的手机号")
@Pattern(regexp="0?1[0-9]{10}",message = "请输入正确的手机号") private String mobile;
private String mobile;
/**
/** * 0 1
* 0 1 */
*/ private Integer status;
private Integer status;
/**
/** * id
* id */
*/ private Long shopId;
private Long shopId;
/**
/** * ID
* ID */
*/ @TableField(exist = false)
@TableField(exist=false) private List<Long> roleIdList;
private List<Long> roleIdList;
/**
/** *
* */
*/ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime;
private Date createTime; @TableField(value = "is_admin")
private Integer isAdmin;
} }

Loading…
Cancel
Save