Commit 48382681 authored by renjie's avatar renjie

支付宝接口

parent 1091834e
package com.edgec.browserbackend.account.controller;
import com.edgec.browserbackend.account.domain.*;
import com.edgec.browserbackend.account.dto.AlipayReturnDto;
import com.edgec.browserbackend.account.dto.MobileDto;
import com.edgec.browserbackend.account.dto.ResultDto;
import com.edgec.browserbackend.account.dto.BillQueryCriteriaDto;
......@@ -279,9 +280,9 @@ public class AccountController {
public void alipayPutOrder(HttpServletRequest request, HttpServletResponse response, @PathVariable int amount) throws Exception {
String by = request.getParameter("by");
String form = paymentService.alipayPutPayOrder(request.getUserPrincipal().getName(), amount, by);
AlipayReturnDto dto= paymentService.alipayPutPayOrder(request.getUserPrincipal().getName(), amount, by);
response.setContentType("text/html;charset=utf-8");
response.getWriter().println(form);
response.getWriter().println(dto);
}
......
package com.edgec.browserbackend.account.dto;
/**
* @Desc
* @Author jason
* @CreateTime 2020/3/13 6:58 下午
**/
public class AlipayReturnDto {
private String tradeNo;
private String form;
public String getTradeNo() {
return tradeNo;
}
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
public String getForm() {
return form;
}
public void setForm(String form) {
this.form = form;
}
}
......@@ -12,12 +12,14 @@ public class SubUsersDto {
private String nickname;
private int permission;
private String comment;
private String passoword;
public SubUsersDto(Account account) {
public SubUsersDto(Account account, String password) {
this.permission = account.getPermission();
this.nickname = account.getNickname();
this.username = account.getName();
this.comment = account.getComment();
this.passoword = password;
}
public String getComment() {
......@@ -51,4 +53,12 @@ public class SubUsersDto {
public void setUsername(String username) {
this.username = username;
}
public String getPassoword() {
return passoword;
}
public void setPassoword(String passoword) {
this.passoword = passoword;
}
}
......@@ -3,12 +3,13 @@ package com.edgec.browserbackend.account.service;
import com.edgec.browserbackend.account.domain.UserBalance;
import com.edgec.browserbackend.account.domain.UserPaymentDto;
import com.edgec.browserbackend.account.dto.AlipayReturnDto;
public interface PaymentService {
UserPaymentDto wxPutPayOrder(String username, int amount);
String alipayPutPayOrder(String username, int amount, String by);
AlipayReturnDto alipayPutPayOrder(String username, int amount, String by);
String wechatPayCallback(String tradno);
......
......@@ -530,7 +530,8 @@ public class AccountServiceImpl implements AccountService {
List<SubUsersDto> subUsersDtoList = new ArrayList<>();
accounts.getContent().forEach(x -> {
subUsersDtoList.add(new SubUsersDto(x));
com.edgec.browserbackend.auth.domain.User user = userRepository.findById(x.getName()).orElse(null);
subUsersDtoList.add(new SubUsersDto(x, user.getPassword()));
});
subUserPageResultDto.setUserList(subUsersDtoList);
......@@ -595,6 +596,16 @@ public class AccountServiceImpl implements AccountService {
return account;
}
public static String makeRandomPassword(int len){
char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@$%^&*.?".toCharArray();
StringBuilder sb = new StringBuilder();
Random r = new Random();
for (int x = 0; x < len; ++x) {
sb.append(charr[r.nextInt(charr.length)]);
}
return sb.toString();
}
@Override
public void createSubUsers(String name, SubUsersRequestDto subUsersRequestDto) {
Account existing = repository.findByName(name);
......@@ -629,7 +640,10 @@ public class AccountServiceImpl implements AccountService {
User authUser = new User();
authUser.setUsername(user.getName());
if (org.apache.commons.lang3.StringUtils.isNotBlank(subUsersRequestDto.getPassword()))
authUser.setPassword(subUsersRequestDto.getPassword());
else
authUser.setPassword(makeRandomPassword(8));
authUser.setPhone(existing.getPhoneNumber());
authUser.setEnabled(true);
authUser.setPermission(subUsersRequestDto.getPermission());
......
......@@ -7,6 +7,7 @@ import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.api.request.AlipayTradeQueryRequest;
import com.alipay.api.response.AlipayTradePagePayResponse;
import com.alipay.api.response.AlipayTradeQueryResponse;
import com.edgec.browserbackend.account.dto.AlipayReturnDto;
import com.edgec.browserbackend.account.exception.AccountErrorCode;
import com.edgec.browserbackend.account.repository.UserBalanceRepository;
import com.edgec.browserbackend.account.repository.UserPaymentRepository;
......@@ -289,7 +290,7 @@ public class PaymentServiceImpl implements PaymentService {
}
@Override
public String alipayPutPayOrder(String username, int amount, String by) {
public AlipayReturnDto alipayPutPayOrder(String username, int amount, String by) {
Account byName = accountService.findByName(username);
if (byName == null)
......@@ -332,8 +333,10 @@ public class PaymentServiceImpl implements PaymentService {
internalOrder.setTransId(response.getTradeNo());
userPaymentRepository.save(internalOrder);
String form = response.getBody();
return form;
AlipayReturnDto alipayReturnDto = new AlipayReturnDto();
alipayReturnDto.setForm(response.getBody());
alipayReturnDto.setTradeNo(response.getTradeNo());
return alipayReturnDto;
} catch (Exception e) {
log.error("Alypay payment order generation fails", e);
......
......@@ -6,4 +6,6 @@ public interface UserShopRepositoryCustom {
void updateGroupId(String groupId_old, String groupId_new);
boolean deleteByShopIdExceptOwner(String shopId);
}
......@@ -40,4 +40,16 @@ public class UserShopRepositoryCustomImpl implements UserShopRepositoryCustom {
update.set("groupId", groupId_new);
mongoTemplate.updateFirst(basicQuery, update, UserShop.class);
}
@Override
public boolean deleteByShopIdExceptOwner(String shopId) {
Document doc = new Document();
BasicQuery basicQuery = new BasicQuery(doc);
basicQuery.addCriteria(where("shopId").is(shopId));
DeleteResult operation = mongoTemplate.remove(basicQuery, UserShop.class);
if (operation.getDeletedCount() < 1)
return false;
else
return true;
}
}
package com.edgec.browserbackend.browser.service.Impl;
import com.edgec.browserbackend.account.domain.Account;
import com.edgec.browserbackend.account.domain.User;
import com.edgec.browserbackend.account.exception.AccountErrorCode;
import com.edgec.browserbackend.account.repository.AccountRepository;
import com.edgec.browserbackend.browser.ErrorCode.BrowserErrorCode;
......@@ -269,13 +270,15 @@ public class ShopServiceImpl implements ShopService {
List<Account> accounts = accountRepository.findByNameIn(users);
if (accounts == null || accounts.size() != users.size())
throw new ClientRequestException(AccountErrorCode.NAMENOTEXIST);
accounts.stream().forEach(x -> {
shops.stream().forEach(shop -> {
try {
for (Shop shop:shops){
UserShop userShop1 = userShopRepository.findByUsernameAndShopId(x.getName(), shop.getShopId());
//todo 不删除owner
userShopRepository.deleteByShopIdExceptOwner(shop.getShopId());
for (Account account1 : accounts) {
UserShop userShop1 = userShopRepository.findByUsernameAndShopId(account1.getName(), shop.getShopId());
if (userShop1 != null)
return;
userShop1 = new UserShop(x.getName(), shop.getShopId(), "-1");
userShop1 = new UserShop(account1.getName(), shop.getShopId(), "-1");
if (shop.getIpId() != null)
userShop1.setIpId(shop.getIpId());
userShopRepository.save(userShop1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment