123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- package com.zoniot.ccrc.service.impl;
- import com.github.pagehelper.PageHelper;
- import com.zoniot.ccrc.commom.model.Pagination;
- import com.zoniot.ccrc.commom.utils.UserUtil;
- import com.zoniot.ccrc.dao.UserMapper;
- import com.zoniot.ccrc.dto.ClientUserDto;
- import com.zoniot.ccrc.dto.LoginUser;
- import com.zoniot.ccrc.entity.BaseWaterProperty;
- import com.zoniot.ccrc.entity.ClientUser;
- import com.zoniot.ccrc.entity.CustomerWaterStage;
- import com.zoniot.ccrc.service.AppletsService;
- import com.zoniot.ccrc.service.StatisticsService;
- import com.zoniot.ccrc.service.TokenService;
- import com.zoniot.ccrc.service.WechatService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.math.BigDecimal;
- import java.math.BigInteger;
- import java.time.LocalDateTime;
- import java.time.LocalTime;
- import java.time.format.DateTimeFormatter;
- import java.time.temporal.TemporalAdjusters;
- import java.util.ArrayList;
- import java.util.List;
- @Service
- public class AppletsServiceImpl implements AppletsService {
- @Resource
- private UserMapper userMapper;
- @Autowired
- private StatisticsService statisticsService;
- @Override
- public ClientUserDto findUserAmountByIdReal() {
- LoginUser loginClientUser = UserUtil.getCurrentUser();
- if(loginClientUser.getId()==null)
- return null;
- ClientUserDto clientUserDto = new ClientUserDto();
- List<ClientUserDto> clientUserDtos = new ArrayList<>();
- if(loginClientUser.getId()!=null) {
- clientUserDtos = userMapper.findUserAmountById(loginClientUser.getId());
- }
- DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMdd");
- Integer startDate = 0;
- Integer endDate = 0;
- LocalDateTime startDateTime = LocalDateTime.now().with(TemporalAdjusters.firstDayOfMonth());
- LocalDateTime endDateTime = LocalDateTime.now().with(LocalTime.MAX);
- startDate = Integer.valueOf(startDateTime.format(df));
- endDate = Integer.valueOf(endDateTime.format(df));
- //查询在阶段类型时间范围内容的用水量
- Double volume = statisticsService.getDeviceVolume(startDate,endDate);
- if(clientUserDtos!=null&&clientUserDtos.size()>0)
- {
- clientUserDto = clientUserDtos.get(0);
- clientUserDto.setUserNumber(clientUserDto.getAccountnumber());
- clientUserDto.setAvailablel1(10d);
- clientUserDto.setAvailablel2(20d);
- clientUserDto.setAvailablel3(999d);
- clientUserDto.setUseAmount(BigDecimal.valueOf(volume));
- BaseWaterProperty baseWaterProperty = new BaseWaterProperty();
- baseWaterProperty.setLaddertype(1);
- baseWaterProperty.setAvailable1(10);
- baseWaterProperty.setAvailable2(20);
- baseWaterProperty.setAvailable3(999);
- baseWaterProperty.setTotalpriceL1(new BigDecimal("0.8"));
- baseWaterProperty.setTotalpriceL2(new BigDecimal("1.2"));
- baseWaterProperty.setTotalpriceL3(new BigDecimal("1.6"));
- List<CustomerWaterStage> customerWaterStages = new ArrayList<CustomerWaterStage>();
- CustomerWaterStage customerWaterStage1 = new CustomerWaterStage();
- if(baseWaterProperty != null) {
- clientUserDto.setLaddertype(baseWaterProperty.getLaddertype());
- int ladderType = baseWaterProperty.getLaddertype();
- clientUserDto.setLaddertypename("本月用水");
- if(ladderType==2)//年阶梯
- {
- if(clientUserDto.getAvailableamount4() != null && clientUserDto.getAvailableamount4()>0)
- {
- clientUserDto.setLadderlevel(4);
- clientUserDto.setLadderlevelname("第四阶梯");
- }
- if(clientUserDto.getAvailableamount3() != null && clientUserDto.getAvailableamount3()>0)
- {
- clientUserDto.setLadderlevel(3);
- clientUserDto.setLadderlevelname("第三阶梯");
- }
- if(clientUserDto.getAvailableamount2() != null && clientUserDto.getAvailableamount2()>0)
- {
- clientUserDto.setLadderlevel(2);
- clientUserDto.setLadderlevelname("第二阶梯");
- }
- if(clientUserDto.getAvailableamount1() != null && clientUserDto.getAvailableamount1()>0)
- {
- clientUserDto.setLadderlevel(1);
- clientUserDto.setLadderlevelname("第一阶梯");
- }
- }
- if(ladderType==1)//月阶梯
- {
- if(clientUserDto.getAvailablel4() != null && clientUserDto.getAvailablel4()>0 && volume<= clientUserDto.getAvailablel4())
- {
- clientUserDto.setLadderlevel(4);
- clientUserDto.setLadderlevelname("第四阶梯");
- }
- if(clientUserDto.getAvailablel3() != null && clientUserDto.getAvailablel3()>0 && volume<= clientUserDto.getAvailablel3())
- {
- clientUserDto.setLadderlevel(3);
- clientUserDto.setLadderlevelname("第三阶梯");
- }
- if(clientUserDto.getAvailablel2() != null && clientUserDto.getAvailablel2()>0 && volume<= clientUserDto.getAvailablel2())
- {
- clientUserDto.setLadderlevel(2);
- clientUserDto.setLadderlevelname("第二阶梯");
- }
- if(clientUserDto.getAvailablel1() != null && clientUserDto.getAvailablel1()>0 && volume<= clientUserDto.getAvailablel1())
- {
- clientUserDto.setLadderlevel(1);
- clientUserDto.setLadderlevelname("第一阶梯");
- }
- }
- else if(ladderType==0)
- {
- clientUserDto.setLadderlevel(1);
- clientUserDto.setLadderlevelname("第一阶梯");
- }
- customerWaterStage1.setMinValue(BigDecimal.valueOf(0));
- if(baseWaterProperty.getAvailable1()!=null)
- customerWaterStage1.setMaxValue(BigDecimal.valueOf(baseWaterProperty.getAvailable1()));
- customerWaterStage1.setLaddertype(baseWaterProperty.getLaddertype());
- customerWaterStage1.setWaterPrice(baseWaterProperty.getTotalpriceL1());
- customerWaterStages.add(customerWaterStage1);
- if (baseWaterProperty.getTotalpriceL2() != null) {
- CustomerWaterStage customerWaterStage2 = new CustomerWaterStage();
- customerWaterStage2.setMinValue(BigDecimal.valueOf(baseWaterProperty.getAvailable1()));
- customerWaterStage2.setMaxValue(BigDecimal.valueOf(baseWaterProperty.getAvailable2()));
- customerWaterStage2.setLaddertype(baseWaterProperty.getLaddertype());
- customerWaterStage2.setWaterPrice(baseWaterProperty.getTotalpriceL2());
- customerWaterStages.add(customerWaterStage2);
- }
- if (baseWaterProperty.getTotalpriceL3() != null) {
- CustomerWaterStage customerWaterStage3 = new CustomerWaterStage();
- customerWaterStage3.setMinValue(BigDecimal.valueOf(baseWaterProperty.getAvailable2()));
- customerWaterStage3.setMaxValue(BigDecimal.valueOf(baseWaterProperty.getAvailable3()));
- customerWaterStage3.setLaddertype(baseWaterProperty.getLaddertype());
- customerWaterStage3.setWaterPrice(baseWaterProperty.getTotalpriceL3());
- customerWaterStages.add(customerWaterStage3);
- }
- if (baseWaterProperty.getTotalpriceL4() != null) {
- CustomerWaterStage customerWaterStage4 = new CustomerWaterStage();
- customerWaterStage4.setMinValue(BigDecimal.valueOf(baseWaterProperty.getAvailable3()));
- customerWaterStage4.setMaxValue(BigDecimal.valueOf(baseWaterProperty.getAvailable4()));
- customerWaterStage4.setLaddertype(baseWaterProperty.getLaddertype());
- customerWaterStage4.setWaterPrice(baseWaterProperty.getTotalpriceL4());
- customerWaterStages.add(customerWaterStage4);
- }
- }
- clientUserDto.setWaterStages(customerWaterStages);
- }
- return clientUserDto;
- }
- @Autowired
- private WechatService wechatService;
- @Autowired
- private TokenService tokenService;
- @Override
- public Pagination<ClientUser> getAccountInfoPage(int pageNum, int pageSize) {
- LoginUser loginClientUser = UserUtil.getCurrentUser();
- PageHelper.startPage(pageNum, pageSize);
- List<ClientUser> list = findUserByOpenid(loginClientUser.getOpenid(),null);
- return new Pagination<>(list);
- }
- @Override
- public int bindingMobile(String encryptedData, String iv, String code) {
- int result=0;
- LoginUser loginClientUser = UserUtil.getCurrentUser();
- String sessionkey = wechatService.getSessionkey(code);
- String PhoneNumber = wechatService.getInfo(encryptedData,iv,sessionkey);
- ClientUser clientUser = new ClientUser();
- clientUser.setId(loginClientUser.getId());
- clientUser.setMobilePhone(PhoneNumber);
- Integer id=userMapper.selectUserByPhone(PhoneNumber);
- loginClientUser.setMobilePhone(PhoneNumber);
- if(id==null){
- result=-1;
- }else{
- String openId=loginClientUser.getOpenid();
- userMapper.updateOpenId(openId,id);
- //tokenService.saveToken(loginClientUser);
- }
- return result;
- }
- @Override
- public void setDefault(Integer id) {
- LoginUser loginClientUser = UserUtil.getCurrentUser();
- //先清空所有默认
- userMapper.resetDefault(loginClientUser.getOpenid());
- //设置默认
- ClientUser clientUser = new ClientUser();
- clientUser.setId(id);
- clientUser.setIsDefault(1);
- userMapper.setDefault(id);
- String number=userMapper.getDefaultNumer(id.intValue());
- //更新缓存信息
- loginClientUser.setId(id);
- loginClientUser.setDefaultUserNumber(number);
- tokenService.saveToken(loginClientUser);
- }
- @Override
- public List<ClientUser> findUserByOpenid(String openid, Integer type) {
- List<ClientUser> list=userMapper.findClientUserByOpenid(openid,type);
- return list;
- }
- @Override
- public void updateByPrimaryKeySelective(ClientUser clientUser) {
- userMapper.setDefault(clientUser.getId());
- }
- @Override
- public int getUser() {
- int result=0;
- LoginUser currentUser = UserUtil.getCurrentUser();
- Integer id=userMapper.getUser(currentUser.getOpenid());
- if(id==null){
- result=-1;
- }
- return result;
- }
- }
|