1.导入商品数据

2.产品修改主键为ID
This commit is contained in:
bei.wu 2020-09-17 22:35:35 +08:00
parent d7f5bedbb0
commit e74085bccb
19 changed files with 475 additions and 76 deletions

View File

@ -7,7 +7,7 @@ ruoyi:
# 版权年份
copyrightYear: 2019
# 实例演示开关
demoEnabled: true
demoEnabled: false
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath
# 获取ip地址开关

View File

@ -0,0 +1,28 @@
package com.ruoyi.business.ajax;
import com.ruoyi.business.service.IBizMemberService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 前端用户登录
* @author bei.wu
*/
@RestController
@RequestMapping("/ajax")
public class AjaxLoginController extends BaseController {
@Resource
private IBizMemberService bizMemberService;
@PostMapping("/login")
public AjaxResult login(@Param("loginName") String loginName, @Param("password") String password) {
return super.success();
}
}

View File

@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
@ -46,7 +47,7 @@ public class AjaxOrderController extends AuthController {
{
Long userID = getUserID();
BizOrder order = bizOrderService.selectBizOrderById(orderID);
if (order == null || userID != order.getMemberId()) {
if (order == null || !userID.equals(order.getMemberId())) {
return AjaxResult.error();
}
return AjaxResult.success(order);
@ -71,7 +72,7 @@ public class AjaxOrderController extends AuthController {
resultMap.put("productName", product.getProductName());
resultMap.put("productNum", productNum);
resultMap.put("productPrice", product.getAmount());
resultMap.put("orderPrice", product.getAmount() * productNum);
resultMap.put("orderPrice", product.getAmount().multiply(new BigDecimal(productNum)));
return AjaxResult.success(resultMap);
}

View File

@ -5,7 +5,11 @@ import com.alibaba.excel.ExcelReader;
import com.ruoyi.business.domain.BizAccount;
import com.ruoyi.business.mapper.BizAccountMapper;
import com.ruoyi.business.mapper.BizMemberMapper;
import com.ruoyi.business.mapper.BizProductMapper;
import com.ruoyi.business.mapper.BizProductTypeMapper;
import com.ruoyi.business.service.IBizMemberService;
import com.ruoyi.business.sync.GoodsData;
import com.ruoyi.business.sync.GoodsDataListener;
import com.ruoyi.business.sync.UserData;
import com.ruoyi.business.sync.UserDataListener;
import com.ruoyi.common.core.controller.BaseController;
@ -27,6 +31,10 @@ public class SyncDataController extends BaseController {
private BizMemberMapper memberMapper;
@Resource
private BizAccountMapper accountMapper;
@Resource
private BizProductMapper productMapper;
@Resource
private BizProductTypeMapper productTypeMapper;
@PostMapping("/user")
public AjaxResult user(@RequestParam("file") MultipartFile file) {
@ -43,6 +51,21 @@ public class SyncDataController extends BaseController {
return AjaxResult.success();
}
@PostMapping("/goods")
public AjaxResult goods(@RequestParam("file") MultipartFile file) {
ExcelReader reader = null;
try {
reader = EasyExcel.read(file.getInputStream(), GoodsData.class, new GoodsDataListener(productMapper, productTypeMapper)).build();
reader.readAll();
} catch (IOException e) {
e.printStackTrace();
} finally {
assert reader != null;
reader.finish();
}
return AjaxResult.success();
}
@PostMapping("/initUserTree")
public AjaxResult initUserTree() {
return AjaxResult.success();

View File

@ -1,5 +1,6 @@
package com.ruoyi.business.domain;
import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import org.apache.commons.lang3.builder.ToStringBuilder;
@ -18,7 +19,7 @@ public class BizProduct extends BaseEntity
private static final long serialVersionUID = 1L;
/** 产品ID */
private Long productId;
private Long id;
/** 产品编码 */
@Excel(name = "产品编码")
@ -38,15 +39,15 @@ public class BizProduct extends BaseEntity
/** 产品单价 */
@Excel(name = "产品单价")
private Long amount;
private BigDecimal amount;
/** 产品返现金额 */
@Excel(name = "产品返现金额")
private Long cashbackAmount;
private BigDecimal cashbackAmount;
/** 排序 */
@Excel(name = "排序")
private Long sort;
private Integer sort;
/** 是否上架 */
@Excel(name = "是否上架")
@ -64,16 +65,15 @@ public class BizProduct extends BaseEntity
private List<String> detailImages;
private List<String> loopImages;
public void setProductId(Long productId)
{
this.productId = productId;
public Long getId() {
return id;
}
public Long getProductId()
{
return productId;
public void setId(Long id) {
this.id = id;
}
public void setProductCode(String productCode)
public void setProductCode(String productCode)
{
this.productCode = productCode;
}
@ -109,29 +109,29 @@ public class BizProduct extends BaseEntity
{
return productClass;
}
public void setAmount(Long amount)
public void setAmount(BigDecimal amount)
{
this.amount = amount;
}
public Long getAmount()
public BigDecimal getAmount()
{
return amount;
}
public void setSort(Long sort)
public void setSort(Integer sort)
{
this.sort = sort;
}
public Long getCashbackAmount() {
public BigDecimal getCashbackAmount() {
return cashbackAmount;
}
public void setCashbackAmount(Long cashbackAmount) {
public void setCashbackAmount(BigDecimal cashbackAmount) {
this.cashbackAmount = cashbackAmount;
}
public Long getSort()
public Integer getSort()
{
return sort;
}
@ -190,7 +190,7 @@ public class BizProduct extends BaseEntity
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("productId", getProductId())
.append("id", getId())
.append("productCode", getProductCode())
.append("productName", getProductName())
.append("productTypeId", getProductTypeId())

View File

@ -16,7 +16,7 @@ public class BizProductImage extends BaseEntity
private static final long serialVersionUID = 1L;
/** 产品图片ID */
private Long productImageId;
private Long id;
/** 产品ID */
private Long productId;
@ -28,16 +28,15 @@ public class BizProductImage extends BaseEntity
private String imageUrl;
public void setProductImageId(Long productImageId)
{
this.productImageId = productImageId;
public Long getId() {
return id;
}
public Long getProductImageId()
{
return productImageId;
public void setId(Long id) {
this.id = id;
}
public void setProductId(Long productId)
public void setProductId(Long productId)
{
this.productId = productId;
}
@ -67,7 +66,7 @@ public class BizProductImage extends BaseEntity
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("productImageId", getProductImageId())
.append("id", getId())
.append("productId", getProductId())
.append("imageUrl", getImageUrl())
.toString();

View File

@ -16,7 +16,7 @@ public class BizProductType extends BaseEntity
private static final long serialVersionUID = 1L;
/** 产品分类ID */
private Long productTypeId;
private Long id;
/** 产品分类编码 */
@Excel(name = "产品分类编码")
@ -37,16 +37,15 @@ public class BizProductType extends BaseEntity
@Excel(name = "是否禁用0-否1-是")
private Integer isEnable;
public void setProductTypeId(Long productTypeId)
{
this.productTypeId = productTypeId;
public Long getId() {
return id;
}
public Long getProductTypeId()
{
return productTypeId;
public void setId(Long id) {
this.id = id;
}
public void setProductTypeCode(String productTypeCode)
public void setProductTypeCode(String productTypeCode)
{
this.productTypeCode = productTypeCode;
}
@ -95,7 +94,7 @@ public class BizProductType extends BaseEntity
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("productTypeId", getProductTypeId())
.append("id", getId())
.append("productTypeCode", getProductTypeCode())
.append("productTypeName", getProductTypeName())
.append("imageUrl", getImageUrl())

View File

@ -19,6 +19,14 @@ public interface BizProductTypeMapper
*/
public BizProductType selectBizProductTypeById(Long productTypeId);
/**
* 查询产品分类
*
* @param productTypeCode 产品分类Code
* @return 产品分类
*/
public BizProductType selectBizProductTypeByCode(String productTypeCode);
/**
* 查询产品分类列表
*

View File

@ -1,24 +1,24 @@
package com.ruoyi.business.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.ruoyi.business.domain.*;
import com.ruoyi.business.mapper.BizMemberAddressMapper;
import com.ruoyi.business.mapper.BizMemberMapper;
import com.ruoyi.business.mapper.BizOrderMapper;
import com.ruoyi.business.mapper.BizProductMapper;
import com.ruoyi.business.service.IBizOrderService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.util.ShiroUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.BizOrderMapper;
import com.ruoyi.business.service.IBizOrderService;
import com.ruoyi.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 订单Service业务层处理
*
@ -28,19 +28,19 @@ import org.springframework.transaction.annotation.Transactional;
@Service
public class BizOrderServiceImpl implements IBizOrderService
{
@Autowired
@Resource
private BizOrderMapper bizOrderMapper;
@Autowired
@Resource
private BizProductMapper bizProductMapper;
@Autowired
@Resource
private BizMemberMapper bizMemberMapper;
@Autowired
@Resource
private BizMemberAddressMapper bizMemberAddressMapper;
@Autowired
@Resource
private BizAccountServiceImpl bizAccountService;
/**
@ -162,15 +162,15 @@ public class BizOrderServiceImpl implements IBizOrderService
return AjaxResult.error("该商品不存在");
}
//订单总价
Long amount = product.getAmount();
Long orderTotal = amount * productNum;
BigDecimal amount = product.getAmount();
BigDecimal orderTotal = amount.multiply(new BigDecimal(productNum));
//判断余额
BizMember member = bizMemberMapper.selectBizMemberById(memberID);
Long douBalance = member.getDouBalance();
if (douBalance < orderTotal) {
if (douBalance < orderTotal.longValue()) {
return AjaxResult.error("福豆余额不足");
}
Long cashbackAmount = product.getCashbackAmount() * productNum;
BigDecimal cashbackAmount = product.getCashbackAmount().multiply(new BigDecimal(productNum));
//TODO cashbackAmount 专项划拨金额等级判断
//判断地址
@ -185,7 +185,7 @@ public class BizOrderServiceImpl implements IBizOrderService
order.setMemberId(memberID);
order.setMobile(address.getMobile());
order.setMemberName(member.getMemberName());
order.setOrderAmount(new BigDecimal(orderTotal));
order.setOrderAmount(orderTotal);
order.setOrderStatus(BizOrder.STATUS_PAYED); //已支付
order.setRemark(remark);
order.setAddressDetail(address.getAddress());
@ -198,16 +198,18 @@ public class BizOrderServiceImpl implements IBizOrderService
orderDetail.setProductId(productID);
orderDetail.setProductCode(product.getProductName());
orderDetail.setProductCount(productNum);
orderDetail.setProductAmount(new BigDecimal(amount));
orderDetail.setProductAmount(amount);
bizOrderMapper.insertBizOrderDetail(orderDetail);
//减去福豆余额账户
boolean result = bizAccountService.accountChange(memberID, BizAccount.DOU_BALANCE, BizAccountDetail.DOU_DETAIL_TYPE_ORDER, -orderTotal, String.valueOf(order.getId()), BizAccountDetail.DOU_DESC_ORDER);
// TODO 类型不对同步完数据后在修改
boolean result = bizAccountService.accountChange(memberID, BizAccount.DOU_BALANCE, BizAccountDetail.DOU_DETAIL_TYPE_ORDER, -orderTotal.longValue(), String.valueOf(order.getId()), BizAccountDetail.DOU_DESC_ORDER);
if (!result) {
return AjaxResult.error("扣款失败,请联系管理员");
}
//增加专项账户
if(cashbackAmount > 0) {
result = bizAccountService.accountChange(memberID, BizAccount.DOU_SPECIAL, BizAccountDetail.DOU_DETAIL_TYPE_CHARGE, cashbackAmount, String.valueOf(order.getId()), BizAccountDetail.DOU_DESC_SPECIAL1);
if(cashbackAmount.longValue() > 0) {
// TODO 类型不对同步完数据后在修改
result = bizAccountService.accountChange(memberID, BizAccount.DOU_SPECIAL, BizAccountDetail.DOU_DETAIL_TYPE_CHARGE, cashbackAmount.longValue(), String.valueOf(order.getId()), BizAccountDetail.DOU_DESC_SPECIAL1);
if (!result) {
return AjaxResult.error("扣款失败,请联系管理员");
}
@ -227,7 +229,7 @@ public class BizOrderServiceImpl implements IBizOrderService
{
BizOrder order = selectBizOrderById(orderID);
//验证
if (order == null || order.getMemberId() != userID || order.getOrderStatus() != BizOrder.STATUS_DELIVERY) {
if (order == null || !order.getMemberId().equals(userID) || order.getOrderStatus() != BizOrder.STATUS_DELIVERY) {
return AjaxResult.error("订单操作失败");
}
order.setOrderStatus(BizOrder.STATUS_COMPLETED);

View File

@ -99,7 +99,7 @@ public class BizProductServiceImpl implements IBizProductService
public int updateBizProduct(BizProduct bizProduct)
{
bizProduct.setUpdateTime(DateUtils.getNowDate());
bizProductMapper.deleteBizProductImageByProductId(bizProduct.getProductId());
bizProductMapper.deleteBizProductImageByProductId(bizProduct.getId());
insertBizProductImage(bizProduct);
return bizProductMapper.updateBizProduct(bizProduct);
}
@ -167,7 +167,7 @@ public class BizProductServiceImpl implements IBizProductService
List<String> detailImages = bizProduct.getDetailImages();
List<String> loopImages = bizProduct.getLoopImages();
String mainImage = bizProduct.getMainImage();
Long productId = bizProduct.getProductId();
Long productId = bizProduct.getId();
List<BizProductImage> list = new ArrayList<BizProductImage>();
//插入三类产品图片
if (StringUtils.isNotEmpty(mainImage)) {

View File

@ -0,0 +1,203 @@
package com.ruoyi.business.sync;
public class GoodsData {
private String id;
private String goodsId;
private String goodsName;
private String isProduct;
private String goodsType;
private String goodsLevel;
private String unitPrice;
private String goodsDescribe;
private String goodsMainImg;
private String goodsDetailsImg;
private String itemPoints;
private String directPoints;
private String indirectPoints;
private String stockCount;
private String goodsFreight;
private String enable;
private String addtime;
private String exterd1;
private String exterd2;
private String exterd3;
private String goodsLevelName;
private String goodsLevelText;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getIsProduct() {
return isProduct;
}
public void setIsProduct(String isProduct) {
this.isProduct = isProduct;
}
public String getGoodsType() {
return goodsType;
}
public void setGoodsType(String goodsType) {
this.goodsType = goodsType;
}
public String getGoodsLevel() {
return goodsLevel;
}
public void setGoodsLevel(String goodsLevel) {
this.goodsLevel = goodsLevel;
}
public String getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(String unitPrice) {
this.unitPrice = unitPrice;
}
public String getGoodsDescribe() {
return goodsDescribe;
}
public void setGoodsDescribe(String goodsDescribe) {
this.goodsDescribe = goodsDescribe;
}
public String getGoodsMainImg() {
return goodsMainImg;
}
public void setGoodsMainImg(String goodsMainImg) {
this.goodsMainImg = goodsMainImg;
}
public String getGoodsDetailsImg() {
return goodsDetailsImg;
}
public void setGoodsDetailsImg(String goodsDetailsImg) {
this.goodsDetailsImg = goodsDetailsImg;
}
public String getItemPoints() {
return itemPoints;
}
public void setItemPoints(String itemPoints) {
this.itemPoints = itemPoints;
}
public String getDirectPoints() {
return directPoints;
}
public void setDirectPoints(String directPoints) {
this.directPoints = directPoints;
}
public String getIndirectPoints() {
return indirectPoints;
}
public void setIndirectPoints(String indirectPoints) {
this.indirectPoints = indirectPoints;
}
public String getStockCount() {
return stockCount;
}
public void setStockCount(String stockCount) {
this.stockCount = stockCount;
}
public String getGoodsFreight() {
return goodsFreight;
}
public void setGoodsFreight(String goodsFreight) {
this.goodsFreight = goodsFreight;
}
public String getEnable() {
return enable;
}
public void setEnable(String enable) {
this.enable = enable;
}
public String getAddtime() {
return addtime;
}
public void setAddtime(String addtime) {
this.addtime = addtime;
}
public String getExterd1() {
return exterd1;
}
public void setExterd1(String exterd1) {
this.exterd1 = exterd1;
}
public String getExterd2() {
return exterd2;
}
public void setExterd2(String exterd2) {
this.exterd2 = exterd2;
}
public String getExterd3() {
return exterd3;
}
public void setExterd3(String exterd3) {
this.exterd3 = exterd3;
}
public String getGoodsLevelName() {
return goodsLevelName;
}
public void setGoodsLevelName(String goodsLevelName) {
this.goodsLevelName = goodsLevelName;
}
public String getGoodsLevelText() {
return goodsLevelText;
}
public void setGoodsLevelText(String goodsLevelText) {
this.goodsLevelText = goodsLevelText;
}
}

View File

@ -0,0 +1,91 @@
package com.ruoyi.business.sync;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.google.common.collect.Lists;
import com.ruoyi.business.domain.BizProduct;
import com.ruoyi.business.domain.BizProductImage;
import com.ruoyi.business.domain.BizProductType;
import com.ruoyi.business.mapper.BizProductMapper;
import com.ruoyi.business.mapper.BizProductTypeMapper;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.apache.commons.collections.CollectionUtils;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
public class GoodsDataListener extends AnalysisEventListener<GoodsData> {
private BizProductMapper productMapper;
private BizProductTypeMapper productTypeMapper;
public GoodsDataListener(BizProductMapper productMapper, BizProductTypeMapper productTypeMapper) {
this.productMapper = productMapper;
this.productTypeMapper = productTypeMapper;
}
@Override
public void invoke(GoodsData goodsData, AnalysisContext analysisContext) {
BizProduct product = new BizProduct();
product.setId(Long.valueOf(goodsData.getId()));
product.setAmount(new BigDecimal(goodsData.getUnitPrice()));
product.setProductName(goodsData.getGoodsName());
product.setProductCode(goodsData.getGoodsId());
product.setRemark(goodsData.getGoodsDescribe());
product.setSort(1);
product.setOnlineStatus("Y".equals(goodsData.getEnable()) ? 1 : 0);
product.setOnlineTime(DateUtils.parseDate(goodsData.getAddtime()));
product.setCreateBy("admin");
product.setCreateTime(DateUtils.parseDate(goodsData.getAddtime()));
product.setProductClass("Y".equals(goodsData.getIsProduct()) ? 1 : 0);
BizProductType productType = productTypeMapper.selectBizProductTypeByCode(goodsData.getGoodsType());
if (!Objects.isNull(productType)) {
product.setProductTypeId(productType.getId());
productMapper.insertBizProduct(product);
}
List<BizProductImage> images = Lists.newArrayList();
if (StringUtils.isNotEmpty(goodsData.getExterd1())) {
BizProductImage mainImage = new BizProductImage();
mainImage.setProductId(product.getId());
mainImage.setImageUrl(goodsData.getExterd1());
mainImage.setImageType(0);
images.add(mainImage);
}
if (StringUtils.isNotEmpty(goodsData.getExterd2())) {
String[] detailImages = goodsData.getExterd2().split(",");
for (String image : detailImages) {
BizProductImage detailImage = new BizProductImage();
detailImage.setProductId(product.getId());
detailImage.setImageUrl(image);
detailImage.setImageType(1);
images.add(detailImage);
}
}
if (StringUtils.isNotEmpty(goodsData.getExterd3())) {
String[] runImages = goodsData.getExterd3().split(",");
for (String image : runImages) {
BizProductImage runImage = new BizProductImage();
runImage.setProductId(product.getId());
runImage.setImageUrl(image);
runImage.setImageType(2);
images.add(runImage);
}
}
if (!CollectionUtils.isEmpty(images)) {
productMapper.batchBizProductImage(images);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}

View File

@ -5,7 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.ruoyi.business.mapper.BizProductMapper">
<resultMap type="BizProduct" id="BizProductResult">
<result property="productId" column="id" />
<result property="id" column="id" />
<result property="productCode" column="product_code" />
<result property="productName" column="product_name" />
<result property="productTypeId" column="product_type_id" />
@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<resultMap type="BizProductImage" id="BizProductImageResult">
<result property="productImageId" column="id" />
<result property="id" column="id" />
<result property="productId" column="product_id" />
<result property="imageType" column="image_type" />
<result property="imageUrl" column="image_url" />

View File

@ -5,7 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.ruoyi.business.mapper.BizProductTypeMapper">
<resultMap type="BizProductType" id="BizProductTypeResult">
<result property="productTypeId" column="id" />
<result property="id" column="id" />
<result property="productTypeCode" column="product_type_code" />
<result property="productTypeName" column="product_type_name" />
<result property="imageUrl" column="image_url" />
@ -34,7 +34,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectBizProductTypeVo"/>
where id = #{productTypeId}
</select>
<select id="selectBizProductTypeByCode" parameterType="String" resultMap="BizProductTypeResult">
<include refid="selectBizProductTypeVo"/>
where product_type_code = #{productTypeCode} limit 1
</select>
<insert id="insertBizProductType" parameterType="BizProductType" useGeneratedKeys="true" keyProperty="productTypeId">
insert into biz_product_type
<trim prefix="(" suffix=")" suffixOverrides=",">

View File

@ -6,7 +6,7 @@
</head>
<body class="white-bg">
<form class="form-horizontal m" id="form-product-edit" >
<input name="productId" th:field="*{bizProduct.productId}" type="hidden">
<input name="id" th:field="*{bizProduct.id}" type="hidden">
<input id="hiddenDetail" th:value="*{bizProduct.detailImages}" type="hidden">
<input id="hiddenLoop" th:value="*{bizProduct.loopImages}" type="hidden">
<div class="tabs-container">
@ -29,7 +29,7 @@
<label class="col-sm-3 control-label is-required">产品分类:</label>
<div class="col-sm-8">
<select th:field="*{bizProduct.productTypeId}" name="productTypeId" class="form-control m-b" required>
<option th:each="ptype:${productTypeList}" th:value="*{ptype.productTypeId}" th:text="*{ptype.productTypeName}"></option>
<option th:each="ptype:${productTypeList}" th:value="*{ptype.id}" th:text="*{ptype.productTypeName}"></option>
</select>
</div>
</div>

View File

@ -23,9 +23,9 @@
</li>
<li>
<label>产品分类:</label>
<select name="productTypeId">
<select name="id">
<option value="">所有</option>
<option class="typeOption" th:each="ptype:${productTypeList}" th:value="*{ptype.productTypeId}" th:text="*{ptype.productTypeName}"></option>
<option class="typeOption" th:each="ptype:${productTypeList}" th:value="*{ptype.id}" th:text="*{ptype.productTypeName}"></option>
</select>
</li>
<li>
@ -92,7 +92,7 @@
checkbox: true
},
{
field: 'productId',
field: 'id',
title: '产品ID',
visible: false
},
@ -147,9 +147,9 @@
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-' + (value ? 'warning' : 'primary') + ' btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="productStatusEdit(\'' + row.productId + '\', ' + value + ')"><i class="fa fa-' + (value ? 'level-down' : 'level-up') + '"></i>' + (value ? '下架' : '上架') + '</a> ');
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.productId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.productId + '\')"><i class="fa fa-remove"></i>删除</a>');
actions.push('<a class="btn btn-' + (value ? 'warning' : 'primary') + ' btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="productStatusEdit(\'' + row.id + '\', ' + value + ')"><i class="fa fa-' + (value ? 'level-down' : 'level-up') + '"></i>' + (value ? '下架' : '上架') + '</a> ');
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]

View File

@ -0,0 +1,15 @@
package com.ruoyi.common.annotation;
import java.lang.annotation.*;
/**
* 前端接口鉴权
* @author bei.wu
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AjaxLogin
{
}

View File

@ -1,5 +1,6 @@
package com.ruoyi.framework.config;
import com.ruoyi.framework.interceptor.AjaxAuthenticationInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@ -27,6 +28,8 @@ public class ResourcesConfig implements WebMvcConfigurer
@Autowired
private RepeatSubmitInterceptor repeatSubmitInterceptor;
@Autowired
private AjaxAuthenticationInterceptor ajaxAuthenticationInterceptor;
/**
* 默认首页的设置当输入域名是可以自动跳转到默认指定的网页
@ -55,5 +58,6 @@ public class ResourcesConfig implements WebMvcConfigurer
public void addInterceptors(InterceptorRegistry registry)
{
registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**");
registry.addInterceptor(ajaxAuthenticationInterceptor).addPathPatterns("/ajax/**");
}
}

View File

@ -0,0 +1,21 @@
package com.ruoyi.framework.interceptor;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* /ajax/**
* 所有接口身份认证拦截器
* @author bei.wu
*/
@Component
public class AjaxAuthenticationInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return super.preHandle(request, response, handler);
}
}