提交 0eb3ac33 authored 作者: Whispa's avatar Whispa

commit

上级 ca8e59ae
......@@ -46,10 +46,10 @@ public class AuthController {
}
@PostMapping("/signin")
public ResponseEntity<Result> authenticateUser(@RequestBody LoginRequest loginRequest) {
public Result authenticateUser(@RequestBody LoginRequest loginRequest) {
Optional<TbCfUserInfo> byAccount = userRepository.findByAccount(loginRequest.getAccount());
if( !byAccount.isPresent() ){
return ResponseEntity.ok(new Result<>(ResultCodeEnum.VALIDATE_ERROR,"User not found"));
return new Result<>(ResultCodeEnum.VALIDATE_ERROR,"User not found");
}
......@@ -64,11 +64,11 @@ public class AuthController {
.map(GrantedAuthority::getAuthority)
.collect(Collectors.toList());
return ResponseEntity.ok(new Result<>(new JwtResponse(jwt,
userDetails.getId(),
userDetails.getUsername(),
userDetails.getEmail(),
roles)));
TbCfUserInfo userInfo = byAccount.get();
userInfo.setToken(jwt);
return new Result<>(userInfo);
}
@PostMapping("/signup")
......
......@@ -14,10 +14,7 @@ import com.example.afrishop_v3.util.ValidateUtils;
import com.example.afrishop_v3.util.WordposHelper;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.*;
......@@ -63,55 +60,61 @@ public class CartController extends Controller {
Optional<TbCfItemDetail> optionalItem;
String itemId = itemDetail.getItemId();
if( itemId != null && !itemId.isEmpty()){
boolean hasItemId = itemId != null && !itemId.isEmpty();
if( hasItemId ){
optionalItem = itemDetailRepository.findFirstByItemImgAndItemSku(itemDetail.getItemImg(), itemDetail.getItemSku());
}else {
optionalItem = itemDetailRepository.findFirstBySourceItemIdAndItemSku(itemDetail.getSourceItemId(),itemDetail.getItemSku());
}
TbCfItemDetail detail;
if ( optionalItem.isPresent() ){
TbCfItemDetail detail = optionalItem.get();
detail = optionalItem.get();
detail.setGoodsId(itemId);
itemDetailRepository.save(detail);
itemId = itemDetail.getItemId();
itemId = detail.getItemId();
}else{
itemId = uid();
try {
insertItem(itemDetail,itemId);
detail = insertItem(itemDetail,itemId);
} catch (Exception e) {
return new Result(ResultCodeEnum.SERVICE_ERROR.getCode(),e.getMessage());
}
}
// Check if the item exist in cart
Optional<TbCfCartRecordR> cartOptional = repository.findFirstByUserIdAndItemIdAndItemSku(userId, itemId, itemDetail.getItemSku());
Optional<TbCfCartRecordR> cartOptional = repository.findFirstByUserIdAndItemDetailItemIdAndItemSku(userId, itemId, itemDetail.getItemSku());
if ( cartOptional.isPresent() ){
TbCfCartRecordR cart = cartOptional.get();
cart.increaseNum(itemDetail.getItemNum());
repository.save(cart);
}else{
insertRecord(itemDetail, userId,itemId);
detail.setItemNum(itemDetail.getItemNum());
insertRecord(detail, userId);
}
return new Result();
}
private void insertRecord(TbCfItemDetail itemDetail, String userId, String itemId) {
@GetMapping
public Result getItemCartList(){
return new Result<>(repository.findAllByUserId(user.userId()));
}
private void insertRecord(TbCfItemDetail itemDetail, String userId) {
TbCfCartRecordR tbCfCartRecordREntity = new TbCfCartRecordR();
tbCfCartRecordREntity.setCartRecordId(uid());
tbCfCartRecordREntity.setCheckFlag(StateConstant.INVALID);
tbCfCartRecordREntity.setEnableFlag(StateConstant.VALID);
if (itemId != null) {
tbCfCartRecordREntity.setItemId(itemId);
} else {
tbCfCartRecordREntity.setItemId(itemDetail.getItemId());
}
tbCfCartRecordREntity.setItemDetail(itemDetail);
tbCfCartRecordREntity.setUserId(userId);
tbCfCartRecordREntity.setCreateTime(new Date());
tbCfCartRecordREntity.setItemNum(itemDetail.getItemNum());
......@@ -122,14 +125,19 @@ public class CartController extends Controller {
}
private void insertItem(TbCfItemDetail tbCfItemDetail, String itemId) throws Exception {
private TbCfItemDetail insertItem(TbCfItemDetail tbCfItemDetail, String itemId) throws Exception {
tbCfItemDetail.setCreateTime(new Date());
//为商品分类,后面计算运费
try{
TbCfExpressTemplate expressTemplate = recognizeItemCategory(tbCfItemDetail.getItemTitle());
if (expressTemplate!=null)
tbCfItemDetail.setItemCategory(expressTemplate.getTemplateId());
}catch (Exception ignored){
}
//加入商品详情
tbCfItemDetail.setGoodsId(tbCfItemDetail.getItemId());
tbCfItemDetail.setStatus(1);
......@@ -141,7 +149,7 @@ public class CartController extends Controller {
tbCfItemDetail.setItemId(tbCfItemDetail.getItemId());
}
itemDetailRepository.save(tbCfItemDetail);
return itemDetailRepository.save(tbCfItemDetail);
//logger.info("插入一条商品数据!");
}
private TbCfExpressTemplate recognizeItemCategory(String itemTitle) throws ExecutionException, InterruptedException, TimeoutException {
......
......@@ -3,8 +3,7 @@ package com.example.afrishop_v3.models;
import lombok.Data;
import org.hibernate.annotations.Where;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
......@@ -17,6 +16,7 @@ import java.util.Date;
* @date 2019-08-16 15:51:16
*/
@Entity
@Table(name = "tb_cf_cart_record_r")
@Data
@Where(clause = "enable_flag=1")
public class TbCfCartRecordR {
......@@ -29,7 +29,11 @@ public class TbCfCartRecordR {
/**
* 商品id
*/
private String itemId;
@ManyToOne
@JoinColumn(name = "item_id",columnDefinition = "item_id")
private TbCfItemDetail itemDetail;
/**
* 用户id
*/
......@@ -89,15 +93,13 @@ public class TbCfCartRecordR {
/**
* 设置:商品id
*/
public void setItemId(String itemId) {
this.itemId = itemId;
public TbCfItemDetail getItemDetail() {
return itemDetail;
}
/**
* 获取:商品id
*/
public String getItemId() {
return itemId;
public void setItemDetail(TbCfItemDetail itemDetail) {
this.itemDetail = itemDetail;
}
/**
......
......@@ -3,6 +3,7 @@ package com.example.afrishop_v3.models;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.io.Serializable;
/**
......@@ -19,6 +20,7 @@ public class TbCfExpTemKeyword{
/**
*
*/
@Id
private String id;
/**
* 模板id,express_template
......
package com.example.afrishop_v3.models;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import javax.persistence.Entity;
......@@ -31,6 +32,7 @@ public class TbCfItemDetail{
/**
* 商品url
*/
@JsonIgnore
private String sourceItemId;
/**
* 来源站点id
......@@ -47,6 +49,7 @@ public class TbCfItemDetail{
/**
* 商品数量
*/
@JsonIgnore
private Integer itemNum;
/**
* 商品主图
......@@ -63,6 +66,7 @@ public class TbCfItemDetail{
/**
* 商品skus
*/
@JsonIgnore
private String itemSku;
/**
* 所属店铺id
......
......@@ -3,10 +3,13 @@ package com.example.afrishop_v3.repository;
import com.example.afrishop_v3.models.TbCfCartRecordR;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
import java.util.Optional;
public interface TbCfCartRecordRRepository extends PagingAndSortingRepository<TbCfCartRecordR,String> {
int countByUserId(String userId);
Optional<TbCfCartRecordR> findFirstByUserIdAndItemIdAndItemSku(String userId, String itemId, String itemSku);
Optional<TbCfCartRecordR> findFirstByUserIdAndItemDetailItemIdAndItemSku(String userId, String itemId, String itemSku);
List<TbCfCartRecordR> findAllByUserId(String userId);
}
......@@ -3,10 +3,11 @@ package com.example.afrishop_v3.repository;
import com.example.afrishop_v3.models.TbCfExpressTemplate;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface TbCfExpressTemplateRepository extends PagingAndSortingRepository<TbCfExpressTemplate,String> {
@Query(value = "select a from #{#entityName} a WHERE ")
List<TbCfExpressTemplate> getTemplateByKeyword(String keyword);
@Query(value = "select distinct a from #{#entityName} a WHERE a.templateId in (SELECT x.templateId FROM TbCfExpTemKeyword x WHERE x.keyword LIKE concat('%',:keyword,'%'))")
List<TbCfExpressTemplate> getTemplateByKeyword(@Param("keyword") String keyword);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论