Commit 19ae0675f7713c8e8988aecda3d12579572cb828

Authored by yangfan
2 parents 5b8f7310 c5984e0d

Merge branch 'master' of http://git3.nong12.com/xtrade/order-service

# Conflicts:
#	src/main/java/com/diligrp/xtrade/product/controllor/CategoryController.java
#	src/main/java/com/diligrp/xtrade/product/controllor/ShopController.java
Showing 38 changed files with 1369 additions and 223 deletions
src/main/java/com/diligrp/xtrade/order/controllor/OrderApiController.java
... ... @@ -34,7 +34,7 @@ public class OrderApiController {
34 34 @RequestMapping(value = "/createOrder",method = {RequestMethod.POST})
35 35 public Message<Boolean> createOrder(@RequestBody @Validated OrderCreateRequestDto orderCreateRequestDto) {
36 36 orderservice.createOrder(orderCreateRequestDto);
37   - return Message.builder().success(Boolean.TRUE);
  37 + return Message.success(Boolean.TRUE);
38 38 }
39 39  
40 40 /**
... ... @@ -42,7 +42,7 @@ public class OrderApiController {
42 42 */
43 43 @RequestMapping(value = "/listOrders")
44 44 public Message<List<OrderQueryResponseDto>> listOrders(@RequestBody OrderQueryRequestDto orderQueryRequestDto) {
45   - return Message.builder().success(orderservice.orderLists(orderQueryRequestDto));
  45 + return Message.success(orderservice.orderLists(orderQueryRequestDto));
46 46 }
47 47  
48 48 /**
... ... @@ -50,6 +50,6 @@ public class OrderApiController {
50 50 */
51 51 @RequestMapping(value = "/orderDetail")
52 52 public Message<OrderQueryResponseDto> orderDetail(@RequestBody @Validated OrderQueryRequestDto orderQueryRequestDto) {
53   - return Message.builder().success(orderservice.orderDetail(orderQueryRequestDto.getOrderId()));
  53 + return Message.success(orderservice.orderDetail(orderQueryRequestDto.getOrderId()));
54 54 }
55 55 }
... ...
src/main/java/com/diligrp/xtrade/order/dao/OrderItemDao.java
... ... @@ -60,4 +60,13 @@ public interface OrderItemDao {
60 60 */
61 61 int updateCommission(@Param("scommission") Long scommission, @Param("bcommission") Long bcommission,
62 62 @Param("ruleId") Long ruleId, @Param("ruleRate") String ruleRate, @Param("itemId") Long itemId);
  63 +
  64 + /**
  65 + * @Title insertBatch
  66 + * @Description 批量插入
  67 + * @param orderItemDos 批量插入实体
  68 + * @return
  69 + * @throws
  70 + */
  71 + int insertBatch(List<OrderItemDo> orderItemDos);
63 72 }
... ...
src/main/java/com/diligrp/xtrade/order/domain/dto/AccountDto.java
... ... @@ -26,7 +26,7 @@ public class AccountDto implements Serializable {
26 26 private String mobile;
27 27  
28 28 //卡号类型
29   - private String type;
  29 + private Integer type;
30 30  
31 31 // 资金账号ID
32 32 private Long fundAccount;
... ... @@ -81,11 +81,11 @@ public class AccountDto implements Serializable {
81 81 this.mobile = mobile;
82 82 }
83 83  
84   - public String getType() {
  84 + public Integer getType() {
85 85 return type;
86 86 }
87 87  
88   - public void setType(String type) {
  88 + public void setType(Integer type) {
89 89 this.type = type;
90 90 }
91 91  
... ...
src/main/java/com/diligrp/xtrade/order/domain/dto/OrderItemDto.java
... ... @@ -10,43 +10,43 @@ import javax.validation.constraints.NotNull;
10 10 * @date 2020年4月21日
11 11 */
12 12 public class OrderItemDto {
13   -
14   - //商品id
  13 +
  14 + // 商品id
15 15 @NotNull(message = "商品id不能为空")
16   - private Long productId;
17   -
18   - //商品名称
19   - private Long productName;
20   -
21   - //销售单位
  16 + private Long pid;
  17 +
  18 + // 商品名称
  19 + private String pname;
  20 +
  21 + // 销售单位
22 22 @NotNull(message = "销售单位不能为空")
23 23 private Integer saleUnit;
24   -
25   - //价格
  24 +
  25 + // 价格
26 26 @NotNull(message = "销售单价不能为空")
27 27 private Integer price;
28   -
29   - //数量
  28 +
  29 + // 数量
30 30 @NotNull(message = "销售数量不能为空")
31 31 private Double amount;
32   -
33   - //件重
  32 +
  33 + // 件重
34 34 private Double unitWeight;
35 35  
36   - public Long getProductId() {
37   - return productId;
  36 + public Long getPid() {
  37 + return pid;
38 38 }
39 39  
40   - public void setProductId(Long productId) {
41   - this.productId = productId;
  40 + public void setPid(Long pid) {
  41 + this.pid = pid;
42 42 }
43 43  
44   - public Long getProductName() {
45   - return productName;
  44 + public String getPname() {
  45 + return pname;
46 46 }
47 47  
48   - public void setProductName(Long productName) {
49   - this.productName = productName;
  48 + public void setPname(String pname) {
  49 + this.pname = pname;
50 50 }
51 51  
52 52 public Integer getSaleUnit() {
... ...
src/main/java/com/diligrp/xtrade/order/domain/emuns/OrderType.java 0 → 100644
  1 +package com.diligrp.xtrade.order.domain.emuns;
  2 +
  3 +/**
  4 + *
  5 + * @ClassName: OrderType
  6 + * @Description 订单类型枚举类
  7 + * @author zhangxing
  8 + * @date 2020年4月22日
  9 + */
  10 +public enum OrderType {
  11 +
  12 + //普通交易
  13 + NORMAL(1, "普通");
  14 +
  15 + // 编码
  16 + private int code;
  17 +
  18 + // 名称
  19 + private String name;
  20 +
  21 + private OrderType(int code, String name) {
  22 + this.code = code;
  23 + this.name = name;
  24 + }
  25 +
  26 + public int getCode() {
  27 + return code;
  28 + }
  29 +
  30 + public String getName() {
  31 + return name;
  32 + }
  33 +
  34 + public static OrderType getByCode(int code) {
  35 + for (OrderType orderType : values()) {
  36 + if (orderType.getCode() == code) {
  37 + return orderType;
  38 + }
  39 + }
  40 + return null;
  41 + }
  42 +
  43 + public static String getNameByCode(int code) {
  44 + for (OrderType orderType : OrderType.values()) {
  45 + if (orderType.getCode() == code) {
  46 + return orderType.name;
  47 + }
  48 + }
  49 + return null;
  50 + }
  51 +}
... ...
src/main/java/com/diligrp/xtrade/order/domain/emuns/TradeType.java 0 → 100644
  1 +package com.diligrp.xtrade.order.domain.emuns;
  2 +
  3 +/**
  4 + *
  5 + * @ClassName: TradeType
  6 + * @Description 订单交易类型枚举类
  7 + * @author zhangxing
  8 + * @date 2020年4月22日
  9 + */
  10 +public enum TradeType {
  11 +
  12 + //普通交易
  13 + NORMAL(1, "普通");
  14 +
  15 + // 编码
  16 + private int code;
  17 +
  18 + // 名称
  19 + private String name;
  20 +
  21 + private TradeType(int code, String name) {
  22 + this.code = code;
  23 + this.name = name;
  24 + }
  25 +
  26 + public int getCode() {
  27 + return code;
  28 + }
  29 +
  30 + public String getName() {
  31 + return name;
  32 + }
  33 +
  34 + public static TradeType getByCode(int code) {
  35 + for (TradeType tradeType : values()) {
  36 + if (tradeType.getCode() == code) {
  37 + return tradeType;
  38 + }
  39 + }
  40 + return null;
  41 + }
  42 +
  43 + public static String getNameByCode(int code) {
  44 + for (TradeType tradeType : TradeType.values()) {
  45 + if (tradeType.getCode() == code) {
  46 + return tradeType.name;
  47 + }
  48 + }
  49 + return null;
  50 + }
  51 +}
... ...
src/main/java/com/diligrp/xtrade/order/exception/OrderExceptionHandler.java
... ... @@ -16,6 +16,6 @@ public class OrderExceptionHandler {
16 16 @ResponseBody
17 17 @ExceptionHandler({OrderException.class})
18 18 public Message<?> handleOrderException(OrderException ex) {
19   - return Message.builder().failure(ex.getCode(), ex.getMessage());
  19 + return Message.failure(ex.getCode(), ex.getMessage());
20 20 }
21 21 }
... ...
src/main/java/com/diligrp/xtrade/order/rpc/feign/AccountService.java renamed to src/main/java/com/diligrp/xtrade/order/rpc/feign/AccountRPC.java
1   -package com.diligrp.xtrade.order.rpc.feign;
2   -
3   -import org.springframework.cloud.openfeign.FeignClient;
4   -import org.springframework.web.bind.annotation.RequestMapping;
5   -
6   -import com.diligrp.xtrade.order.domain.dto.AccountDto;
7   -import com.diligrp.xtrade.shared.domain.Message;
8   -
9   -@FeignClient(value = "user-service")
10   -public interface AccountService {
11   -
12   - @RequestMapping("/dltAccount/getDltAccount")
13   - public Message<AccountDto> getDltAccount();
14   -
15   -}
  1 +package com.diligrp.xtrade.order.rpc.feign;
  2 +
  3 +import org.springframework.cloud.openfeign.FeignClient;
  4 +import org.springframework.web.bind.annotation.RequestMapping;
  5 +
  6 +import com.diligrp.xtrade.order.domain.dto.AccountDto;
  7 +import com.diligrp.xtrade.shared.domain.Message;
  8 +
  9 +@FeignClient(value = "user-service")
  10 +public interface AccountRPC {
  11 +
  12 + @RequestMapping("/dltAccount/getDltAccount")
  13 + public Message<AccountDto> getDltAccount(Long account);
  14 +
  15 +}
... ...
src/main/java/com/diligrp/xtrade/order/rpc/feign/CatagoryService.java deleted 100644 → 0
1   -package com.diligrp.xtrade.order.rpc.feign;
2   -
3   -public interface CatagoryService {
4   -
5   -}
src/main/java/com/diligrp/xtrade/product/common/constants/Constant.java
1 1 package com.diligrp.xtrade.product.common.constants;
2 2  
3 3 public class Constant {
  4 + public interface InsertGroup{
4 5  
  6 + }
5 7 }
... ...
src/main/java/com/diligrp/xtrade/product/common/utils/Constant.java deleted 100644 → 0
1   -package com.diligrp.xtrade.product.common.utils;
2   -
3   -public class Constant {
4   -
5   -}
src/main/java/com/diligrp/xtrade/product/controllor/CategoryController.java
... ... @@ -35,10 +35,9 @@ public class CategoryController {
35 35 * @return
36 36 * @throws
37 37 */
38   - @RequestMapping("save")
39   - public Message<Object> insert(@Validated @RequestBody CategoryDto categoryDTO){
40 38 categoryService.insert(categoryDTO);
41 39 return Message.builder().success();
  40 + return Message.success();
42 41 }
43 42 /**
44 43 * 修改品类
... ... @@ -49,9 +48,8 @@ public class CategoryController {
49 48 * @throws
50 49 */
51 50 @RequestMapping("update")
52   - public Message<Object> update(@Validated @RequestBody CategoryDto categoryDTO){
53   - categoryService.update(categoryDTO);
54   - return Message.builder().success();
  51 + public Message<Object> update(CategoryDto categoryDTO){ categoryService.update(categoryDTO);
  52 +
55 53 }
56 54  
57 55 /**
... ... @@ -64,7 +62,7 @@ public class CategoryController {
64 62 */
65 63 @RequestMapping("get/{id}")
66 64 public Message<?> get(@PathVariable Long id){
67   - return Message.builder().success(categoryService.selectEntityById(id));
  65 + return Message.success(categoryService.selectEntityById(id));
68 66 }
69 67 /**
70 68 * 主键删除
... ... @@ -75,7 +73,7 @@ public class CategoryController {
75 73 * @throws
76 74 */
77 75 @RequestMapping("delect/{id}")
78   - public Message<Object> delect(@PathVariable Long id){
  76 + public Message<?> delect(@PathVariable Long id){
79 77 categoryService.delectById(id);
80 78 return Message.builder().success();
81 79 }
... ...
src/main/java/com/diligrp/xtrade/product/controllor/MerchantController.java 0 → 100644
  1 +package com.diligrp.xtrade.product.controllor;
  2 +
  3 +import com.diligrp.xtrade.product.common.constants.Constant;
  4 +import com.diligrp.xtrade.product.domain.dto.MerchantRequestDto;
  5 +import com.diligrp.xtrade.product.domain.dto.MerchantResponseDto;
  6 +import com.diligrp.xtrade.product.service.MerchantService;
  7 +import com.diligrp.xtrade.shared.domain.Message;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.validation.annotation.Validated;
  10 +import org.springframework.web.bind.annotation.PostMapping;
  11 +import org.springframework.web.bind.annotation.RequestBody;
  12 +import org.springframework.web.bind.annotation.RequestMapping;
  13 +import org.springframework.web.bind.annotation.RestController;
  14 +
  15 +/**
  16 + * 市场接口
  17 + *
  18 + * @author miaoguoxin
  19 + * @since 2020-04-21 15:47:20
  20 + */
  21 +@RestController
  22 +@RequestMapping("/sapi/merchant")
  23 +public class MerchantController {
  24 + @Autowired
  25 + private MerchantService merchantService;
  26 +
  27 + @PostMapping("/save")
  28 + public Message<MerchantResponseDto> save(@RequestBody @Validated(Constant.InsertGroup.class)
  29 + MerchantRequestDto requestDto) throws Exception {
  30 + return Message.success(merchantService.create(requestDto));
  31 + }
  32 +}
... ...
src/main/java/com/diligrp/xtrade/product/controllor/ProductApiControllor.java
... ... @@ -21,17 +21,17 @@ public class ProductApiControllor {
21 21 @RequestMapping(value = "/createProduct")
22 22 public Message createOrder(@RequestBody ProductCreateRequestDto productCreateRequestDto) {
23 23 productService.createProduct(productCreateRequestDto);
24   - return Message.builder().success();
  24 + return Message.success();
25 25 }
26 26  
27 27 @RequestMapping(value = "/listProducts")
28 28 public Message listOrders(@RequestBody ProductQueryRequestDto productQueryRequestDto) {
29   - return Message.builder().success(productService.orderLists(productQueryRequestDto));
  29 + return Message.success(productService.orderLists(productQueryRequestDto));
30 30 }
31 31  
32 32 @RequestMapping(value = "/productDetail")
33 33 public Message orderDetail(@RequestBody ProductQueryRequestDto productQueryRequestDto) {
34   - return Message.builder().success(productService.orderDetail(productQueryRequestDto));
  34 + return Message.success(productService.orderDetail(productQueryRequestDto));
35 35 }
36 36  
37 37 }
... ...
src/main/java/com/diligrp/xtrade/product/controllor/ShopController.java
... ... @@ -37,9 +37,10 @@ public class ShopController {
37 37 * @throws
38 38 */
39 39 @RequestMapping("save")
  40 +
40 41 public Message<?> save(@Validated @RequestBody ShopDto shop){
41 42 shopService.insert(shop);
42   - return Message.builder().success();
  43 +
43 44 }
44 45  
45 46 /**
... ... @@ -51,8 +52,9 @@ public class ShopController {
51 52 * @throws
52 53 */
53 54 @RequestMapping("get/{shopId}")
  55 +
54 56 public Message<?> get(@PathVariable Long shopId){
55   - return Message.builder().success(shopService.selectByShopId(shopId));
  57 +
56 58 }
57 59  
58 60 /**
... ... @@ -66,7 +68,7 @@ public class ShopController {
66 68 @RequestMapping("selectShopByMerId/{merId}")
67 69 public Message<?> selectShopByMerId(@PathVariable Long merId){
68 70 List<ShopDo> shopDos = shopService.selectShopByMerId(merId);
69   - return Message.builder().success(shopDos);
  71 +
70 72 }
71 73  
72 74 /**
... ...
src/main/java/com/diligrp/xtrade/product/dao/MerchantDao.java
1 1 package com.diligrp.xtrade.product.dao;
2 2  
  3 +import com.diligrp.xtrade.product.domain.entity.Merchant;
  4 +import org.apache.ibatis.annotations.Param;
  5 +
  6 +import java.util.List;
  7 +
3 8 public interface MerchantDao {
4 9  
  10 + Merchant findById(Long id);
  11 +
  12 + List<Merchant> findPage(@Param("offset") int offset, @Param("limit") int limit);
  13 +
  14 + List<Merchant> findByCondition(Merchant xtMerchant);
  15 +
  16 + int insert(Merchant merchant);
  17 +
  18 + int update(Merchant xtMerchant);
  19 +
  20 + int deleteById(Long id);
  21 +
5 22 }
... ...
src/main/java/com/diligrp/xtrade/product/domain/converter/MerchantConverter.java 0 → 100644
  1 +package com.diligrp.xtrade.product.domain.converter;
  2 +
  3 +import com.diligrp.xtrade.product.domain.dto.MerchantRequestDto;
  4 +import com.diligrp.xtrade.product.domain.dto.MerchantResponseDto;
  5 +import com.diligrp.xtrade.product.domain.emuns.AccountType;
  6 +import com.diligrp.xtrade.product.domain.emuns.MerchantStatus;
  7 +import com.diligrp.xtrade.product.domain.entity.Merchant;
  8 +import org.springframework.beans.BeanUtils;
  9 +import org.springframework.stereotype.Component;
  10 +
  11 +import java.util.Optional;
  12 +
  13 +/**
  14 + * @Auther: miaoguoxin
  15 + * @Date: 2020/4/22 09:10
  16 + * @Description: 用于merchant的实体转换
  17 + */
  18 +@Component
  19 +public class MerchantConverter {
  20 +
  21 + public Merchant request2Entity(MerchantRequestDto requestDto) {
  22 + Integer type = Optional.ofNullable(requestDto.getAccountType())
  23 + .map(AccountType::getCode)
  24 + .orElse(0);
  25 + Merchant merchant = new Merchant();
  26 + merchant.setMerName(requestDto.getMerchantName());
  27 + merchant.setAccountId(requestDto.getAccountId());
  28 + merchant.setType(type);
  29 + merchant.setDescription(requestDto.getAddress());
  30 + merchant.setStatus(MerchantStatus.NORMAL.getType());
  31 + return merchant;
  32 + }
  33 +
  34 + public MerchantResponseDto entity2Response(Merchant merchant){
  35 + MerchantResponseDto responseDto = new MerchantResponseDto();
  36 + BeanUtils.copyProperties(merchant,responseDto);
  37 + responseDto.setType(AccountType.getAccountType(merchant.getType()));
  38 + return responseDto;
  39 + }
  40 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/dto/MerchantRequestDto.java 0 → 100644
  1 +package com.diligrp.xtrade.product.domain.dto;
  2 +
  3 +import com.diligrp.xtrade.product.common.constants.Constant;
  4 +import com.diligrp.xtrade.product.domain.emuns.AccountType;
  5 +
  6 +import javax.validation.constraints.NotBlank;
  7 +import javax.validation.constraints.NotNull;
  8 +import javax.validation.constraints.Pattern;
  9 +import java.io.Serializable;
  10 +
  11 +/**
  12 + * @Auther: miaoguoxin
  13 + * @Date: 2020/4/21 15:54
  14 + */
  15 +public class MerchantRequestDto implements Serializable {
  16 + /**账户id*/
  17 + private transient Long accountId;
  18 + /**真实名字*/
  19 + private transient String realName;
  20 + /**用户名字*/
  21 + @NotBlank(message = "{merchant.user_name.not.blank}", groups = Constant.InsertGroup.class)
  22 + @Pattern(regexp = "^[a-zA-Z0-9\u4E00-\u9FA5._,:-]*$",message = "{illegal.pattern}",groups = Constant.InsertGroup.class)
  23 + private String userName;
  24 + /**密码*/
  25 + private String password;
  26 + /**电话*/
  27 + private String mobile;
  28 + /**账户类型*/
  29 + @NotNull(message = "{account_type.not.null}", groups = Constant.InsertGroup.class)
  30 + private AccountType accountType;
  31 + /**市场名称*/
  32 + @NotBlank(message = "{merchant_name.not.blank}",groups = Constant.InsertGroup.class)
  33 + @Pattern(regexp = "^[a-zA-Z0-9\u4E00-\u9FA5._,:-]*$",message = "{illegal.pattern}",groups = Constant.InsertGroup.class)
  34 + private String merchantName;
  35 + /**市场地址*/
  36 + private String address;
  37 +
  38 + public String getRealName() {
  39 + return realName;
  40 + }
  41 +
  42 + public void setRealName(String realName) {
  43 + this.realName = realName;
  44 + }
  45 +
  46 + public Long getAccountId() {
  47 + return accountId;
  48 + }
  49 +
  50 + public void setAccountId(Long accountId) {
  51 + this.accountId = accountId;
  52 + }
  53 +
  54 + public String getUserName() {
  55 + return userName;
  56 + }
  57 +
  58 + public void setUserName(String userName) {
  59 + this.userName = userName;
  60 + }
  61 +
  62 + public String getPassword() {
  63 + return password;
  64 + }
  65 +
  66 + public void setPassword(String password) {
  67 + this.password = password;
  68 + }
  69 +
  70 + public String getMobile() {
  71 + return mobile;
  72 + }
  73 +
  74 + public void setMobile(String mobile) {
  75 + this.mobile = mobile;
  76 + }
  77 +
  78 + public AccountType getAccountType() {
  79 + return accountType;
  80 + }
  81 +
  82 + public void setAccountType(AccountType accountType) {
  83 + this.accountType = accountType;
  84 + }
  85 +
  86 + public String getMerchantName() {
  87 + return merchantName;
  88 + }
  89 +
  90 + public void setMerchantName(String merchantName) {
  91 + this.merchantName = merchantName;
  92 + }
  93 +
  94 + public String getAddress() {
  95 + return address;
  96 + }
  97 +
  98 + public void setAddress(String address) {
  99 + this.address = address;
  100 + }
  101 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/dto/MerchantResponseDto.java 0 → 100644
  1 +package com.diligrp.xtrade.product.domain.dto;
  2 +
  3 +import com.diligrp.xtrade.product.domain.emuns.AccountType;
  4 +
  5 +import java.io.Serializable;
  6 +
  7 +/**
  8 + * @Auther: miaoguoxin
  9 + * @Date: 2020/4/21 16:04
  10 + */
  11 +public class MerchantResponseDto implements Serializable {
  12 + //商户id
  13 + private Long merId;
  14 +
  15 + //商户名称
  16 + private String merName;
  17 +
  18 + //园区编码
  19 + private String marketId;
  20 +
  21 + /**类型 */
  22 + private AccountType type;
  23 +
  24 + //主账号
  25 + private Long accountId;
  26 +
  27 + //账户名称
  28 + private String accountName;
  29 +
  30 + //商户状态
  31 + private Integer status;
  32 +
  33 + //市场编码
  34 + private String marketCode;
  35 +
  36 + //描述
  37 + private String description;
  38 +
  39 + public Long getMerId() {
  40 + return merId;
  41 + }
  42 +
  43 + public void setMerId(Long merId) {
  44 + this.merId = merId;
  45 + }
  46 +
  47 + public String getMerName() {
  48 + return merName;
  49 + }
  50 +
  51 + public void setMerName(String merName) {
  52 + this.merName = merName;
  53 + }
  54 +
  55 + public String getMarketId() {
  56 + return marketId;
  57 + }
  58 +
  59 + public void setMarketId(String marketId) {
  60 + this.marketId = marketId;
  61 + }
  62 +
  63 + public AccountType getType() {
  64 + return type;
  65 + }
  66 +
  67 + public void setType(AccountType type) {
  68 + this.type = type;
  69 + }
  70 +
  71 + public Long getAccountId() {
  72 + return accountId;
  73 + }
  74 +
  75 + public void setAccountId(Long accountId) {
  76 + this.accountId = accountId;
  77 + }
  78 +
  79 + public String getAccountName() {
  80 + return accountName;
  81 + }
  82 +
  83 + public void setAccountName(String accountName) {
  84 + this.accountName = accountName;
  85 + }
  86 +
  87 + public Integer getStatus() {
  88 + return status;
  89 + }
  90 +
  91 + public void setStatus(Integer status) {
  92 + this.status = status;
  93 + }
  94 +
  95 + public String getMarketCode() {
  96 + return marketCode;
  97 + }
  98 +
  99 + public void setMarketCode(String marketCode) {
  100 + this.marketCode = marketCode;
  101 + }
  102 +
  103 + public String getDescription() {
  104 + return description;
  105 + }
  106 +
  107 + public void setDescription(String description) {
  108 + this.description = description;
  109 + }
  110 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/emuns/AccountStatus.java 0 → 100644
  1 +/**
  2 + * Copyright (c) 2016 www.diligrp.com All rights reserved. <br />
  3 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  4 + *
  5 + */
  6 +package com.diligrp.xtrade.product.domain.emuns;
  7 +
  8 +import com.diligrp.xtrade.shared.type.IEnumType;
  9 +
  10 +import java.util.Arrays;
  11 +
  12 +/**
  13 + * 账户状态的枚举类
  14 + */
  15 +public enum AccountStatus implements IEnumType {
  16 + NORMAL(1, "正常"),
  17 + LOCKED(2, "锁定")
  18 + ;
  19 +
  20 + private int code;
  21 + private String name;
  22 +
  23 + AccountStatus(int code, String name) {
  24 + this.code = code;
  25 + this.name = name;
  26 + }
  27 +
  28 +
  29 + @Override
  30 + public int getCode() {
  31 + return this.code;
  32 + }
  33 +
  34 + public String getName() {
  35 + return this.name;
  36 + }
  37 +
  38 + public static AccountStatus getByType(int code) {
  39 + return Arrays.stream(values())
  40 + .filter(accountStatus -> accountStatus.getCode() == code)
  41 + .findFirst()
  42 + .orElse(null);
  43 + }
  44 +
  45 + public static String getName(int index) {
  46 + return Arrays.stream(AccountStatus.values())
  47 + .filter(c -> c.getCode() == index)
  48 + .findFirst().map(c -> c.name)
  49 + .orElse(null);
  50 + }
  51 +
  52 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/emuns/AccountType.java 0 → 100644
  1 +package com.diligrp.xtrade.product.domain.emuns;
  2 +
  3 +import com.diligrp.xtrade.shared.type.IEnumType;
  4 +import com.fasterxml.jackson.annotation.JsonCreator;
  5 +import com.fasterxml.jackson.annotation.JsonValue;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * @Auther: miaoguoxin
  11 + * @Date: 2020/4/21 16:13
  12 + */
  13 +public enum AccountType implements IEnumType {
  14 + PERSONAL(10, "个人账户"),
  15 +
  16 + PUBLIC(20, "对公账户"),
  17 +
  18 + /**临时卡用*/
  19 + Anonymous(30, "不记名");
  20 +
  21 + private int code;
  22 + private String name;
  23 +
  24 + AccountType(int code,String name)
  25 + {
  26 + this.name = name;
  27 + this.code = code;
  28 + }
  29 +
  30 + @JsonCreator
  31 + public static AccountType getAccountType(int code)
  32 + {
  33 + return Arrays.stream(AccountType.values())
  34 + .filter(type -> type.getCode() == code)
  35 + .findFirst()
  36 + .orElse(null);
  37 + }
  38 +
  39 + public static String getName(int code)
  40 + {
  41 + return Arrays.stream(AccountType.values())
  42 + .filter(type -> type.getCode() == code)
  43 + .findFirst()
  44 + .map(type -> type.name)
  45 + .orElse(null);
  46 + }
  47 +
  48 + @Override
  49 + public String getName()
  50 + {
  51 + return this.name;
  52 + }
  53 +
  54 + @Override
  55 + @JsonValue
  56 + public int getCode()
  57 + {
  58 + return this.code;
  59 + }
  60 +
  61 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/emuns/IKeyGeneratorKeys.java
1   -package com.diligrp.xtrade.product.domain.emuns;
2   -
3   -/**
4   - * @ClassName: IKeyGeneratorKeys
5   - * @Description id生成key配置
6   - * @author yangfan
7   - * @date 2020年4月21日
8   - */
9   -public enum IKeyGeneratorKeys {
10   - SHOP_SEQUENCE,
11   - CATEGORY_SEQUENCE
12   -}
  1 +package com.diligrp.xtrade.product.domain.emuns;
  2 +
  3 +
  4 +/**
  5 + * @ClassName: IKeyGeneratorKeys
  6 + * @Description id生成key配置
  7 + * @author yangfan
  8 + * @date 2020年4月21日
  9 + */
  10 +public enum IKeyGeneratorKeys {
  11 + SHOP_SEQUENCE("SHOP_SEQUENCE","店铺id"),
  12 + MERCHANT_SEQUENCE("MERCHANT_SEQUENCE","市场id"),
  13 + ACCOUNT_SEQUENCE("ACCOUNT_SEQUENCE","账号id")
  14 + ;
  15 +
  16 + private String code;
  17 + private String name;
  18 +
  19 + IKeyGeneratorKeys(String code, String name) {
  20 + this.code = code;
  21 + this.name = name;
  22 + }
  23 +
  24 + public String getCode() {
  25 + return code;
  26 + }
  27 +
  28 + public String getName() {
  29 + return name;
  30 + }
  31 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/emuns/MerchantStatus.java 0 → 100644
  1 +package com.diligrp.xtrade.product.domain.emuns;
  2 +
  3 +import com.diligrp.xtrade.shared.type.IEnumType;
  4 +
  5 +import java.util.Arrays;
  6 +
  7 +/**
  8 + * @Auther: miaoguoxin
  9 + * @Date: 2020/4/21 16:31
  10 + */
  11 +public enum MerchantStatus implements IEnumType {
  12 + NORMAL(1, "正常"),
  13 + LIMITED(2, "受限");
  14 +
  15 + private int type;
  16 + private String name;
  17 +
  18 + MerchantStatus(int type, String name) {
  19 + this.type = type;
  20 + this.name = name;
  21 + }
  22 +
  23 + public int getType() {
  24 + return type;
  25 + }
  26 +
  27 + @Override
  28 + public int getCode() {
  29 + return this.type;
  30 + }
  31 + @Override
  32 + public String getName() {
  33 + return this.name;
  34 + }
  35 +
  36 + public static MerchantStatus getByType(int type) {
  37 + return Arrays.stream(values())
  38 + .filter(accountStatus -> accountStatus.getType() == type)
  39 + .findFirst()
  40 + .orElse(null);
  41 + }
  42 +
  43 + public static String getName(int index) {
  44 + return Arrays.stream(MerchantStatus.values())
  45 + .filter(c -> c.getType() == index).findFirst()
  46 + .map(c -> c.name)
  47 + .orElse(null);
  48 + }
  49 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/emuns/ResponseCode.java 0 → 100644
  1 +package com.diligrp.xtrade.product.domain.emuns;
  2 +
  3 +import com.diligrp.xtrade.shared.type.IEnumType;
  4 +
  5 +/**
  6 + * @Auther: miaoguoxin
  7 + * @Date: 2020/4/22 08:48
  8 + * @Description: 响应code枚举
  9 + */
  10 +public enum ResponseCode implements IEnumType {
  11 + ACCOUNT_EXIST(200001,"账号已存在"),
  12 + CARD_MERCHANT_CREATED(200002,"该卡已创建商户,请使用用户名密码登录"),
  13 + ;
  14 +
  15 +
  16 + private int code;
  17 + private String name;
  18 +
  19 + ResponseCode(int code,String name)
  20 + {
  21 + this.name = name;
  22 + this.code = code;
  23 + }
  24 +
  25 + @Override
  26 + public int getCode() {
  27 + return this.code;
  28 + }
  29 +
  30 + @Override
  31 + public String getName() {
  32 + return this.name;
  33 + }
  34 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/entity/Account.java 0 → 100644
  1 +package com.diligrp.xtrade.product.domain.entity;
  2 +
  3 +import com.diligrp.xtrade.shared.domain.BaseDo;
  4 +
  5 +/**
  6 + * @Auther: miaoguoxin
  7 + * @Date: 2020/4/21 17:20
  8 + * @Description: 账户实体
  9 + */
  10 +public class Account extends BaseDo {
  11 + private String name;
  12 + private String password;
  13 + private String realName;
  14 + private String mobile;
  15 + private Integer status;
  16 + private Long merId;
  17 + private Integer isAdmin;
  18 + private String role;
  19 + private String shops;
  20 + private Long roleId;
  21 +
  22 + public String getName() {
  23 + return name;
  24 + }
  25 +
  26 + public void setName(String name) {
  27 + this.name = name;
  28 + }
  29 +
  30 + public String getPassword() {
  31 + return password;
  32 + }
  33 +
  34 + public void setPassword(String password) {
  35 + this.password = password;
  36 + }
  37 +
  38 + public String getRealName() {
  39 + return realName;
  40 + }
  41 +
  42 + public void setRealName(String realName) {
  43 + this.realName = realName;
  44 + }
  45 +
  46 + public String getMobile() {
  47 + return mobile;
  48 + }
  49 +
  50 + public void setMobile(String mobile) {
  51 + this.mobile = mobile;
  52 + }
  53 +
  54 + public Integer getStatus() {
  55 + return status;
  56 + }
  57 +
  58 + public void setStatus(Integer status) {
  59 + this.status = status;
  60 + }
  61 +
  62 + public Long getMerId() {
  63 + return merId;
  64 + }
  65 +
  66 + public void setMerId(Long merId) {
  67 + this.merId = merId;
  68 + }
  69 +
  70 + public Integer getIsAdmin() {
  71 + return isAdmin;
  72 + }
  73 +
  74 + public void setIsAdmin(Integer isAdmin) {
  75 + this.isAdmin = isAdmin;
  76 + }
  77 +
  78 + public String getRole() {
  79 + return role;
  80 + }
  81 +
  82 + public void setRole(String role) {
  83 + this.role = role;
  84 + }
  85 +
  86 + public String getShops() {
  87 + return shops;
  88 + }
  89 +
  90 + public void setShops(String shops) {
  91 + this.shops = shops;
  92 + }
  93 +
  94 + public Long getRoleId() {
  95 + return roleId;
  96 + }
  97 +
  98 + public void setRoleId(Long roleId) {
  99 + this.roleId = roleId;
  100 + }
  101 +
  102 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/entity/Merchant.java
1 1 package com.diligrp.xtrade.product.domain.entity;
2 2  
  3 +import com.diligrp.xtrade.product.domain.emuns.AccountType;
3 4 import com.diligrp.xtrade.shared.domain.BaseDo;
4 5  
5 6 /**
6   - * 商户实体
7   - * @author kuk
8   - *
  7 + * 商户实体(xt_merchant)
9 8 */
10   -public class Merchant extends BaseDo{
11   -
12   - //商户id
13   - private Long merId;
14   -
15   - //商户名称
16   - private String merName;
17   -
18   - //类型
19   - private Integer type;
20   -
21   - //主账号
22   - private Long accountId;
23   -
24   - //商户状态
25   - private Integer status;
26   -
27   - //市场编码
28   - private String marketCode;
29   -
30   - //描述
31   - private String description;
32   -
33   - public Merchant(){
34   - }
35   -
36   - public Merchant(Long merId){
37   - this.setMerId(merId);
38   - }
39   -
40   - /**
41   - * 获取 商户编码
42   - * @return
43   - */
44   - public Long getMerId(){
45   - return merId;
46   - }
47   -
48   - /**
49   - * 设置 商户编码
50   - * @param merId
51   - */
52   - public void setMerId(Long merId){
53   - this.merId = merId;
54   - }
55   -
56   - /**
57   - * 获取 商户名称
58   - * @return
59   - */
60   - public String getMerName(){
61   - return merName;
62   - }
63   -
64   - /**
65   - * 设置 商户名称
66   - * @param merName
67   - */
68   - public void setMerName(String merName){
69   - this.merName = merName;
70   - }
71   -
72   - /**
73   - * 获取 商户类型-个体、企业
74   - * @return
75   - */
76   - public Integer getType(){
77   - return type;
78   - }
79   -
80   - /**
81   - * 设置 商户类型-个体、企业
82   - * @param type
83   - */
84   - public void setType(Integer type){
85   - this.type = type;
86   - }
87   -
88   - /**
89   - * 获取 账户ID
90   - * @return
91   - */
92   - public Long getAccountId(){
93   - return accountId;
94   - }
95   -
96   - /**
97   - * 设置 账户ID
98   - * @param accountId
99   - */
100   - public void setAccountId(Long accountId){
101   - this.accountId = accountId;
102   - }
103   -
104   - /**
105   - * 获取 商户状态
106   - * @return
107   - */
108   - public Integer getStatus(){
109   - return status;
110   - }
111   -
112   - /**
113   - * 设置 商户状态
114   - * @param status
115   - */
116   - public void setStatus(Integer status){
117   - this.status = status;
118   - }
119   -
120   -
121   - /**
122   - * 获取 商户描述
123   - * @return
124   - */
125   - public String getDescription(){
126   - return description;
127   - }
128   -
129   - /**
130   - * 设置 商户描述
131   - * @param description
132   - */
133   - public void setDescription(String description){
134   - this.description = description;
135   - }
136   -
137   - public String getMarketCode() {
138   - return marketCode;
139   - }
140   -
141   - public void setMarketCode(String marketCode) {
142   - this.marketCode = marketCode;
143   - }
144   -}
145 9 \ No newline at end of file
  10 +public class Merchant extends BaseDo {
  11 + //商户id
  12 + private Long merId;
  13 +
  14 + //商户名称
  15 + private String merName;
  16 +
  17 + //园区编码
  18 + private String marketId;
  19 +
  20 + /**类型 {@link AccountType}*/
  21 + private Integer type;
  22 +
  23 + //主账号
  24 + private Long accountId;
  25 +
  26 + //账户名称
  27 + private String accountName;
  28 +
  29 + //商户状态
  30 + private Integer status;
  31 +
  32 + //市场编码
  33 + private String marketCode;
  34 +
  35 + //描述
  36 + private String description;
  37 +
  38 +
  39 + public String getMarketId() {
  40 + return marketId;
  41 + }
  42 +
  43 + public void setMarketId(String marketId) {
  44 + this.marketId = marketId;
  45 + }
  46 +
  47 + public String getAccountName() {
  48 + return accountName;
  49 + }
  50 +
  51 + public void setAccountName(String accountName) {
  52 + this.accountName = accountName;
  53 + }
  54 +
  55 + public Long getMerId() {
  56 + return merId;
  57 + }
  58 +
  59 + public void setMerId(Long merId) {
  60 + this.merId = merId;
  61 + }
  62 +
  63 + public String getMerName() {
  64 + return merName;
  65 + }
  66 +
  67 + public void setMerName(String merName) {
  68 + this.merName = merName;
  69 + }
  70 +
  71 + public Integer getType() {
  72 + return type;
  73 + }
  74 +
  75 + public void setType(Integer type) {
  76 + this.type = type;
  77 + }
  78 +
  79 + public Long getAccountId() {
  80 + return accountId;
  81 + }
  82 +
  83 + public void setAccountId(Long accountId) {
  84 + this.accountId = accountId;
  85 + }
  86 +
  87 + public Integer getStatus() {
  88 + return status;
  89 + }
  90 +
  91 + public void setStatus(Integer status) {
  92 + this.status = status;
  93 + }
  94 +
  95 + public String getDescription() {
  96 + return description;
  97 + }
  98 +
  99 + public void setDescription(String description) {
  100 + this.description = description;
  101 + }
  102 +
  103 + public String getMarketCode() {
  104 + return marketCode;
  105 + }
  106 +
  107 + public void setMarketCode(String marketCode) {
  108 + this.marketCode = marketCode;
  109 + }
  110 +}
... ...
src/main/java/com/diligrp/xtrade/product/domain/entity/Operator.java 0 → 100644
  1 +package com.diligrp.xtrade.product.domain.entity;
  2 +
  3 +/**
  4 + * @Auther: miaoguoxin
  5 + * @Date: 2020/4/21 17:15
  6 + * @Description: 操作员实体
  7 + */
  8 +public class Operator {
  9 + private Long accountId;
  10 + private String account;
  11 + private String name;
  12 + private String mobile;
  13 + private Long merId;
  14 + private String merName;
  15 + private Long roleId;
  16 + // 商户对应卡务账户ID
  17 + private Long merAccountId;
  18 + //商户对应资金账号ID
  19 + private Long merFundAccountId;
  20 + private boolean admin;
  21 +
  22 + public Long getAccountId() {
  23 + return accountId;
  24 + }
  25 +
  26 + public void setAccountId(Long accountId) {
  27 + this.accountId = accountId;
  28 + }
  29 +
  30 + public String getAccount() {
  31 + return account;
  32 + }
  33 +
  34 + public void setAccount(String account) {
  35 + this.account = account;
  36 + }
  37 +
  38 + public String getName() {
  39 + return name;
  40 + }
  41 +
  42 + public void setName(String name) {
  43 + this.name = name;
  44 + }
  45 +
  46 + public String getMobile() {
  47 + return mobile;
  48 + }
  49 +
  50 + public void setMobile(String mobile) {
  51 + this.mobile = mobile;
  52 + }
  53 +
  54 + public Long getMerId() {
  55 + return merId;
  56 + }
  57 +
  58 + public void setMerId(Long merId) {
  59 + this.merId = merId;
  60 + }
  61 +
  62 + public String getMerName() {
  63 + return merName;
  64 + }
  65 +
  66 + public void setMerName(String merName) {
  67 + this.merName = merName;
  68 + }
  69 +
  70 + public Long getRoleId() {
  71 + return roleId;
  72 + }
  73 +
  74 + public void setRoleId(Long roleId) {
  75 + this.roleId = roleId;
  76 + }
  77 +
  78 + public Long getMerAccountId() {
  79 + return merAccountId;
  80 + }
  81 +
  82 + public void setMerAccountId(Long merAccountId) {
  83 + this.merAccountId = merAccountId;
  84 + }
  85 +
  86 + public Long getMerFundAccountId() {
  87 + return merFundAccountId;
  88 + }
  89 +
  90 + public void setMerFundAccountId(Long merFundAccountId) {
  91 + this.merFundAccountId = merFundAccountId;
  92 + }
  93 +
  94 + public boolean isAdmin() {
  95 + return admin;
  96 + }
  97 +
  98 + public void setAdmin(boolean admin) {
  99 + this.admin = admin;
  100 + }
  101 +}
... ...
src/main/java/com/diligrp/xtrade/product/exception/ProductException.java
1 1 package com.diligrp.xtrade.product.exception;
2 2  
3   -public class ProductException {
  3 +import com.diligrp.xtrade.shared.exception.BaseBusinessException;
  4 +import com.diligrp.xtrade.shared.type.IEnumType;
4 5  
  6 +public class ProductException extends BaseBusinessException {
  7 +
  8 + public ProductException(IEnumType type) {
  9 + super(type);
  10 + }
5 11 }
... ...
src/main/java/com/diligrp/xtrade/product/repository/AccountRepository.java 0 → 100644
  1 +package com.diligrp.xtrade.product.repository;
  2 +
  3 +import com.diligrp.xtrade.product.domain.entity.Account;
  4 +import com.diligrp.xtrade.product.domain.entity.Operator;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +import java.util.ArrayList;
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * @Auther: miaoguoxin
  12 + * @Date: 2020/4/21 17:17
  13 + * @Description:
  14 + */
  15 +@Repository
  16 +public class AccountRepository implements IAccountRepository {
  17 + private final static List<Account> ACCOUNTS = new ArrayList<>();
  18 + @Override
  19 + public Operator getOperator() {
  20 + return new Operator();
  21 + }
  22 +
  23 + @Override
  24 + public Account getAccountByName(String userName) {
  25 + Account account = new Account();
  26 + account.setName(userName);
  27 + return null;
  28 + }
  29 +
  30 + @Override
  31 + public void add(Account account) {
  32 + ACCOUNTS.add(account);
  33 + }
  34 +}
... ...
src/main/java/com/diligrp/xtrade/product/repository/IAccountRepository.java 0 → 100644
  1 +package com.diligrp.xtrade.product.repository;
  2 +
  3 +import com.diligrp.xtrade.product.domain.entity.Account;
  4 +import com.diligrp.xtrade.product.domain.entity.Operator;
  5 +
  6 +/**
  7 + * @Auther: miaoguoxin
  8 + * @Date: 2020/4/21 17:14
  9 + * @Description: 账户相关仓储接口
  10 + */
  11 +public interface IAccountRepository {
  12 +
  13 + Operator getOperator();
  14 +
  15 + Account getAccountByName(String userName);
  16 +
  17 + void add(Account account);
  18 +}
... ...
src/main/java/com/diligrp/xtrade/product/repository/IMerchantRepository.java 0 → 100644
  1 +package com.diligrp.xtrade.product.repository;
  2 +
  3 +import com.diligrp.xtrade.product.domain.entity.Merchant;
  4 +
  5 +/**
  6 + * @Auther: miaoguoxin
  7 + * @Date: 2020/4/22 08:59
  8 + * @Description: merchant仓储接口
  9 + */
  10 +public interface IMerchantRepository {
  11 +
  12 + Merchant getByAccountId(Long accountId);
  13 +
  14 + void add(Merchant merchant);
  15 +
  16 + void update(Merchant merchant);
  17 +}
... ...
src/main/java/com/diligrp/xtrade/product/repository/MerchantRepository.java 0 → 100644
  1 +package com.diligrp.xtrade.product.repository;
  2 +
  3 +import com.diligrp.xtrade.product.dao.MerchantDao;
  4 +import com.diligrp.xtrade.product.dao.ShopDao;
  5 +import com.diligrp.xtrade.product.domain.emuns.AccountType;
  6 +import com.diligrp.xtrade.product.domain.emuns.IKeyGeneratorKeys;
  7 +import com.diligrp.xtrade.product.domain.entity.Merchant;
  8 +import com.diligrp.xtrade.product.domain.entity.ShopDo;
  9 +import com.diligrp.xtrade.shared.sequence.IKeyGenerator;
  10 +import com.diligrp.xtrade.shared.sequence.KeyGeneratorManager;
  11 +import org.springframework.beans.factory.annotation.Autowired;
  12 +import org.springframework.stereotype.Repository;
  13 +
  14 +import java.time.LocalDateTime;
  15 +import java.util.List;
  16 +
  17 +/**
  18 + * @Auther: miaoguoxin
  19 + * @Date: 2020/4/22 09:01
  20 + */
  21 +@Repository
  22 +public class MerchantRepository implements IMerchantRepository {
  23 + @Autowired
  24 + private MerchantDao merchantDao;
  25 + @Autowired
  26 + private ShopDao shopDao;
  27 + @Autowired
  28 + private KeyGeneratorManager keyGeneratorManager;
  29 +
  30 + @Override
  31 + public Merchant getByAccountId(Long accountId) {
  32 + Merchant merchant = new Merchant();
  33 + merchant.setAccountId(accountId);
  34 + List<Merchant> merchants = merchantDao.findByCondition(merchant);
  35 + if (merchants.isEmpty()){
  36 + return null;
  37 + }
  38 + return merchants.get(0);
  39 + }
  40 +
  41 + @Override
  42 + public void add(Merchant newMerchant) {
  43 + IKeyGenerator keyGenerator = keyGeneratorManager.getKeyGenerator(IKeyGeneratorKeys.MERCHANT_SEQUENCE);
  44 + newMerchant.setMerId(keyGenerator.nextId());
  45 + newMerchant.setMarketId("SY001");
  46 + newMerchant.setCreatedTime(LocalDateTime.now());
  47 + merchantDao.insert(newMerchant);
  48 + }
  49 +
  50 + @Override
  51 + public void update(Merchant merchant) {
  52 + merchant.setModifiedTime(LocalDateTime.now());
  53 + ShopDo shopDo = new ShopDo();
  54 + shopDo.setType(AccountType.PUBLIC.getCode());
  55 + shopDo.setMerId(merchant.getMerId());
  56 + shopDao.update(shopDo);
  57 + }
  58 +}
... ...
src/main/java/com/diligrp/xtrade/product/rpc/feign/CardService.java renamed to src/main/java/com/diligrp/xtrade/product/rpc/feign/CardRpc.java
1 1 package com.diligrp.xtrade.product.rpc.feign;
2 2  
3   -public interface CardService {
  3 +public interface CardRpc {
4 4  
5 5 }
... ...
src/main/java/com/diligrp/xtrade/product/service/AccountService.java 0 → 100644
  1 +package com.diligrp.xtrade.product.service;
  2 +
  3 +import com.diligrp.xtrade.product.domain.dto.MerchantRequestDto;
  4 +import com.diligrp.xtrade.product.domain.entity.Account;
  5 +import com.diligrp.xtrade.product.domain.entity.Merchant;
  6 +
  7 +/**
  8 + * @Auther: miaoguoxin
  9 + * @Date: 2020/4/22 11:08
  10 + */
  11 +public interface AccountService {
  12 +
  13 + Account build(MerchantRequestDto requestDto, Merchant merchant) throws Exception;
  14 +
  15 + void create(MerchantRequestDto requestDto, Merchant merchant) throws Exception;
  16 +}
... ...
src/main/java/com/diligrp/xtrade/product/service/MerchantService.java
1 1 package com.diligrp.xtrade.product.service;
2 2  
  3 +import com.diligrp.xtrade.product.domain.dto.MerchantRequestDto;
  4 +import com.diligrp.xtrade.product.domain.dto.MerchantResponseDto;
  5 +
3 6 public interface MerchantService {
4 7  
  8 + MerchantResponseDto create(MerchantRequestDto requestDto) throws Exception;
  9 +
5 10 }
... ...
src/main/java/com/diligrp/xtrade/product/service/impl/AccountServiceImpl.java 0 → 100644
  1 +package com.diligrp.xtrade.product.service.impl;
  2 +
  3 +import com.diligrp.xtrade.product.domain.dto.MerchantRequestDto;
  4 +import com.diligrp.xtrade.product.domain.emuns.AccountStatus;
  5 +import com.diligrp.xtrade.product.domain.emuns.IKeyGeneratorKeys;
  6 +import com.diligrp.xtrade.product.domain.entity.Account;
  7 +import com.diligrp.xtrade.product.domain.entity.Merchant;
  8 +import com.diligrp.xtrade.product.repository.IAccountRepository;
  9 +import com.diligrp.xtrade.product.service.AccountService;
  10 +import com.diligrp.xtrade.shared.security.PasswordUtils;
  11 +import com.diligrp.xtrade.shared.sequence.IKeyGenerator;
  12 +import com.diligrp.xtrade.shared.sequence.KeyGeneratorManager;
  13 +import org.springframework.beans.factory.annotation.Autowired;
  14 +import org.springframework.stereotype.Service;
  15 +
  16 +import java.time.LocalDateTime;
  17 +
  18 +/**
  19 + * @Auther: miaoguoxin
  20 + * @Date: 2020/4/22 11:10
  21 + */
  22 +@Service
  23 +public class AccountServiceImpl implements AccountService {
  24 + @Autowired
  25 + private IAccountRepository accountRepository;
  26 + @Autowired
  27 + private KeyGeneratorManager keyGeneratorManager;
  28 +
  29 + @Override
  30 + public Account build(MerchantRequestDto requestDto, Merchant merchant) throws Exception {
  31 + Account newAccount = new Account();
  32 + newAccount.setName(requestDto.getUserName());
  33 + newAccount.setRealName(requestDto.getRealName());
  34 + newAccount.setPassword(PasswordUtils.encrypt(requestDto.getPassword(),
  35 + requestDto.getUserName()));
  36 + newAccount.setMobile(requestDto.getMobile());
  37 + newAccount.setStatus(AccountStatus.NORMAL.getCode());
  38 + newAccount.setIsAdmin(1);
  39 + newAccount.setMerId(merchant.getMerId());
  40 + newAccount.setCreatedTime(LocalDateTime.now());
  41 + IKeyGenerator keyGenerator = keyGeneratorManager.getKeyGenerator(IKeyGeneratorKeys.ACCOUNT_SEQUENCE);
  42 + newAccount.setId(keyGenerator.nextId());
  43 + return newAccount;
  44 + }
  45 +
  46 + @Override
  47 + public void create(MerchantRequestDto requestDto, Merchant merchant) throws Exception {
  48 + Account newAccount = this.build(requestDto, merchant);
  49 + accountRepository.add(newAccount);
  50 + }
  51 +}
... ...
src/main/java/com/diligrp/xtrade/product/service/impl/MerchantServiceImpl.java
1 1 package com.diligrp.xtrade.product.service.impl;
2 2  
  3 +import com.diligrp.xtrade.product.domain.converter.MerchantConverter;
  4 +import com.diligrp.xtrade.product.domain.dto.MerchantRequestDto;
  5 +import com.diligrp.xtrade.product.domain.dto.MerchantResponseDto;
  6 +import com.diligrp.xtrade.product.domain.emuns.AccountType;
  7 +import com.diligrp.xtrade.product.domain.emuns.ResponseCode;
  8 +import com.diligrp.xtrade.product.domain.entity.Account;
  9 +import com.diligrp.xtrade.product.domain.entity.Merchant;
  10 +import com.diligrp.xtrade.product.domain.entity.Operator;
  11 +import com.diligrp.xtrade.product.exception.ProductException;
  12 +import com.diligrp.xtrade.product.repository.IAccountRepository;
  13 +import com.diligrp.xtrade.product.repository.IMerchantRepository;
  14 +import com.diligrp.xtrade.product.service.AccountService;
3 15 import com.diligrp.xtrade.product.service.MerchantService;
  16 +import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.stereotype.Service;
  18 +import org.springframework.transaction.annotation.Transactional;
4 19  
  20 +@Service
5 21 public class MerchantServiceImpl implements MerchantService {
  22 + @Autowired
  23 + private IAccountRepository accountRepository;
  24 + @Autowired
  25 + private IMerchantRepository merchantRepository;
  26 + @Autowired
  27 + private MerchantConverter merchantConverter;
  28 + @Autowired
  29 + private AccountService accountService;
  30 +
  31 + @Override
  32 + @Transactional
  33 + public MerchantResponseDto create(MerchantRequestDto requestDto) throws Exception {
  34 + Operator operator = accountRepository.getOperator();
  35 + requestDto.setAccountId(operator.getAccountId());
  36 + requestDto.setRealName(operator.getName());
  37 + Account account = accountRepository.getAccountByName(requestDto.getUserName());
  38 + if (account != null) {
  39 + throw new ProductException(ResponseCode.ACCOUNT_EXIST);
  40 + }
  41 + Merchant merchant = merchantRepository.getByAccountId(requestDto.getAccountId());
  42 + if (merchant == null){
  43 + merchant = merchantConverter.request2Entity(requestDto);
  44 + merchantRepository.add(merchant);
  45 + } else {
  46 + if (AccountType.PERSONAL.getCode() != merchant.getType()){
  47 + throw new ProductException(ResponseCode.CARD_MERCHANT_CREATED);
  48 + }
  49 + merchantRepository.update(merchant);
  50 + }
  51 + //创建市场管理员账户
  52 + accountService.create(requestDto,merchant);
  53 + return merchantConverter.entity2Response(merchant);
  54 + }
6 55  
7 56 }
... ...
src/main/resources/mapping/com/diligrp/xtrade/product/MerchantDao.xml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3 <mapper namespace="com.diligrp.xtrade.product.dao.MerchantDao">
4   -
5   -
6   -
7   -</mapper>
8 4 \ No newline at end of file
  5 +
  6 + <resultMap type="com.diligrp.xtrade.product.domain.entity.Merchant" id="XtMerchantMap">
  7 + <result property="id" column="id"/>
  8 + <result property="merId" column="mer_id"/>
  9 + <result property="merName" column="mer_name"/>
  10 + <result property="marketId" column="market_id"/>
  11 + <result property="accountId" column="account_id"/>
  12 + <result property="accountName" column="account_name"/>
  13 + <result property="type" column="type"/>
  14 + <result property="status" column="status"/>
  15 + <result property="description" column="description"/>
  16 + <result property="createdTime" column="created_time"/>
  17 + <result property="modifiedTime" column="modified_time"/>
  18 + </resultMap>
  19 + <sql id="Base_Column">
  20 + id,
  21 + mer_id,
  22 + mer_name,
  23 + market_id,
  24 + account_id,
  25 + account_name,
  26 + type,
  27 + `status`,
  28 + `description`,
  29 + created_time,
  30 + modified_time
  31 + </sql>
  32 + <sql id="Base_Condition_Column">
  33 + <if test="merId != null">
  34 + mer_id = #{merId},
  35 + </if>
  36 + <if test="merName != null and merName != ''">
  37 + mer_name = #{merName},
  38 + </if>
  39 + <if test="marketId != null and marketId != ''">
  40 + market_id = #{marketId},
  41 + </if>
  42 + <if test="accountId != null">
  43 + account_id = #{accountId},
  44 + </if>
  45 + <if test="accountName != null and accountName != ''">
  46 + account_name = #{accountName},
  47 + </if>
  48 + <if test="type != null">
  49 + type = #{type},
  50 + </if>
  51 + <if test="status != null">
  52 + `status` = #{status},
  53 + </if>
  54 + <if test="description != null and description != ''">
  55 + `description` = #{description},
  56 + </if>
  57 + <if test="createdTime != null">
  58 + created_time = #{createdTime},
  59 + </if>
  60 + <if test="modifiedTime != null">
  61 + modified_time = #{modifiedTime},
  62 + </if>
  63 + </sql>
  64 +
  65 + <!--查询单个-->
  66 + <select id="findById" resultMap="XtMerchantMap">
  67 + select
  68 + <include refid="Base_Column"/>
  69 + from xt_merchant
  70 + where id = #{id}
  71 + </select>
  72 +
  73 + <!--查询指定行数据-->
  74 + <select id="findPage" resultMap="XtMerchantMap">
  75 + select
  76 + <include refid="Base_Column"/>
  77 + from xt_merchant
  78 + limit #{offset}, #{limit}
  79 + </select>
  80 +
  81 + <select id="findByCondition" parameterType="com.diligrp.xtrade.product.domain.entity.Merchant" resultMap="XtMerchantMap">
  82 + SELECT
  83 + <include refid="Base_Column"/>
  84 + from xt_merchant
  85 + <where>
  86 + <include refid="Base_Condition_Column"/>
  87 + </where>
  88 + </select>
  89 +
  90 + <!--新增所有列-->
  91 + <insert id="insert" keyProperty="id" useGeneratedKeys="true">
  92 + insert into xt_merchant(mer_id, mer_name, market_id, account_id, account_name, type, status, description,
  93 + created_time, modified_time)
  94 + values (#{merId}, #{merName}, #{marketId}, #{accountId}, #{accountName}, #{type}, #{status}, #{description},
  95 + #{createdTime}, #{modifiedTime})
  96 + </insert>
  97 +
  98 + <!--通过主键修改数据-->
  99 + <update id="update">
  100 + update xt_merchant
  101 + <set>
  102 + <include refid="Base_Condition_Column"/>
  103 + </set>
  104 + where id = #{id}
  105 + </update>
  106 +
  107 + <!--通过主键删除-->
  108 + <delete id="deleteById">
  109 + delete
  110 + from xt_merchant
  111 + where id = #{id}
  112 + </delete>
  113 +
  114 +</mapper>
... ...